[毕业设计精品]手机通信录管理系统的设计



学生课程设计(论文)题 目: 通信录管理系统的设计 学生姓名: 学 号:所在院(系): 计算机学院 专 业: 网络工程 班 级: 09级网络工程(1)班 指导教师: 职称: 讲 师 2010年6月 25日学生处监制本科学生课程设计任务书题 目手机通信录管理系统的设计1、课程设计的目的本课程设计的目的和任务:(1)巩固和加深学生对C语言课程的基本知识的理解和掌握;(2)掌握C语言编程和程序调试的基本技能;(3)利用C语言进行简单软件设计的基本思路和方法;(4)提高运用C语言解决实际问题的能力2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)用C语言设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理一)功能要求: (1)查看功能:选择此功能时,列出下列三类选择A 办公类 B 个人类 C 商务类 ,当选中某类时,显示出此类所有数据中的姓名和电话号码) (2)增加功能:能录入新数据(一个结点包括:姓名、电话号码、分类(可选项有:A 办公类 B 个人类 C 商务类)、电子邮件)。
例如杨春 13589664454 商务类 chuny@当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号 (3)拔号功能:能显示出通信录中所有人的姓名,当选中某个姓名时,屏幕上模拟打字机的效果依次显示出此人的电话号码中的各个数字,并伴随相应的拔号声音 (4)修改功能:选中某个人的姓名时,可对此人的相应数据进行修改 (5)删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号二)其它要求:(1) 只能使用C/C++语言,源程序要有适当的注释,使程序容易阅读(2) 至少采用文本菜单界面(如果能采用图形菜单界面更好)(3) 建议使用结构和链表等数据结构(4) 学生可自动增加新功能模块(视情况可另外加分)(5)写出课程设计报告,具体要求见相关说明文档3、主要参考文献[1]谭浩强,《C程序设计》,清华大学出版社[2]刘振安,孙忱,刘燕君,《C程序设计课程设计》,机械工业出版社[3]汪诗林,《数据结构算法与应用》,机械工业出版社4、课程设计工作进度计划课程设计时间为一周,分四个阶段完成:1. 分析设计阶段。
引导学生自主学习和钻研问题,明确设计要求,找出实现方法,按照需求分析、总体设计、详细设计这几个步骤进行这一阶段前第1天完成2. 编码调试阶段:根据设计分析方案编写C语言代码,然后调试该代码,实现课题要求的功能这一阶段在第2-3天完成3. 总结报告阶段:总结设计工作,写出课程设计说明书,要求学生写出需求分析、总体设计、详细设计、编码、测试的步骤和内容这一阶段在第4天完成4. 考核阶段这一阶段在第5天完成指导教师(签字)日期年 月 日教研室意见:年 月 日学生(签字): 明安坤接受任务时间: 年 月 日课程设计(论文)指导教师成绩评定表题目名称手机通信录管理系统的设计评分项目分值得分评价内涵工作表现20%01学习态度6遵守各项纪律,工作刻苦努力,具有良好的科学工作态度02科学实践、调研7通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设计有关的材料03课题工作量7按期圆满完成规定的任务,工作量饱满能力水平35%04综合运用知识的能力10能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论05应用文献的能力5能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。
06设计(实验)能力,方案的设计能力5能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整07计算及计算机应用能力5具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等08对计算或实验结果的分析能力(综合分析能力、技术经济分析能力)10具有较强的数据收集、分析、处理、综合的能力成果质量45%09插图(或图纸)质量、篇幅、设计(论文)规范化程度5符合本专业相关规范或规定要求;规范化符合本文件第五条要求10设计说明书(论文)质量30综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学11创新10对前人工作有改进或突破,或有独特见解成绩指导教师评语指导教师签名: 年 月 日本科课程设计(论文) 摘要 摘 要手机作为现代生活通讯工具,已经与我们的生活、学习、工作密不可分,我们不可能随时带上电话本和笔,记录我们所打电话和所接电话,只要我们手指动几下,一个新的号码就可以储存在电话里面,不需要笔和纸,随时可以用。
究竟是什么赋予手机这种功能呢,原来是设计人员在手机里面装好了“手机通讯录管理系统”作为计算机专业的我们,这样的系统在学习过C语言后完全能够编写出来的,利用C语言相关知识,实现程序设计,控制关键词: 管理系统,switch,递归调用,程序- 25 -本科课程设计(论文) 目录 目 录摘 要 I目 录 II1 绪论 - 1 -1.1课程设计背景 - 1 -1.2课程设计思路 - 1 -2 概要设计 - 2 -2.1 模块设计 - 2 -2.2 详细设计 - 3 -2.2.1 信息结构体说明 - 3 -2.2.2 函数说明 - 4 -2.2.4 详细设计 - 5 -3 调试报告 - 7 -3.1 运行中问题及解决 - 7 -4.1 显示信息 - 11 -4.2 删除信息 - 11 -4.3 添加信息 - 11 -4.4修改信息 - 11 -4.5拨号功能 - 11 -4.6保存操作并退出系统 - 11 -5 设计体会 - 12 -参考文献 - 13 -附录:源代码 - 14 -本科课程设计(论文) 绪论 1 绪论1.1课程设计背景生活中我们经常遇见这种问题,就是在外面做事的时候人家有时候会给我们说联系号码,通常情况下我们是拿出手机直接输入手机,这就为我们节约了时间,纸张,我们也不必为写在纸条上的号码的丢失而感到懊恼。
虽然说我们的激励力不错,但是随着联系人的增加,我们机会是不可能的记住所有联系人的号码,所以,这就得靠手机通讯录了1.2课程设计思路做通讯录最主要的就是实用性,要简单,便于操作程序的界面要方便与用户之间的交互并结合实际中遇到的问题,如加入一个信息,修改一个信息,或是删除一个信息,这些基本的方面一定要考虑到这就大致的确定了程序的几个模块然后对每个模块进行设计,在整合起来,那么一个完善的通讯录就可以建立起来了本科课程设计(论文) 概要设计 2 概要设计2.1 模块设计所谓通讯录,就是对联系人的信息进行输入,修改,删除,查找等功能,我们按照其功能划分为几个模块,在程序开始后,可以自行选择,到进入到所需要进入的功能中,所以我们就得设计几个模块,以实现不同功能具体的模块关系如表2-1:表2-1 基本模块表模块输入删除保存查找插入排序实现功能填入信息去掉信息保存信息具体定位添加信息方便查找程序总体设计 图1 程序的总体流程图 图2:程序所有功能每一个功能都编写一个函数,多个功能函数都要用到的子模块单独编写函数,供各个实现功能的函数调用。
在主函数中设置欢迎界面和菜单处理函数,通过菜单处理函数调用各子函数处理模块,从而实现整个通讯录管理系统的功能因为各个函数之间是并列关系,所以可以通过switch函数实现各个功能函数的调用2.2 详细设计2.2.1 信息结构体说明 图3:信息结构体说明2.2.2 函数说明2.2.3 主要函数、结构体和链表void creat();/*将文件的信息读入结构体数组在转存入链表中*/void ShowA();void ShowB();void ShowC();void ShowD();void Show();void Delete();void Input();void Alter();void Dial();void Save();struct persons /*定义结构体数组用于缓存数据*/ { int num; /*编号*/ char name[20]; /*姓名*/ char e_addr[20]; /*电子邮箱*/ char tel_no[15]; /*电话号码*/ char sim_no; /*缩位号码*/ char arch; /*分类*/}persons[maxlen]; typedef struct lnode /*通讯录结构中结点的定义*/ { int num; char name[20]; char e_addr[20]; char tel_no[15]; char sim_no; char arch; struct lnode *next; }listnode,*linklist;2.2.4 详细设计(1)、新建通讯录文件 1.打开通讯录文件文本;2.如果文件存在,则用尾插法将文件中的数据依次存入链表中,然后关闭文件; 3.如果文件为不存在,则新建一个空的通讯录文件文本,然后关闭文件。
2)、显示信息 1.在提示中界面选择 显示通讯录 ; 2.输入需要显示的类别; 3.根据选择的类别调用显示函数; 4.从第一个节点开始,判断链表中的节点是否属于选择的类别; 5.如果节点属于所选类别,则显示该节点中所有信息;6.如果不属于所选类别,则将所指节点下移,直至将链表中所有属于该类别的信息全部输出为止; 7.回到提示界面3)、删除信息 1.在提示界面中选择 删除通讯录 ; 2.输入要删除的姓名; 3.如果通讯录文件空,则输出 你选择的用户不存在! ; 4.如果通讯录文件不为空,则从第一个节点开始比较,若有某一节点中的姓名与输入姓名相同时,就释放该节点; 5.若节点中所有姓名都与输入姓名不相同,则输出 你选择的用户不存在! ; 6.保存刚才的操作,并回到提示界面4)、添加信息 1.在提示界面中选择 添加通讯录 ; 2.依次输入添加的信息 姓名 电话号码 缩位号码 电子邮箱 类别 ; 3.保存刚才操作,并回到提示界面 (5)、修改信息 1.在提示界面中选择 编辑通讯录 ; 2.输入所要修改信息中的姓名,再依次输入信息 姓名 电话号码 缩位号码 电子邮箱 类别 ; 3.保存刚才的操作,并回到提示界面。
(6)、拨号功能 1.在提示界面中选择 拨号功能 ,进入拨号功能区; 2.若选择1,则将按姓名拨号,输入 姓名 ,则输出与姓名相对应的电话号码,并回到提示界面;若选择2,则将按单键拨号,输入 缩位号码,则输出与该缩位号码相对应的姓名和电话号码,并回到提示界面 (7)、保存操作并退出系统 1.在提示界面中选择 保存刚才操作并退出 ; 2.调用保存函数,该函数将刚才所有的操作存入通讯录文件,并关闭文件; 3.退出程序本科课程设计(论文) 调试报告 3 调试报告 3.1 运行中问题及解决 3.1.1 问题1:程序运行时只能运行一个函数,就必须保存并退出,否则会造成运行错误如Delete函数的代码为:void Delete() { system("cls"); /*清屏*/ printf("\n\n\t请输入要删除用户的姓名:"); cin>>name1; /*输入要删除的姓名*/ p4=head; if(p4==NULL) cout<<"你选择的用户不存在!"< 代码为:void Delete() { system("cls"); /*清屏*/ printf("\n\n\t请输入要删除用户的姓名:"); cin>>name1; /*输入要删除的姓名*/ p4=head; if(p4==NULL) cout<<"你选择的用户不存在!"< 4.2 删除信息 (1).在提示界面中选择 删除通讯录 ; (2).输入要删除的姓名 4.3 添加信息 (1).在提示界面中选择 添加通讯录 ; (2).依次输入添加的信息 姓名 电话号码 缩位号码 电子邮箱 类别 4.4修改信息 (1).在提示界面中选择 编辑通讯录 ; (2).输入所要修改信息中的姓名,再依次输入信息 姓名 电话号码 缩位号码 电子邮箱 类别 4.5拨号功能 (1).在提示界面中选择 拨号功能 ,进入拨号功能区; (2).若选择1,则将按姓名拨号,输入姓名;若选择2,则将按单键拨号,输入缩位号码4.6保存操作并退出系统 (1).在提示界面中选择 保存刚才操作并退出 本科课程设计(论文) 设计体会 5 总 结由于本课题中的许多知识点都没有学过都要靠自己到课外的资料中去查找在用的时候难免出现这样那样的错误如开始设计出来的菜单不是预想的那样,而是总个窗中出现混乱解决的这个问题的办法是调整一个系统的菜单和提示信息非常重要。 如果没有这些用户根本不知道怎么用你设计的这个系统在设计的调试过程中也无法顺利的完成调试工作有了一个清晰简单的菜单和一些提示信息这后,调试过程完成的非常顺利回顾起此次课程设计,至今我仍感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,在整整半个月的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识本次课程设计结束了,对于我的影响很大我通过这次实践学到了许多知识学到了设计一个简单的系统要注意哪些方面也使我知道自己哪些方面做得还不够但我出总结出了一点点的经验如下:1、要对系统的功能和要求做出详细的分析,并合理分解任务。 2、把分解出来的子任务,做给一个相对独立的模块3、在设计一个模块之前,要简单构想一下总界面的显视情况4、针对构想出来的界面进行程序的编写 通过这次课程设计,增加了我对软件技术的了解,虽然还不明确软件技术包含的具体内容,但从学习C语言这门课程开始,已发现程序设计的好处,他对我们数学的学习也有很大的帮助在学习C语言的过程中也学到和巩固了许多计算机应用基础知识,对计算机的机体也有了一个较为详细的了解在具体操作中对这学期所学的C语言的理论知识得到巩固加强,达到实训的目的,也发现自己的不足之处,为我问以后的c语言学习奠定了基础,同时体会到C语言具有的语句简洁,使用灵活,执行效率高等特点发现上机操作的重要作用,特别是对数组和循环有了深刻的理解通过实际操作,学会 C语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力这不仅是程序设计,更是锻炼我们处理问题的能力,同时也使我们了解到团队合作的可贵.编写程序是件细心活,稍不留神就会出错,这就必须要求我们对待事情要认真!在编写程序的过程中,错误不断出现,不同的类型(如少写了一个符号,写错了字母,用错了函数等等)层出不穷,这考验我们待事细心,耐心,能不能坚持到底,不能半途而废。 三人行必有我师,遇到问题我们一起讨论,研究,错了再写,写了在改.经过多次的修改,调试,运行,添加,终于最后在大家的欢呼声中,完成了我的任务.虽说是累了点,但我也从中找到了自己的快乐,每当完成一个新的函数时,那心情是激动啊,这毕竟是自己弄出来的,同时也使我感受到了学习的快乐!生活上我们也同样如此,以这种精神对待生活,对待生命,我想,我们的人生会更美好,路是自己走出来的,也只有经过无数次的磨练,无数次地坚定我们的信心,锻炼我们的意志渐渐地使自己才能够使自己成熟起来,走出一片属于自己的天空参考文献本科课程设计(论文) 参考文献参考文献[1]谭浩强,《C程序设计》,清华大学出版社[2]刘振安,孙忱,刘燕君,《C程序设计课程设计》,机械工业出版社[3]汪诗林,《数据结构算法与应用》,机械工业出版社[4] CSDN下载频道.[5]朱若愚.数据结构[M]. 电子工业出版社[6]晋良颍.数据结构[M].人民邮电出版社[7]刘大有.数据结构[M]. 高等教育出版社本科课程设计(论文) 源代码附录:源代码1.源程序清单#include