p align="left">При первом запуске программы следует прежде всего создать файл базы данных. При нажатии на 1 в главном меню вы попадаете в меню создания базы данных. В меню создания выводится список возможных способов создания базы данных. При нажатии на 1 вы можете создать базу данных с адресом по умолчанию, при нажатии на 2 вы можете создать файл базы данных с любым выбранным вами адресом, а при нажатии на 3 файл базы данных создаётся автоматически. Если вам не нужно создавать файл базы данных, то нужно нажать на 4 для выхода в главное меню. В главном меню при нажатии на 2 вы можете дополнить базу данных. Для этого нужно ввести количество дополнительных записей и затем данные о читателях. При нажатии на 3 в главном меню вы можете удалить ненужную запись. Для этого нужно указать номер записи. При нажатии на 4 в главном меню вы можете просмотреть базу данных. Чтобы вернуться в главное меню нажмите любую клавишу. При нажатии на 5 в главном меню вы можете изменять существующие записи. Для этого нужно ввести номер записи, а затем выбрать из списка то, что вы хотите изменить. При нажатии на 6 вы попадаете в меню сортировки. Если вы нажмёте 1, то будет осуществлена сортировка по фамилии, если на 2, то сортировка по адресу, а если вы нажмёте на 3, то по дате рождения. Для того чтобы вернуться в главное меню нужно нажать 4. При нажатии в главном меню на 7 вы попадаете в меню поиска. В нём указан список параметров, по которым программа может производиться поиск. Нужно выбрать необходимый параметр. При нажатии на 8 в главном меню вы попадаете в меню помощи. Для выхода из программы нажмите 0 в главном меню. Разработанная программа с комментариями. # include <iostream.h> //Поток ввода вывода # include <math.h> //Математический файл # include <conio.h> //Команды управления вывода на экран # include <stdlib.h> //Стандартная библиотека функции # include <iomanip.h> //Манипуляторы ввода вывода # include <fstream.h> //Файловый входной поток # include <string.h> //Файл строки struct colizb{char fam[20]; char adres[20]; char datro[10]; char pasport[15]; char kolgol[15];}; //Структура const n=20; // Максимальное количество записей colizb gr[n]; //Массив для хранения записей colizb buf[n]; //Буфер для хранения массива gr colizb pust; char name[]="D:/TC/USER/kandid.bin"; //Имя создаваемого файла int nzap; //Номер записи int ost; //Количество оставшихся записей int nzapdop; //Номер дополнительной записи /////////////////////////////////////////////////////////// void titlist() //Функция титульный лист { textbackground(1); //Цвет фона textcolor(14); //Цвет шрифта clrscr(); //Очистка экрана gotoxy(17,2) ; //Установка курсора на заданную позицию cout<<"Министерство образования Российской Федерации"; gotoxy(18,3); cout<<"Южно-Уральский Государственный Университет"; gotoxy(30,4); cout<<"Филиал ЮУрГУ в г. Аше"; gotoxy(32,8); cout<<"КУРСОВАЯ РАБОТА"; gotoxy(29,9); cout<<"по информатике на тему:"; gotoxy(26,10); cout<<"Выборы главы Ашинского района"; gotoxy(41,14); cout<<"Выполнил: студент гр.ПС180 Стяжкин C.А."; gotoxy(41,15); cout<<"Консультант: доцент Рафиков К.М."; gotoxy(35,19); cout<<"Аша-2006г"; gotoxy(2,21); cout<<"Нажмите любую клавишу"; getch(); } //Конец функции ///////////////////////////////////////////////////////////////////////// void menu() //Функция меню { clrscr(); //Очистка экрана gotoxy(32,2); //Установка курсора на заданную позицию cout<<"Главное меню"; gotoxy(32,5); cout<<"1-Создание"; gotoxy(32,6); cout<<"2-Дополнение"; gotoxy(32,7); cout<<"3-Удаление"; gotoxy(32,8); cout<<"4-Просмотр"; gotoxy(32,9); cout<<"5-Изменение"; gotoxy(32,10); cout<<"6-Сортировка"; gotoxy(32,11); cout<<"7-Поиск"; gotoxy(32,12); cout<<"8-Помощь"; gotoxy(32,13); cout<<"0-Выход"; gotoxy(2,24); cout<<"Введите номер команды-"; } //Конец функции /////////////////////////////////////////////// void sclavi() //Функция ввода с клавиатуры { for(int j=0;j<nzap;j++) //Цикл for (счётчик) { gotoxy(2,4); cout<<"Введите фамилию избирателя:"<<endl; if (cin.peek()=='\n')cin.get(); cin.getline(gr[j].fam,sizeof(gr[j].fam)); //Ввод фамилии кандидата gotoxy(2,6); cout<<"Введите адрес:"<<endl; if (cin.peek()=='\n') cin.get(); cin.getline(gr[j].adres,sizeof(gr[j].adres)); //Ввод адреса избирателя gotoxy(2,8); cout<<"Введите дату рождения:"<<endl; if (cin.peek()=='\n') cin.get(); cin.getline(gr[j].datro,sizeof(gr[j].datro)); //Ввод даты рождения gotoxy(2,10); cout<<"Введите номер паспорта:"<<endl; if (cin.peek()=='\n') cin.get(); cin.getline(gr[j].pasport,sizeof(gr[j].pasport)); //Ввод номера паспорта gotoxy(2,12); cout<<"Введите количество голосов: "<<endl; if (cin.peek()=='\n') cin.get(); cin.getline(gr[j].kolgol,sizeof(gr[j].kolgol)); //Ввод количества голосов } } /////////////////////////////////////////////////////////////// int tofile() //Функция записи в файл { ofstream outf; //Выходной поток outf.open(name, ios::binary); if (outf.fail()) //Ветвление(если поток не исправен) { clrscr(); //Очистка экрана gotoxy(28,14); //Установка курсора на заданную позицию cout<<"Файл не открылся"; getch(); return 1; //Выход } //Конец ветвления for (int i=0; i<nzap; i++) //Цикл for outf.write((char *)&gr[i],sizeof(gr[i])); outf.close(); clrscr(); //Очистка экрана gotoxy(28,14); //Установка курсора на заданную позицию cout<<"Файл создан"; gotoxy(1,24); cout<<"Нажмите любую клавишу "; return 0; //Выход } //Конец функции ////////////////////////////////////////////////////////////////////// void toscreen() //Функция вывода на экран { clrscr(); //Очистка экрана cout<<"----T---------------T---------------T---------------T---------------T------¬"<<endl; cout<<"¦ № ¦ Ф.И.О ¦ Адрес ¦ дата рожд ¦ № паспорта ¦голоса¦"<<endl; cout<<"+---+---------------+---------------+---------------+---------------+------+"<<endl; for (int i=0;i<nzap;i++) //Цикл for { cout<<"¦ "<<setw(2)<<setiosflags(ios::left)<<i<<"¦"<<setw(15) <<gr[i].fam<<"¦"<<setw(15)<<gr[i].adres<<"¦"<<setw(15) <<gr[i].datro<<"¦"<<setw(15)<<gr[i].pasport<<"¦"<<setw(6) <<gr[i].kolgol<<"¦"<<endl; } //Конец цикла for cout<<"L---+---------------+---------------+---------------+---------------+-------"<<endl; } //Конец функции ///////////////////////////////////////////////////////////////////// int izfile() //Функция чтения из файла { for (int i=0; i<n; i++) //Счетчик gr[i]=pust; //Опустошение массива ifstream inf; inf.open(name, ios::binary); if(inf.fail()) //Ветвление { clrscr(); //Очистка экрана gotoxy(28,14); //Установка курсора на заданную позицию cout<<"Файл не открылся"; getch(); return 1; //Выход } //Конец ветвления nzap=0; //Присвоение номера записи к нулю char ch=inf.peek(); //Смотрит первый символ файла в потоке while(ch!=EOF) //Цикл с предусловием { inf.read((char *)&gr[nzap],sizeof(gr[nzap])); ++nzap; //Увеличение на один шаг ch=inf.peek(); } //Конец цикла с предусловием inf.close(); return 0; //Выход } //Конец функции //////////////////////////////////////////////////////////////////////// void sozdanie() //Функция создания { char r; //Номер команды clrscr(); //Очистка экрана gotoxy(28,2); //Установка курсора на заданную позицию cout<<"Создание"; gotoxy(25,5); cout<<"1-Создание нового файла: "<<name;; gotoxy(25,6); cout<<"2-Сменить адрес файла"; gotoxy(25,7); cout<<"3-Автоматическое создание файла"; gotoxy(25,8); cout<<"4-Отмена"; gotoxy(2,24); cout<<"Введите номер команды:"; cin>>r; //Ввод номера команды switch(r) //Переключатель для r { case '1': { clrscr(); //Очистка экрана gotoxy(2,2); cout<<"Введите число записей (от 1 до "<<n<<") "<<endl; cin>>nzap; //Ввод количества записей sclavi(); //Функция ввода с клавиатуры tofile(); //Запись файла getch(); break; //Досрочное завершение switch(r)
Страницы: 1, 2, 3, 4
|