06.06.2011, 03:08 | #1 (permalink) |
Новичок
Регистрация: 06.06.2011
Сообщений: 2
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Программа для курсача
Вообщем задание выглядит так: Сбербанк. Сведенье о вкладчиках банка: Номер лицевого счета Категория вклада Паспортные данные Текущая сумма вклада Дата Последней операции Операция приема и выдачи любой суммы Автоматическое начисление процентов последнии три я не знай как сделать и убрал их, вообщем вроде как сказали можно убрать)) Делаю курсач на вижул студио 2008-2010, с++ понимаю его довольно слабо.. В программе точно не работает сортировка, остальное кажется криво. Если кто-то может, потратить чуток времени и подсказать что да ка) что изменить или подправить..и как с сортировкой быть. Буду весьма благодарен. вОт вообщем сама программы: #include <iostream> #include <fstream> #include <conio.h> #include <string.h> #include <windows.h> using namespace std; struct date { int day; int month; int year; }; struct sberbank { char Nomer_litsivogo_scheta [30]; char Kategoria_vklada [30]; char Pasportnie_dannie [30]; double Tekyschaia_summa_vklada; date d; }; struct Node { sberbank*inf; Node*next; }; Node * Head = NULL; void Inputsberbank(sberbank& s) { cout<<"Введите номер лицевого счета"<<endl; cin>>s.Nomer_litsivogo_scheta; cin>>s.d.day; cin>>s.d.month; cin>>s.d.year; } void DelList() { } void Print() { if (Head==NULL) cout<<"СПИСОК ПУСТОЙ!!!"<<endl; else for (Node *p=Head;p;p=p->next) cout<<p->inf->Nomer_litsivogo_scheta<<'\t'<<p->inf->d.day<<'.'<<p->inf->d.month<<'.'<<p->inf->d.year<<'\t'<<p->inf->Nomer_litsivogo_scheta<<'\t'<<p->inf->Pasportnie_dannie<<endl; } void InsToBeg() { sberbank* s=new sberbank; Node *p=new Node; p->inf=s; if (Head) { p->next=Head; Head=p; } else { p->next=NULL; Head=p; } } void InsAfter() { sberbank* s=new sberbank; Node *p=new Node; p->inf=s; cout<<"Введите номер лицевого счета, после которого надо сделать вставку :"<<endl; char Nomer_litsivogo_scheta [30]; cin>>Nomer_litsivogo_scheta; Node *q; for (q=Head;strcmp(q->inf->Nomer_litsivogo_scheta,Nomer_litsivogo_scheta)& &q->next;q=q->next); if (strcmp(q->inf->Nomer_litsivogo_scheta,Nomer_litsivogo_scheta)==0 ) { p->next=q->next; q->next=p; } } void InsToEnd() { sberbank* s=new sberbank; Node *p=new Node; p->inf=s; p->next=NULL; if (Head) { Node *q; for (q=Head;q->next;q=q->next); q->next=p; } else Head=p; } void ReadFile() { DelList(); ifstream fin("file.txt"); if(!fin.is_open()) { cout<<"ошибка при открытии файла!"<<endl; getchar(); //system ("pause"); return; } int n; fin>>n; for(int i=0;i<n;i++) { sberbank s; fin>>s.Nomer_litsivogo_scheta; fin>>s.Pasportnie_dannie; fin>>s.Kategoria_vklada; fin>>s.Tekyschaia_summa_vklada; fin>>s.d.day; fin>>s.d.month; fin>>s.d.year; InsToEnd(); } fin.close(); } void SortList() { if(Head==NULL || Head->next==NULL) return; Node *p1,*p2; for(p1=Head,p2=Head->next;p2;p1=p2,p2=p2->next) { if (strcmp((const char *)p1->inf->Nomer_litsivogo_scheta,(const char *)p2->inf->Nomer_litsivogo_scheta)==1) { sberbank *x; x=(sberbank *)p1->inf; p1->inf=p2->inf; p2->inf=x; } } } void WriteFile() { ofstream fout("file.txt"); if(!fout.is_open()) { cout<<"неудалось открыть выходной файл"<<endl; getchar(); //system("pause"); return; } int n=0; for (Node *p=Head;p;p=p->next) n++; fout<<n<<endl; for (Node *p=Head;p;p=p->next) { fout<<p->inf->Nomer_litsivogo_scheta<<endl; fout<<p->inf->Pasportnie_dannie<<endl; fout<<p->inf->Kategoria_vklada; fout<<p->inf->Tekyschaia_summa_vklada; fout<<p->inf->d.day<<endl; fout<<p->inf->d.month<<endl; fout<<p->inf->d.year<<endl; } fout.close(); } void ChangData(sberbank& s,char *Nomer_litsivogo_schet) { } void DelBeg() { if (Head==NULL) return; Node *p=Head; Head=Head->next; delete p; } void DelEnd() { if (Head==NULL) return; if (Head->next==NULL) { delete Head; Head=NULL; return; } Node *p; for (p=Head;p->next->next;p=p->next); delete p->next; p->next=NULL; } void DelData() { if (Head==NULL) return; char Nomer_litsivogo_scheta[50]; cout<<"Введите удаляемый лицевой счет..."<<endl; cin>>Nomer_litsivogo_scheta; if (Head->next==NULL && strcmp(Head->inf->Nomer_litsivogo_scheta,Nomer_litsivogo_scheta)==0 ) { delete Head; Head=NULL; return; } if (strcmp(Head->inf->Nomer_litsivogo_scheta,Nomer_litsivogo_scheta)==0 ) { Node *p=Head; Head=Head->next; delete p; return; } Node *q,*p; for (q=Head,p=q->next;strcmp(Head->inf->Nomer_litsivogo_scheta,Nomer_litsivogo_scheta) && p->next;q=p,p=p->next); if (strcmp(p->inf->Nomer_litsivogo_scheta,Nomer_litsivogo_scheta)==0 ) { q->next=p->next; delete p; } } int main() { setlocale (LC_ALL,"Russian"); char ch; sberbank s; char Kategoria_vklada [30]; for( ; { //system("cls"); cout<<"\t главное меню"<<endl; cout<<"\t 1.печать списка"<<endl; cout<<"\t 2.очистка списка"<<endl; cout<<"\t 3.вставить в начало"<<endl; cout<<"\t 4.вставить в конец"<<endl; cout<<"\t 5.вставить после"<<endl; cout<<"\t 6.заменить"<<endl; cout<<"\t 7.удалить первый"<<endl; cout<<"\t 8.удалить последний"<<endl; cout<<"\t 9.удалить заданное"<<endl; cout<<"\t a.загрузить из файла"<<endl; cout<<"\t b.сортировка списка"<<endl; cout<<"\t c.записать в файле"<<endl; cout<<"\t 0.выход"<<endl; cout<<"\t выберите режим"<<endl; ch=_getch (); switch (ch) { case '1': Print(); getchar(); //system("pause"); break; case '2': DelList(); getchar(); //system("pause"); break; case '3': InsToBeg(); getchar(); //system("pause"); break; case '4': InsToEnd(); getchar(); //system("pause"); break; case '5': InsAfter(); getchar(); //system("pause"); break; case '6': getchar(); //system("pause"); break; case '7': DelBeg(); getchar(); //system("pause"); break; case '8': DelEnd(); getchar(); //system("pause"); break; case '9': DelData(); getchar(); //system("pause"); break; case '0': getchar(); //system("pause"); return 0; break; case 'a': ReadFile (); getchar(); //system ("pause"); break; case 'b': SortList (); getchar(); //system ("pause"); break; case 'c': WriteFile (); getchar(); //system ("pause"); break; } } return 0; } |
06.06.2011, 03:08 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
В этих обсуждениях скорее всего есть нужная вам информация Программа для ХР Программа Программа Что за программа? |
07.06.2011, 01:51 | #4 (permalink) |
Banned
Регистрация: 01.09.2009
Сообщений: 4,396
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 2544
|
Обращайтесь в ICQ или ЛС
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|