C语言手机名片管理系统_第1页
C语言手机名片管理系统_第2页
C语言手机名片管理系统_第3页
C语言手机名片管理系统_第4页
C语言手机名片管理系统_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、东北大学秦皇岛分校手机名片管理系统课程设计报告- 1 - 1 综合性程序设计报告设计题目 : 手机名片管理系统指导教师 : 班级: 学号: 设 计 者: 成绩: _ 设计时间 : 2010年5 月 22 日东北大学秦皇岛分校手机名片管理系统课程设计报告- 2 - 2 目录- 1 设计题目的内容、任务、具体要求及系统功能需求分析32 总体设计思路43 功能模块的具体设计63.1 界面分析10 3.1.1开始界面 10 3.1.2 添加功能的界面 10 3.1.3 显示功能的界面 11 3.1.4 删除功能的界面 12 3.1.5 查找功能的界面 13 3.1.6 修改功能的界面 14 3.1.7

2、 保存功能的界面 15 3.1.8 退出功能的界面 15 3.2 程序设计中的数据设计 16 3.3 代码清单及注释 174 功能模块的调试及测试 254.1 执行软件254.2 功能模块的调试264.2. 1.运行进入程序主菜单26 4.2.2. 添加模块 26 4.2.3. 显示模块 27 4.2.4. 删除模块 28 4.2.5. 查找模块 29 4.2.6. 修改模块 30 4.2.7. 保存模块 31 4.2.8. 退出 32 5 心得体会 33参考文献-34东北大学秦皇岛分校手机名片管理系统课程设计报告- 3 - 3 手机名片管理系统1设计题目的内容、任务、具体要求及系统功能需求分

3、析内容 :通过计算机对数据文件的存储和读取,实现名片的输入,输出,查找,修改,删除,分类存储等功能。最大可以管理300 张名片。任务 :本程序是非数值计算型算法设计,我设计出了通讯录管理系统的基本功能,并设计了简单的界面。 本程序主要考察对自定义函数的熟悉程度,本程序主要使用的是数组的相关操作,包括结构体数组的输入、输出、查找、删除等。我设计的这个通讯录系统也初步实现了人员信息的显示、删除、查找、修改、添加等必要的功能。具体要求 :建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等;能够提供添加、删除和修改通讯录信息的功能;能够提供安不同方式查询的功能;如按姓名或年龄、电

4、话等查询;将通讯录保存在文件中;能够按表格方式输出通讯录信息。系统功能需求分析(主要包含一下多种功能) :添加:添加通讯录记录显示:显示通讯录记录删除:删除通讯录记录查询:查询通讯录记录修改:修改通讯录记录保存:将信息保存到文件东北大学秦皇岛分校手机名片管理系统课程设计报告- 4 - 4 2 总体设计思路本系统首先设计出了主函数,然后根据去要实现的功能分别设计拉,显示、删除、查找、修改、 添加功能的子函数。在显示的函数设计过程中首先运用拉文件的读取等必要的知识通过把文件的内容读取到内存然后打印出来。删除函数的设计是首先从文件内找到要删除的人,然后通过写一个实现删除目的的for 循环将该人从内存

5、里删除,然后再用写的方式打开文件, 将内存内的信息写入文件,实现删除。 查找也是先打开文件,用一个字符串对比的方法找出用户要查找的人,然后打印出来。 修改也大体和删除相同,添加函数在设计时通过申请一片空间,然后通过指针将需要添加的信息添加进去,从而实现添加功能。系统功能模块图:添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。显示:可以以表格形式输出所有通讯录里的记录删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容查询:可以选择用姓名、电话、地址三种方式查询修改: 输入欲修改的那个人的名字后,再依次输入编号、姓名、 年龄、 电

