нужна помощь с циклом - PullRequest
       16

нужна помощь с циклом

1 голос
/ 07 ноября 2010

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Учитель в моем классе НЕ предоставляет никаких примеров или показывает какие-либо примеры в классе для зацикливания (и один пример, который он показал нам, он сказал, что это неправильно, он использовал неправильный пример), и в дополнение к этому он сделал Я не говорю, является ли это циклом управления, вложенным циклом, циклом for, do или while, поэтому мне нужна помощь здесь, поскольку у меня КРАЙНЕ ЛЕНЫЙ УЧИТЕЛЬ.

Я собираюсь опубликовать только часть того, с чем мне нужна помощь (часть II вопроса LOOPING)

Редактировать: Размещен полный вопрос для уточнения.

Сварочная компания Wacky Widgets хочет рассчитать повышение заработной платы для каждого из своих сотрудников в течение следующих десяти лет. В настоящее время компания планирует увеличивать оплату труда каждого сотрудника на 5 процентов в год. Например, работник, который в настоящее время зарабатывает 25 000 долларов в год, заработает 26 250 долларов в следующем году, 27 562,50 долларов во второй год и 28 940,63 долларов в третий год. Создайте следующее, создав две диаграммы классов и псевдокод:

a) Класс обслуживания сотрудников, который содержит идентификационный номер сотрудника и текущую годовую зарплату сотрудника. Включите следующее:
i) Конструктор по умолчанию и перегруженный конструктор.
ii) Методы доступа и мутатора для каждого атрибута.

b) Класс приложения PayReport, который содержит два метода: метод main () и метод printPayData (). Метод main () считывает записи Employee из файла с именем «employee.txt» и отправляет их по одному в метод printPayData (). Метод printPayData () создает отчет, в котором указывается номер сотрудника и зарплата сотрудника за каждый последующий 10 лет.

Это то, что я собрал так далеко от задания и справки из учебника.

Public class PayReport

Public void main ()

   Employee oneWorker
   Open (Employee.txt)
   oneWorker = read (Employee.txt)
   while oneWorker is not at end of file
       printPayData = read(employee.txt)
   endwhile
   close(employee.txt)
return

public void printPayData (Employee emp)

   integer gross
   gross = emp.getemployeesalary() * 0.5
   print emp.getemployeeid(), gross
return
endClass

Так что мне было интересно, что я делаю зацикливание неправильно, каковы недостатки с зацикливанием прямо сейчас, и есть ли недостатки зацикливания прямо сейчас, и какие изменения необходимы для этого зацикливания.

Вот дополнительная информация, если кому-то понадобится какое-либо уточнение или разъяснение того, на чем я основываю свой цикл.

Employee service class

public class Employee

  // declarations
  private employeeid : integer
  private employeesalary : integer

  public Employee ()
      employeeid = 0
      employeesalary  = 0
  return

  public Employee (id : integer, salary : integer)
      employeeid = id
      employeesalary = salary   
  return

  public integer getemployeeid ( ) 
  return employeeid

  public integer getemployeesalary ( ) 
  return employeesalary


  public void setCustomeraget(integer id) 
      employeeid = id
  return

  public void setEmployeesalary (integer salary) 
      employeesalary = salary
  return

End Class

, так что employee.txt = пришел бы из этого класса прямо здесь).

PS: если потребуется какая-либо дополнительная информация, я ее отредактирую и предоставлю дополнительную информацию

Мой вопрос в том, является ли цикл, который я создал на основе моего псевдокода, некорректным, не работает, и необходимы ли изменения в цикле, который я создал на основе моего псевдокода.

Когда я создал диаграмму классов этого в ArgoUML, а затем попытался сгенерировать для него код, класс там не указан, он пуст.

EX.

код генерации для проекта

Доступные классы

бланк (N / A)

1 Ответ

3 голосов
/ 07 ноября 2010

Я вижу пару проблем с вашим кодом.

  1. printPayData = read (employee.txt)

Это похоже на то, что вы установили printPayData равным тому, что вы читаете из файла, когда вы хотите передать прочитанную информацию в функцию. Это может быть более уместным.

printPayData (read (employee.txt))

2. printPayData не распечатывает зарплату сотрудников в течение следующих 10 лет. Это должно выглядеть больше так.

print employeeNumber
integer i = 0
integer salary = current employee Salary

while ( i < 10 )
   print salary
   salary = salary * 1.05
   i = i + 1
end while
...