版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 C程序课程设计报告-手机通讯录管理系统组长:曾闯 学院:电子信息工程学号:10071050班级:电二 成员:晶,鄂跃宇,金迪 景飞,兴一 课程设计目的和容概述1.目的:加深对C语言课程所学知识的理解,进一步巩固C语言编程方法。学会编制结构清晰、风格良好、数据结构适当的C语言程序,从而具备解决综合性实际问题的能力,加强动手能力。2.容:设计一个简易的手机通讯录管理系统。该题目要求在熟练掌握C语言的基本知识:数据类型(整形、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用
2、)等。进一步掌握各种函数的应用,包括时间函数、绘图函数,以与文件的读写操作等。其中结构体,函数的调用,算法的设计是尤为重要的。二 题目手机通讯录管理系统。问题描述 该系统模拟手机通讯录管理系统,实现对手机中的通讯录进行管理 基本要求 要能提供以下几种功能: (1)查看功能:选择此功能时,列出下列三类选择:A:办公类 B:个人类 C:商务类 (2)当选中某类时,显示出此类所有数据中的和 (3)添加数据功能:能录入新数据,每个结点包括:,分类(可能选项有:w为办公类 p为个人类 b为商务类),电子。 例如: 春 商务类 chu
3、ny126. 当录入重复的和时,则提示数据录入重复并取消录入;当通讯录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。 (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
5、;k<50;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");(2)构造函数与模块构造显示模块,增加模块,删除模块,修改模块,查询模块。程序如下:void Show(int j) system("c
6、ls"); /实现分屏操作的函数 printf("nnt编号-Nnumber: %3d",friendsj.num); printf("nt-Name:%-20s",); printf("nt性别-kind:%s",friendsj.kind); printf("nt联系-Telephone:%-13ld",friendsj.telephone); printf("ntemail-address:%-40s",friendsj.address.a);void
7、Append(int j) system("cls"); friendsj.num=j; printf("nttt序号-Number : %d",j); printf("nttt-Name : "); scanf("%s",); printf("ttt类别-kind : "); scanf("%s",&friendsj.kind); printf("ttt联系-telephone : "); scanf("%ld
8、",&friendsj.telephone); while(friendsj.telephone<0|friendsj.telephone>) printf("不合法!请重新输入 : "); scanf("%ld",&friendsj.telephone); printf("tttemail-Address : "); scanf("%s",friendsj.address.a); getchar();void Delete() int k;int j; system(&quo
9、t;cls"); printf("ntDelete 序号-Number : "); scanf("%d",&k); if(k-1<=i) for(j=k-1;j<i+1;j+) /*插入位置后的元素顺序后移*/ strcpy(,friendsj+1.name); /*交换元素容*/ strcpy(friendsj.kind,friendsj+1.kind); friendsj.telephone=friendsj+1.telephone; strcpy(friendsj.address.a,frie
10、ndsj+1.address.a); i-; else printf("输入的序号太大!"); void Modify(int j) system("cls"); Append(j);void Save() int k,j; system("cls"); printf("nntt请耐心等待,信息正在保存!n"); printf("nnnntttSaving"); for(k=0;k<20;k+) Sleep(300); printf("."); printf("
11、;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 x; char grade; char searchkind20;char searchname20;load();system(&
12、quot;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.修改
13、 *n"); printf("ttt F.保存 *n"); printf("ttt=n"); printf("ttn请选择(Choice)nntt注:输入ah或AH的字母:"); scanf("%c",&grade); switch(grade) /用switch判断使用者要选择的功能 case 'a': case 'A': j=0; while(getchar()!=0x1b&&j<=i) Show(j+); printf("nn请
14、按回车键继续!"); while(getchar()=0x1b|j>i) 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': while(i&l
15、t;50) 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(i<1) printf("
16、n没有记录-No recordsn"); printf("nn请按回车键继续!"); getchar(); getchar(); printf("nttttttt此次操作结束"); printf("nt-ttn"); break; case 'd': case 'D': system("cls"); printf("nt请输入要查询记录的相关类别: p.个人类 b.商务类 w.办公类"); scanf("%s",searchkind)
17、; 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(strcmp(searchname,)=0) Modify(j); if(i<1) printf(
18、"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&q
19、uot;); break; default: printf("nt输入有误,请输入正确的序列号!"); printf("n请按回车键继续!"); getchar(); printf("nttttttt此次操作结束"); printf("nt-ttn"); while(1);上述三部分实现整个程序的功能。四 程序源代码#include <stdlib.h>#include <string.h>#include <stdio.h>#include <windows.h>
20、FILE *fp;int i; struct address char a40; ;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;k<50;k+) j=fgetc(fp); if(j=EOF) i=k-1;return; fseek(fp,k*sizeof
21、(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",friendsj.num); printf("nt-Name:%-20s",friendsj.nam
22、e); 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序
23、号-Number : %d",j+1); printf("nttt-Name : "); scanf("%s",); printf("ttt类别-kind : "); scanf("%s",&friendsj.kind); printf("ttt联系-telephone : "); scanf("%ld",&friendsj.telephone); while(friendsj.telephone<0|friendsj
24、.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
25、",&k); if(k-1)<=i) for(j=k-1;j<i+1;j+) strcpy(,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&quo
26、t;); Append(j);void Save() int k,j; system("cls"); printf("nntt请耐心等待,信息正在保存!n"); printf("nnnntttSaving"); for(k=0;k<20;k+) Sleep(300); printf("."); printf("nn信息已经保存成功!n"); fp=fopen("friend.txt","w"); for(j=0;j<=i;j+) fwrite(
27、&friendsj,sizeof(struct ffriend),1,fp); fclose(fp);void 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
28、("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 g.推出 *n"); printf("ttt=n"); printf("ttn请选择(Choice)nntt注:输入ah或AH的字母:"
29、); scanf("%c",&grade); switch(grade) case 'a': case 'A': j=0; while(getchar()!=0x1b&&j<=i) Show(j+); printf("nn请按回车键继续!"); while(getchar()=0x1b|j>i) if(j=0)printf("nt空文档,无任何记录-Empty Noten"); else printf("nt记录已全部显示n"); printf(&
30、quot;nn请按回车键继续!"); getchar(); break; printf("nttttttt此次操作结束"); printf("nt-ttn"); break; case 'b': case 'B': while(i<50) i+; Append(i); printf("t是否继续增加?(y/n)"); a=getchar(); if(a='n') break; if(i=50) printf("nt文档已满,无法增加记录-note full&qu
31、ot;); printf("nttttttt此次操作结束"); printf("nt-ttn"); getchar(); break; case 'c': case 'C': Delete(); if(i<0) printf("n没有记录-No recordsn"); printf("nn请按回车键继续!"); getchar(); getchar(); printf("nttttttt此次操作结束"); printf("nt-ttn"); break; case 'd': case 'D': system("cls"); printf("nt请输入要查询记录的相关类别: p.个人类 b.商务类
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 妊娠期高血压患者的个案护理
- 地理(安徽卷)(全解全析)-2026年高考考前预测卷
- 化学02(广东卷)(考试版)-2026年高考考前预测卷
- 蓝色商务渐变招商引资模板
- 机加中心刀具寿命监控维护标准
- 急性心肌梗死静脉溶栓流程
- 性能测试实施方案部署细则
- 焊接工序质量异常追踪制度
- 边缘节点故障快速切换应急预案
- 市政道路路基施工组织测量配合方案
- 2026年采血点工作人员招聘试题及答案
- 2026中国人民财产保险股份有限公司中宁支公司招聘8人农业笔试参考题库及答案解析
- 2026年注册安全工程师(初级)安全生产法律法规单套试卷
- 乌鲁木齐地区房屋建筑与市政工程施工图文件审查常见问题汇编2025版(勘察专业)
- 青海青江实业集团有限公司招聘笔试题库2026
- 某水电站×kN坝顶双向门机安装质量检测记录表
- GB/T 1401-1998化学试剂乙二胺四乙酸二钠
- GA 884-2018公安单警装备催泪喷射器
- 名师课件:部编版(新)高中历史必修中外历史纲要(上)第20课《北洋军阀统治时期的政治经济与文化》
- 汉字六书课件
- 中国文字发展史课件
评论
0/150
提交评论