6、话号码、 通讯地址、电子邮箱即可完成修改保存: ,输入文件名(带后缀名)后,即可将通讯录信息保存到文件主菜单添加显示删除查询修改保存退出东北大学秦皇岛分校手机名片管理系统课程设计报告- 5 - 5 下面就是总的程序流程图:开始执行 printf() 函数选择( a)调用input() 函数调用display() 函调用delete a record()函数调用query a tecord() 函数调用change() 函数执行printf() 退出系统调用wtiteo text() 函数a=0,1,2,3, 6 结束东北大学秦皇岛分校手机名片管理系统课程设计报告- 6 - 6 3 功能模块的具

7、体设计(1). 通讯录:typedef struct char score; /*编号 */ char name10; /*姓名 */ char num15; /*号码 */ char email20; /* 邮箱 */ char age8; /* 年龄 */ char adds20; /* 住址 */ person; void main() /*主函数 */ int n=0; for(;) switch(menu_select() case 1: printf(nt添加记录到通讯录n); /*添加记录 */ n=input(pe,n); break; case 2: printf(nttt

8、通讯录记录表n); /*显示记录 */ display(pe,n); break; case 3: printf(nt从通讯录中删除记录n); n=delete_a_record(pe,n); /*删除记录 */ printf(t); system(pause); break; case 4: printf(nt在通讯录中查找记录n); query_a_record(pe,n); /*查找记录 */ printf(t); system(pause); 东北大学秦皇岛分校手机名片管理系统课程设计报告- 7 - 7 break; case 5: printf(nt修改通讯录中的记录n); chan

9、ge(pe,n); /* 修改数据 */ printf(t); system(pause); break; case 6: printf(nt保存功能 n); writetotext(pe,n); /*保存数据 */ printf(t); system(pause); break; case 0: printf(ntt谢谢使用, 再见 !n); /*结束程序 */ printf(ntt); system(pause); exit(0); (2). 工作流程图:添加:添加通讯录记录显示:显示通讯录记录东北大学秦皇岛分校手机名片管理系统课程设计报告- 8 - 8 删除:删除通讯录记录查询:查询通讯

10、录记录先选择查询方式,以姓名查询方式为例东北大学秦皇岛分校手机名片管理系统课程设计报告- 9 - 9 修改:修改通讯录记录东北大学秦皇岛分校手机名片管理系统课程设计报告- 10 - 10 3.1 界面分析3.1.1开始界面3.1.2添加功能的界面: 选择 1 后的系统界面: 输入信息后的的系统界面*欢迎使用通讯录* *制作:自动化 5080228 里来了 * * 菜单 * *1.添加记录 * *2.显示记录 * *3.删除记录 * *4.查询记录 * *5.修改记录 * *6.保存记录 * *0.退出* *通讯录 * 请输入您选择的操作(0-6): *欢迎使用通讯录* *制作:自动化 5080

11、228 里来了 * * 菜单 * *1.添加记录 * *2.显示记录 * *3.删除记录 * *4.查询记录 * *5.修改记录 * *6.保存记录 * *0.退出* *通讯录 * 请输入您选择的操作(0-6):1 添加记录到通讯录编号:东北大学秦皇岛分校手机名片管理系统课程设计报告- 11 - 11 3.1.3显示功能的界面: 选择 2 后系统出现现有的所有人员名单: *欢迎使用通讯录* *制作:自动化 5080228 里来了 * * 菜单 * *1.添加记录 * *2.显示记录 * *3.删除记录 * *4.查询记录 * *5.修改记录 * *6.保存记录 * *0.退出* *通讯录 *

12、请输入您选择的操作(0-6):2 通讯录记录表编号姓名年龄电话号码通讯地址电子邮箱1 丁21 7776666 秦皇岛 请按任意键继续*欢迎使用通讯录* *制作:自动化 5080228 里来了 * * 菜单 * *1.添加记录 * *2.显示记录 * *3.删除记录 * *4.查询记录 * *5.修改记录 * *6.保存记录 * *0.退出* *通讯录 * 请输入您选择的操作(0-6):1 添加记录到通讯录编号: 1 姓名:丁年龄: 21 电话号码: 7776666 通讯住址:秦皇岛电子邮箱: 是否继续添加: (y/n)东北大学秦皇岛分校手机名片管理系统课程设计报告- 12 - 12 3.1.4

13、删除功能的界面: 选择 2 后系统界面输入信息后界面:*欢迎使用通讯录* *制作:自动化 5080228 里来了 * * 菜单 * *1.添加记录 * *2.显示记录 * *3.删除记录 * *4.查询记录 * *5.修改记录 * *6.保存记录 * *0.退出* *通讯录 * 请输入您选择的操作(0-6):3 从通讯录中删除记录请输入想删除记录中的名字:丁已经成功删除!请按任意键继续*欢迎使用通讯录* *制作:自动化 5080228 里来了 * * 菜单 * *1.添加记录 * *2.显示记录 * *3.删除记录 * *4.查询记录 * *5.修改记录 * *6.保存记录 * *0.退出*

14、*通讯录 * 请输入您选择的操作(0-6):3 从通讯录中删除记录请输入想删除记录中的名字:东北大学秦皇岛分校手机名片管理系统课程设计报告- 13 - 13 3.1.5查找功能的界面:输入 4 查找记录:输入信息后的系统显示:输入信息后界面:3.1.6 修改功能的界面 : *欢迎使用通讯录* *制作:自动化 5080228 里来了 * * 菜单 * *1.添加记录 * *2.显示记录 * *3.删除记录 * *4.查询记录 * *5.修改记录 * *6.保存记录 * *0.退出* *通讯录 * 请输入您选择的操作(0-6):4 在通讯录中查找记录请选择查询方式:请选择:1- 姓名2- 电话3-

15、 地址4- 返回*通讯录 * 请输入您选择的操作(0-6):4 在通讯录中查找记录请选择查询方式:请选择: 1 请输入想查询的姓名:姗姗此人编号: 0 电话号码: 9988000 通讯地址:秦皇岛电子邮箱: 请按任意键继续1- 姓名2-电话3-地址4-返回东北大学秦皇岛分校手机名片管理系统课程设计报告- 14 - 14 3.1.6修改功能的界面: 选择 5 后的系统界面: 输入信息后的的系统界面*欢迎使用通讯录* *制作:自动化 5080228 了来了 * * 菜单 * *1.添加记录 * *2.显示记录 * *3.删除记录 * *4.查询记录 * *5.修改记录 * *6.保存记录 * *0

16、.退出* *通讯录 * 请输入您选择的操作(0-6):5 修改通讯录中的记录请输入想修改的记录中的名字:*欢迎使用通讯录* *制作:自动化 5080228 里来了 * * 菜单 * *1.添加记录 * *2.显示记录 * *3.删除记录 * *4.查询记录 * *5.修改记录 * *6.保存记录 * *0.退出* *通讯录 * 请输入您选择的操作(0-6):5 修改通讯录中的记录请输入想修改的记录中的名字:姗姗编号: 4 姓名:姗姗年龄: 21 电话号码: 9999999 通讯住址:秦皇岛电子邮箱: 修改成功!请按任意键继续东北大学秦皇岛分校手机名片管理系统课程设计报告- 15 - 15 3.

17、1.7保存功能的界面:输入 6 后的系统界面: 3.1.8退出功能的界面:输入 0 后的系统界面: *欢迎使用通讯录* *制作:自动化 5080228 里来了 * * 菜单 * *1.添加记录 * *2.显示记录 * *3.删除记录 * *4.查询记录 * *5.修改记录 * *6.保存记录 * *0.退出* *通讯录 * 请输入您选择的操作(0-6):0 谢谢使用,再见!请按任意键继续*欢迎使用通讯录* *制作:自动化 5080228 里来了 * * 菜单 * *1.添加记录 * *2.显示记录 * *3.删除记录 * *4.查询记录 * *5.修改记录 * *6.保存记录 * *0.退出*

18、 *通讯录 * 请输入您选择的操作(0-6):6 保存功能保存到文件请输入所保存的文件名:f:v.txt 保存成功!请按任意键继续东北大学秦皇岛分校手机名片管理系统课程设计报告- 16 - 16 3.2 程序设计中的数据设计软件中使用的结构体和结构体数组,如:typedef struct char score; /*编号 */ char name10; /*姓名 */ char num15; /*号码 */ char email20; /* 邮箱 */ char age8; /* 年龄 */ char adds20; /* 住址 */ person; person pe80; 对用户的信息进行

19、保存,他们都以二进制的形式读写。其中: char score; char name10; char num15; char email20; char age8; char adds20 分别对编号、姓名、电话号码、邮编、年龄、住址进行储存在子函数中还使用了结构体数组:struct person pe300; 还使用了exit()、 fclose()等库函数。还运用了头文件:#includestring.h #include #include 其中还使用啦大量的子函数,例如:int input(person per,int n) void display(person per,int n) i

20、nt delete_a_record(person per,int n) void query_a_record(person per,int n) void change(person per,int n) void writetotext(person per,int n) 部分子函数的详细代码:int delete_a_record(person per,int n) char s20; int i=0,j; printf(t请输入想删除记录中的名字:); scanf(%s,s); while(strcmp(,s)!=0&in) i+; if(i=n) 东北大学

21、秦皇岛分校手机名片管理系统课程设计报告- 17 - 17 printf(t通讯录中没有此人!n); return(n); for(j=i;jn-1;j+) strcpy(perj.num,perj+1.num); strcpy(,perj+1.name); strcpy(perj.age,perj+1.age); strcpy(perj.adds,perj+1.adds); strcpy(perj.email,perj+1.email); perj.score=perj+1.score; printf(ttt已经成功删除!n); return(n-1); 通过对这些资源的合理

22、利用使系统初步实现了通讯录管理系统的基本功能。3.3 设计清单及注释:#include #include #include typedef struct char score; /*编号 */ char name10; /* 姓名 */ char num15; /* 号码 */ char email20; /*邮箱 */ char age8; /*年龄 */ char adds20; /*住址 */ person; person pe300; int menu_select() char c; do system(cls); printf(t *欢迎使用通讯录*t n); printf(t*制

23、作:自动化5080228 里来了 *tn); printf(tt*菜单 *tn); printf(tt*1. 添加记录 *); printf(tt*2. 显示记录 *); 东北大学秦皇岛分校手机名片管理系统课程设计报告- 18 - 18 printf(tt*3. 删除记录 *); printf(tt*4. 查询记录 *); printf(tt*5. 修改记录 *); printf(tt*6. 保存记录 *); printf(tt*0. 退出程序 *); printf(nt*通讯录 *tn); printf(tt请输入您选择的操作(0-6):); c=getchar(); while(c6);

