ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:25.38KB ,
资源ID:7597176      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7597176.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C语言课程设计通讯录管理系统.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

C语言课程设计通讯录管理系统.docx

1、C语言课程设计通讯录管理系统 Prepared on 24 November 2020C语言课程设计通讯录管理系统*科技大学本科生课程设计说明书题 目:C语言课程设计 通讯录管理系统学生姓名:* 学 号:*专 业:软件工程班 级:1指导教师:*内蒙古科技大学课程设计任务书课程名称C语言课程设计设计题目通讯录管理系统指导教师* 时间一、教学要求1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任

2、意选择一题,独立完成,题目选定后不可更换。通讯录管理系统现有一批通讯录的数椐,要求输入计算机并存放在内存中,然后增加若干个新通讯录的记录,并可输出通讯录清单,实现文件存盘和读入文件进行修改的功能。通讯录的基本信息包括编号,姓名,电话号码,QQ号码,电子邮件,通讯地址。要求设计菜单来调用其各功能模块:v新建文件、打开文件、保存信息到文件v输入记录、输出记录v查询记录(至少具有两种查询方式,例如以姓名查询和以电话号码查询)v修改、插入和删除记录三、设计要求及成果1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)2. 写出详细设计说明(至少包括功能实现分析和

3、模块流程图)3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号)4. 设计完成的软件要便于操作和使用5. 设计完成后提交课程设计报告(请严格按照模板进行排版)四、进度安排第一天 选择课程设计题目,分析课题的要求第二天 编程第三天 编程及调试第四天 写课程设计报告第五天 提交课程设计报告(打印稿及电子稿)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。六、建

4、议参考资料1C语言程序设计,谭浩强,清华大学出版社2C语言程序设计课程设计,刘振安,机械工业出版社。第一章 需求分析1.1引言通过程序设计,达到理论与实际应用相结合,提高对信息管理系统的分析能力,能够根据实际应用,初步实现系统功能模块及算法的设计,通过编程基本实现信息管理系统。1.2任务概述1.采用结构体的形式对数据进行输入输出。2.可以对通讯录进行简单的排序,筛选,删除。3.可以对任意信息就行修改。4.可以把数据已文件的形式输入输出。5.任意浏览信息。1.3数据描述以所示的文本数据位初始数据进行简单操作,也可另行添加。1.4功能需求实现以上功能需求。1.5性能需求1.能够进行简单的数据处理。

5、2.具有对新信息处理打印打能力。1.6运行需求1输入个人信息时以例如按照“编号、姓名、年龄、电话号码 、通讯地址 、 电子邮箱”的顺序输入。2输入时编号年龄、电话号码、通讯地址、电子邮箱以数字格式输入,输入姓名以文字输入。3以(Y/N)形式判断时,仅限N或者n为否,其他字符真。4进入排序功能后,要想见排序信息,到主菜单下见浏览信息功能。1.7任务计划1.样例输入和输出2.本通讯录管理程序,可以对数据进行输入输出,集排序,修改,打印,删除等功能。下面以上述数据描述的数据为测试数据进行简单输入输出。1.未排序前的信息4)删除界面:删除后,通讯录里的显示记录:5)查询界面:以姓名查询方式为例:6)修

6、改界面:修改后,通讯录里的显示记录:7)保存界面:文件截图:第二章概要设计2.1总体设计添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。显示:可以以表格形式输出所有通讯录里的记录删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容查询:可以选择用姓名、电话、地址三种方式查询修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱即可完成修改保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件2.2数据类型设计(或数据结构设计)typedef struct char score; /*编号

7、*/ char name10; /*姓名*/ char num15; /*号码*/ char email20; /*邮箱*/ char age8; /*年龄*/ char adds20; /*住址*/ Person;以结构体数组类型输入数据。 2.3接口设计 表:函数列表函数名函数首部函数功能int menu_select() void运行界面int Input(Person per,int n) int输入函数void Display(Person per,int n)Void输出函数int Delete_a_record(Person per,int n) int删除数据void Quer

8、y_a_record(Person per,int n) void查询数据void Change(Person per,int n)void更改数据void WritetoText(Person per,int n)void把数据写到文件2.4运行界面设计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); b

