📄 学生通讯管理系统.cpp
字号:
/************************学生通讯管理系统***********************/
#include<iostream.h>
#include<stdlib.h>
#include<string.h>
#include<fstream.h>
//Book类,对应于通讯簿中学生信息的各种字段
class Book
{
public:
char name[8];
char sex[2];
int num;
char add[20];
Book *next;
};
//BookOperator类,用于操作通讯簿中的记录,每条记录用链表的形式连接起来
class BookOperator
{
public:
void InitBook(Book *&Head);//初始化通讯簿链表
void ClearBook(Book *&Head);//清空通讯簿中的记录
int BookSize(Book *Head);//求通讯簿中的记录数
bool BookEmpty(Book *Head);//检查通讯簿是否为空
void TraverseBook(Book *Head);//显示所有记录
void InsertBook(Book *&Head);//插入一条记录
void FindBook(Book * Head);//查询一条记录
void UpdateBook(Book *Head);//修改一条记录
void DeleteBook(Book *&Head);//删除一条记录
};
void BookOperator::InitBook(Book *&Head)
{
Head=NULL;
}
void BookOperator::ClearBook(Book *&Head)
{
Book *cp,*np;
cp=Head;
while(cp!=NULL)
{
np=cp->next;
delete cp;
cp=np;
}
Head=NULL;
cout<<"已清空通讯簿中所有记录..."<<endl;
}
int BookOperator::BookSize(Book *Head)
{
Book *p=Head;
int i=0;
while(p!=NULL)
{
i++;
p=p->next;
}
return i;
}
bool BookOperator::BookEmpty(Book *Head)
{
return (Head==NULL);
}
void BookOperator::TraverseBook(Book *Head)
{
cout<<"姓名\t性别\t电话\t住址\n";
Book *p=Head;
while(p!=NULL)
{
cout<<p->name<<"\t"<<p->sex<<"\t"<<p->num<<"\t"<<p->add<<endl;
p=p->next;
}
cout<<endl;
}
void BookOperator::InsertBook(Book *&Head)
{
Book *new1;
new1=new Book;
cout<<"请输入姓名:";
cin>>new1->name;
cout<<endl;
cout<<"请输入性别:";
cin>>new1->sex;
cout<<endl;
cout<<"请输入联系电话:";
cin>>new1->num;
cout<<endl;
cout<<"请输入联系地址:";
cin>>new1->add;
{
new1->next=Head;
Head=new1;
}
cout<<"\n成功添加一条记录..."<<endl<<endl;
}
void BookOperator::FindBook(Book * Head)
{
char x[8];
Book *p=Head;
cout<<"请输入你想要查找的人的姓名:";
cin>>x;
while(p!=NULL)
{
while(strcmp(p->name,x)!=0)
{
p=p->next;
}
break;
}
cout<<"======================================="<<endl;
cout<<endl;
cout<<" 姓名:"<<p->name<<"\t性别:"<<p->sex<<endl;
cout<<" 电话:"<<p->num<<"\t地址:"<<p->add<<endl;
cout<<endl;
cout<<"========================================"<<endl;
}
void BookOperator::UpdateBook(Book *Head)
{
char x[8];
Book *p=Head;
cout<<"请输入你想要修改的人的姓名:";
cin>>x;
while(p!=NULL)
{
while(strcmp(p->name,x)!=0)
{
p=p->next;
}
cout<<"请输入新的资料"<<endl;
cout<<"请输入姓名:";
cin>>p->name;
cout<<"请输入性别:";
cin>>p->sex;
cout<<"请输入联系电话:";
cin>>p->num;
cout<<"请输入联系地址:";
cin>>p->add;
cout<<"\n修改成功..."<<endl<<endl;
break;
}
}
void BookOperator::DeleteBook(Book *&Head)
{
if(Head==NULL)
cout<<"当前通讯簿为空,无法进行删除操作..."<<endl;
else
{
char x[8];
cout<<"请输入要删除的人的姓名:";
cin>>x;
Book *p=Head,*q=NULL;
while(p!=NULL)
if(strcmp(p->name,x)==0)
break;
else
{
q=p;
p=p->next;
}
if(p==NULL)
cout<<"对不起,找不到你要删除的人..."<<endl;
else
{
if(q==NULL)
Head=Head->next;
else
q->next=p->next;
delete p;
cout<<"此人已删除"<<endl;
}
}
}
//主函数
void main()
{
cout<<"+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"<<endl;
cout<<" *学生通讯管理系统* "<<endl;
cout<<"+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+"<<endl;
cout<<endl;
cout<<"(1):增加一条学生记录;"<<endl;
cout<<"(2):删除一条学生记录;"<<endl;
cout<<"(3):修改一条学生记录;"<<endl;
cout<<"(4):查询对应学生记录;"<<endl;
cout<<"(5):显示所有学生记录;"<<endl;
cout<<"(6):清空通讯录中记录;"<<endl;
cout<<"(0):安全退出管理系统;"<<endl;
cout<<endl;
cout<<"-----------------------------------------------"<<endl;
cout<<"请选择序号,进行对应的操作:"<<endl;
cout<<"-----------------------------------------------"<<endl;
cout<<"请选择:";
int a;
cin>>a;
Book *z;
BookOperator bo;
bo.InitBook(z);
while(a!=0)
{
switch(a)
{
case 1: bo.InsertBook(z);
cout<<"请选择:";
break;
case 2: bo.DeleteBook(z);
cout<<"请选择:";
break;
case 3: bo.UpdateBook(z);
cout<<"请选择:";
break;
case 4: bo.FindBook(z);
cout<<"请选择:";
break;
case 5: bo.TraverseBook(z);
int i;
i=bo.BookSize(z);
cout<<"通讯录中的人数:"<<i<<endl;
cout<<"请选择:";
break;
case 6: bo.ClearBook(z);
cout<<"请选择:";
break;
case 0: exit(0);
default:cout<<"输入错误请重新选择:";
}
cin>>a;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -