学生通讯录管理系统(修改2.1.2.2)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include
#include
#include
#include
using namespace std;

class student
{
protected:
int number;
char name[15];
char sex[6];
char zhuangye[20];
char banji[10];
char chusheng[20];
char shouji[20];
char qq[20];
char zhuzhe[50];
public:
student *next;
student(){ }
~student(){ }
char* getname(){ return name; }
int getnumber(){ return number;}
void input()
{
int e=1;
cout<<"\t\t\t按提示输入:"<cout<<"\t\t输入学号: ";
cin>>number;
cout<<"\t\t输入姓名: ";
cin>>name;
do
{

lable:cout<<"\t\t输入性别: ";
cin>>sex;
if(strcmp(sex,"男")==0 || strcmp(sex,"女")==0)
{
cout<<"\t\t输入专业: ";
cin>>zhuangye;
cout<<"\t\t输入班级: ";
cin>>banji;
cout<<"\t\t输入出生: ";
cin>>chusheng;
cout<<"\t\t输入手机: ";
cin>>shouji;
cout<<"\t\t输入QQ: ";
cin>>qq;
cout<<"\t\t输入住址: ";
cin>>zhuzhe;
e=0;
}
else
{
cout<<"\t\t\t无此类型性别!重新输入!"<e=1;
goto lable;
}
}while(e);
return ;
}
void input(ifstream & is)
{
is>>number>>name>>sex>>zhuangye>>banji>>chusheng>>shouji>>qq
>>zhuzhe;
is.get();
}
void output()
{
cout<<"学生基本信息如下:"<cout<<"学号:"<<<" 姓名:"<<<" 性别:"<<<" 专业:"<<<" 班级:"<<<" 出生:"<<<" 手机:"<<<" QQ:"<<<" 住址:"<}
void output(ofstream & os)
{
os<<<<<<<<<}
};

class school
{
public:
school(){ head=new student; head->next=NULL; key=0; }
~school(){ delete head; }
void input();
void mend();
void del();
int find(student **p,int num,char *pn="^");
void found();
void show();
void count();
void save();
void begin();
void clear();
char mainmenu();
int getkey(){ return key;}
void setkey(int k){ key=k; }
private:


student *head;
int key;
};
//添加新学生信息
void school::input()
{
student *p,*p2=NULL;
p=head;
int n;
while(p->next)
p=p->next;
while(n)
{
p2=new student;
p2->input();
p->next=p2;
p2->next=NULL;
p=p->next;
school::setkey(1);
cout<<"\t\t\t按1继续,按0返回 : ";
cin>>n;
}
}

//子查找函数
int school::find(student **p1,int num,char *pn)
{
student *p;
p=head;
while(p->next)
{
(*p1)=p;
if( (p->next)->getnumber()==num||!strcmp( (p->next)->getname(),pn ) )
return 1;
p=p->next;
}
return 0;
}
//查询学生信息
void school::found()
{
student *p;
int num=-1,n=9;
char name[20]="^";
do
{
cout<<"\t\t1:按学号查找,2:按姓名查找: ";
cin>>n;
}while(n<1||n>2);
if(n==1)
{
cout<<"\t\t\t输入学号: ";
cin>>num;
}
if(n==2)
{
cout<<"\t\t\t输入姓名: ";
cin>>name;
}
if(!find(&p,num,name) )
{
cout<<"\t\t找不到你要查找的内容!"<return;
}
(p->next)->output();
}
//修改学生信息
void school::mend()
{
student *p;
int num=-1,n;
char name[20]="^";
do
{
cout<<"\t\t1:按学号修改,2:按姓名修改: ";
cin>>n;
}while(n<1||n>2);
if(n==1)
{
cout<<"\t\t\t输入学号: ";
cin>>num;
}
if(n==2)
{
cout<<"\t\t\t输入姓名: ";
cin>>name;
}
if( !find(&p,num,name) )
{
cout<<"\t\t找不到你要修改的内容!"<return;
}
(p->next)->output();
(p->next)->input();
cout<<" "<cout<<"\t\t修 改 的 内 容 成 功 了!"<cout<<"\t\t------------------------"<school::setkey(1);
}
//删除学生信息
void school::del()
{
student *p,*p2;
int num=-1,n;
char name[20]="^";
do
{
cout<<"\t\t1:按学号删除,2:按姓名删除: ";
cin>>n;
}while(n<1||n>2);
if(n==1)
{
cout<<"\t\t\t输入学号: ";
cin>>num;
}
if(n==2)
{
cout<<"\t\t\t输入姓名: ";
cin>>name;
}
if( !find(&p,num,name) )
{
cout<<"\t\t找不到你要删除的内容!"<return;
}
(p->next)->output();
p2=p->next;
p->next=p2->next;
delete p2;
school::setkey(1);
cout<<" "<cout<<"\t\t删 除 的 内 容 成 功 了!"<cout<<"\t\t------------------------"<}

//显示通讯录中的所有信息
void school::show()
{
student *p;
p=head;
char ok=1,n;
do
{
cout<<"\t\t1:确定查找通讯录所有信息: ";
cin>>n;
}while(n<1);
if(n==1)
{
cout<<"\t\t\t输入数字

: ";
cin>>ok;
}
while(p->next)
{
(p->next)->output();
p=p->next;
}
}
//保存函数
void school::save()
{
student *p;
p=head;
ofstream os("student.txt",ios::out);
if (school::getkey()==1)
{
while(p->next)
{
(p->next)->output(os);
p=p->next;
}
}
cout<<"\t\t\t文件已保存! "<school::setkey(0);
}
//初始化函数
void school::begin()
{
student *p,*p2;
p=head;
clear();
long t;
ifstream is("student.txt",ios::in);
if(!is)
{
ofstream os("student.txt",ios::out);
os.close();
return ;
}
int num=-1;
while(1)
{
num=-1;
t=is.tellg();
is>>num;
is.seekg(t);
if(num<0)
{
is.close();
return;
}
p2=new student;
p2->input(is);
p->next=p2;
p2->next=NULL;
p=p->next;
}
}
//清空函数
void school::clear()
{
student *p,*p2;
p=head->next;
while( p )
{
p2=p;
p=p->next;
delete p2;
}
}

//主选菜单函数
char school::mainmenu()
{
char n[6];
cout<<"\n\n 编程人:李君波 班级:09计2班 "<cout<<"※※※※※※※※※※※※※※※※※※※"<cout<<"\n\n 进入学生通讯录管理系统 "<cout<<" ____________________________________ "<<<" ●1: 添加新学生信息 "<<<" ●2: 查询学生信息 "<<<" ●3: 修改学生信息 "<<<" ●4: 删除学生信息 "<<<" ●5: 显示通讯录中的的有信息学生 "<<<" ●0: 退出系统 "<<<" ____________________________________ "<<<" 请选择数字:";
cin>>n;
return n[0];
}
//主函数
void main()
{
school pp;
int k=1;
char n;
pp.begin();
while(k==1)
{
n=pp.mainmenu();
switch(n)
{
case '1':pp.input(); break;
case '2':pp.found(); break;
case '3':pp.mend(); break;
case '4':pp.del(); break;
case '5':pp.show(); break;
case '0':
if(pp.getkey()==1)
{
cout<<"\t\t\t是否保存? 1 : 保存 0:不保存 : ";
cin>>k;
if(k==1)
pp.save();
}
pp.clear();
k=0;
break;
}
}
}
//退出系统


相关文档
最新文档