Автор работы: Пользователь скрыл имя, 22 Ноября 2011 в 02:06, курсовая работа
Задачу ставит заказчик, а принимает разработчик. В нашей ситуации преподаватель поставил задачу перед студентом: написать программу, которая выводила бы таблицу с определенными данными. Шапка таблицы разрабатывается в процессе создания программы, а данные самой таблицы вводятся из файла (текстового документа). Итоговая таблица должна выглядеть так:
Неформальная постановка задачи
Формальная постановка задачи
Разработка и поиск алгоритма
Спецификация данных
Спецификация функций программы
Проектирование программы
Тело программы
Тестирование
Министерство образования и науки Российской Федерации
Тихоокеанский
Государственный Экономический
Университет
Курсовая работа
Высокоуровневые
методы информатики
и программирования
Выполнила:
Студентка 3
курса
Проверил:
Преподаватель
Владивосток
2009
Содержание
Задачу ставит
заказчик, а принимает разработчик. В нашей
ситуации преподаватель поставил задачу
перед студентом: написать программу,
которая выводила бы таблицу с определенными
данными. Шапка таблицы разрабатывается
в процессе создания программы, а данные
самой таблицы вводятся из файла (текстового
документа). Итоговая таблица должна выглядеть
так:
Сотрудники | ||||
fio
(Ф.И.О.) |
tn
(Табельный номер) |
Dr
(Дата рождения) |
Okl
(Оклад, тыс. руб.) |
St
(Стаж работы) |
Кокунова
И.И.
Матевосян М.А. Педора Д.П. Курбацкий Е.М. Банников Д.П. |
123
124 125 126 127 |
31.10.1966
14.09.1958 21.11.1973 21.07.1981 17.05.1969 |
7897.78
12874.96 18985.00 6739.36 9999.99 |
12
24 6 2 18 |
Затем, необходимо
посчитать общую сумму оклада.
При решении поставленной задачи нам необходимо определить:
В нашем примере исходными данными является таблица, содержащая необходимую информацию для нахождения общей суммы всего оклада.
Результат может быть только один: S=S+okl.
Проект алгоритма
разработаем в виде блок-схемы:
начало
ввод okl из массива
да
okl<0 нет
нет решения S=S+okl
S
конец
Файл input:
fio: string;
tn:integer;
dr:real;
okl:real;
st:integer;
Kokynova I.I. 123 1966 7897.78 12
Matevosyan M.A. 124 1958 12874.96 24
Pedora D.P 125 1973 18985.00 6
Kyrbackiy E.M. 126 1981 6739.36 2
Bannikov D.P.
127 1969 9999.99 18
Файл output:
Сообщение 1: таблица с данными о сотрудниках.
Сообщение 2: общая сумма оклада сотрудников.
Сообщение 3: оклад не может быть отрицательным (решений нет).
Сообщение 4: табельный номер не может быть отрицательным.
Сообщение 5: стаж не может быть отрицательным.
5.Спецификация функций программы
fio, tn, dr, okl, st
(INPUT)
Печать шапки таблицы
с сотрудниками и
их данными
tn, okl, st
проверка вводимых вычисление печать результата
данных
суммы оклада
OUTPUT
program kurs;
uses crt;
type
firma=record;
fio:string[20];
tn:integer;
dr:real;
okl:real;
st:integer;
end;
var sotr: array[1..20] of firma;
fin, fout: text;
k,n,i:integer;
procedure shapca;
begin
writeln(#186,'fio',#179:4,'tn'
end;
procedure sum;
var s:real;
begin
s:=0;
for i:=1 to n do begin
with sotr[i] do
s:=s+okl;
end;
procedure tabnumb;
begin
for i:=1 to n do begin
if (sort[i].tn>0) and (sort[i].tn<1000) then begin
end
else
writeln (I,’ne korrektnaya zapis tabelnogo nomera’);
end;
end;
procedure oklad;
begin
for i:=1 to n do begin
if (sort[i].okl>0) and (sort[i].okl<1000000) then begin
end
else
writeln (I,’ne korrektnaya zapis oklada’);
end;
end;
procedure stage;
begin
for i:=1 to n do begin
if (sotr[i].st>0) and (sort[i].st<100) then begin
end
else
writeln (I,’ne korrektnaya zapis staga’);
end;
end;
begin {--------------}
clrscr;
assign(fin, 'D:\131\data.txt');
reset (fin);
k:=0;
while not eof(fin) do begin
k:=k+1;
with sotr[k] do
readln(fin, fio, tn, dr, okl st);
end;
close(fin);
shapca;
n:=k;
writeln ('----------------------------
for i:=1 to n do begin
with sotr[i] do
writeln (#186, fio,#179:2,tn,#179:2,dr,#179:
end;
writeln ('----------------------------
sum;
tabnumb;
stage;
readkey;
end.
8. Тестирование
Тест 1:
Тест 2:
пусть один из пусть один из пусть один из
Okl=-1234 tn=-123 st=-15
Otvet: ne korrektnaya otvet: ne korrektnaya otvet: ne korrektnaya
Zapis
Тест 4:
Если okl, tn, st будут
положительными (okl=1234, tn=123, st=15), то программа
никаких сообщений об ошибке не выдаст.
Информация о работе Высокоуровневые методы информатики и програмирования