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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.06.2017, 23:17   #1
DinaM.
Новичок
Джуниор
 
Регистрация: 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;
}
DinaM. вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли класс разделить на модули? 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