9、reak; 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); break; case 5: printf(nt修改通讯录中的记录n); Change(pe,n); /*修改数据*/ printf(t); system(pause); break; case 6: printf(nt

10、保存功能n); WritetoText(pe,n); /*保存数据*/ printf(t); system(pause); break; case 0: printf(ntt谢谢使用,再见!n); /*结束程序*/ printf(ntt); system(pause); exit(0); 以switch为关键控制选着要调用函数的开关,然后以主菜单为主界面,其他功能为扩展界面来运行通讯录管理系统。主菜单代码为:int menu_select() char c; do system(cls); printf(tt *通讯录* n); printf(tt |-|n); printf(tt 1. 添加

11、记录 n); printf(tt 2. 显示记录 n); printf(tt 3. 删除记录 n); printf(tt 4. 查询记录 n); printf(tt 5. 修改记录 n); printf(tt 6. 保存记录 n); printf(tt 0. 退出程序 n); printf(tt|-|n); printf(tt请您选择(0-6):); c=getchar(); while(c6); return(c-0); 如图所示为主要运行界面:第三章详细设计3.1输入模块设计int Input(Person per,int n) int i=0; char sign,x10; while(

12、sign!=n&sign!=N) printf(t编号:); scanf(t%d,&pern+i.score); printf(t姓名:); scanf(t%s,pern+i.name); printf(t年龄:); scanf(t%s,pern+i.age); printf(t电话号码:); scanf(t%s,pern+i.num); printf(t通讯住址:); scanf(t%s,pern+i.adds); printf(t电子邮箱:); scanf(t%s,pern+i.email); gets(x); printf(nt是否继续添加(Y/N); scanf(t%c,&sign);

13、 i+; return(n+i); 3.2输出模块设计void Display(Person per,int n) int i; printf(-n); /*格式*/ printf(编号 姓名 年龄 电话号码 通讯地址 电子邮箱n); printf(-n); for(i=1;i1&i%10=0) printf(t-n); printf(t); system(pause); printf(t-n); printf(-n); system(pause); 3.3查找模块设计void Query_a_record(Person per,int n) int m; printf(tn请选择查询方式:n

14、); printf(tn); printf(t1-姓名 n); printf(t2-电话 n); printf(t3-地址 n); printf(t4-返回 n); printf(tn); 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(peri.name,s)!=0&in) i+; if(i=n) printf(t

15、通讯录中没有此人!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; printf(t请输入想查询的电话:); scanf(t%s,s); while(strcmp(peri.num,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n);

16、return; printf(t此人编号: %dn,peri.score); printf(t此人姓名: %sn,peri.name); 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); while(strcmp(peri.adds,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; pri

17、ntf(t此人编号: %dn,peri.score); printf(t此人姓名: %sn,peri.name); printf(t此人年龄: %sn,peri.age); printf(t电话号码: %sn,peri.num); printf(t电子邮箱: %sn,peri.email); ;3.4删除模块设计int Delete_a_record(Person per,int n) char s20; int i=0,j; printf(t请输入想删除记录中的名字:); scanf(%s,s); while(strcmp(peri.name,s)!=0&in) i+; if(i=n) pr

18、intf(t通讯录中没有此人!n); return(n); for(j=i;jn-1;j+) strcpy(perj.num,perj+1.num); strcpy(perj.name,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); 3.5更改模块设计void Change(Person per,int n) ch

19、ar s20; int i=0; printf(t请输入想修改的记录中的名字:); scanf(%s,s); while(strcmp(peri.name,s)!=0&in) i+; if(i=n) printf(t通讯录中没有此人!n); return; printf(t编号:); scanf(t%d,&peri.score); printf(t姓名:); scanf(t%s,peri.name); printf(t年龄:); scanf(t%s,peri.age); printf(t电话号码:); scanf(t%s,peri.num); printf(t通讯住址:); scanf(t%s

20、,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(filename,w)=NULL) printf(t无法打开文件n); system(pause); re

21、turn; fprintf(fp,*通讯录*n); fprintf(fp,编号 姓名 年龄 电话号码 通讯地址 电子邮箱n); fprintf(fp,-n); while(in) fprintf(fp,%-3dt%-6st%-3st%-13st%-20st%-20sn,peri.score,peri.name,peri.age,peri.num,peri.adds,peri.email); i+; fprintf(fp,-n); fprintf(fp,*共有%d条记录*n,n); fclose(fp); /*关闭文件*/ printf(保存成功!n); void main() /*主函数*/

22、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_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); /*修改数据*/ 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);

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

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