目录1系统设计目标及意义、功能介绍 (3)2系统的详细设计思路 (3)3系统运行效果图 (11)4系统设计、开发过程中的问题 (13)5课程设计心得体会 (13)6附录源代码及简要说明 (13)一、系统设计目标及意义、功能介绍(一)系统设计的目标及意义通讯录管理系统的建立是为了有效节省同学,朋友,客户间日常交流的投资(指时间,精力),其设计理念很简单,变传统的纸张与笔录方式为计算机自动化进行通讯录信息管理系统,既省时间又提高效率。
本通讯录管理系统是一个非常通用的管理系统,运用Visual C++,构建MFC平台,用户可以通过图像窗口菜单进行信息录入、删除、查找,直观方便。
(二)系统设计的功能介绍1、录入成员信息。
基本信息:姓名、性别、出生年月日、民族等。
2、删除一个成员信息。
3、修改成员信息并保存。
4、能够按姓名对成员信息进行检索并将检索结果显示在屏幕上。
5、能够按专业对成员信息进行检索并将检索结果显示在屏幕上。
6、显示所有成员信息。
7、能够利用图形菜单的形式进行管理。
二、系统的详细设计思路(一)系统的总体框架(二)通讯录对象的主要属性(三)功能分析1、联系人管理者(1)增加联系人:联系人信息包括姓名、就读学校、班级、专业、家庭地址、家庭联系电话、邮编、本人联系电话这些信息。
添加时,内容不能为空。
(2)修改联系人资料:对已存的联系人信息进行变更、修改。
正常情况下,联系人的姓名是不会发生变化的,但考虑到更名的情况还是偶有发生,因此设计为联系人所有资料都允许更改,这样可以灵活应对这些不太常见的情况。
(3)删除联系人:对选定联系人执行删除操作,为了防止误删除,给使用者一个反悔的机会,在执行删除前要询问使用者是否真的要删除,在得到确认后执行删除操作。
2、联系人信息查询与显示通讯录使用频率最高的功能就是查询联系人的信息。
查询可以查询某个学院、某个专业、某个班级下所有的联系人。
并且提供了按姓名和按学号查询的功能,并且同名的人都可以显示。
联系人显示窗口示姓名、就读学校、班级、专业、家庭地址、家庭联系电话、邮编、本人联系电话这些信息。
4,函数设计(1)增加联系人的函数void lianxiren::add(){cout<<"请输入姓名:";cin>>name;cout<<"请输入性别[请用'm'表示男,用'f'表示女]:";char s;cin>>s;while((s!='f')&&(s!='m')){cout<<"输入错误,请重新输入!:";cin>>s;}if(s=='f')strcpy(sex,"女");else strcpy(sex,"男");cout<<"请输入民族:";cin>>nation;cout<<"请输入出生日期:年:";cin>>;cout<<"月(0~12):";cin>>;while(<1)||>12)){cout<<"输入错误,请重新输入!月:";cin>>;}cout<<"日(0~31):";cin>>;while(<1)||>31)){cout<<"输入错误,请重新输入!日:";cin>>;}cout<<"请输入联系方式:手机:";cin>>telephone;cout<<"请输入编号(0~9999):";cin>>num;cout<<"输入邮编:";cin>>youbian;cout<<"输入身高:";cin>>shengao;cout<<"输入体重:";cin>>tizhong;cout<<"输入QQ号:";cin>>qqhao;ofstream fout("lianxiren",ios::app);if (!fout){cout <<endl <<"对不起,打开文件失败。
" <<endl <<endl;}else{ fout<<setiosflags(ios::left)<<setw(5)<<num<<setw(8)<<name<<setw(5)<<sex <<setw(6)<<nation;fout<<setw(4)<<<<"."<<setw(2)<<<<"."<<setw(2)<<<<" ";fout<<setw(13)<<telephone ;fout<<setw(10)<<youbian<<setw(5)<<shengao<<setw(5)<<tizhong<<setw(13)<<qqhao<<endl;();}}(2)显示所有联系人的函数void lianxiren::display(){ifstream fin("lianxiren",ios::in);if (!fin){cout <<endl <<"对不起,没有找到文件。
" <<endl;system("pause");}bool flag = true;string record;char a[100];(a,100);while (getline(fin, record)){if (flag){cout<<setiosflags(ios::left)<<setw(5)<<"编号"<<setw(8)<<"姓名"<<setw(5)<<"性别";cout <<setw(6)<<"民族"<<setw(12)<<"出生年月";cout<<setw(13)<<"手机"<<setw(10)<<"邮编"<<setw(5)<<"身高";cout<<setw(5)<<"体重"<<setw(13)<<"QQ号"<<endl;}cout<<record<<endl;flag=false;}if (flag){cout <<endl <<"你的记事本中没有信息" <<endl <<endl;}else{cout <<endl <<"所有联系人信息已经全部显示出来" <<endl <<endl;}}(3)删除联系人的函数void lianxiren::delet(){ofstream out1("1",ios::out);ifstream in1("lianxiren", ios::in);if (!out1 || !in1){cout <<endl <<"对不起,找不到文件。
" <<endl;}string a;cout<<endl<<"你要删除人的姓名或编号 :";cin>>a;bool flag=true;string str,s;in1>>s;int i=0;while (in1>>num>>name){getline(in1,str);if ((a==name)||(a==num)){i++;if(i=1){cout<<endl<<"你想删除的联系人:"<<endl<<endl;cout<<setiosflags(ios::left)<<setw(5)<<"编号"<<setw(8)<<"姓名"<<setw(5)<<"性别";cout <<setw(6)<<"民族"<<setw(12)<<"出生年月";cout<<setw(13)<<"手机"<<setw(10)<<"邮编"<<setw(5)<<"身高";cout<<setw(5)<<"体重"<<setw(13)<<"QQ号"<<endl;cout <<setiosflags(ios::left)<<setw(5)<<num<<name<<str<<endl;}else{cout <<setiosflags(ios::left)<<setw(5)<<num<<name<<str<<endl;}flag = false;continue;}out1<<setiosflags(ios::left)<<setw(5)<<num<<setw(8)<<name<<str<<endl;}();();if (flag){cout <<endl <<"对不起,系统中没你找的联系人。