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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

课程设计报告书 倪博 完结篇 w.docx

1、课程设计报告书 倪博 完结篇 w(此文档为word格式,下载后您可任意编辑修改!)课程设计报告书通信录管理系统设计 班 级: 方0953-1 学 号: 姓 名: 倪博 指导教师: 杨子光 石 家 庄 铁 道 大 学 四 方 学 院2010年7月15日1.选择题目题目:通信录管理系统设计2.内容摘要摘要:随着科技的进步和信息产业的飞速发展,通讯录成为了现代生活中一个重要的工具。此通讯录管理系统为方便管通讯信息,帮助企业公司职员的联系旨在服务社会。整个系统程序采用c语言来实现。c语言是目前国际上比较流行的计算机高级编程语言之一,因其简洁、使用方便且具备强大的功能而受到编程人员的普通青睐。它既适合作

2、为系统描述语言,也可用来编写系统软件,还可用来编写应用软件。用C/C+设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。本文介绍课程设计课题的选题意义,说明了本系统提供的主要功能:查询,修改,添加,删除等,并画出功能框图,最后给出了作者在小学期设计过程的体会。3.索引关键字关键词:通讯录管理,查询,添加,功能框图4. 目录1. 题目要求42. 设计思想3. 系统完成功能及框图4. 界面设计5. 核心算法及说明-86. 结论-117. 后记-118. 参考资料5.正文5.1课程设计题目要求5.1.1实验目的培养学生独立分析问题、解决问题、查阅资料以及自学能力,以适应信息管理行业日新月异

3、的发展形势;本次实验是以学生独立思考解决问题为主,教师指导为辅,结合上机操作,完成指定的任务,作出设计报告。5.1.2设计要求 (建立通讯录信息,信息至少包含编号、姓名、年龄、电话、通讯地址、电子邮箱等; 能够提供添加、删除和修改通讯录信息的功能; 能够提供安不同方式查询的功能;如按姓名或年龄、电话等查询; 将通讯录保存在文件中; 能够按表格方式输出通讯录信息。设计一个实用的通讯录管理系统,能以简便高效的方式对通讯录进行管理和检索。5.2设计思想 1.在设计时考虑以下几个方面:操作简单。该系统要求设计的界面美观,操作方便。便于使用人员快速上手。易于维护。一个软件的好坏,关键在于产品的可靠,稳定

4、,便于维护。易于升级。随着社会的发展,对系统的要求会越来越高。要求系统具有更高的安全性;更丰富的功能以及更快的操作速度。所以在设计时要考虑到到以后的升级问题。实用性。注重采用成熟而实用的技术,使系统建设的投入产出比最高,能产生良好的反应。2开发语言的选择本系统的编译选择的是C语言,作为一种计算机程序设计语言,C语言既具有高级语言的特点,又具有汇编语言的特点。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。因此,它的应用范围广泛,不仅仅是在软件开发上,而且各类科研都需要用到C语言,具体应用比如单片机以及嵌入式系统开发。C语言具有简介紧凑、

5、灵活方便、运算符丰富、数据结构丰富、语法限制不太严格、程序自由度大、程序执行效率高、可移植性好等优点。它既能用来编写不依赖计算机硬件的应用程序,又能用来编写各种系统程序,它是一种受欢迎、应用广泛的程序设计语言。综上所述,选择C语言作为本系统的编译时非常适合的。5.3系统完成功能及功能框图添加:可以添加通讯录记录,依次输入编号、姓名、年龄、电话号码、通讯地址、电子邮箱后,会提示是否继续添加。显示:可以以表格形式输出所有通讯录里的记录删除:输入欲删除的那个人的名字后,会自动删除他(她)的记录内容查询:可以选择用姓名、电话、地址三种方式查询修改:输入欲修改的那个人的名字后,再依次输入编号、姓名、年龄

6、、电话号码、通讯地址、电子邮箱即可完成修改保存:,输入文件名(带后缀名)后,即可将通讯录信息保存到文件5.4界面设计本系统针对,信息查询和修改做了5个界面,下面举例说明部分界面得设计。5.4.1建立一个登录界面建立一个界面做登录界面,包括信息录入和信息查询5.4.2添加通讯录信息5.4.3保存记录界面5.5核心算法及说明1、 运用顺序程序设计结构,考查getchar,printf,scanf的知识点,例如:printf(请输入便条的数量:); scanf(%d,&num);2、 运用循环设计结构,考查for,ifelse循环的知识点,例如:for(j=i;jn-1;j+) strcpy(per

7、j.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; 1、 运用数组知识,2、 运用函数知识,3、 运用指针,文件,结构体等知识点。4、 核心代码 通讯录:typedef struct char score; /*编号*/ char name10; /*姓名*/ char num15; /*号码*/ char ema

8、il20; /*邮箱*/ 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 通讯录记录表n); /*显示记录*/ Display(pe,n); break; case 3: printf(nt从通讯录中删除记录n); n=Delete_a_record(pe,n); /*删除记录*/

9、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; c

10、ase 0: printf(ntt谢谢使用,再见!n); /*结束程序*/ printf(ntt); system(pause); exit(0); 5.6结论现在社会人与人之间的交往越来越频繁,通讯录成为生活的必须品,对通讯录进行必要的管理,对通讯录中的人进行快速查询记录提供了极大方便在以往学习的知识、参考课外资料和寻求老师的帮助下终于完成了一个简单的软件。这个软件功能非常简单,因而我想,在实际运用中,还有些不足。因为知识和能力的不足,我们还无法做出满足实际需求的优秀软件,许多功能还欠缺和不完善,如无法实现快速查询。 由于我的知识浅薄,经验不足及阅历颇浅,因此,在该系统的设计方面还有很多不足

11、,比如功能过少,界面不醒目等问题,我会在学习的使用过程中,根据学习的具体要求不断的修改、完善,争取使系统慢慢趋于完美。在具体操作中对这学期所学的C语言的理论知识得到巩固,达到实训的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到C语言具有的语句简洁,使用灵活,执行效率高等特点。发现上机实训的重要作用,特别是对数组和循环有了深刻的理解。 6.后记这次实践中我们学习到了以前在课本上无法理解和没有见到过的知识,提高自身的知识面和实践能力,收获颇丰。因为我刚接触编程不久,对于数据结构、软件工程这些专业名词知之甚少;甚至对于编程应该如何开始都感觉茫然,不知该从哪里下手。但是我知道编写

12、程序不能急于求成,必须循序渐进。首先在动手以前,必须理解用户对于程序的要求,从而明确所要编写程序的功能,倘若不知道所要编的程序目的何在,那么编程时就会失去目标,程序自然编不好,也就是说要先进行“可行性分析”。然后,要明确编程思想,即在编程之前要对程序有一个总体的构思、总体的框架;这样编程时才能条理清晰,不致出现程序结构混乱这样的大错误。完成了总体设计之后,再进行详细设计、模块设计,这样编程时才能心中有数。我是通过把一些主要的函数、算法用笔先写出来,这样做是为了在真正编写程序的时候不至于忙东忙西,把思路打断。否则要是在上机时才进行构思,往往只有看着屏幕发呆的份。设计大体完工之后,就可以敲上屏幕了

13、。在我们的辛勤努力下,终于做出一个简单的软件,虽然这个软件功能非常简单,而且有很多不足,离实际应用还有很大的距离,但是我们在发现问题的过程中不断去完善自己制作的软件,力求把它作到趋于完美。 在我们制作程序的过程中,老师和同学们都给与了我们很大的帮助,帮助我们查阅资料寻找知识点,指出我们的软件的错误和不足,在我们遇到困难时给我们鼓励和帮助,在这里,我向这些无私帮助我的人表示由衷的谢意。7、参考文献:1.c语言成语设计教程2.王萍. C+面向对象程序设计. 北京:清华大学出版社,2002 3.谭浩强. C程序设计(第二版). 北京:清华大学出版社,1999 8、附录#include #includ

14、e #include #include int n=0; /定义全局变量 存储电话联系人个数struct phone_info /定义结构体 存储联系人信息 char name20; /姓名 char phone20; /电话 char type; /分类 char email20; /邮箱 struct phone_info *next; /指向下一个节点的指针;/*-错误函数-*/所需参数:无/函数功能:显示错误信息/返回参数:无void error() printf(代码错误nn); system( pause );/*-输出函数-*/所需参数:链表头指针/函数功能:输出链表中的联系人信

15、息/返回参数:无void output(struct phone_info *head) struct phone_info *p1=head,*p2; system(cls); /清屏 if(head=NULL) /如果当前链表头指针为空 printf(当前没有任何联系人信息nn); system( pause ); return; /返回 printf(电话联系薄(共%d条信息)nn,n); for(;) p2=p1-next; printf(姓名:%sn,p1-name); printf(电话:%sn,p1-phone); if(p1-type=A|p1-type=a) printf(类

16、别:办公类n); else if(p1-type=B|p1-type=b) printf(类别:个人类n); else printf(类别:商务类n); printf(邮箱:%sn,p1-email); printf(n); if(p1-next=NULL) /如果当前指针所指向的结构体中next指向空则链表输出完毕 break; /返回 p1=p2; /*-新增函数-*/所需参数:链表头指针/函数功能:新增联系人信息 并自动添加到链表末尾/返回参数:链表头指针struct phone_info *new_info(struct phone_info *head)/新增 struct phon

17、e_info *p1,*p2,*p; char c; int flag; system(cls); /清屏 for(;) if(n=15) /判断当前联系人数目是否超过系统限制 printf(存储空间已满,不能再录入新数据!nn); system( pause); return head; if(n=0) /判断当前联系人数目是否为0 head=p1=p2=(struct phone_info *)malloc(sizeof(struct phone_info); /新建结构体 并将结构体指针赋予链表头指针 p1-next=NULL; else p1=head; p2=(struct phon

18、e_info *)malloc(sizeof(struct phone_info); /新建结构体 printf(请输入要新增的联系人姓名:n(如果输入“0”则停止新增,并返回主菜单)n); scanf(%s,p2-name); if(strcmp(p2-name,0)=0) /判断输入的姓名是否为“0” free(p2); /为“0”则释放新开辟的空间 return head; /返回 printf(n请输入联系人的电话号码:n); scanf(%s,p2-phone); for(flag=1,p=head;n!=0&p!=NULL;) /判断是否输入了相同的联系人电话 if(strcmp(

19、p2-phone,p-phone)=0) printf(n录入了相同的联系人电话nn); system( pause ); flag=0; /标志位赋“0” free(p2); system(cls); break; /退出循环 p=p-next; if(flag=0) /判断标志位是否为“0” continue; /如果为“0”则进入下一次循环 printf(n请输入联系人的类别:n(A为办公类 B为个人类 C为商务类)n); scanf(%c,&c); /保存上一次输入的回车键 scanf(%c,&p2-type); printf(n请输入联系人的电子邮箱:n); scanf(%s,p2-

20、email); while(p1-next!=NULL) p1=p1-next; /找到链表的尾部 p1-next=p2; /将链表的尾部指向新添加的联系人 p2-next=NULL; /新的链表尾部赋结束标记 system(cls); printf(新增成功nn); n+; /保存的联系人数目加1 return head;/*-删除函数-*/所需参数:链表头指针/函数功能:在链表中删除指定的联系人信息/返回参数:链表头指针struct phone_info *del(struct phone_info *head) struct phone_info *p1=head,*p2; char n

21、ame20; system(cls); for(;) if(n=0) /判断当前联系人数目是否为0 printf(当前没有任何联系人信息nn); system(pause); return head; /返回 output(head); /调用输出函数 显示当前所有联系人的信息 printf(请输入要删除的联系人的姓名:n(如果输入“0”则停止删除,并返回主菜单)n); scanf(%s,name); if(strcmp(name,0)=0) /判断输入的姓名是否为0 return head; /返回 else if(strcmp(name,head-name)=0) /找到指定的联系人所在节

22、点 if(head-next=NULL) /判断指定的联系人是否为链表中唯一的联系人信息 printf(n删除成功nn); printf(当前没有任何学生信息nn); system(pause); free(head); /释放头节点 n-; /保存的联系人数目减1 return NULL; /返回空指针 head=p1-next; /指定的联系人为链表的头节点 将下一节点的地址赋予链表头指针 free(p1); /释放头节点 printf(删除成功nn); system(pause); n-; else /指定的联系人不是链表的头节点 p1=p2=head; for(;) /找到指定的联系人

23、所在节点 if(strcmp(name,p1-name)=0) p2-next=p1-next; free(p1); /释放节点 printf(删除成功nn); system(pause); n-; /保存的联系人数目减1 system(cls); /清屏 break; /退出循环 p2=p1; p1=p1-next; /指向下一节点 if(p1=NULL) /节点为空 printf(n姓名为%s的联系人不存在!nn,name); system(pause); system(cls); /清屏 break; /退出循环 return head; /返回/*-音乐函数-*/所需参数:存储数字的字

24、符串指针/函数功能:依次显示字符串里存储的数字并放出指定声音/返回参数:无void music(char *p) int freq=1046; /定义音频数组 int i; printf(n); for(i=0;*(p+i)!=0;i+) printf(%c,*(p+i); /显示数字 Beep(freq*(p+i)-48,500); /调用扬声器发出指定频率的声响 printf(n);/*-拨号函数-*/所需参数:链表头指针/函数功能:在链表中查找指定的联系人 并模拟拨号效果/返回参数:无void diag(struct phone_info *head) char name20; stru

25、ct phone_info *p1; system(cls); for(;) if(n=0) /判断当前联系人数目是否为0 printf(当前没有任何联系人信息nn); system(pause); return; system(cls); output(head); /调用输出函数 显示当前所有联系人的信息 printf(请输入要拨号的联系人姓名:n(如果输入“0”则停止拨号,并返回主菜单)n); scanf(%s,name); if(strcmp(name,0)=0) /判断输入的姓名是否为0 return; /返回 else p1=head; for(;) if(strcmp(name,

26、p1-name)=0) /找到指定联系人所在节点 music(p1-phone); printf(n拨号成功nn); system(pause); break; p1=p1-next; /找到下一节点 if(p1=NULL) /指针为空 printf(n姓名为%s的联系人不存在!nn,name); system(pause); break; /*-修改函数-*/所需参数:链表头指针/函数功能:在链表中修改指定联系人的信息/返回参数:无void revise(struct phone_info *head) int flag; int a; char c; char name20; struct phone_info *p1; system(cls); for(;) if(n=0) /判

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

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