收藏 分销(赏)

C语言课程设计报告—手机电话薄管理系统毕业论文.doc

上传人:二*** 文档编号:4495331 上传时间:2024-09-25 格式:DOC 页数:22 大小:125KB
下载 相关 举报
C语言课程设计报告—手机电话薄管理系统毕业论文.doc_第1页
第1页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、 C程序课程设计报告-手机通讯录管理系统组长:曾闯 学院:电子信息工程学号:10071050班级:电二 成员:晶,鄂跃宇,金迪 景飞,兴一 课程设计目的和容概述1.目的:加深对C语言课程所学知识的理解,进一步巩固C语言编程方法。学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力,加强动手能力。2.容:设计一个简易的手机通讯录管理系统。该题目要求在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用

2、)等。进一步掌握各种函数的应用,包括时间函数、绘图函数,以与文件的读写操作等。其中结构体,函数的调用,算法的设计是尤为重要的。二 题目手机通讯录管理系统。问题描述 该系统模拟手机通讯录管理系统,实现对手机中的通讯录进行管理 基本要求 要能提供以下几种功能: (1)查看功能:选择此功能时,列出下列三类选择:A:办公类B:个人类C:商务类 (2)当选中某类时,显示出此类所有数据中的和 (3)添加数据功能:能录入新数据,每个结点包括:,分类(可能选项有:w为办公类 p为个人类b为商务类),电子。 例如:春商务类chuny126. 当录入重复的和时,则提示数据录入重复并取消录入;当通讯录中超过15条信

3、息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。 (4)修改功能:选中某个人的时,可对此人的相应数据进行修改。 (5)删除功能:选中某个人的时,可对此人的相应数据进行删除,并自动调整后续条目的编号。三 程序设计1.总体设计 首先,因为每个个体有多种信息,所以要建立结构体来储存和整合各个信息。然后利用模块来分别实现程序的各个功能。各个模块用函数来实现。在通过通过主函数来判断输入字母,从而调动函数,实现所需功能。最后将输入的文件保存在文件里,以便重复使用。2.详细设计根据功能需要建立显示,添加,查看,删除,修改,保存五个模块。在模块过调用各个函数来实现功能。详细设

4、计如下:(1)构建结构体,写入文件FILE *fp;int i; struct address char a40; /email地址;struct ffriend int num; char name20; char kind20; long telephone; struct address address; friends50; void Load() int j,k; fp=fopen(friend.txt,a+); if(fp!=NULL) for(k=0;k50;k+) j=fgetc(fp); if(j=EOF) i=k-1;return; fseek(fp,k*sizeof(st

5、ruct ffriend),SEEK_SET); fread(&friendsk,sizeof(struct ffriend),1,fp); else fp=fopen(friend.txt,w); i=1; system(cls);(2)构造函数与模块构造显示模块,增加模块,删除模块,修改模块,查询模块。程序如下:void Show(int j) system(cls); /实现分屏操作的函数 printf(nnt编号-Nnumber: %3d,friendsj.num); printf(nt-Name:%-20s,friendsj.name); printf(nt性别-kind:%s,fr

6、iendsj.kind); printf(nt联系-Telephone:%-13ld,friendsj.telephone); printf(ntemail-address:%-40s,friendsj.address.a);void Append(int j) system(cls); friendsj.num=j; printf(nttt序号-Number : %d,j); printf(nttt-Name : ); scanf(%s,friendsj.name); printf(ttt类别-kind : ); scanf(%s,&friendsj.kind); printf(ttt联系-

7、telephone : ); scanf(%ld,&friendsj.telephone); while(friendsj.telephone) printf(不合法!请重新输入 : ); scanf(%ld,&friendsj.telephone); printf(tttemail-Address : ); scanf(%s,friendsj.address.a); getchar();void Delete() int k;int j; system(cls); printf(ntDelete 序号-Number : ); scanf(%d,&k); if(k-1=i) for(j=k-1

8、;ji+1;j+) /*插入位置后的元素顺序后移*/ strcpy(friendsj.name,friendsj+1.name); /*交换元素容*/ strcpy(friendsj.kind,friendsj+1.kind); friendsj.telephone=friendsj+1.telephone; strcpy(friendsj.address.a,friendsj+1.address.a); i-; else printf(输入的序号太大!); void Modify(int j) system(cls); Append(j);void Save() int k,j; syste

