




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计(论文)题 目 名 称 通讯管理系统设计 课 程 名 称 C语言程序课程设计 学 生 姓 名 尹新勇 学 号 1141304065 系 、专 业 信息工程系、11电子 指 导 教 师 邓波 2012年 5月 28 日邵阳学院课程设计(论文)任务书年级专业2011级电子科学与技术学生姓名尹新勇学 号1141304065题目名称通信管理系统设计设计时间2012.5.20-6.2课程名称C语言程序课程设计课程编号131301301设计地点计算机中心一、课程设计(论文)目的学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础。二、 已知技术参数和条件本学期已经学习了C语言程序设计课程中的所有内容,具备了一些程序设计的基础知识和初步技能,再加上设计过程中可上网查阅资料,以及学校机房提供软件开发环境,具备了课程设计条件。条件:已经学习C语言的文件输入输出操作,结构体、数组等复合数据等相关技术编号。三、 任务和要求用C/C+设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。 具体功能:(1) 查看功能:(当选中某类时,显示出此类所有数据中的姓名和电话号码)(2) 增加功能:能录入新数据(3) 拔号功能:能显示出通信录中所有人的姓名(4) 修改功能:选中某个人的姓名时删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。注:1此表由指导教师填写,经系、教研室审批,指导教师、学生签字后生效;2此表1式3份,学生、指导教师、教研室各1份。四、参考资料和现有基础条件(包括实验室、主要仪器设备等)1 谭浩强.C程序设计(第三版).北京:清华大学出版社,20052 刘腾红 孙细明.信息系统分析与设计.科学出版社,20033 住群雄.系统分析与设计.电子工业出版社,2003五、进度安排2012.5.13-2012.5.16:指导教师拟定课程设计课题2012.5.17-2012.5.20:选题,下发任务书,学生搜集相关参考资料2012.5.21-2012.5.27:编程2012.5.28-2012.6.2:撰写课程设计报告2012.6.4-2012.6.6:指导教师批阅课程设计报告,评定学生成绩六、教研室审批意见教研室主任(签字): 年 月 日七|、主管教学主任意见 主管主任(签字): 年 月 日八、备注指导教师(签字): 学生(签字):目 录1 前言12 需求分析12.1 课程设计目的12.2 课程设计任务12.3 设计环境22.4 开发语言23 分析和设计23.1 模块设计33.2 系统流程图33.3 主要模块的流程图45 课程设计总结165.1 程序运行结果 / 预期运行结果16参考文献17致 谢17 1 前言为了系统的运用C程序设计方面的知识,考察自身知识结构上的不足,巩固程序设计基础,我做了一个通讯录管理系统。我觉得它的综合性比较强,不仅能运用到初级设计的顺序,选择,循环等的结构,同时还可以体现c语言的特色,比如说指针、结构体、共用体、文件。通讯录中涉及到的电话号码是整形数据,而姓名则是字符型的,同时邮箱又是整形和字符型数据的混合使用。有利于加强对数据类型的掌握。通讯录要求的基本功能是:1.数据的录入;2.数据的继续添加;3.数据的修改;4.数据的删除;5.数据的整体浏览;6.数据的查询(1).其中录入、添加、删除可用数组和文件共同完成,最终将数据储存在磁盘上,而不是内存中。(2).数据的浏览浏览可用循环和fread函数。(3).数据的查询用字符串函数中的strcmp其中大部分功能都是由调用函数实现的,这使得整个系统高度的模块化,有利于系统的维护和后续功能的扩展,同时尽量考虑使用过程中存在的问题并添加相应的提示,使得整个系统非常的智能化;另一方面,运用常见的格式控制和特殊的格式控制使得操作界面简洁明了。理论上操作界面可以直接切换,但是本程序设计中由于模块化的设计致使操作界面只能够靠循环来实现了,与理论设想相差一步。2 需求分析2.1 课程设计目的学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。通过课程设计(论文),提高学生综合运用所学知识来解决实际问题、使用文献资料、及进行科学实验或技术设计的初步能力,为毕业设计(论文)打基础。2.2 课程设计任务用C/C+设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。2.3 设计环境(1)WINDOWS 2000/2003/XP/7/Vista系统(2)Visual C+或TC集成开发环境2.4 开发语言C语言3 分析和设计3.3.1分析1、建立通讯录新年系,信息至少包含编号、姓名、年龄、电话号码、通讯地址等;2、能够提供添加、删除、查找、修改和显示通讯录信息等功能;3、能够提供按不同方式查询的功能,如按姓名或年龄等查询;4、将通讯录保存到文件中;5、能够按表格方式输出通讯录信息。3.3.2设计 (1)增加数据记录:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址后,会提示是否继续添加。(2)显示数据记录:可以以表格形式输出所有通讯录里的记录。(3)删除数据记录:输入欲删除的那个人的姓名后,会自动删除他(她)的记录内容。(4)查找数据记录:可以选择用姓名,电话,地址三种方式查询。(5)修改数据记录:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄、电话号码、通讯地址。(6)保存数据记录:输入文件明(带后缀名)后,即可将通讯录信息保存到文件。3.1 模块设计1)主函数main()2)菜单函数menu()3)数据输入函数enter()4)数据添加函数add()5)数据修改函数modify()6)记录浏览函数browse()7)数据删除函数deleter()8)数据查找函数search()9)库函数scanf()、printf()、getchar()、puts()、exit()11)处理文件的函数fopen()、fclose()、fread()、sizeof()12)处理字符串的函数strcmp()3.2 系统流程图输入新建的个数nnnJ=1J=n姓名,籍贯,电话,邮箱箱save()J+menu()3.3 主要模块的流程图输入添加的个数tnni=1i=t姓名,籍贯,电话,邮箱箱save()i+menu()t=N-n?提示错误姓名strcmp( )=0?c姓名籍贯电话号码1电话号码2邮箱输入正确数据save()menu提示错误int w ,c struct people s输出“1代表姓名,2代表电话号码”输入ww=1?输入输出姓名、籍贯、电话1、电话2、邮箱1代表电话1输入ccs.num1s.num2strcmp()=0?strcmp( )=0?否是是提示错误提示错误输入想删除的姓名i=1strcmp()=0?peoplei=0save()i=ni+是删除完毕无此记录否主函数#define N 50#include#includestruct peoplechar name20; char address50; char num115; char num215; char mail20;peopN;void printf_face()/*显示选项*/ printf(nt姓名tt籍贯ttt电话号码1tt电话号码2tt邮箱n); void printf_one(int i) printf(t%-16s%-24s%-16st%-16st%sn,,peopi.address,peopi.num1,peopi.num2,peopi.mail); void printf_n(int n) int j; for(j=0;jnn 1).姓名 2).籍贯 3).电话号码1 4).电话号码2 5).邮箱 6).所有数据 7).取消并返回); printf(请选择?: bb); scanf(%d,&c); if(c7|c7|c1); do switch(c) case 1: printf(姓名:); scanf(%s,); break; case 2: printf(籍贯); scanf(%s,peopi.address); break; case 3: printf(电话号码1:); scanf(%s,peopi.num1); break; case 4: printf(电话号码2:); scanf(%s,peopi.num2); break; case 5: printf(邮箱:);scanf(%s,peopi.mail);break; case 6: input(i); break; case 7: menu(); puts(nNow:n); printf_face(); printf_one(i); printf(n确定?nnt1).是 2).不,重新修改 3).返回不保存 bb); scanf(%d,&w1); while(w1=2); return(w1);void input(int i) printf_face(); printf(t); scanf(%st%st%st%st%s,,peopi.address,peopi.num1,peopi.num2,peopi.mail); void save(int n)/*文件保存函数*/ FILE *fp; int i; if(fp=fopen(file,wb)=NULL) printf(n无法打开n); exit(0); for(i=0;in;i+) if(0!=0) if(fwrite(&peopi,sizeof(struct people),1,fp)!=1) printf(文件写入错误!n); fclose(fp);void printf_back() int w; void browse(); void menu(); printf(nnt_.*操作成功*. _nn); printf(接下来你想干什么?nnt1).浏览所有t2).返回: bb); scanf(%d,&w); if(w=1) browse(); else menu();void main() void menu(); menu();void menu() int n, w1; void enter(); void add(); void modify(); void browse(); void deleter(); void search(); do puts(nn*欢迎进入通讯录管理系统*); puts(tt*菜单*); puts(tt*1.新建联系人*); puts(tt*2.添加联系人*); puts(tt*3.修 改*); puts(tt*4.删 除*); puts(tt*5.浏 览*); puts(tt*6.查 找*); puts(tt*7.退 出*); printf(请选择服务种类(1-7) : bb);/*向前退两格,光标落到括号中*/ scanf(%d,&n); if(n7) w1=1;getchar(); else w1=0; while(w1=1); switch(n) case 1: enter(); break; case 2: add(); break; case 3: modify(); break; case 4: deleter(); break; case 5: browse(); break; case 6: search(); break; case 7: exit(0); void enter()/*数据输入函数*/ int i,n; printf(想存入多少个记录(0-%d)?:,N); scanf(%d,&n); printf(请输入数据:n); for(i=0;in;i+) printf(n输入第 %d个记录.n,i+1); input(i); if(i!=0) save(n); printf_back();void add()/*数据添加函数*/ int i,n,k,t; n=load(); printf(想添加多少个联系人(0-%d)?:,N-n);/*添加的个数与已存在的个数有关*/ scanf(%d,&t); k=n+t; for(i=n;ik;i+) printf(n输入第 %d个记录.n,i-n+1); input(i);/*输出第i个记录*/ save(k); printf_back();/*存储所有的记录*/void modify()/*数据修改函数,与modify_data一起使用*/ struct people s; int i,n,k,w0=1,w1,w2=0; n=load(); do k=-1; printf_face(); printf_n(n); do printf(nn请输入你想修改的记录的姓名!n姓名:); scanf(%s,); for(i=0;in;i+) if(strcmp(,)=0) k=i; s=peopi; if(k=-1) printf(nn没有记录请重新输入!); while(k=-1); printf_face(); printf_one(k); w1=modify_data(k,n); if(w1=1) printf(nt_.操作成功. _.nn是否继续?nnt1).是 2).保存返回t bb); scanf(%d,&w0); w2=1; else w0=0; if(w2=0) peopk=s; if(w0!=1)&(w2=1) save(n); while(w0=1); menu();void browse()/*文件浏览函数*/ int n; n=load(); printf_face(); printf_n(n); printf(t共有 %d 记录.n,n); printf(nPress any key to back.); getchar(); menu();void search()/*数据查找函数*/ int w0,k,i,n,w1,w2; struct people s; int c; n=load(); do printf(请选择查找类别: 1).姓名 2).电话号码 bb); scanf(%d,&w1); if(w12) printf(输入错误!请重新输入!n); w2=1; while(w2=1); if(w1=1) do k=-1; do printf(nn请输入你想查找项的姓名!n姓名:); scanf(%s,); for(i=0;in;i+) if(strcmp(,)=0) k=i; s=peopi; if(k=-1) printf(nn没有记录请重新输入!); while(k=-1); printf_face(); printf_one(k); printf(n接下来想干什么?nt1).继续 2).返回菜单 bb); scanf(%d,&w0); while(w0=1); menu(); else printf(nn你想用哪个电话号码查找?nt1).电话号码1 2).电话号码2 bb); scanf(%d,&c);switch(c)case 1:printf(请输入电话号码1n电话号码1:); scanf(%s,s.num1); for(i=0;in;i+) if(strcmp(s.num1,peopi.num1)=0) k=i; s=peopi; else printf(nn没有记录请重新输入!); ;break;case 2: printf(请输入电话号码2n电话号码2:); scanf(%s,s.num2); for(i=0;in;i+) if(strcmp(s.num2,peopi.num1)=0) k=i; s=peopi; else printf(nn没有记录请重新输入!); ;break; printf_face(); printf_one(k); printf(n接下来你想干什么?nt1).继续 2).返回菜单 bb); scanf(%d,&w0); while(w0=1); menu(); void deleter()/*数据删除函数*/struct people s; int i,n,k,w0,w1; n=load(); do k=-1; printf_face(); printf_n(n); do printf(nn请输入你想删除项的姓名!n姓名:); scanf(%s,); for(i=0;in;i+) if(strcmp(,)=0) k=i; s=peopi; if(k=-1) printf(nn没有记录请重新输入!); while(k=-1); printf_face(); printf_one(k); printf(n确定?nt1).是 2).返回 bb); scanf(%d,&w0); if(w0=1) 0=0; save(n); else break; printf(nt_.操作成功._.n); printf(接下来你想干什么?nt1).继续 2).返回 bb); scanf(%d,&w1); while(w1=1); menu();5 课程设计总结 通过课程设计我更深入的学习了C程序设计,整个知识体系比以前更加完整。同时又深入的学习了文件,指针,函数等内容,为以后的学习奠定了一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年AI编程师专业技能提升指南与模拟考试题目
- 2025年铜压延加工材项目建议书
- 2025年办公商业空间设计合作协议书
- 2025年浮子水管倾斜仪项目合作计划书
- 抗震支架讲解课件
- 第3章 位置与坐标 单元测试(含答案)北师大版(2024)数学八年级上 册
- 小学化学知识题目及答案
- 2025年涡轮螺桨发动机合作协议书
- 抗洪抢险知识培训课件
- 减数分裂题库及答案
- 2025年农村应急广播系统使用与维护培训模拟题集及解析答案
- 班级日常管理规范及实施方案
- 田径短跑教学课件
- 2025-2026学年教科版(2024)小学体育与健康二年级全一册教学计划及进度表(第一学期)
- 2025年彩票技术管理员招聘笔试模拟题
- 员工思想培训课件内容
- 迷彩九月+启航青春+课件-2025-2026学年高一上学期开学军训动员主题班会
- 2025年暑期教师研修心得-研修蓄力笃行致远
- 2025秋人教版初中数学九年级上册教学计划及进度表
- 2025年中国烟花爆竹协会烟花工艺师认证考试专项练习含答案
- 2025年政府会计准则制度实施能力考试(气象事业单位)高频错题及答案
评论
0/150
提交评论