|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
06.06.2017, 23:17 | #1 |
Новичок
Джуниор
Регистрация: 06.06.2017
Сообщений: 1
|
Разделить программу на модули. Пожалуйста!))
#include <iostream>
#include <fstream> #include <iomanip> #include <cstring> using namespace std; struct structura{ char namemark[124]; char namephone[124]; int price; }; void write(){ int n; cout << "Enter quality records : "; cin >> n; ofstream diana("diana", ios::app | ios::binary); structura telephone; for(int i=0; i<n; i++){ cout << "Enter namemark "; cin >> telephone.namemark; cout << "Enter namephone "; cin >> telephone.namephone; cout << "Enter price "; cin >> telephone.price; diana.write((char*)&telephone, sizeof(structura)); } diana.close(); } void read(){ structura telephone; ifstream diana("diana", ios::binary); int p=0; while (diana.read((char*)&telephone, sizeof(structura)) != NULL){ cout << p+1 << ") " << setiosflags(ios::left) << setw(15) << telephone.namemark << setw(15) << telephone.namephone << setw(15) << telephone.price << endl; p++; } diana.close(); } void rewrite(){ int n = 0; int change; structura telephone; structura buff; ifstream diana("diana", ios::binary); ofstream dianaNew("prom", ios::binary | ios::app); cout << "Vvedit nomer dlya zminu : "; cin >> change; while(diana.read((char*)&telephone, sizeof(structura)) != NULL){ if(change-1 == n){ cout << "New namemark : "; cin >> buff.namemark; cout << "New namephone : "; cin >> buff.namephone; cout << "New price : "; cin >> buff.price; dianaNew.write((char*)&buff, sizeof(structura)); n++; }else{ dianaNew.write((char*)&telephone, sizeof(structura)); n++; } } diana.close(); dianaNew.close(); remove("diana"); rename("prom", "diana"); } void searh(){ structura telephone; char enternamemark[124]; char enternamephone[124]; int number; int enterprice; cout << "On what criteria you want to search\n\t1. namemark\n\t2. namephone\n\t3. price\n\t\tEnter number : "; cin >> number; switch(number){ case 1 : { cout << "Enter namemark : "; cin >> enternamemark; break; } case 2 : { cout << "Enter namephone : "; cin >> enternamephone; break; } case 3 : { cout << "Enter price : "; cin >> enterprice; break; } default : { cout << "Error enter !!!"; break; } } ifstream diana("diana", ios::binary); while(diana.read((char *)&telephone, sizeof(telephone)) != NULL){ switch(number){ case 1 : { if(strcmp(enternamemark, telephone.namemark) == 0){ cout << setiosflags(ios::left) << setw(15) << telephone.namemark << setw(15) << telephone.namephone << setw(15) << telephone.price << endl; } break; } case 2 : { if(strcmp(enternamephone, telephone.namephone) == 0){ cout << setiosflags(ios::left) << setw(15) << telephone.namemark << setw(15) << telephone.namephone << setw(15) << telephone.price << endl; } break; } case 3 : { if(enterprice == telephone.price){ cout << setiosflags(ios::left) << setw(15) << telephone.namemark << setw(15) << telephone.namephone << setw(15) << telephone.price<< endl; } break; } default : { cout << "Error !!!" << endl; break; } } } diana.close(); } void delet(){ int n = 0; int change; structura telephone; ifstream diana("diana", ios::binary); ofstream dianaNew("prom", ios::binary | ios::app); cout << "Vvedit nomer dlya zminu : "; cin >> change; while(diana.read((char*)&telephone, sizeof(structura)) != NULL){ if(change-1 == n){ cout << setiosflags(ios::left) << setw(15) << telephone.namemark << setw(15) << telephone.namephone << setw(15) << telephone.price << endl; n++; }else{ dianaNew.write((char*)&telephone, sizeof(structura)); n++; } } diana.close(); dianaNew.close(); remove("diana"); rename("prom", "diana"); } void sort(){ int choice; int n = 0; structura telephone; structura peo[124]; cout << "Sort : \n\t1. namemark\n\t2. namephone\n\t3. price\n\t\tEnter choice : "; cin >> choice; ifstream diana("diana", ios::binary); ofstream dianaNew("prom", ios::binary | ios::app); while(diana.read((char*)&peo[n],sizeof(structura))!= NULL){ n++; } switch(choice){ case 1: for(int i=0; i<n; i++){ for(int j=0; j<n-1; j++){ if(strcmp(peo[j].namemark, peo[j+1].namemark) >0){ telephone=peo[j+1]; peo[j+1]=peo[j]; peo[j]=telephone; } } } for(int i=0; i<n; i++){ dianaNew.write((char*)&peo[i], sizeof(structura)); } break; case 2: for(int i=0; i<n; i++){ for(int j=0; j<n-1; j++){ if(strcmp(peo[j].namephone, peo[j+1].namephone) >0){ telephone=peo[j+1]; peo[j+1]=peo[j]; peo[j]=telephone; } } } for(int i=0; i<n; i++){ dianaNew.write((char*)&peo[i], sizeof(structura)); } break; case 3: for(int i=0; i<n; i++){ for(int j=0; j<n-1; j++){ if(peo[j].price > peo[j+1].price){ telephone=peo[j+1]; peo[j+1]=peo[j]; peo[j]=telephone; } } } for(int i=0; i<n; i++){ dianaNew.write((char*)&peo[i], sizeof(structura)); } break; default : cout << "Error !!!"; } diana.close(); dianaNew.close(); remove("diana"); rename("prom", "diana"); } int main(){ int choice; while(true){ cout << "1. Write\n2. Read\n3. Rewrite\n4. Search\n5. Delete record\n6. Sort file\n\tEnter your choice : "; cin >> choice; switch(choice){ case 1 : write(); break; case 2 : read(); break; case 3 : rewrite(); break; case 4 : searh(); break; case 5 : delet(); break; case 6 : sort(); break; default : cout << "Error !!! " << endl; break; } } return 0; } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Можно ли класс разделить на модули? | chipside | Общие вопросы C/C++ | 15 | 18.11.2015 20:31 |
Разделить программу на 2 части | hojidor | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 28.05.2014 14:00 |
Написать программу.Модули | naty7773 | Помощь студентам | 0 | 13.06.2012 21:59 |
C++ разбить программу на модули | PinkPink | Помощь студентам | 1 | 11.01.2012 14:01 |
Модули, исправить программу | ilyas22 | Помощь студентам | 7 | 10.06.2010 12:25 |