C语言程序设计个人通讯录管理.docx

上传人:b****5 文档编号:29083631 上传时间:2023-07-20 格式:DOCX 页数:21 大小:84.68KB
下载 相关 举报
C语言程序设计个人通讯录管理.docx_第1页
第1页 / 共21页
C语言程序设计个人通讯录管理.docx_第2页
第2页 / 共21页
C语言程序设计个人通讯录管理.docx_第3页
第3页 / 共21页
C语言程序设计个人通讯录管理.docx_第4页
第4页 / 共21页
C语言程序设计个人通讯录管理.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

C语言程序设计个人通讯录管理.docx

《C语言程序设计个人通讯录管理.docx》由会员分享,可在线阅读,更多相关《C语言程序设计个人通讯录管理.docx(21页珍藏版)》请在冰豆网上搜索。

C语言程序设计个人通讯录管理.docx

C语言程序设计个人通讯录管理

摘要

通讯录[addressbook]记录通讯地址的书本,通讯录涵盖了多项内容:

可以储存一个人的姓名、手机号码、家庭住址、QQ等,以方便联系。

通过学习我设计一个个人通讯录管理,这个系统可以方便人们的查找个人信息,他具有快速查找的功能,主要是通过按姓名查找、按手机号码查找、按地址查询等。

这个通讯录可以修改已存所有人的任何信息,也可以删除里面你不想储存人的信息,当你在运行删除的时候,系统会再次提醒你是否删除,一旦删除将会永远删除。

关键字:

通讯录查找删除

重庆科技学院

课程设计任务书

设计题目:

个人通讯录管理系统

学生姓名

课程名称

程序设计基础课程设计

专业班级

计科1104

地点

I305/I306

起止时间

2012年1月9日~1月13日

设计内容及要求

建立一通讯录,输入姓名、电话号码、住址等信息,然后对通信簿进行显示、查找、添加、修改及删除。

进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。

根据题目要求,运用所学知识,完成设计和实现工作,并按照书写规范,撰写课程设计报告。

设计

参数

(1)系统分析、设计正确。

(2)结果以图表方式显示。

(3)界面简洁、美观。

(4)报告格式规范。

进度

要求

周一:

明确设计任务,学习相关基础知识

周二:

熟悉各知识点,进行基础练习

周三:

根据题目要求,进行设计和实现

周四:

根据题目要求,进行设计和实现

周五:

撰写报告,进行答辩

参考资料

[1]何钦铭颜晖.《C语言程序设计》.高等教育出版社.2008年

[2]谭浩强张基温.《C语言程序设计教程》.高等教育出版社.2006年

其它

说明

1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。

2.若填写内容较多可另纸附后。

3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。

教研室主任:

指导教师:

伍建全/雷亮/焦晓军/陈应祖/

杨治明2012年1月1日

目录

摘要……………………………………………………………………………1

课程设计责任书………………………………………………………………2

软件需求分析说明书…………………………………………………………4

第一章系统分析与设计……………………………………………………5

第二章软件的实现…………………………………………………………6

2.1软件界面设计…………………………………………………………6

2.2软件的数据(结构)设计……………………………………………6

2.3软件的算法设计………………………………………………………6

第三章软件测试……………………………………………………………7

第四章软件使用说明书……………………………………………………8

致谢………………………………………………………………………………9

参考文献…………………………………………………………………………10

 

软件需求分析说明书

个人通讯录管理是个可以储存、修改、查看、查找、删除的功能。

在这个程序中可以储存一个人的姓名、家庭住址、手机号码、QQ号等信息,可以同时查看所有已存的信息,如果已存的数量过多,你可以选择快速查找,快速查找方式有:

按姓名查找、按家庭住址查找、按手机号码查找、按QQ号查找。

如果要删除信息,只要输入你要删除信息的编号就可以删除,在删除过程中,系统会再次提醒你是否确认删除,以免后悔。

如果确定删除将会永远删除。

这个程序也可以修改,输入想修改的编号,就可以修改了。

如果你输入的编号不存在,系统将会提示你是否查看所有已存的数据。

第五章系统分析与设计

2.1软件界面设计

图2.1通讯录管理的主界面

根据主界面的提示选择你想要执行的任务项钱的字母

图2.2添加联系人

在添加联系人中尼可以输入姓名、地址、电话号码、QQ号,输入好之后你可以继续完成其他选项。

图2.3浏览信息

按b屏幕上将显示已储存的个人信息,按a将继续为你服务。

图2.3查询信息

按c将执行查询任务你可以通过姓名、地址、电话、QQ号、编号查询。

按a继续服务。

图2.4删除信息

