C语言程序设计个人通讯录管理.docx
- 文档编号:29083631
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:21
- 大小:84.68KB
C语言程序设计个人通讯录管理.docx
《C语言程序设计个人通讯录管理.docx》由会员分享,可在线阅读,更多相关《C语言程序设计个人通讯录管理.docx(21页珍藏版)》请在冰豆网上搜索。
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 参考文献
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 个人 通讯录 管理
![提示](https://static.bdocx.com/images/bang_tan.gif)