Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2009, 17:54   #1
DeamoniC
Новичок
Джуниор
 
Регистрация: 08.06.2009
Сообщений: 4
По умолчанию Программа для работы с файлами (паскаль).

Прошу помочь вас мне с моим заданием, для начала опишу цель.

Допустим есть торговая фирма и надо написать программу которая позволяла бы делать следующие пункты:

1) Добавление информации в файл (имя, фамилия, дата начала работы, дневной доход(сумма от проданного товара), и самое интересное - премиальные, если продавец продает менее чем на 1000 $ то 5% от суммы на которую он продал, если больше 1000$ то 6%, и если продавец в фирме более 10 лет то еще +1%).
2) Вывод данных на экран по дневным доходам и премиальным.
3) Вывод сортированных данных, по алфавиту имени или фамилии, по максимальному дневному доходу и по максимальным премиальным.

На данном этапе не получается:
1) Добавление в файл. (каждый раз новый список делает)
2) Не знаю как быть с премиальными.
3) Не знаю как делать сортировку.

Я из Латвии, поэтому в коде встречается латышский, но для удобства чтения приписал русские комментарии, надеюсь на вашу помощь, заранее спасибо.

Код:
program tirdz_firm;
uses crt;
type db=record
	 vards:string;{имя}
	 uzvards:string;{фамилия}
	 darb_sakums:string;{начало работы}
	 d_ienakums:string;{дневные продажи}
	 k_apbalvojumi:string;{премиальные}
end;

var f:file of string;
	dbm:array [1..10] of db;
	n,i,key:integer;
	s:Boolean;
	filename:string;
	procedure saglabasana; forward;
	procedure izvadisana; forward;
	procedure menu; forward;
	
procedure tabula;
begin
	writeln('=================================================================');
	writeln('||  Vards  ||  Uzvards  ||  Darba  ||  Dienas  ||   Komisijas  ||');
	writeln('||         ||           ||  Sakums || Ienakums ||  Apbalvojumi ||');
	writeln('=================================================================');
end;

procedure ievadisana;{ввод данных}
begin
	clrscr;
	writeln('Jaunas informacijas ievade.');
	write('Ievadiet jauno ierakstu daudzumu: ');
	readln(n);
	for i:=1 to n do
	begin
		writeln('Ievade N',i,'.');
		with dbm[i] do
		begin
			write('Ievadiet vardu: ');
			readln(vards);
			write('Ievadiet uzvardu: ');
			readln(uzvards);
			write('Ievadiet darba sukuma dienu: ');
			readln(darb_sakums);
			write('Ievadiet dienas ienakumus: ');
			readln(d_ienakums);
			write('Ievadiet komisijas apbalvojumus: ');
			readln(k_apbalvojumi);
		end;
	end;
	saglabasana;
	readkey;
	menu;
end;

procedure saglabasana;{сохранение данных}
begin
	writeln('Faila saglabasana.');
	assign(f,'C:\Praktika\5\baze.dat');
	reset(f);
	for i:=1 to n do
	begin
		with dbm[i] do
		begin
			write(f,vards);
			write(f,uzvards);
			write(f,darb_sakums);
			write(f,d_ienakums);
			write(f,k_apbalvojumi);
		end;
	end;
	close(f);
	writeln('Datu baze saglabata.');
end;

procedure lasisana;{чтение данных}
begin
	clrscr;
	writeln('Lasisana no bazes.');
	assign(f,'C:\Praktika\5\baze.dat');
	reset(f);
	If IOResult<>0 then
	Begin
		Writeln;
		Writeln('Nav tada faila.');
		Readkey;
		menu;
		Close(F);
	end
	else n:=0;
	while not eof(f) do
	begin
		inc(n);
		with dbm[n] do
		begin
			read(f,vards);
			read(f,uzvards);
			read(f,darb_sakums);
			read(f,d_ienakums);
			read(f,k_apbalvojumi);
		end;
	end;
	close(f);
	writeln('Записей в файле',n);
	readkey;
	izvadisana;
	readkey;
	menu;
end;

procedure izvadisana;{вывод данных}
Begin
	tabula;
	For i:=1 to n do
	Begin
		With dbm[i] do
		Begin
			Write(vards:9,' є ');
			Write(uzvards:10,' є ');
			Write(darb_sakums:10,' є ');
			Write(d_ienakums:9,' є ');
			Write(k_apbalvojumi:9,' є ');
			Writeln;
		End;
	End;
	ReadKey;
	Menu;
End;	
	
procedure menu;
begin
	clrscr;
	writeln('Programmas menu.');
	writeln('1. Jaunas informacijas ievade.');{Ввод данных}
	writeln('2. Bazes izvadisana uz ekrana.');{Вывод данных}
	writeln('0. Izeja.');{выход}
	write('Jusu izvele: ');
	readln(key);
	case key of
	1:ievadisana;
	2:izvadisana;
	0:halt;
	end;
end;
	
begin
	menu;
end.
DeamoniC вне форума Ответить с цитированием
Старый 09.06.2009, 21:28   #2
DeamoniC
Новичок
Джуниор
 
Регистрация: 08.06.2009
Сообщений: 4
По умолчанию

Помогите пожалуйста хотя бы первый вопрос разрешить, что запись добавлялось к списку а не новый создавался.
DeamoniC вне форума Ответить с цитированием
Старый 09.06.2009, 23:13   #3
san72
Форумчанин
 
Регистрация: 04.06.2008
Сообщений: 102
По умолчанию

1) Добавление в файл. (каждый раз новый список делает)

Чтобы добавить что-то в файл надо открывать его на добавление как-бы:

AppEnd(f)
Keep it simple, stupid
san72 вне форума Ответить с цитированием
Старый 09.06.2009, 23:20   #4
san72
Форумчанин
 
Регистрация: 04.06.2008
Сообщений: 102
По умолчанию

если продавец продает менее чем на 1000 $ то 5% от суммы на которую он продал: if d_ienakums<1000 then k_apbalvojumi:=d_ienakums+d_ienakum s*5/100

(только переведи всё в integer или real а не string)
Keep it simple, stupid

Последний раз редактировалось san72; 09.06.2009 в 23:23.
san72 вне форума Ответить с цитированием
Старый 09.06.2009, 23:21   #5
san72
Форумчанин
 
Регистрация: 04.06.2008
Сообщений: 102
По умолчанию

если больше 1000$ то 6%: if d_ienakums>1000 then k_apbalvojumi:=d_ienakums+d_ienakum s*6/100
Keep it simple, stupid

Последний раз редактировалось san72; 09.06.2009 в 23:23.
san72 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Плачу деньги за программулю для работы с файлами txt trader-sb Фриланс 5 26.12.2008 18:22
Программа для работы с dfx-файлами Sanek777 Фриланс 5 11.11.2008 21:04
Библиотека для работы с *.psd-файлами. vinni Мультимедиа в Delphi 3 23.10.2008 20:29
Оформление блок- схем программ для работы с файлами. Ветас Помощь студентам 1 24.02.2008 17:25
Прога для работы с текстовыми файлами f-only Софт 4 04.10.2007 23:35