按d执行删除任务,输入你想要删除的编号,系统将会再次提醒你是否确认删除,一旦删除将会永远删除。

图2.5修改信息

选择你想修改信息的编号,就可以修改信息

图2.6修改信息

如果你选择的编号不存在,系统将会提醒你编号不存在,建议你查看所有数据,按y将显示已存的所有数据。

按a继续为你服务。

图2.7结束服务

当你执行完你所有的任务后,按b将会显示“谢谢使用,拜拜”,然后退出。

2.2软件的数据(结构)设计

2.1流程表

第六章软件的实现

voidlook()

{

FILE*fp;

charst[100];

fp=fopen("in.txt","r");

if(fp==NULL)

{

printf("抱歉,无法查看\n");

exit

(1);

}

while(!

feof(fp))

{

fgets(st,100,fp);

puts(st);

}

fclose(fp);

}

voidturn(structtongxun*tdt,int*n)

{

FILE*fp;//fp为打开in.txt文件的指针

inti=0;

fp=fopen("in.txt","w");

fprintf(fp,"姓名地址电话QQ号码编号");

while(i<*n)

{fprintf(fp,"\n%-6s%-8s%-12d%-10d%d",tdt[i].name,tdt[i].address,

tdt[i].telephone,tdt[i].QQ,tdt[i].number);

i++;

}

fclose(fp);

}

voidadd()

