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