Описание архитектуры программы
Program- класс, содержащий главный метод программы StanList - класс - «целое», Stanok - класс - «часть» Исходный код программы на C# Сlass Program using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace ConsoleApplication2 { class Program { static int Main(string[] args) { string vvod; StanList list = new StanList();
do { Console.WriteLine("\nВЕДОМОСТЬ УЧЕТА ВРЕМЕНИ РАБОТЫ СТАНКОВ ПРЕДПРИЯТИЯ\n"); Console.WriteLine("Выберите желаемое действие:\n"); Console.WriteLine("1 - вывести ведомость на экран\n"); Console.WriteLine("2 - добавить запись\n"); Console.WriteLine("3 - изменить запись\n"); Console.WriteLine("0 - выход из программы\n");
vvod = Console.ReadLine(); switch (vvod) { case "1": { if (list.length() == 0) { Console.WriteLine("Ведомость пуста. Добавьте первую запись."); Console.ReadKey(); Console.Clear(); break; }
else { Console.Clear(); list.print_tabl(); } break; }
case "2": { Console.Clear(); list.add_note(); Console.ReadKey(); Console.Clear(); break; }
case "3": { if (list.length() == 0) { Console.WriteLine("Ведомость пуста. Изменять нечего."); Console.ReadKey(); Console.Clear(); break; }
else { Console.Clear(); list.change_note(); } break; } case "0": { return 0; } default: { Console.Write("Неправильно выбран пункт меню! Пожалуйста, попробуйте ещё раз! \n"); Console.ReadKey(); Console.Clear(); break; } } } while (vvod!= "0");
return 0; } } }
Сlass StanList using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace ConsoleApplication2 { class StanList { List<Stanok> stan;
public StanList() { stan = new List<Stanok>(); } public int length() { return stan.Count(); }
public int add_note() { int n; string type, s; double time_plan, time_fact; Console.WriteLine("Сколько записей вы хотите добавить?"); s = Console.ReadLine(); if (!int.TryParse(s, out n)) { Console.WriteLine("Ошибка ввода!! Пожалуйста, попробуйте ещё раз!");
return 0; } for (int i = 0; i < n; i++) { Stanok[] stan_1 = new Stanok[1]; Console.WriteLine("\nТип станка (не более 15 символов): ");
type = Console.ReadLine(); Console.WriteLine("Время по плану: "); s = Console.ReadLine(); if (!double.TryParse(s, out time_plan)) { Console.WriteLine("Неправельно введено число! Пожалуйста, попробуйте ещё раз!"); break; }
Console.WriteLine("Время фактически: "); s = Console.ReadLine(); if (!double.TryParse(s, out time_fact)) { Console.WriteLine("Неправельно введено число! Пожалуйста, попробуйте ещё раз!"); break; }
stan_1[0] = new Stanok(type, time_plan, time_fact); stan.Add(stan_1[0]); Console.WriteLine("Запись добавлена."); } return 0; }
public void print_tabl() { shapka(); for (int i = 0; i < stan.Count; i++) { Console.Write("|{0,15:0} ", stan[i].GetTypeStan()); Console.Write("|{0,13:f3} ", stan[i].GetTimeWork_plan()); Console.Write("|{0,13:f3} ", stan[i].GetTimeWork_fact()); Console.Write("|{0,14:f3} ", stan[i].CalculateTime_Hours()); Console.Write("|{0,14:f3} |", stan[i].CalculateTime_Proc()); niz(); } Console.Write("|{0,16:0}", " Итого: "); Console.Write("|{0,13:f3} ", calculate_timework_plan()); Console.Write("|{0,13:f3} ", calculate_timework_fact()); Console.Write("|{0,16} ", "|"); Console.Write("{0,15}", "|"); niz(); Console.ReadKey(); Console.Clear(); } public int change_note() { string s, s1, s2; double p, f; int nom=-1, a=-1;
Console.WriteLine("Введите тип того станка, информацию о котором хотите изменить:"); s = Console.ReadLine(); for (int i = 0; i < stan.Count; i++) { if (s == stan[i].GetTypeStan()) { nom = i; break; } }
if (nom < 0) { Console.WriteLine("Нет такой записи!"); Console.ReadKey(); Console.Clear(); return 0; }
else {
shapka(); Console.Write("|{0,15:0} ", stan[nom].GetTypeStan()); Console.Write("|{0,13:f3} ", stan[nom].GetTimeWork_plan()); Console.Write("|{0,13:f3} ", stan[nom].GetTimeWork_fact()); Console.Write("|{0,14:f3} ", stan[nom].CalculateTime_Hours()); Console.Write("|{0,14:f3} |", stan[nom].CalculateTime_Proc()); niz();
while (a!= 0) { Console.WriteLine("\n\nКакое поле ведомости вы хотите изменить?"); Console.WriteLine("1 - тип станка"); Console.WriteLine("2 - время работы по плану"); Console.WriteLine("3 - время работы фактически"); Console.WriteLine("0 - выход ");
s1 = Console.ReadLine();
switch (s1) { case "1": { Console.WriteLine("Новый тип станка(не более 15 символов): "); stan[nom].new_type(Console.ReadLine()); break; }
case "2": { Console.WriteLine("Новое время работы по плану: ");
s2 = Console.ReadLine(); if (!double.TryParse(s2, out p)) { Console.WriteLine("Неправильно введены данные! Пожалуйста, попробуйте ещё раз!"); break; } stan[nom].new_time_plan(p);
break; } case "3": { Console.WriteLine("Новое время работы фактически: "); s2 = Console.ReadLine(); if (!double.TryParse(s2, out f)) { Console.WriteLine("Неправильно введены данные! Пожалуйста, попробуйте ещё раз!"); break; } stan[nom].new_time_fact(f); break; } case "0": { a = 0; Console.Clear(); return 0; } default: { Console.Write("Неправильно выбран пункт меню! Пожалуйста, попробуйте ещё раз! \n"); break; } } } }
return 0; }
public double calculate_timework_plan() { double Q1= 0; for (int i = 0; i < stan.Count; i++) Q1 += stan[i].GetTimeWork_plan(); return Q1; }
public double calculate_timework_fact() { double Q2= 0; for (int i = 0; i < stan.Count; i++) Q2 += stan[i].GetTimeWork_fact(); return Q2; }
public void shapka() { Console.Write(" ______________________________________________________________________________\n"); Console.Write("| ВЕДОМОСТЬ УЧЕТА ВРЕМЕНИ РАБОТЫ СТАНКОВ ПРЕДПРИЯТИЯ |"); Console.Write("|______________________________________________________________________________|"); Console.Write("| Тип | Время работы, час. | Отклонение от плана |"); Console.Write("| |_____________________________|_______________________________|"); Console.Write("| станка | по плану | фактически | в часах | в процентах |"); Console.Write("|________________|______________|______________|_______________|_______________|"); } public void niz() { Console.Write("|________________|______________|______________|_______________|_______________|"); }
} }
Сlass Stanok using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace ConsoleApplication2 { class Stanok { private string type; private double time_plan; private double time_fact;
public Stanok(string type, double time_plan, double time_fact) { this.type = type; this.time_plan = time_plan; this.time_fact = time_fact; }
public string GetTypeStan() { return type; }
public double GetTimeWork_plan() { return time_plan; }
public double GetTimeWork_fact() { return time_fact; }
public double CalculateTime_Hours() { double Q1 = time_plan - time_fact; return Q1; }
public double CalculateTime_Proc() { double Q2 = CalculateTime_Hours() * 100 / time_plan; return Q2; }
public void new_type(string newtype) { this.type = newtype; }
public void new_time_plan(double new_time_plan) { this.time_plan = new_time_plan; }
public void new_time_fact(double new_time_fact) { this.time_fact = new_time_fact; } } }
Примеры работы программы
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|