{

FILE*fp1;

structtongxunad;

fp1=fopen("in.txt","a");

printf("请输入姓名:

\n");

scanf("%s",ad.name);

printf("请输入地址:

\n");

scanf("%s",ad.address);

printf("请输入电话:

\n");

scanf("%d",&ad.telephone);

printf("请输入QQ号码:

\n");

scanf("%d",&ad.QQ);

printf("请输入编号:

\n");

scanf("%d",&ad.number);

fprintf(fp1,"\n%s%s%d%d%d",ad.name,

ad.address,ad.telephone,ad.QQ,ad.number);

printf("录入成功!

\n");

fclose(fp1);

第七章软件测试

对每一个函数、及组装以后的函数、写出测试用例。

格式如下(注:

自己可以自定义格式,但要满足以下要求,写成表格的形式等):

1、voidlook();//浏览

2、voiddelet();//删除

3、voidchange();//修改

4、voidtent();//测量文件中的数据个数

5、intmine();//判断需要的数据是否存在

6、voidremine();

7、voidreme();

8、structtongxun

9、{

10、charname[20];//姓名

11、charaddress[50];//地址

12、inttelephone;//电话

13、intQQ;//QQ

14、intnumber;//编号

15、};

16、voidShowS(charstuNO);/*根据学的学号,显示学生信息*/

编辑主界面

voidmenu()

{

charc;

printf("通信录信息管理\n");

printf("a.添加信息\n");

printf("b.浏览信息\n");

printf("c.查询信息\n");

printf("d.删除信息\n");

printf("e.修改信息\n");

c=getchar();

remine(c);

}

修改信息

voidchange()

{

intm,x;

charch;

printf("请选择你想修改的文件编号\n");

scanf("%d",&m);

x=mine(m);

if(x==-2)

{

printf("你所输入的编号不存在\n");

printf("是否查看数据Y\\N\n");

fflush(stdin);

scanf("%c",&ch);

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

{

look();

}

}

else

reme(x);

}

voidreme(intx)

{

structtongxunre[20],de[20];

inti,n;

FILE*fp;

fp=fopen("in.txt","w");

tent(re,&n);

if(fp==NULL)

{

printf("无法打开\n");

exit

(1);

}

for(i=0;i

{

if(x==re[i].number)

break;

}

printf("请输入新姓名\n");

scanf("%s",de[i].name);

printf("请输入新地址:

\n");

scanf("%s",de[i].address);

printf("请输入新电话:

\n");

scanf("%d",&de[i].telephone);

printf("请输入新QQ号码:

\n");

scanf("%d",&de[i].QQ);

printf("请输入新编号:

\n");

scanf("%d",&de[i].number);

fprintf(fp,"\n%s%s%d%d%d",de[i].name,

de[i].address,de[i].telephone,de[i].QQ,de[i].number);

fclose(fp);

}

查找信息

voidsearch()

{

structtongxuns[10];

charch,name[10],address[10];

intt,q,i,b,n;

intxm;

tent(s,&n);

puts("你想要通过什么查询\n");

puts("a.姓名b.地址c.电话d.QQ号e.编号\n");

fflush(stdin);

ch=getchar();

if(ch=='a')

{

printf("请输入姓名:

\n");

fflush(stdin);

gets(name);

for(i=0;i

{

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

printf("%s%s%d%d%d\n",s[i].name,

s[i].address,s[i].telephone,s[i].QQ,s[i].number);

break;

}

if(strcmp(name,s[i].name)!

=0)

{printf("抱歉,无记录……\n");}

}

if(ch=='b')

{

printf("请输入地址:

\n");

fflush(stdin);

gets(address);

for(i=0;i

{

if((xm=strcmp(address,s[i].address))==0)

printf("%s%s%d%d%d\n",s[i].name,

s[i].address,s[i].telephone,s[i].QQ,s[i].number);

break;

}

if(strcmp(address,s[i].address)!

=0)

{printf("抱歉,无记录……\n");}

}

if(ch=='c')

{

printf("请输入电话:

\n");

scanf("%d",&t);

for(i=0;i

{

if(t==s[i].telephone)

printf("%s%s%d%d%d\n",s[i].name,

s[i].address,s[i].telephone,s[i].QQ,s[i].number);

break;

}

if(t!

=s[i].telephone)

{printf("抱歉,无记录……\n");}

}

if(ch=='d')

{

printf("请输入qq号码:

\n");

scanf("%d",&q);

for(i=0;i

{

if(q==s[i].QQ)

printf("%s%s%d%d%d\n",s[i].name,

s[i].address,s[i].telephone,s[i].QQ,s[i].number);

break;

}

if(q!

=s[i].QQ)

{printf("抱歉,无记录……\n");}

}

if(ch=='e')

{

printf("请输入编号:

\n");

scanf("%d",&b);

for(i=0;i

{

if(b==s[i].number)

printf("%s%s%d%d%d\n",s[i].name,

s[i].address,s[i].telephone,s[i].QQ,s[i].number);

break;

}

if(s[i].number!

=b)

printf("抱歉,无记录……\n");

}

}

添加信息

voidadd()

{

FILE*fp1;

structtongxunad;

fp1=fopen("in.txt","a");

printf("请输入姓名:

\n");

scanf("%s",ad.name);

printf("请输入地址:

\n");

scanf("%s",ad.address);

printf("请输入电话:

\n");

scanf("%d",&ad.telephone);

printf("请输入QQ号码:

\n");

scanf("%d",&ad.QQ);

printf("请输入编号:

\n");

scanf("%d",&ad.number);

fprintf(fp1,"\n%s%s%d%d%d",ad.name,

ad.address,ad.telephone,ad.QQ,ad.number);

printf("录入成功!

\n");

fclose(fp1);

}

浏览信息

voidlook()

{

FILE*fp;

charst[100];

fp=fopen("in.txt","r");

if(fp==NULL)

{

printf("抱歉,无法查看\n");

exit

(1);

}

while(!

feof(fp))

{

fgets(st,100,fp);

puts(st);

}

fclose(fp);

}

voidturn(structtongxun*tdt,int*n)

{

FILE*fp;//fp为打开in.txt文件的指针

inti=0;

fp=fopen("in.txt","w");

fprintf(fp,"姓名地址电话QQ号码编号");

while(i<*n)

{fprintf(fp,"\n%-6s%-8s%-12d%-10d%d",tdt[i].name,tdt[i].address,

tdt[i].telephone,tdt[i].QQ,tdt[i].number);

i++;

}

fclose(fp);

}

删除信息

voiddelet()//删除一个信息的函数

{

structtongxunx1[10],x2[10];

charch,x;

intj,k=0,n,num;

inti=0;

tent(x1,&n);

printf("请输入一个你想删除的编号:

\n");

fflush(stdin);

scanf("%d",&num);

j=mine(num);

printf("是否确定删除!

Y\\N\n");

fflush(stdin);

scanf("%c",&x);

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

if(j!

=-2)

{

for(;i

{

if(i!

=j)

{

strcpy(x2[k].name,x1[i].name);

strcpy(x2[k].address,x1[i].address);

x2[k].telephone=x1[i].telephone;

x2[k].QQ=x1[i].QQ;

x2[k].number=x1[i].number;

k++;

}

}

n--;

turn(x2,&n);

printf("\t操作成功\n");

}

else

{

printf("没有你所输入的编号\n");

printf("是否查看通讯录\n");

printf("a.yesb.no\n");

fflush(stdin);

scanf("%c",&ch);

if(ch=='a')

{

look();

}

}

}

第八章软件使用说明书

根据界面的提示,按提示的字母输入就可以完成操作。

致谢

这次课程设计能够顺利完成,老师帮了我不少,有不懂的问题请教他,老师总是很有耐心的提我解答,所以谢谢老师。

同时我也要感谢同学们,有写小问题是和同学一起讨论得出来的。

谢谢大家。

签名日期20110113

参考文献

 

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

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1