2013-12-04 2 views
0

Я узнаю об одноуровневых разрывах управления. Эта программа должна подготовить отчет, который включает в себя день недели, количество часов, отработанных каждым сотрудником за каждый день, и общее количество часов, отработанных каждый день. Был указан весь код до цикла while. Я включил объявления переменных для хорошей оценки. Я отвечаю за завершение контрольного перерыва в цикле «while» и печать указанной выше информации. Я добавил некоторый дополнительный код, но я смущен о логике. Помощь приветствуется. Это мой первый пост, поэтому, если я нарушил правила, приношу свои извинения.Внедрение результатов контроля и печати

final String HEAD1 = "WEEKLY HOURS WORKED"; 
    final String DAY_FOOTER = "    DAY TOTAL"; //spaces are on purpose 
    final String SENTINEL = "done"; 
    double hoursWorked = 0; 
    String hoursWorkedString = ""; 
    String dayOfWeek; 
    double hoursTotal = 0; 
    String prevDay = ""; 
    boolean done = false; 

//Read first record 
    dayOfWeek = JOptionPane.showInputDialog("Enter day of week or done to quit: "); 
    if (dayOfWeek.compareTo(SENTINEL) == 0) 
     done = true; 
     System.exit(0); 
    else 
    { 
     hoursWorkedString = JOptionPane.showInputDialog("Enter hours worked: "); 
     hoursWorked = Integer.parseInt(hoursWorkedString); 
     prevDay = dayOfWeek; 
    } 

    while(done == false) 
    { 
     //THIS IS WHERE I NEED TO IMPLEMENT THE CONTROL BREAK 
     if (dayOfWeek.compareTo(prevDay) != 0) 
     { 
      System.out.println(dayOfWeek + " " + hoursWorked); 
      hoursTotal = 0 
      prevDay = dayOfWeek; 
     } 
      System.out.println(dayOfWeek + " " + hoursWorked); 
      hoursTotal = hoursTotal + hoursWorked; 

     //ADDITIONAL WORK NEEDED HERE FOR dayChange() METHOD 

    } 
     System.out.println(DAY_FOOTER + hoursTotal); 
     System.exit(0); 
+0

"одноуровневый контроль перерыва"? Я никогда не слышал этого термина. – zapl

+0

Его программирование логики и дизайна, 7-е издание, J. Farrell. Он определяется как разрыв в логике программы (в данном случае, приостановка или отключение для вывода счетчика), основанный на значении одной переменной. – ARJ

+0

Причины, по которым вы не получаете ответы: проблема, которую вы пытаетесь решить, действительно трудно понять (я дважды читал ваш текст, и я до сих пор не понимаю, что вы должны делать/как будет выглядеть ответ). Вы также разместили довольно много кода. Разделите свой вопрос на небольшой пример, похожий на вашу проблему (например, Ui совершенно неактуальен) и опишите проблему в простых английских терминах, поэтому людям, изучающим информатику, не нужно стыдиться и нужно спросить, каковы эти термины:) – zapl

ответ

0

Мне нравится думать о перерывах управления как «перерывы» в данных полей ключа. Логика группирует вместе как (ключевые) значения в серии подробных записей. Итерировать через записи и печатать отдельные «часы» легко. Получение итоговой суммы (группа записей по неделям) довольно проста. Но что, если вы хотите, чтобы детали в течение недели, в течение месяца, в течение года? И кто хочет, чтобы программа была эффективной? Вот где удобны контрольные перерывы. Ваш текст запускает вас с помощью простого «разрыва одного уровня управления» и готовит вас к 3 или более разрыву контроля уровня.

Весь язык программирования «RPG» (язык генерации отчетов) был построен вокруг концепции контрольных перерывов. Контрольные перерывы лучше всего понимаются в контексте «отчета», но могут быть полезны в других ситуациях. Пример. В некотором смысле, XML-документ - это «отчет», не так ли? Я обнаружил, что контрольные перерывы тесно связаны с предложением SQL GROUP.

Смежные вопросы