- •Пояснительная записка
- •Решения прикладных задач с реализацией автоматизированной обработки экономической информации
- •Аннотация
- •Введение
- •Задание
- •Блок-схемы функций
- •Ввод бд из txt файла
- •Сохранение текущей бд в txt файл
- •Вывод текущей бд на экран
- •Добавление новой строки с данными в бд
- •Удаление строки из бд
- •Алфавитная сортировка бд по номеру группы
- •И нформация о количестве студентов
- •Поиск по студентам
- •Поиск номера варианта по фамилии
- •Дерево функций
- •Граф диалога
- •Заключение
- •Список используемой литературы.
- •Приложение 1. Описание разработанных функций
- •Приложение 2. Листинг программы
- •Приложение 3. Тестирование программы
Список используемой литературы.
Б. Страуструп. Язык программирования С++, 3-е изд пер. с англ. - М.: "Бином", СПб.: "Невский диалект", 1999. - 991 с., ил.
Т.А. Павловская. Ю.А. Щупак С/C++. Программирование на языке высокого уровня. – СПб.: Питер,2007. – 461 с.: ил.
Прата. Объектно-ориентированное программирование в C++. 2 изд. – ЭКСМО, 2007. - 336 с.: ил.
Т.А. Павловская, Ю.А. Щупак. С/C++. Структурное программирование: Практикум. – СПб.: Питер, 2007. – 239 с.: ил.
Приложение 1. Описание разработанных функций
Название функции |
Назначение функции |
void outputfile() |
Сохранение текущей БД в txt файл |
void inputfile() |
Ввод БД из txt файла |
void add() |
Добавление новой строки с данными в БД |
void deletekurs() |
Удаление строки из БД |
void output() |
Вывод текущей БД на экран |
void sort_gr() |
Алфавитная сортировка по названию товара |
void poisk_kol() |
Информация о количестве студентов |
void poisk_st() |
Поиск по студентам |
void poisk_var() |
Поиск номера варианта |
Описание глобальных переменных:
struct price char fam[l] char im[l] char prep[l] int var int gr int oc
|
-структура «KURS» -фамилия -имя -фамилия преподавателя -номер варианта -номер группы -оценка |
Приложение 2. Листинг программы
#include<iostream.h>
#include<fstream.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
#include<iomanip.h>
const int l=31;
struct kurs
{char fam[l], im[l], prep[l];
int var, gr, oc;
};
const int N=100;
class kursov
{private:
kurs x[N];
int n;
public:
void outputfile();
void inputfile();
void add();
void deletekurs();
void output();
void sort_gr();
void poisk_kol();
void poisk_st();
void poisk_var();
};
int main()
{ kursov a;
setlocale(LC_ALL, "Russian");
int j,m;
while(1)
{ cout<<"1. Загрузка из файла.\n";
cout<<"2. Вывод на экран.\n";
cout<<"3. Сохранение таблицы в файл.\n";
cout<<"4. Добавление записи.\n";
cout<<"5. Удаление записи.\n";
cout<<"6. Сортировка по группам.\n";
cout<<"7. Информация о количестве студентов.\n";
cout<<"8. Поиск по студентам.\n";
cout<<"9. Поиск по номеру варианта.\n";
cout<<"10. Выход.\n\n";
cout<<"Ваш выбор (1%10):";
cin>>j;
switch(j)
{ case 1: a.inputfile(); break;
case 2: a.output(); break;
case 3: a.outputfile();break;
case 4: a.add(); break;
case 5: a.deletekurs(); break;
case 6: a.sort_gr();break;
case 7: a.poisk_kol();break;
case 8: a.poisk_st();break;
case 9: a.poisk_var();break;
case 10: cout<<"Конец программы"; getch(); exit(0);
default:cout<<"Нет пункта!"; getch(); break;
}
}
}
void kursov:: inputfile()
{ifstream fin;
char file[l];
cout<<"Имя файла:"; cin>>file;
fin.open(file);
if(fin==NULL) {cout<<"Не открывается.\n"; getch(); exit(1);}
n=0;
do{fin>>x[n].fam>>x[n].im>>x[n].var>>x[n].gr>>x[n].prep>>x[n].oc;
n++;
}while(fin.good());
n--;
cout<<"Файл введен.\n"; getch();
fin.close();
output();
}
void kursov:: output()
{ int i;
cout<<"\n----------------------------------------------------------------------------\n";
cout<<"\n| N | ФАМИЛИЯ | ИМЯ | N ВАРИАНТА | N ГРУППЫ | ПРЕПОДАВАТЕЛЬ | ОЦЕНКА |\n";
cout<<"\n----------------------------------------------------------------------------\n";
for(i=0;i<n;i++)
{cout<<"|"<<setw(3)<<i+1
<<"|"<<setw(11)<<setiosflags(ios::left)<<x[i].fam
<<"|"<<setw(9)<<setiosflags(ios::left)<<x[i].im
<<"|"<<setw(12)<<setiosflags(ios::left)<<x[i].var
<<"|"<<setw(10)<<setiosflags(ios::left)<<x[i].gr
<<"|"<<setw(15)<<setiosflags(ios::left)<<x[i].prep
<<"|"<<setw(8)<<setiosflags(ios::left)<<x[i].oc<<"|"<<endl;
}
cout<<"\n---------------------------------------------------------------------------\n";
getch();
}
void kursov:: add()
{ kurs t;
if(n==N) {cout<<"Массив переполнен.\n"; getch(); exit(0);}
cout<<"Фамилия:"; cin>>t.fam;
cout<<"Имя:"; cin>>t.im;
cout<<"Номер варианта:"; cin>>t.var;
cout<<"Номер группы:"; cin>>t.gr;
cout<<"Фамилия преподавателя:"; cin>>t.prep;
cout<<"Оценка:"; cin>>t.oc;
x[n]=t; n++;
cout<<"Запись добавлена.\n";
getch();
output();
}
void kursov:: deletekurs()
{char ch;
int i,j;
output();
cout<<"Номер удаленной строки:";
cin>>j;
if(j<1||j>n) {cout<<"Нет такой строки.\n"; getch(); exit(0);}
cout<<setw(20)<<x[j-1].fam<<endl;
cout<<"Удалить?(y/n):"; cin>>ch;
if(ch=='y')
{for(i=j;i<n;i++)
x[i-1]=x[i];
n--;
}
cout<<"Запись удалена.\n"; getch();
}
void kursov:: outputfile()
{ofstream out;
char file[l];
int i;
cout<<"Имя файла:";
cin>>file;
out.open(file);
if (out==NULL) {cout<<"Не найден"; getch(); exit(1);}
for(i=0;i<n;i++)
{out<<setw(11)<<setiosflags(ios::left)<<x[i].fam
<<setw(9)<<setiosflags(ios::left)<<x[i].im
<<setw(12)<<setiosflags(ios::left)<<x[i].var
<<setw(11)<<setiosflags(ios::left)<<x[i].gr
<<setw(15)<<setiosflags(ios::left)<<x[i].prep
<<setw(8)<<setiosflags(ios::left)<<x[i].oc<<endl;}
out.close();
cout<<"Файл сохранен"; getch();
}
void kursov:: sort_gr()
{int i,fl,nn;
kurs t;
nn=n;
do {fl=0; nn--;
for(i=0;i<nn;i++)
if(x[i].gr>x[i+1].gr)
{t=x[i]; x[i]=x[i+1]; x[i+1]=t; fl=1;}
}while(fl==1);
output();
}
void kursov:: poisk_kol()
{int i,s = 0;
char prep[l];
cout<<"Введите фамилию преподавателя: "; cin>>prep;
int f=0;
for(i=0;i<n;i++)
if(strcmp(x[i].prep,prep)==0)
{ cout<<"Студент: ";
cout<<setw(8)<<setiosflags(ios::left)<<x[i].fam<<" "<<x[i].im<<endl; s=s+1;
f++;
}getch();
cout<<"Количество студентов: "<<s<<endl;
if(f==0) {cout<<"Нет такой записи\n"; getch();}
}
void kursov:: poisk_st()
{int i,k,oc;
cout<<"Введите оценку:"; cin>>oc;
int f=0;
for(i=0;i<n;i++)
if(oc==x[i].oc)
{ cout<<"Студент: ";
cout<<setw(8)<<setiosflags(ios::left)<<x[i].fam<<" "<<x[i].im<<endl;
f++;
} getch();
if(f==0) {cout<<"Нет такой записи\n"; getch();}
}
void kursov:: poisk_var()
{int i;
char fam[l];
cout<<"Введите фамилию студента:"; cin>>fam;
int f=0;
for(i=0;i<n;i++)
if(strcmp(x[i].fam,fam)==0)
{ cout<<"Номер варианта: ";
cout<<setw(8)<<setiosflags(ios::left)<<x[i].var<<endl;
f++;
}getch();
if(f==0) {cout<<"Нет такой записи\n"; getch();}
}