Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Класс "студенческая группа" C++ (http://www.tehnari.ru/f41/t80357/)

Christian 11.11.2012 21:19

Класс "студенческая группа" C++
 
Описать класс "студенческая группа". Предусмотреть возможность работы с переменным числом студентов, поиска студента по какому-либо признаку(например, по фамилии, дате рождения или номеру телефона), добавления и удаления записей, сортировки по разным полям.
Написать программу, демострирующую работу с этим классом. Программа должна содержать меню, позволяющее осуществить проверку всех методов класса.

вот код,но Case работает неправильно ( подскажите в чем проблема)

Christian 11.11.2012 21:20

#include <iostream.h>
#include <conio.h>
#include <process.h>
#include <fstream.h>
#include <iomanip.h>

class Student {
char *name,*surname,*tel,*day,*month,*yer,razm,i;

public:
void vvod(char,char,char,char,char,char);
void prosmotr();
void search_surname(char);
void search_tel(char);
void search_date(char,char,char);
void delet(char,char);

};


void Student::vvod(char nn,char ss,char tt,char dd,char mm,char yy)
{
razm++;
*(name+razm)=nn;
*(surname+razm)=ss;
*(tel+razm)=tt;
*(day+razm)=dd;
*(month+razm)=mm;
*(yer+razm)=yy;
}

void Student::prosmotr()
{
if (razm!=0)
{
for (i=0;i<=razm;i++)
{
cout<<*(name+i)<<setw(3)<<*(surname+i)<<setw(3)<<* (tel+i)<<setw(3)<<*(day+i)<<":"<<*(month+i)<<":"<< *(yer+i)<<"\n";
}
}
else cout<<"-----Baza pusta-----";
}


void Student::search_surname(char r)
{
if (razm!=0)
{
for(i=0;i<=razm;i++)
{
if (*(surname+i)==r)
{
cout<<*(name+i)<<setw(3)<<*(surname+i)<<setw(3)<<* (tel+i)<<setw(3)<<*(day+i)<<":"<<*(month+i)<<":"<< *(yer+i)<<"\n";
}
else cout<<"Takoj zapisi v baze net";
}
}
else cout<<"-----Baza pusta-----";
}

void Student::delet(char n,char r)
{
if (razm!=0)
{
for(i=0;i<=razm;i++)
{
if (*(name+i)==n && *(surname+i)==r )
{
while (i!=razm)
{
*(name+i)=*(name+i+1);
*(surname+i)=*(surname+i+1);
*(tel+i)=*(tel+i+1);
*(day+i)=*(day+i+1);
*(month+i)=*(month+i+1);
*(yer+i)=*(yer+i+1);
}
}
else cout<<"Takoj zapisi v baze net";
}
}
else cout<<"-----Baza pusta-----";
}




void Student::search_tel(char k)
{
if (razm!=0)
{
for(i=0;i<=razm;i++)
{
if (*(tel+i)==k)
{
cout<<*(name+i)<<setw(3)<<*(surname+i)<<setw(3)<<* (tel+i)<<setw(3)<<*(day+i)<<":"<<*(month+i)<<":"<< *(yer+i)<<"\n";
}
else cout<<"Takoj zapisi v baze net";
}
}
else cout<<"-----Baza pusta-----";
}


void Student::search_date(char d,char m,char y)
{
if (razm!=0)
{
for(i=0;i<=razm;i++)
{
if (*(day+i)==d && *(month+i)==m && *(yer+i)==y)
{
cout<<*(name+i)<<setw(3)<<*(surname+i)<<setw(3)<<* (tel+i)<<setw(3)<<*(day+i)<<":"<<*(month+i)<<":"<< *(yer+i)<<"\n";
}
else cout<<"Takoj zapisi v baze net";
}
}
else cout<<"-----Baza pusta-----";
}


int main(){
Student s;
int ch,p;
char name,surname,tel,day,month,yer,day1,month1,yer1,nu m,r;
while(ch!=0)
{
cout<<"1.Dobavit \n2.Pokazat \n3.Poisk \n4.ydalenie \n5.Exit \n";
cin>>ch;
switch(ch)
{
case 1: cout<<"Vvedite im9 studenta: ";
cin>>name;
cout<<"Vvedite familiju Studenta: ";
cin>>surname;
cout<<"Vvedite nomer tefona studenta: ";
cin>>tel;
cout<<"Vvedite daty rogdenija:\n Den:\n Mes9c:\n God:\n";
cin>>day>>month>>yer;
s.vvod(name,surname,tel,day,month,yer);
break;
case 2: s.prosmotr();
break;
case 3: while (p!=0)
{
cout<<"Vuberite priznak po kotoromy bydet osyshestvl9ca poisk:1.Familija\n2.Nomer telefona\n3.Data rojdeni9\n4.Exit";
cin>>p;
switch(p)
{
case 1: cout<<"Vvedite familiju Studenta: ";
cin>>num;
s.search_surname(num);
break;
case 2: cout<<"Vvedite nomer tefona studenta: ";
cin>>num;
s.search_tel(num);
break;
case 3: cout<<"Vvedite daty rogdenija: ";
cin>>day1>>month1>>yer1;
s.search_date(day1,month1,yer1);
break;
case 4: exit(1);
default:cout<<"Stop error!!!\n";
}
}
case 4: cout<<"Vvedite im9 i familiju studenta: ";
cin>>name>>surname;
s.delet(name,surname);
case 5:exit(1);
default:cout<<"Stop <<error>>!!!"<<endl;
}
}
getch();
return 0;
}


Часовой пояс GMT +4, время: 18:09.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.