C语言程序设计报告个人通讯录.docx

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

C语言程序设计报告个人通讯录.docx

《C语言程序设计报告个人通讯录.docx》由会员分享,可在线阅读,更多相关《C语言程序设计报告个人通讯录.docx(37页珍藏版)》请在冰点文库上搜索。

C语言程序设计报告个人通讯录.docx

C语言程序设计报告个人通讯录

 

南京航空航天大学金城学院

《C语言程序设计》课程设计报告

 

个人通讯录系统

 

学号:

姓名:

学号:

姓名:

 

日期:

 

一、需求分析:

………………………………………………………3

二、程序的主要功能:

……………………………………………….3

三、程序运行平台:

………………………………………………….3

四、系统总框架图:

………………………………………………….6

五、程序类的说明:

……………………………………………….6

六、模块分析:

……………………………………………………….8

七、比较有特色的函数:

…………………………………………….9

八、存在的不足与编程体会…………………………………………10

九、程序源代码:

…………………………………………………….10

 

一、需求分析

各类存储和通信电子产品都带有通讯录的功能,可以对联系人进行简单的信息管理和存储。

二、程序的主要功能

Ø用户信息界面美观、简洁,采用菜单式显示功能选择;

Ø能够从磁盘文件输入和输出数据;

Ø能够对联系人信息进行增、删和改的操作;

Ø能够根据联系人的姓名的拼音顺序从高到低排序;

三、程序运行平台

VC6.0

运行程序“perosnalcontact.exe”,进入登录界面如下

****************************

**

**

*通讯录文件不存在!

*

*通讯录文件已建立!

*

**

**

****************************

按任意键进入主菜单

请输入您的数字选择:

一、按下任意键进入主菜单

您好!

欢迎使用通讯录!

1:

添加个人信息

2:

查询个人信息

3:

删除个人信息

4:

修改个人信息

5:

信息排序

6:

输出全部信息

7:

写入文件

8:

读取文件

9:

删除所有

0:

退出

请输入您的数字选择:

选择1进入添加信息模块:

请输入您要添加的联系人的信息:

请输入姓名:

选择2进入查询个人信息模块:

欢迎使用查询菜单

1-按姓名查询

2-按QQ查询

3-返回主菜单

请输入您的选择

选择3进入删除个人信息模块

删除菜单

1-删除单个

2-返回主菜单

请输入您的数字选择:

选择4.进入修改个人信息模块

1-按姓名修改

请输入您的数字选择:

选择5.进入联系人排序模块

排序菜单

1-按姓名排序

2-返回主菜单请输入您的数字选择:

选择6.进入输出信息模块

***************以下为通讯录所有信息************

________________________________

名字:

13213

性别:

2144444444444

手机号码:

44444444444

电子邮件:

44444444444

QQ号码:

444444444

________________________________

************************************************

请按任意数字键返回主菜单

选择7.进入写入文件模块

通讯录文件已保存

请按任意数字键返回主菜单

选择8.进入读取信息模块

****************************

**

**

*文件导入成功!

*

**

**

****************************

按1显示所有信息,按2回主菜单!

请输入您的数字选择:

选择9.删除所有信息

四、系统总框架图

五、程序类的说明

structperson

{

charname[15];

charsex[2];

charcelephone[22];

charemail[40];

longintQQ;

}per[500];//定义一个per数据,有500个元素。

六、模块分析

1.添加模块

系统将提示用户输入新添加的联系人信息,添加在数据中。

2.查询模块

根据用户输入的姓名或者QQ号,然后运用strcmp函数对数组中的元素进行对比,然后输入匹配的信息。

3.删除模块

首先由用户输入姓名,运用strcmp函数查找,显示匹配的信息,由用户输入1或2进行判断是否删除。

删除之后将num的值-1。

定义int型的findmark,和mark用来判断是否有同名信息,由用户判断时候继续删除同名的联系人。

4.个人信息修改模块

首先由用户输入姓名,查询到匹配的信息,显示出来,由用户判断是否删除,运行xiugaixinxi(a)函数。

5.排序模块

用strcmp函数判断数据中第一个元素和它的后一个元素是否相同,不相同则把数据两个元素进行交换。

6.写文件模块

程序结束时将所有联系人的信息写入到“per.bin”文件中。

7.显示所有信息

用for循环将从0到num的所有信息全部打印在屏幕上。

8.读文件模块

程序开始时从“per.bin”读取所有联系人信息。

9.删除所有信息模块

由用户输入航班号和订票数目,系统判断能满足用户需求则输出“订票成功”信息。

先尝试读取文件信息,若读取失败,则输出信息已删除,否则将0赋给num,显示信息已删除。

七、比较有特色的函数

voidnewrecord()//*添加纪录*//