24、return(c-0); int input(person per,int n) /添加记录函数 int i=0; char sign,x10; while(sign!=n&sign!=n) printf(t 编号 :); scanf(t%d,&pern+i.score); printf(t 姓名 :); scanf(t%s,pern+); printf(t 年龄 :); scanf(t%s,pern+i.age); printf(t 电话号码 :); scanf(t%s,pern+i.num); printf(t 通讯住址 :); scanf(t%s,pern+i

25、.adds); printf(t 电子邮箱 :); scanf(t%s,pern+i.email); gets(x); printf(nt是否继续添加 ?(y/n); scanf(t%c,&sign); i+; return(n+i); void display(person per,int n) /显示记录函数 int i; printf(-n); /*格式 */ 东北大学秦皇岛分校手机名片管理系统课程设计报告- 19 - 19 printf( 编号姓名年龄电话号码通讯地址电子邮箱 n); printf(-n); for(i=1;i1&i%10=0) printf(t-n);

26、 printf(t); system(pause); printf(t-n); printf(-n); system(pause); int delete_a_record(person per,int n) /删除记录函数 char s20; int i=0,j; printf(t 请输入想删除记录中的名字:); scanf(%s,s); while(strcmp(,s)!=0&in) i+; if(i=n) printf(t 通讯录中没有此人!n); return(n); for(j=i;jn-1;j+) strcpy(perj.num,perj+1.num);

27、strcpy(,perj+1.name); strcpy(perj.age,perj+1.age); strcpy(perj.adds,perj+1.adds); strcpy(perj.email,perj+1.email); perj.score=perj+1.score; printf(ttt已经成功删除!n); return(n-1); 东北大学秦皇岛分校手机名片管理系统课程设计报告- 20 - 20 void query_a_record(person per,int n) /查找记录函数 int m; printf(tn请选择查询方式:n); printf(t n

28、); printf(t 1- 姓名n); printf(t 2- 电话n); printf(t 3- 地址n); printf(t 4- 返回n); printf(t n); printf( 请选择 :); scanf(%d,&m); while(m!=1&m!=2&m!=3&m!=4) printf( 输入错误,请重新选择:); scanf(%d,&m); if(m=1) char s20; int i=0; printf(t 请输入想查询的姓名:); scanf(t%s,s); while(strcmp(,s)!=0&in)

29、 i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(t 此人编号 : %dn,peri.score); printf(t 此人年龄 : %sn,peri.age); printf(t 电话号码 : %sn,peri.num); printf(t 通讯地址 : %sn,peri.adds); printf(t 电子邮箱 : %sn,peri.email); ; if(m=2) char s20; int i=0; 东北大学秦皇岛分校手机名片管理系统课程设计报告- 21 - 21 printf(t 请输入想查询的电话:); scanf(t%s,s);

30、while(strcmp(peri.num,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(t 此人编号 : %dn,peri.score); printf(t 此人姓名 : %sn,); printf(t 此人年龄 : %sn,peri.age); printf(t 通讯地址 : %sn,peri.adds); printf(t 电子邮箱 : %sn,peri.email); ; if(m=3) char s20; int i=0; printf(t 请输入想查询的地址:); scanf(t%s,s

31、); while(strcmp(peri.adds,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(t 此人编号 : %dn,peri.score); printf(t 此人姓名 : %sn,); printf(t 此人年龄 : %sn,peri.age); printf(t 电话号码 : %sn,peri.num); printf(t 电子邮箱 : %sn,peri.email); ; void change(person per,int n) /修改记录函数 char s20; int i=0;

32、printf(t 请输入想修改的记录中的名字:); scanf(%s,s); while(strcmp(,s)!=0&in) i+; 东北大学秦皇岛分校手机名片管理系统课程设计报告- 22 - 22 if(i=n) printf(t 通讯录中没有此人!n); return; printf(t 编号 :); scanf(t%d,&peri.score); printf(t 姓名 :); scanf(t%s,); printf(t 年龄 :); scanf(t%s,peri.age); printf(t 电话号码 :); scanf(t%s,pe

33、ri.num); printf(t 通讯住址 :); scanf(t%s,peri.adds); printf(t 电子邮箱 :); scanf(t%s,peri.email); printf(t 修改成功! ); void writetotext(person per,int n) /存储记录函数 int i=0; file *fp; /* 定义文件指针 */ char filename20; /* 定义文件名 */ printf(t 保存到文件 n); /* 输入文件名 */ printf(t 请输入所保存的文件名:); scanf(t%s,filename); if(fp=fopen(f

34、ilename,w)=null) printf(t 无法打开文件n); system(pause); return; fprintf(fp,*通讯录*n); fprintf(fp,编 号姓 名年 龄电 话 号 码通 讯 地 址电子邮箱 n); fprintf(fp,-n); while(in) fprintf(fp,%-3dt%-6st%-3st%-13st%-20st%-20sn,peri.score,,peri.age,pe东北大学秦皇岛分校手机名片管理系统课程设计报告- 23 - 23 ri.num,peri.adds,peri.email); i+; fprintf(

35、fp,-n); fprintf(fp,*共有%d条记录*n,n); fclose(fp); /* 关闭文件 */ printf( 保存成功 !n); void main() /* 主函数 */ int n=0; for(;) switch(menu_select() case 1: printf(nt添加记录到通讯录n); /* 添加记录 */ n=input(pe,n); break; case 2: printf(nttt 通讯录记录表 n); /* 显示记录 */ display(pe,n); break; case 3: printf(nt从通讯录中删除记录n); n=delete_a

36、_record(pe,n); /*删除记录 */ printf(t); system(pause); break; case 4: printf(nt在通讯录中查找记录n); query_a_record(pe,n); /*查找记录 */ printf(t); system(pause); break; case 5: printf(nt修改通讯录中的记录n); change(pe,n); /*修改数据 */ 东北大学秦皇岛分校手机名片管理系统课程设计报告- 24 - 24 printf(t); system(pause); break; case 6: printf(nt保存功能 n); w

37、ritetotext(pe,n); /*保存数据 */ printf(t); system(pause); break; case 0: printf(ntt谢谢使用,再见!n); /* 结束程序 */ printf(ntt); system(pause); exit(0); 东北大学秦皇岛分校手机名片管理系统课程设计报告- 25 - 25 4 功能模块的调试及测试4.1 执行软件1、当软件中总有输入人员信息时:1. 添加人员信息:根据提示输入1 按回车输入添加的信息编号:姓名:年龄:电话号码:通讯地址:电子邮箱:每次输入完毕后按回车根据是否继续添加,输入y/n,继续或结束添加可以再根据提示使

38、用查找功能。该操作可以看见刚才添加的人员信息。2. 查看全部信息时:根据提示输入2 按回车3. 删除人员信息:根据提示输入 3 按回车显示人员信息输入需要删除人员姓名:例如(苗苗)按回车显示需要删除人员信息并删除。4. 查找人员信息:根据提示输入 4 按回车根据提示选择查找方式: 如(输入 1 按回车,按姓名查找)输入要查找的人员名字:例如(苗苗)按回车显示查找到的人员信息。5. 修改人员信息:根据提示输入5 按回车输入需要修改的人员姓名:例如(姗姗)按回车显示修改前的信息。根据提示输入修改的信息。2、当软件中总没有输入人员信息时:1. 查看全部信息时:根据提示输入2 按回车显示:无法从已有通

39、讯录输入!n可能是因为原通讯录不存在或为空!n建议你检查你的通讯录文挡! 2. 删除人员信息:根据提示输入 3 按回车输入需要删除人员姓名:例如(黑楠)按回车没有信息。东北大学秦皇岛分校手机名片管理系统课程设计报告- 26 - 26 3. 查找人员信息:根据提示输入 4 按回车输入要查找的人员名字:例如(黑楠)按回车显示 : 对不起,通讯簿中没有此人的记录。4. 修改人员信息:根据提示输入5 按回车输入需要修改的人员姓名:例如(黑楠)按回车没有显示5. 添加人员信息:根据提示输入1 按回车输入添加的信息姓名:地址:邮编:电话号码:输入完毕后按回车可以再根据提示使用查找功能。该操作可以看见刚才添

40、加的人员信息。4.2 功能模块的调试4.2. 1.运行进入程序主菜单主选单具有所有函数的功能实现的选择功能,通过主选单的操作进入各个功能。主选单主要由主函数提供,其功能由子函数实现。4.2.2. 添加模块进入添加界面东北大学秦皇岛分校手机名片管理系统课程设计报告- 27 - 27 根据提示输入 1 按回车可以根据要求添加用户想添加的人员信息。4.2.3. 显示模块查看所有人员信息界面东北大学秦皇岛分校手机名片管理系统课程设计报告- 28 - 28 可以显示全部的人员的信息。4.2.4. 删除模块删除功能界面东北大学秦皇岛分校手机名片管理系统课程设计报告- 29 - 29 4.2.5. 查找模块进入查找记录界面东北大学秦皇岛分校手机名片管理系统课程设计报告- 30 - 30 4.2.6. 修改模块进入修改界面东北大学秦皇岛分校手

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论