9、m(cls); printf(nntt请耐心等待,信息正在保存!n); printf(nnnntttSaving); for(k=0;k20;k+) Sleep(300); printf(.); printf(nn信息已经保存成功!n); fp=fopen(friend.txt,w); for(j=0;j=i;j+) fwrite(&friends0,sizeof(struct ffriend),1,fp); fclose(fp);(3)主函数调用各个模块用switch语句判断输入者要使用的功能,然后调用函数,模块实现功能。程序如下:void main() int j;char a;char

10、x; char grade; char searchkind20;char searchname20;load();system(cls); do printf(nnttt=n); printf(tttt手机通讯录 n); printf(tttt功能选择 n); /输出主界面 printf(ttt=n); printf(ttt A.查看 *n); printf(ttt B.增添 *n); printf(ttt C.删除 *n);printf(ttt D.查询 *n); printf(ttt E.修改 *n); printf(ttt F.保存 *n); printf(ttt=n); printf

11、(ttn请选择(Choice)nntt注:输入ah或AH的字母:); scanf(%c,&grade); switch(grade) /用switch判断使用者要选择的功能 case a: case A: j=0; while(getchar()!=0x1b&ji) if(j=0)printf(nt空文档,无任何记录-Empty Noten); else printf(nt记录已全部显示n); printf(nn请按回车键继续!); getchar(); break; printf(nttttttt此次操作结束); printf(nt-ttn); break; case b: case B:

12、while(i50) i+; Append(i); printf(t是否继续增加?(y/n); a=getchar(); if(a=n) break; if(i=50) printf(nt文档已满,无法增加记录-note full); printf(nttttttt此次操作结束); printf(nt-ttn); getchar(); break; case c: case C: Delete(); if(i1) printf(n没有记录-No recordsn); printf(nn请按回车键继续!); getchar(); getchar(); printf(nttttttt此次操作结束)

13、; printf(nt-ttn); break; case d: case D: system(cls); printf(nt请输入要查询记录的相关类别: p.个人类 b.商务类 w.办公类); scanf(%s,searchkind); for(j=0;j=i;j+) if(strcmp(searchkind,friendsj.kind)=0) Show(j); getchar(); break; case e: case E: printf(nt请输入要修改记录的相关:); gets(searchname); scanf(%s,searchname); for(j=0;j=i;j+) if

14、(strcmp(searchname,friendsj.name)=0) Modify(j); if(i1) printf(n 没有您所要修改的记录-No records); printf(n 请按回车键继续!); getchar(); getchar(); printf(nttttttt此次操作结束); printf(nt-ttn); break; case f: case F: system(cls); Save(); getchar(); printf(nttttttt此次操作结束); printf(nt-ttn); break; default: printf(nt输入有误,请输入正确

15、的序列号!); printf(n请按回车键继续!); getchar(); printf(nttttttt此次操作结束); printf(nt-ttn); while(1);上述三部分实现整个程序的功能。四 程序源代码#include #include #include #include FILE *fp;int i; struct address char a40; ;struct ffriend int num; char name20; char kind20; long telephone; struct address address; friends50; void Load()

16、int j,k; fp=fopen(friend.txt,a+); if(fp!=NULL) for(k=0;k50;k+) j=fgetc(fp); if(j=EOF) i=k-1;return; fseek(fp,k*sizeof(struct ffriend),SEEK_SET); fread(&friendsk,sizeof(struct ffriend),1,fp); else fp=fopen(friend.txt,w); i=1; system(cls);void Show(int j) system(cls); printf(nnt编号-Nnumber: %3d,friends

17、j.num); printf(nt-Name:%-20s,friendsj.name); printf(nt性别-kind:%s,friendsj.kind); printf(nt联系-Telephone:%-13ld,friendsj.telephone); printf(ntemail-address:%-40s,friendsj.address.a);void Append(int j) system(cls); friendsj.num=j+1;printf(nttt类别:p.个人类 b.商务类 w.办公类); printf(nttt序号-Number : %d,j+1); print

18、f(nttt-Name : ); scanf(%s,friendsj.name); printf(ttt类别-kind : ); scanf(%s,&friendsj.kind); printf(ttt联系-telephone : ); scanf(%ld,&friendsj.telephone); while(friendsj.telephone) printf(不合法!请重新输入 : ); scanf(%ld,&friendsj.telephone); printf(tttemail-Address : ); scanf(%s,friendsj.address.a); getchar();

19、void Delete() int k;int j; system(cls); printf(ntDelete 序号-Number : ); scanf(%d,&k); if(k-1)=i) for(j=k-1;ji+1;j+) strcpy(friendsj.name,friendsj+1.name); strcpy(friendsj.kind,friendsj+1.kind); friendsj.telephone=friendsj+1.telephone; strcpy(friendsj.address.a,friendsj+1.address.a); i-; else printf(输

20、入的序号太大!); void Modify(int j) system(cls); Append(j);void Save() int k,j; system(cls); printf(nntt请耐心等待,信息正在保存!n); printf(nnnntttSaving); for(k=0;k20;k+) Sleep(300); printf(.); printf(nn信息已经保存成功!n); fp=fopen(friend.txt,w); for(j=0;j=i;j+) fwrite(&friendsj,sizeof(struct ffriend),1,fp); fclose(fp);void