{

inta;

system("cls");

system("color2a");

loop:

printf("\n\n\n\n\t\t请输入您要添加的联系人的信息:

\n");

printf("\n请输入姓名:

\n");

name:

scanf("%s",&per[num].name);

if(strlen(per[num].name)>15)

{

printf("\n对不起!

您的输入有误!

请重新输入");

gotoname;

}

八、存在的不足与对策、编程体会

添加个人信息的方式过于麻烦,可以使用链表来代替数据,方便临时添加信息。

九、参考文献

XX文库

十、程序源代码

//制作一个个人通讯录,用来保存联系人的电话,性别,姓名,QQ号,Eamil地址。

//组成部分:

1.显示界面2.信息写入磁盘,从磁盘中读取信息3.对联系人信息进行删改4.根据联系人的姓名进行排序

#include

#include

#include

#include

structperson

{

charname[15];

charsex[2];

charcelephone[22];

charemail[40];

longintQQ;

}per[500];//定义一个per数据,有500个元素。

intnum=0;//*外部变量num为文件中的纪录数*//

FILE*fp;

voidmainmenu();//*主菜单*//

voidnewrecord();//新添纪录*//

voidxiugaimenu();//*修改菜单*//

voidxiugaibyname();//*按姓名修改*//

voidsearchmenu();//*查询菜单*//

voidsearchbyname();//*按姓名查询*//

voidsearchbyQQ();//*按QQ号查询*//

voiddeletemenu();//*删除菜单*//

voiddeleteall();//*删除所有信息*//

voiddeleteone();//*删除单个*//

voidshowall();//*输出全部信息*//

voidreadfromfile();//*读取文件*//

voidwritetofile();//*写入文件*///

voiddeletebyname();//*按姓名删除*/

voidlistbyname();//*按姓名排序*//

voidlistmenu();//*排序菜单*//

voiddeleteall();//*删除所有信息*//

voidmain()//*主函数*//

{

system("cls");//清空屏幕

readfromfile();//读取文件

while

(1)

{

mainmenu();//主菜单

}

}

voidmainmenu()//*主菜单函数*//

{

inta;

system("cls");

system("color2a");//更改背景板为绿色

printf("\n\t您好!

欢迎使用通讯录!

\n");

printf("1:

添加个人信息\n");

printf("2:

查询个人信息\n");

printf("3:

删除个人信息\n");

printf("4:

修改个人信息\n");

printf("5:

信息排序\n");

printf("6:

输出全部信息\n");

printf("7:

写入文件\n");

printf("8:

读取文件\n");

printf("9:

删除所有\n");

printf("0:

退出\n");

printf("\n请输入您的数字选择:

\n");

loop1:

scanf("%d",&a);

switch(a)

{

case1:

newrecord();break;

case2:

searchmenu();break;

case3:

deletemenu();break;

case4:

xiugaimenu();break;

case5:

listmenu();break;

case6:

showall();break;

case7:

writetofile();break;

case8:

readfromfile();break;

case9:

deleteall();break;

case0:

exit(0);

default:

printf("\n对不起!

您的输入有误!

请重新输入:

\n");gotoloop1;

}

}

voidnewrecord()//*添加纪录*//

{

inta;

system("cls");

system("color2a");

loop:

printf("\n\n\n\n\t\t请输入您要添加的联系人的信息:

\n");

printf("\n请输入姓名:

\n");

name:

scanf("%s",&per[num].name);

if(strlen(per[num].name)>15)

{

printf("\n对不起!

您的输入有误!

请重新输入");

gotoname;

}

printf("\n请输入性别:

\n");

sex:

scanf("%s",&per[num].sex);

if(strlen(per[num].sex)==0)

{

printf("\n对不起!

您的输入有误!

请重新输入\n");

gotosex;

}

printf("\n请输入手机号码:

\n");

celephone:

scanf("%s",&per[num].celephone);

if(strlen(per[num].celephone)!

=11)

{

printf("\n对不起!

您的输入有误!

请重新输入\n");

gotocelephone;

}

printf("\n输入电子邮箱:

");

email:

scanf("%s",&per[num].email);

if(strlen(per[num].email)>30||strlen(per[num].email)<4)

{

printf("\n对不起!

您的输入有误!

请重新输入\n");

gotoemail;

}

printf("\n输入QQ号码:

\n");

QQ:

scanf("%ld",&per[num].QQ);

if(per[num].QQ>1600000000||per[num].QQ<10000000)

{

printf("\n对不起!

您的输入有误!

请重新输入\n");

gotoQQ;

}

num++;

printf("\n是否继续添加?

\n");

printf("\n请按1和2(1代表继续;2代表不继续)\n");

printf("\n请输入您的选择\n");

scanf("%d",&a);

if(a==1)

{

gotoloop;

}

else

{

return;

}

}

voidsearchmenu()//*查询菜单*//

{

inta;

system("cls");

system("color2a");

printf("\n\t\t欢迎使用查询菜单");

printf("\n\t\t1-按姓名查询");

printf("\n\t\t2-按QQ查询");

printf("\n\t\t3-返回主菜单");

printf("\n\t\t");

printf("\n请输入您的选择\n");

scanf("%d",&a);

switch(a)

{

case1:

searchbyname();break;

case2:

searchbyQQ();break;

case3:

mainmenu();break;

}

}

voidsearchbyQQ()//*按QQ查询*//

{

intmark=0;

inti,j;

longintQQ;

printf("\n\t\t按QQ号码查找\n");

printf("\n请输入QQ号码:

");

scanf("%ld",&QQ);

for(i=0;i

{

if(per[i].QQ==QQ)

{

printf("\n\t\t以下是您查找的联系人的信息");

printf("\n\t\t________________________________");

printf("\n\t\t名字:

%s",per[i].name);

printf("\n\t\t性别:

%s",per[i].sex);

printf("\n\t\t手机号码:

%s",per[i].celephone);

printf("\n\t\t电子邮件:

%s",per[i].email);

printf("\n\t\tQQ号码:

%ld",per[i].QQ);

printf("\n\t\t________________________________");

printf("\n\t\t请按任意数字键返回主菜单");

mark++;

scanf("%d",&j);

return;

}

}

if(mark==0)

{

printf("\n\t\t对不起!

没有该联系人的信息!

");

printf("\n\t\t请按任意数字键返回主菜单");

scanf("%d",&j);

return;

}

}

voidsearchbyname()//*按姓名查询*//

{

intmark=0;

inti,j,findmark=0;

inta=0;

charname[15];

printf("\n按姓名查找");

printf("\n请输入姓名:

");

scanf("%s",name);

for(i=a;i

{

if(strcmp(per[i].name,name)==0)

{

findmark++;

printf("\n\t\t以下是您查找的联系人的信息");

printf("\n\t\t________________________________");

printf("\n\t\t名字:

%s",per[i].name);

printf("\n\t\t性别:

%s",per[i].sex);

printf("\n\t\t手机号码:

%s",per[i].celephone);

printf("\n\t\t电子邮件:

%s",per[i].email);

printf("\n\t\tQQ号码:

%ld",per[i].QQ);

printf("\n\t\t________________________________");

if((i+1)

{

printf("\n是否继续查找相同名字的联系人的信息?

(1代表继续;2代表不继续)\n");

scanf("%d",&j);

if(j==1)

{

a=i;

mark++;

continue;

}

else

break;

}

else

{

printf("\n请按任意数字键返回主菜单");

scanf("%d",&j);

return;

}

}

}

if(mark!

=0)

{

printf("\n对不起!

没有相同名字的该联系人的信息!

");

printf("\n请按任意数字键返回主菜单");

scanf("%d",&j);

return;

}

elseif(findmark==0)

{

printf("\n对不起!

没有该联系人的信息!

");

printf("\n请按任意数字键返回主菜单");

scanf("%d",&j);

return;

}

}

voiddeletebycelephone()//*按手机号码删除*//

{

inti,j,h,m;

intdeletemark=0;

charcelephone[11];

printf("\n\t\t请输入要删除的联系人的手机号码:

");

scanf("%s",celephone);

for(i=0;i

{

if(strcmp(per[i].celephone,celephone)==0)

{

deletemark++;

printf("\n\t\t以下是您要删除的联系人的纪录:

");

printf("\n\t\t________________________________");

printf("\n\t\t名字:

%s",per[i].name);

printf("\n\t\t性别:

%s",per[i].sex);

printf("\n\t\t手机号码:

%s",per[i].celephone);

printf("\n\t\t电子邮件:

%s",per[i].email);

printf("\n\t\tQQ号码:

%ld",per[i].QQ);

printf("\n\t\t________________________________");

printf("\n\t\t是否删除?

(1代表删除;2代表不删除)\n");

printf("\n请输入您的数字选择:

\n");

scanf("%d",&h);

if(h==1)

{

for(j=i;j

per[j]=per[j+1];

num--;

printf("\n\t\t删除成功");

printf("\n是否继续删除?

(1代表继续;2代表不继续)\n");

printf("\n请输入您的数字选择:

\n");

scanf("%d",&h);

if(h==1)

deletebycelephone();

}

}

}

if(deletemark==0)

{

printf("\n\t\t对不起!

没有该联系人的纪录!

");

printf("\n\t\t是否继续删除?

(1代表继续;2代表不继续)\n");

printf("\n请输入您的数字选择:

\n");

scanf("%d",&m);

if(m==1)

deletebycelephone();

}

}

voiddeletemenu()//*删除菜单*//

{

inti,j;

system("cls");

system("color3b");

if(num==0)

{

printf("\n\t\t对不起!

文件中无任何纪录!

");

printf("\n\t\t请先添加个人信息!

");

printf("\n\t\t请按任意数字键返回主菜单");

scanf("%d",&j);

return;

}

else

{

printf("\n\t\t删除菜单");

printf("\n\t\t1-删除单个");

printf("\n\t\t2-返回主菜单");

printf("\n\t\t");

printf("\n\t\t请输入您的数字选择:

");

loop4:

scanf("%d",&i);

switch(i)

{

case1:

deleteone();break;

case2:

mainmenu();break;

default:

printf("\n对不起!

您的输入有误!

请重新输入:

\n");gotoloop4;

}

}

}

voiddeleteone()//*删除单个*//

{

inti;

printf("\n\t\t1-按手机号码删除2-按姓名删除");

printf("\n\t\t请输入您的选择:

");

loop5

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

当前位置:首页 > 法律文书 > 调解书

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

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