📄 通讯录信息管理系统.cpp
字号:
题目:学生通讯录管理系统
一:需求分析
通过此系统可以实现如下功能:
1、录入:
可以录入学生情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)
2、查询:
可以查询某个学生的情况(如,输入学生姓名,查询学生电话号码、家庭地址、邮箱地址、QQ号码);
3、更改:修改学生信息内容;
4、删除:删除相关学生信息;
5、打印:打印出学生的相关信息;
6、显示结果。
根据以上功能说明,设计具体的存储结构,要求程序要有一个可供用户选择的简单操作界面。操作前要有简单的提示,设计程序完成功能。
二:概要设计
为实现上述程序功能,应该将程序分成五个模块:
1、主程序模块:
void main()
{
输入学生的姓名、联系电话、家庭地址、e_mail地址、QQ号码;
查找学生的信息;
更改学生的信息;
删除学生的信息;
打印结果;
}
2、输入学生信息模块:输入学生的相关信息;
3、查找信息模块:查找相关学生的信息;
4、更改信息模块:更改指定学生的信息;
5、删除信息模块:删除指定的信息;
6、打印模块:在屏幕上输出结果。
调用函数:
Bookbase bo;
bo.bookbase();
三:源程序
#include"iostream.h"
#include"string.h"
#include"iomanip.h"
#include"fstream.h"
#define max 100
class Book
{
private:
char name[20];
char tel[15];
char address[100];
char e_mail[50];
char QQ[12];
int mark;
public:
Book(){}
char*getname()
{
return name;
}
int getmark()
{
return mark;
}
void delbook()
{
mark=1;
}
void setname(char *na)
{
strcpy(name,na);
}
void settel(char *t)
{
strcpy(tel,t);
}
void setaddress(char *a)
{
strcpy(address,a);
}
void setemail(char *e)
{
strcpy(e_mail,e);
}
void setQQ(char *q)
{
strcpy(QQ,q);
}
void addbook(char *na,char *t,char *a,char *e,char *q)
{
strcpy(name,na);
strcpy(tel,t);
strcpy(address,a);
strcpy(QQ,q);
strcpy(e_mail,e);
mark=0;
}
void disp()
{ cout<<"*********************"<<endl;
cout<<"姓名:"<<endl;
cout<<" "<<name<<endl;
cout<<"电话:"<<endl;
cout<<" "<<tel<<endl;
cout<<"地址:"<<endl;
cout<<" "<<address<<endl;
cout<<"e_mail:"<<endl;
cout<<" "<<e_mail<<endl;
cout<<"QQ:"<<endl;
cout<<" "<<QQ<<endl;
cout<<"*********************"<<endl;
}
};
class Bookbase
{
private:
int p;
Book book[max];
public:
Bookbase()
{
Book b;
p=-1;
ifstream file("e:\\book.txt");
while(1)
{
file.read((char*)&b,sizeof(b));
if(!file) break;
p++;
book[p]=b;
}
file.close();
}
void clear()
{
p=-1;
}
int addbook(char *na,char *t,char *a,char *e,char *q)
{
Book *p1=lookup(na);
if(p1==NULL)
{
p++;
book[p].addbook(na,t,a,e,q);
return 1;
}
return 0;
}
Book *lookup(char *na)
{
for(int i=0;i<=p;i++)
if((strcmp(book[i].getname(),na)==0)&&book[i].getmark()==0)
return &book[i];
return NULL;
}
void bookbase();
void disp()
{
for(int i=0;i<=p;i++)
if(book[i].getmark()==0)
book[i].disp();
}
~Bookbase()
{
ofstream file("e:\\book.txt");
for(int i=0;i<=p;i++)
if(book[i].getmark()==0)
file.write((char *)&book[i],sizeof(book[i]));
file.close();
}
};
void Bookbase::bookbase()
{
int choice=1;
char name[20];
char t[20];
char a[100];
char q[12];
char e[50];
Book *b;
while(choice!=0)
{
cout<<"电话记录 1新增 2更改 3删除 4 查找 5全显 6全删 0 退出==>?";
cin>>choice;
switch(choice)
{
case 1:
cout<<"请输入姓名:";
cin>>name;
cout<<endl;
cout<<"请输入电话号码:";
cin>>t;
cout<<endl;
cout<<"请输入家庭地址:";
cin>>a;
cout<<endl;
cout<<"请输入e_mail:";
cin>>e;
cout<<endl;
cout<<"请输入OICQ:"<<endl;
cin>>q;
addbook(name,t,a,e,q);
break;
case 2:
cout<<"请输入姓名:";
cin>>name;
b=lookup(name);
if(b==NULL)
{
cout<<"该人在电话本中有记录:";
break;
}
cout<<"输入新的电话号码:";
cin>>t;
cout<<endl;
cout<<"输入新的家庭地址:";
cin>>a;
cout<<endl;
cout<<"输入新的e_mail:";
cin>>e;
cout<<endl;
cout<<"输入新的OICQ:";
cin>>q;
b->settel(t);
b->setaddress(a);
b->setemail(e);
b->setQQ(q);
break;
case 3:
cout<<"请输入姓名:";
cin>>name;
b=lookup(name);
if(b==NULL)
{
cout<<"该人在电话本中没有记录:";
break;
}
b->delbook();
break;
case 4:
cout<<"请输入姓名:";
cin>>name;
b=lookup(name);
if(b==NULL)
{
cout<<"该人在电话本中没有记录:";
break;
}
b->disp();
break;
case 5:
disp();
break;
case 6:
clear();
break;
}
}
}
void main()
{ cout<<"******************************欢迎进入通讯管理系统******************************"<<endl;
cout<<"**************************************"<<endl;
cout<<"请输入你要的服务项:"<<endl;
cout<<"**************************"<<endl;
Bookbase bo;
bo.bookbase();
}
四:用户手册
1、本程序运行环境为DOS 操作系统和C++系统,执行文件为test.exe
2、进入本程序后,如下图所示
***************欢迎进入通讯管理系统******************
1、新增
2、更改
3、删除
4、查找
5、全显
6、全删
0、退出
**************************************
请输入你要服务项:
**************************************
3、此次程序是直接在屏幕上打印出程序的运行结果,用户将在屏幕上看到程序功能显示的结果。
五:调试、显示
***************欢迎进入小功能学籍管理系统*****************
1、新增
2、更改
3、删除
4、查找
5、全显
6、全删
0、退出
**************************************
请输入你要服务项:
**************************************
1
请输入姓名:
崔玉明
请输入电话号码:
8310226
请输入家庭地址:
江西理工大学应用科学学院学生宿舍
请输入e_maiL:cuiyuming508@yahoo.com
请输入OICQ:20379835
2
请输入姓名:
崔玉明
该人在电话本中有记录
输入新的电话号码:
13766304705
输入新的家庭地址:
江西赣州
输入新的e_mail:
myself@sina.com
输入新的OICQ:
13576734927
3
请输入姓名:
小崔
该人在电话本中没有记录:
4
请输入姓名:
崔
该人在电话本中没有记录
5
崔玉明
13766304705
江西赣州
myself@sina.com
13576734927
张瑞堂
13767717624
江西理工大学应用科学学院学生宿舍
35666565
孙伟
13263018236
江西理工大学应用科学学院学生宿舍
61733456
6
六:附录
class Book //创建一个类
void disp() //存储学生通讯录的内容
Book *lookup(char *na) //控制存储容量的循环函数
class Bookbase //定义一个类
void Bookbase::bookbase() //定义在结构体Bookbase里的函数Bookbase()
void main() //主函数
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -