C程序设计通讯录管理系统.docx

上传人:b****8 文档编号:13016518 上传时间:2023-06-10 格式:DOCX 页数:30 大小:24.41KB
下载 相关 举报
C程序设计通讯录管理系统.docx_第1页
第1页 / 共30页
C程序设计通讯录管理系统.docx_第2页
第2页 / 共30页
C程序设计通讯录管理系统.docx_第3页
第3页 / 共30页
C程序设计通讯录管理系统.docx_第4页
第4页 / 共30页
C程序设计通讯录管理系统.docx_第5页
第5页 / 共30页
C程序设计通讯录管理系统.docx_第6页
第6页 / 共30页
C程序设计通讯录管理系统.docx_第7页
第7页 / 共30页
C程序设计通讯录管理系统.docx_第8页
第8页 / 共30页
C程序设计通讯录管理系统.docx_第9页
第9页 / 共30页
C程序设计通讯录管理系统.docx_第10页
第10页 / 共30页
C程序设计通讯录管理系统.docx_第11页
第11页 / 共30页
C程序设计通讯录管理系统.docx_第12页
第12页 / 共30页
C程序设计通讯录管理系统.docx_第13页
第13页 / 共30页
C程序设计通讯录管理系统.docx_第14页
第14页 / 共30页
C程序设计通讯录管理系统.docx_第15页
第15页 / 共30页
C程序设计通讯录管理系统.docx_第16页
第16页 / 共30页
C程序设计通讯录管理系统.docx_第17页
第17页 / 共30页
C程序设计通讯录管理系统.docx_第18页
第18页 / 共30页
C程序设计通讯录管理系统.docx_第19页
第19页 / 共30页
C程序设计通讯录管理系统.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C程序设计通讯录管理系统.docx

《C程序设计通讯录管理系统.docx》由会员分享,可在线阅读,更多相关《C程序设计通讯录管理系统.docx(30页珍藏版)》请在冰点文库上搜索。

C程序设计通讯录管理系统.docx

C程序设计通讯录管理系统

1系统设计目标及意义、功能介绍·································3

2系统的详细设计思路·································3

3系统运行效果图·································11

4系统设计、开发过程中的问题·································13

5课程设计心得体会·································13

6附录源代码及简要说明·································13

一、系统设计目标及意义、功能介绍

(1)系统设计的目标及意义

通讯录管理系统的建立是为了有效节省同学,朋友,客户间日常交流的投资(指时间,精力),其设计理念很简单,变传统的纸张与笔录方式为计算机自动化进行通讯录信息管理系统,既省时间又提高效率。

本通讯录管理系统是一个非常通用的管理系统,运用VisualC++,构建MFC平台,用户可以通过图像窗口菜单进行信息录入、删除、查找,直观方便。

(2)系统设计的功能介绍

1、录入成员信息。

基本信息:

姓名、性别、出生年月日、民族等。

2、删除一个成员信息。

3、修改成员信息并保存。

4、能够按姓名对成员信息进行检索并将检索结果显示在屏幕上。

5、能够按专业对成员信息进行检索并将检索结果显示在屏幕上。

6、显示所有成员信息。

7、能够利用图形菜单的形式进行管理。

二、系统的详细设计思路

(一)系统的总体框架

(二)通讯录对象的主要属性

(三)功能分析

1、联系人管理者

(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

-num[5]:

char

-youbian:

int

-shengao:

int

-tizhong:

int

-qqhao:

int

+add():

void

+delet():

void

+display():

void

+select():

void;

+alter():

void

+face():

int

4,函数设计

(1)增加联系人的函数

voidlianxiren:

:

add()

{cout<<"请输入姓名:

";

cin>>name;

cout<<"请输入性别[请用'm'表示男,用'f'表示女]:

";

chars;cin>>s;

while((s!

='f')&&(s!

='m'))

{cout<<"输入错误,请重新输入!

:

";

cin>>s;}

if(s=='f')strcpy(sex,"女");

elsestrcpy(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;

ofstreamfout("lianxiren",ios:

:

app);

if(!

fout)

{

cout<

"<

}

else{fout<

:

left)<

fout<

(2)<<<<"."<

(2)<<<<"";

fout<

fout<

();}

}

(2)显示所有联系人的函数

voidlianxiren:

:

display()

{

ifstreamfin("lianxiren",ios:

:

in);

if(!

fin)

{

cout<

"<

system("pause");

}

boolflag=true;

stringrecord;chara[100];(a,100);

while(getline(fin,record))

{

if(flag)

{cout<

:

left)<

cout<

cout<

cout<

cout<

flag=false;}

if(flag)

{

cout<

}

else

{

cout<

}

}

(3)删除联系人的函数

voidlianxiren:

:

delet()

{

ofstreamout1("1",ios:

:

out);

ifstreamin1("lianxiren",ios:

:

in);

if(!

out1||!

in1)

{

cout<

"<

}

stringa;

cout<

";

cin>>a;

boolflag=true;

stringstr,s;in1>>s;inti=0;

while(in1>>num>>name)

{

getline(in1,str);

if((a==name)||(a==num))

{i++;

if(i=1)

{cout<

"<

cout<

:

left)<

cout<

cout<

cout<

cout<

:

left)<

}

else{cout<

:

left)<

flag=false;

continue;

}

out1<

:

left)<

}

();

();

if(flag)

{

cout<

"<

}

else

{

cout<<"确定要删除吗(Y/N)(不区分大小写):

";chara;

cin>>a;

if((a=='y')||(a=='Y'))

{ofstreamout("lianxiren",ios:

:

out);

ifstreamin("1",ios:

:

in);

if(!

out||!

in)

{

cout<

"<

}

while(getline(in,str))

{

out<

}

();

();

cout<

"<

}

}

(4)修改联系人的函数

{ofstreamoutData("1",ios:

:

out);

ifstreaminData("lianxiren",ios:

:

in);

if(!

outData||!

inData)

{

cout<

"<

system("pause");

return;

}

stringsign;

cout<

";

cin>>sign;

stringstr1;

boolflag=true;

stringstr;

while(inData>>num>>name)

{

getline(inData,str);

if((sign==name)||(sign==num))

{

cout<

"<

cout<

cout<

:

left)<

cout<

cout<

cout<

cout<

:

left)<

cout<

"<

cout<<"请输入姓名:

";cin>>name;

cout<<"请输入性别(请用'm'代表'男',用'f'代表'女'):

";

chars;cin>>s;

while((s!

='f')&&(s!

='m'))

{cout<<"输入错误,请重新输入!

:

";cin>>s;}

if(s=='f')strcpy(sex,"女");elsestrcpy(sex,"男");

cout<<"请输入民族:

";cin>>nation;

cout<<"请输入出生日期:

年:

";cin>>;

cout<<"月:

";cin>>;

while(<1)||>12)){cout<<"输入错误,请重新输入!

月:

";cin>>;}

cout<<"日:

";cin>>;

while(<1)||>31)){cout<<"输入错误,请重新输入!

月:

";cin>>;}

cout<<"请输入联系方式:

手机:

";cin>>telephone;

cout<<"请输入编号:

";cin>>num;

cout<<"输入邮编:

";

cin>>youbian;

cout<<"输入身高:

";

cin>>shengao;

cout<<"输入体重:

";

cin>>tizhong;

cout<<"输入QQ号:

";

cin>>qqhao;

ofstreamfout("lianxiren",ios:

:

app);

if(!

fout)

{

cout<

"<

system("pause");

}

else{fout<

:

left)<

fout<

(2)<<<<"."<

(2)<<<<"";

fout<

fout<

();}

flag=false;

break;

}

outData<

:

left)<

}

if(flag)

{

cout<

"<

}

else

{

while(getline(inData,str))

{

outData<

}

();

();

ofstreamout("lianxiren",ios:

:

out);

ifstreamin("1",ios:

:

in);

if(!

out||!

in)

{

cout<

"<

system("pause");

return;

}

while(getline(in,str))

{

out<

}

();

();

cout<

"<

}

}

三,系统运行效果图

1,主界面

2,添加联系人信息

3删除联系人信息

4显示所有联系人

5,修改信息

6,查询联系人信息

7,关闭系统

四,系统开发过程中遇到的问题

在初步完成该程序时,我发现程序有一个严重的漏洞,当系统保存的学生信息中有同名或者编号相同的同学时,这时若要执行查询或者删除学生信息时,只能查询到或删除第一个符合条件的同学,这就导致了程序的错误。

后来我发现只需要将程序中一些“break”换成“continue”便可以解决这个问题,也就使程序在读到第一个符合条件的同学信息时不结束读取,而是继续读入,这样就可以将同名或编号相同的学生全部查询到,不会漏查。

五,课程设计心得体会

1.在编写程序的过程中,我将课本中的大部分知识又都熟悉了一遍,使我对课本又有了更深的记忆,同时又弄懂了一些以前不太明白的地方。

2.在编程过程中,我还明白了做事要有耐心,决不能心急,要一步一步地来,不清楚的地方一定要查书,用到什么就查什么,比如在用到输入、输出函数时,不知道整型、实型、字符型、字符串用什么格式,就要认真地去看一下教材,切不可自我放弃。

3.我还明白了只要我们肯用心,就没有什么是困难的。

或许我们在编程时会遇到各种各样的困难,但只我们用心思考,我们总能从学过的知识中找到解决这些问题的方法,这些

方法或许是书上没有的,或许是没人用过的。

当这些问题得到解决时,我发现自己真的很开心!

六,附录源代码及简要说明

#include

#include

#include

#include

#include

usingnamespacestd;

.......................People基类............................................................

classPeople

{protected:

intyear;

intmonth;

intday;

charname[8];

charsex[5];

charnation[6];

charadress[6];

chartelephone[13];

public:

People(){}

~People(){}

voidin(){}

};

.............................lianxiren派生类..................................................

classlianxiren:

publicPeople

{private:

charnum[5];

intyoubian;

intshengao;

inttizhong;

intqqhao;

public:

voidadd();

voiddelet();

voiddisplay();

voidselect();

voidalter();

intface();

};

..............lianxiren类的成员函数add(),用于向系统添加联系人信息................................

voidlianxiren:

:

add()

{cout<<"请输入姓名:

";

cin>>name;

cout<<"请输入性别[请用'm'表示男,用'f'表示女]:

";

chars;cin>>s;

while((s!

='f')&&(s!

='m'))

{cout<<"输入错误,请重新输入!

:

";

cin>>s;}

if(s=='f')strcpy(sex,"女");

elsestrcpy(sex,"男");

cout<<"请输入民族:

";

cin>>nation;

cout<<"请输入出生日期:

年:

";

cin>>year;

cout<<"月(0~12):

";cin>>month;

while((month<1)||(month>12)){

cout<<"输入错误,请重新输入!

月:

";

cin>>month;}

cout<<"日(0~31):

";cin>>day;

while((day<1)||(day>31)){

cout<<"输入错误,请重新输入!

日:

";

cin>>day;}

cout<<"请输入联系方式:

手机:

";cin>>telephone;

cout<<"请输入编号(0~9999):

";cin>>num;

cout<<"输入邮编:

";

cin>>youbian;

cout<<"输入身高:

";

cin>>shengao;

cout<<"输入体重:

";

cin>>tizhong;

cout<<"输入QQ号:

";

cin>>qqhao;

ofstreamfout("lianxiren",ios:

:

app);

if(!

fout)

{

cout<

"<

}

else{fout<

:

left)<

fout<

(2)<

(2)<

fout<

fout<

();}

}

...............lianxiren类的成员函数display(),用于将系统中的联系人信息显示出来...................

voidlianxiren:

:

display()

{

ifstreamfin("lianxiren",ios:

:

in);

if(!

fin)

{

cout<

"<

system("pause");

}

boolflag=true;

stringrecord;

chara[100];

(a,100);

while(getline(fin,record))

{

if(flag)

{cout<

:

left)<

cout<

cout<

cout<

}

cout<

flag=false;

}

if(flag)

{

cout<

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2