21、 main() int j;char a;char x; char grade; char searchkind20;char searchname20; Load(); system(cls); do printf(nnttt=n); printf(tttt手机通讯录 n); printf(tttt功能选择 n); printf(ttt=n); printf(ttt A.查看 *n); printf(ttt B.增添 *n); printf(ttt C.删除 *n);printf(ttt D.查询 *n); printf(ttt E.修改 *n); printf(ttt F.保存 *n);p

22、rintf(ttt g.推出 *n); printf(ttt=n); printf(ttn请选择(Choice)nntt注:输入ah或AH的字母:); scanf(%c,&grade); switch(grade) case a: case A: j=0; while(getchar()!=0x1b&ji) if(j=0)printf(nt空文档,无任何记录-Empty Noten); else printf(nt记录已全部显示n); printf(nn请按回车键继续!); getchar(); break; printf(nttttttt此次操作结束); printf(nt-ttn); br

23、eak; case b: case B: while(i50) i+; Append(i); printf(t是否继续增加?(y/n); a=getchar(); if(a=n) break; if(i=50) printf(nt文档已满,无法增加记录-note full); printf(nttttttt此次操作结束); printf(nt-ttn); getchar(); break; case c: case C: Delete(); if(i0) printf(n没有记录-No recordsn); printf(nn请按回车键继续!); getchar(); getchar(); p

24、rintf(nttttttt此次操作结束); printf(nt-ttn); break; case d: case D: system(cls); printf(nt请输入要查询记录的相关类别: p.个人类 b.商务类 w.办公类); scanf(%s,searchkind);getchar(); for(j=0;j=i;j+) if(strcmp(searchkind,friendsj.kind)=0) Show(j);printf(nt按回车请继续);getchar(); break; case e: case E: printf(nt请输入要修改记录的相关:); gets(searchname); scanf(%s,searchname); for(j=0;j=i;j+) if(strcmp(searchname,friendsj.name)=0) Modify(j); if(i0) printf(n 没有您所要修改的记录-No records); printf(n 请按回车键继续!); getchar(); getchar(); printf(nttttttt此次操作结束); printf(nt-ttn); break; case f: case F: system(cls); Save();

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 学术论文 > 毕业论文/毕业设计

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服