Исходный код программы на Java
⇐ ПредыдущаяСтр 3 из 3 Class JavaApplication5 /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package javaapplication5; import java.util.Scanner; /** * * @author Лера */ public class JavaApplication5 {
/** * @param args the command line arguments */ public static void main(String[] args) {
Scanner scan= new Scanner(System.in); String vvod; stanlist list = new stanlist();
do { System.out.println("\nВЕДОМОСТЬ УЧЕТА ВРЕМЕНИ РАБОТЫ СТАНКОВ ПРЕДПРИЯТИЯ\n"); System.out.println("Выберите желаемое действие:\n"); System.out.println("1 - вывести ведомость на экран\n"); System.out.println("2 - добавить запись\n"); System.out.println("3 - изменить запись\n"); System.out.println("0 - выход из программы\n");
vvod=scan.next(); switch (vvod) { case "1": { if (list.length() == 0) { System.out.println("Ведомость пуста. Добавьте первую запись."); break; }
else { list.print_tabl(); } break; }
case "2": {
list.add_note();
break; }
case "3": { if (list.length() == 0) { System.out.println("Ведомость пуста. Изменять нечего."); break; }
else {
list.change_note(); } break; } case "0": { break; } default: { System.out.println("Неправильно выбран пункт меню! Пожалуйста, попробуйте ещё раз! \n"); break; } } } while (vvod!= "0"); } } Class stanlist /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package javaapplication5;
import java.text.NumberFormat; import java.util.ArrayList; import java.util.Scanner;
/** * * @author Лера */ public class stanlist { ArrayList<stanok> stan;
public stanlist() { stan = new ArrayList<stanok>(); } public int length() { return stan.size(); }
public double calculate_timework_plan() { double Q1= 0; for (int i = 0; i < stan.size(); i++) Q1 += stan.get(i).GetTimeWork_plan(); return Q1; }
public double calculate_timework_fact() { double Q2= 0; for (int i = 0; i < stan.size(); i++) Q2 += stan.get(i).GetTimeWork_fact(); return Q2; }
public int add_note() { Scanner scan= new Scanner(System.in);
int n=0; String type, s; double time_plan, time_fact; System.out.println("Сколько записей вы хотите добавить?"); s = scan.next();
try { n = Integer.parseInt(s);
} catch (NumberFormatException nfe) { System.out.println("Неправильный ввод!!!\n"); }
for (int i = 0; i < n; i++) { stanok[] stan_1 = new stanok[1]; System.out.println("\nТип станка (не более 15 символов): "); type = scan.next(); System.out.println("Время по плану: "); s = scan.next(); try { time_plan = Double.parseDouble(s); } catch (NumberFormatException nfe) { System.out.println("Неправильно введено число! Пожалуйста, попробуйте ещё раз!"); break; }
System.out.println("Время фактически: "); s = scan.next(); try { time_fact = Double.parseDouble(s); } catch (NumberFormatException nfe) { System.out.println("Неправильно введено число! Пожалуйста, попробуйте ещё раз!"); break; }
stan_1[0] = new stanok(type, time_plan, time_fact); stan.add(stan_1[0]); System.out.println("Запись добавлена."); } return 0; }
public void print_tabl() { shapka(); NumberFormat nf = NumberFormat.getInstance(); nf.setMinimumFractionDigits (3); for (int i = 0; i < stan.size(); i++) { System.out.print(String.format("|%15.9s ",stan.get(i).GetTypeStan())); //System.out.print(" | "); System.out.print(String.format("|%13.9s ",nf.format(stan.get(i).GetTimeWork_plan()))); System.out.print(String.format("|%13.9s ",nf.format(stan.get(i).GetTimeWork_fact()))); System.out.print(String.format("|%14.9s ",nf.format(stan.get(i).CalculateTime_Hours()))); System.out.print(String.format("|%14.9s |",nf.format(stan.get(i).CalculateTime_Proc()))); niz();
}
System.out.print(String.format("|%16.9s","Итого: ")); System.out.print(String.format("|%13.9s ",nf.format(calculate_timework_plan()))); System.out.print(String.format("|%13.9s ",nf.format(calculate_timework_fact()))); System.out.print(String.format("|%16.9s","|")); System.out.print(String.format("%16.9s","|")); niz();
} public int change_note() { Scanner scan= new Scanner(System.in); NumberFormat nf = NumberFormat.getInstance(); nf.setMinimumFractionDigits (3); String s, s1, s2; double p, f; int nom=-1, a=-1;
System.out.println("Введите тип того станка, информацию о котором хотите изменить:"); s = scan.next(); for (int i = 0; i < stan.size(); i++) { if (s.equals(stan.get(i).GetTypeStan())) { nom = i; break; }
System.out.println(nom);
}
if (nom < 0) { System.out.println("Нет такой записи!");
return 0; }
else {
shapka(); System.out.print(String.format("|%15.9s ",stan.get(nom).GetTypeStan())); System.out.print(String.format("|%13.9s ",nf.format(stan.get(nom).GetTimeWork_plan()))); System.out.print(String.format("|%13.9s ",nf.format(stan.get(nom).GetTimeWork_fact())));
System.out.print(String.format("|%14.9s ",nf.format(stan.get(nom).CalculateTime_Hours()))); System.out.print(String.format("|%14.9s |",nf.format(stan.get(nom).CalculateTime_Proc()))); niz();
while (a!= 0) { System.out.println("\n\nКакое поле ведомости вы хотите изменить?"); System.out.println("1 - тип станка"); System.out.println("2 - время работы по плану"); System.out.println("3 - время работы фактически"); System.out.println("0 - выход ");
s1 = scan.next();
switch (s1) { case "1": { System.out.println("Новый тип станка(не более 15 символов): "); stan.get(nom).new_type(scan.next()); break; }
case "2": { System.out.println("Новое время работы по плану: "); s2 = scan.next(); try { p = Double.parseDouble(s2); } catch (NumberFormatException nfe) { System.out.println("Неправильно введено число! Пожалуйста, попробуйте ещё раз!"); break; } stan.get(nom).new_time_plan(p);
break; } case "3": { System.out.println("Новое время работы фактически: "); s2 = scan.next(); try { f = Double.parseDouble(s2); } catch (NumberFormatException nfe) { System.out.println("Неправильно введено число! Пожалуйста, попробуйте ещё раз!"); break; } stan.get(nom).new_time_fact(f); } case "0": { a = 0; return 0; } default: { System.out.println("Неправильно выбран пункт меню! Пожалуйста, попробуйте ещё раз! \n"); break; } } } }
return 0; }
public void shapka() { System.out.print(" ______________________________________________________________________________\n"); System.out.print("| ВЕДОМОСТЬ УЧЕТА ВРЕМЕНИ РАБОТЫ СТАНКОВ ПРЕДПРИЯТИЯ |\n"); System.out.print("|______________________________________________________________________________|\n"); System.out.print("| Тип | Время работы, час. | Отклонение от плана |\n"); System.out.print("| |_____________________________|_______________________________|\n"); System.out.print("| станка | по плану | фактически | в часах | в процентах |\n"); System.out.print("|________________|______________|______________|_______________|_______________|\n"); } public void niz() { System.out.print("\n|________________|______________|______________|_______________|_______________|\n"); }} Class stanok /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package javaapplication5;
/** * * @author Лера */ public 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; }
} Примеры работы программы
Выводы В ходе выполнения лабораторной работы № 3 я приобрела практические навыки использования основных элементов ООП, отношения агрегации при разработке программ на языках Java и C#, а также сред разработки Microsoft Visual Studio и NetBeans. Разработанные программы полностью соответствуют постановке задачи. Результаты их работы на тестовых исходных данных соответствуют ожидаемым.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|