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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C语言程序设计课程.docx

1、C语言程序设计课程重庆科技学院C语言程序设计课程设计报告 学 院:_电气与信息工程学院_ 专业班级: 自动化2013级3班 学生姓名: 田瑜 学 号: 2013441202 设计地点(单位)_计算机基础自主学习中心 _ _设计题目:通讯录管理系统的设计与实现_ _ 完成日期: 2014 年 9 月 22 日 指导教师评语: _ _ 成绩(五级记分制):_ _ 指导教师(签字):_ _课程设计任务书设计题目:通讯录管理系统的设计与实现学生姓名课程名称C语言课程设计专业班级自动化2013地 点计算机基础自主学习中心起止时间2014.9.9-2014.9.26设计内容及要求内容强化C语言中有关结构体

2、数组及外部文件的内容,独立设计通讯录管理系统,并编程实现以下功能:1、整个系统均用C语言实现;2、利用结构体数组来实现通讯录的数据结构设计;3、系统具有输入、显示、查询、删除、排序、插入,保存、读取基本功能;4、系统的各个功能模块都用函数的形式来实现;5、要求能将学生信息保存在文件中。6、要求能从文件中读取学生信息并进行相关处理。设计参数1、每一条记录应包括一个人的学号、姓名、电话、班级、通讯地址等信息。2、输入功能:进入后可以进行多条记录的输入并保存。3、显示功能:完成全部学生或满足指定条件记录的显示。4、查找功能:完成按学号或姓名查找学生记录,并显示。5、插入功能:按学号顺序插入一条学生记

3、录。6、保存功能:将学生记录保存在自定义名称的文件中。7、读取功能:将保存在文件中的学生记录读取出来。8、排序功能:按学号进行排序。9、有一个文本菜单来调用各个功能。进度要求1. 布置设计题目,讲解要求和说明 2014.9.92. 确定设计任务,确定具体的功能,熟悉相关知识 2014.9.93. 按功能需求确定程序的主要模块 2014.9.104. 编程实现程序的功能 2014.9.11 2014.9.155. 调试并完善程序 2014.9.16 2014.9.226. 撰写课程设计报告 2014.9.23 - 2014.9.247. 提交课程设计报告并答辩 2014.9.25参考数据1.谭浩

4、强,C程序设计(第3版),清华大学出版社, 2005.22.谭明金,俞海英,C语言程序设计实例精粹,电子工业出版社,2007.1其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共享的,在设计内容、参数、要求等方面应有所区别。教研室主任:王双明 指导教师:陈刘奎、熊茜、许莎、裴仰军 2014年 9月 2日摘要本次课程设计的题目是通讯录管理系统,次编程系统主要完成学生信息入库,按姓名,电话等方式进行查询输入,主要包括学生信息的输入输出。每一个学生的信息分别为:姓名,电话、地址、班级、学号等。并且要有数据的删

5、除,排序,插入等功能以方便管理查询。而且本程序主要采取图形友好界面,对用户进行温馨提示。C语言课程设计实践教学占有重要的位置,不仅体现了理论和实践紧密结合,而且可以提高我们的综合素质,培养我们的创新精神与实践能力的作用,增强我们的创新能力、认知能力、实践能力以及把教材知识与实际运用程序相结合。这个程序主要考察了学生对结构体,指针,文件的操作,以及C基本用法的掌握,所以完成此题目要求的设计能力,尤其是一种大局意识,如何调试程序也非常重要,通过这个程序可以学到以前调试短程序的经验。关键字:通讯录管理系统 学生信息入库 查询 删除 排序目录1 软件需求分析说明12 主函数模块化设计23 各功能模块的

6、具体设计.3 3.1 学生信息的输入3 3.2 输出显示学生信息5 3.3 查找学生信息6 3.4 插入记录7 3.5 学生信息的排序8 3.6 删除学生信息94 程序流程图10 4.1 学生信息输入流程10 4.2 学生信息显示流程10 4.3 学生信息查找流程11 4.4 学生信息插入流程11 4.5 学生信息排序流程12 4.6 学生信息删除流程 135 软件测试14 5.1 学生信息输入14 5.2 学生信息显示15 5.3 学生信息查找16 5.3.1学生姓名查找16 5.3.2学生电话查找16 5.4 学生信息插入16 5.5 学生信息排序17 5.6 学生信息删除 186 总结

7、19 参考文献20致谢21 1软件需求分析说明 学生通讯录管理系统包括数据录入、信息显示、按姓名查找、按电话查找、插入记录,信息排序、删除数据等功能。编译程序时采取模块化思想,先完成控制台程序,在按模块化添加。通过函数的调用来达成整个程序协调工作。1 经过分析,整个程序大致分为七个子函数,分别对应各个功能,实现模块化编程,由于程序中有各种重复的步骤,应此要有循环体的出现,以及函数的调用等。来达到各个功能正常使用。2 为了让系统用户界面友好,软件功能明确,操作方便,应采取直接用printf函数的方式在界面上输出可供用户选择的菜单。据此应该能够很好的完成要求。3 本程序结构清晰,能够很方便的添加功

8、能,以至于将来能很方便的实现程序的修改,从而更好的实现程序的功能。3 本程序采用了人文主义的原则,使用了大量温馨的提示语句,能够给使用者提供一个温馨的使用环境,能到使用者感到人性化的关怀。2 主函数模块化设计 主要的程序模块设计图 主函数控制台程序主要通过模块化的方式进行整体设计,随后在逐步按每个模块添加子程序,从而完成整个函数的编译,具体函数框架图如图2.1所描绘。主菜单输入记录保存记录删除记录按姓名排序插入记录按电话查找按姓名查找显示记录按电话删除按姓名删除2.1 3 各功能模块的具体设计3.1 学生信息的输入:通过对函数的调用实现学生信息的输入,输入信息分别为,姓名、电话、号码、地址、班

9、级、学号等,并且通过函数的调用实现输入的循环,并且使用了温馨的提示语句,让界面更加简约,清晰。(附带子程序)。adduser()/调用函数 printf(ntt请输入学生信息 n); printf(ntt输入姓名:); scanf(%s,&studentnum.name); printf(ntt输入电话号码:); scanf(%s,&studentnum.phone); printf(ntt输入地址:); scanf(%s,&studentnum.adress); printf(ntt输入班级:); scanf(%s,&studentnum.clas); printf(ntt输入学号:); s

10、canf(%s,&studentnum.id); num+; printf(ntt是否继续添加?(Y/N):); if (getch()=y) adduser();/通过函数的调用达到循环效果 return(0); 3.2 输出显示学生信息:当用户进入1后,系统会一步一步的显示全部学生信息,通过对list()函数的调用,以及for (i=0;inum;i+)该结构,使函数输出能够达到循环输出效果,并且输入为一人一个按键输入,是信息显示更加明白,令人赏心悦目。list() int i; system(cls); if(num!=0) printf(ntt以下为通讯录所有信息); for (i=0

11、;inum;i+) printf(ntt姓名: %s,studenti.name); printf(ntt电话: %s,studenti.phone); printf(ntt地址: %s,studenti.adress); printf(ntt班级: %s,studenti.clas); printf(ntt学号: %s,studenti.id); printf(tt); if (i+1num) printf(ntt_); system(pause); printf(ntt); else printf(ntt通讯录中无任何纪录); printf(ntt按任意键返回主菜单:); getch();

12、 return(0);3.3 查找学生信息记录:查找学生信息分为两种查找方式,按2为按姓名查找,按3为按电话号码进行查找。用户可根据自己的需要选择查找方式,若无该学生的信息,则系统会给出提示“没有相同用姓名的用户”等。通过strcmp函数对姓名进行比较,如果重合则输出该用户信息,附带原代码(if (strcmp(studenti.name,name)=0)); search() int mark=0; int i; int a=0; printf(ntt按姓名查找 ); char name20; printf(ntt请输入姓名:); scanf(%s,name); for(i=a;inum;i

13、+) if (strcmp(studenti.name,name)=0) printf(ntt以下是您查找的用户信); printf(ntt姓名: %s,studenti.name); printf(ntt电话: %s,studenti.phone); printf(ntt地址: %s,studenti.adress); printf(ntt学号:%s,studenti.id); printf(ntt); mark+; if (i+1)num) printf(ntt是否继续查找相同名字的用户信息:(y/n); if (getch()=y) a=i; continue; else return(

14、0); else printf(ntt按任意键返回主菜单); getch(); return(0); if(mark!=0) printf(ntt没有相同姓名的用户纪录); printf(ntt按任意键返回主菜单); getch(); return(0); 3.4 插入记录: 在主菜单直接输入4则进入插入功能,通过插入功能用户可以随意插入自己想要添加的信息,通过该函数(if (fwrite(&studenti,sizeof(struct record),1,fp)!=1))进行将添加的用户信息插入进保存的文件夹中。 add() int i; if (fp=fopen(student.bin,w

15、b)=NULL) printf(ntt文件打开失败); for (i=0;inum;i+) if (fwrite(&studenti,sizeof(struct record),1,fp)!=1) printf(ntt写入文件错误!n); printf(ntt请输入用学生信息 n); printf(ntt输入姓名:); scanf(%s,&studentnum.name); printf(ntt输入电话号码:); scanf(%s,&studentnum.phone); printf(ntt输入地址:); scanf(%s,&studentnum.adress); printf(ntt输入班级

16、:); scanf(%s,&studentnum.clas); printf(ntt输入学号:); scanf(%s,&studentnum.id); num+; printf(ntt是否继续添加?(Y/N):); if (getch()=y) adduser(); return(0); fclose(fp); printf(ntt通讯录文件已保存); printf(ntt按任意键退出程序ntt); exit(0); return(0); 3.5 学生信息的排序: 在主菜单中点击5则进入排序功能,此排序功能是一姓名中姓的首个字母按英语字母表进行排序,当排序成功后系统会自动弹出是否显示已排序后的

17、学生信息,如果选者是则显示排序后的学生信息。同时该功能也是通过对函数的调用,以及使用strcmp函数进行对姓名的比较来实现排序功能。listbyname() int i,j; struct record tmp; for (i=1;inum;i+) if(strcmp(studenti.name,studenti-1.name)0) tmp=studenti; j=i-1; do studentj+1=studentj; j-; while (strcmp(tmp.name,studentj.name)=0); studentj+1=tmp; printf(ntt排序成功,是否显示?(y/n)

18、; if (getch()=y) list(); return(0);3.6 删除学生信息:如果用户需要对以及录入的学生信息进行删除修改,在重新录入,则可以回到主菜单点击6,则会进入删除功能子界面。删除功能通过选择语句将删除功能具体为按姓名删除和按电话号码删除,switch (choic) case 1:deletebyphone();break; case 2:deletebyname();break; 4 程序流程图4.1 学生信息输入流程图 在进入主界面后,学生按以下方式进入输入系统 4.14.2 学生信息显示流程图 4.2 4.3 学生查找流程图 4.3 4.4 学生信息插入流程图 4

19、.44.5 学生信息排序流程图4.54.6 学生删除流程图信息图4.6 5.软件测试5.1 学生信息的输入: 开始运行程序,进入主界面。则可以看到清晰明朗的提示语句,让人赏心悦目,5.1.1选择0,进入学生信息输入系统,根据系统提示,他会逐步提示你输入姓名,电话号码,地址,学号,当你输入完毕时,系统会自动提醒你是否继续输入,如果继续输入,则系统会重复提醒你输入信息,如果不继续输入,系统则直接返回主菜单,准备进行下一项功能。5.1.2录入完毕后选择是否继续,如选择Y5.1.35.2 学生信息的显示:在主界面选择1进入显示系统,显示系统是按人员,通过按键逐条显示,是学生信息更简约,使人赏心悦目,5

20、.25.3 学生查找信息的测试5.3.1 在主界面按2则进入按姓名查找系统,进入系统后,系统会提示你请输入查找姓名,然后点击回车键,则显示出你需要查找的信息,系统下方会出现是否查找相同姓名的人,如果选择是,则系统再次搜索查找相关信息,如果选择否则直接返回主菜单。5.3.1 5.3.2 按电话查找: 在主界面按3则进入按电话查找系统:5.3.25.4 学生信息的插入 在主界面按4则进入插入系统5.45.5 学生信息排序 在主界面按五进入排序系统,进入,排序后,系统会提示使用者,排序成功,是否显示,如果显示,系统就会用姓名首字母按26个字母进行排序显示。5.5.1排序成功选择是否显示,如选择y 5

21、.5.25.6 删除系统 在主界面选额6进入删除系统,进入删除系统后,系统会提示你选择删除方式。5.6.1请用户选择方式,如选择1 5.6.2 请选择是否继续删除,如选则y 5.6.3 6 总结在将近一周的课程设计中,我学到很多东西。利用设计这次学生通讯录管理系统的机会,复习了自己以前的知识。此次,应用程序的设计和创建,经历了平时在课堂中和考试中,决不会有的重重难题和问题。而这些问题,又都是课本上很少提到的、更深一层的知识领域和应用领域。这些问题,并不是我们平时只靠课本,就可以轻易解决的。所以,锻炼了我们面对难题,自己思索,自己探索,自己查资料发现问题、解决问题的独断能力。在这次课程设计中,我

22、还懂得了程序开发的一些比较重要的步骤,比如需求分析、总体设能需求、程序代码设计与分析、运行结果、系统使用说明等。总之,通过这次课程设计,我收获很大,相信会为自己以后的学习和工作带来很大的好处。此次任务的完成,也体现出同学之间的团结精神。所遇种种难以解决的问题,大家都会把它当作共同遇到的问题,在一起共同探讨,共同发挥自己所学和所知,投入式的互相帮助和解决困难。当然,老师的悉心指导和同学的帮助也是不可忽视的,在此感谢本次课程设计中辅导我们老师对我的关心和帮助,诚心诚意感谢他们对我的鼓励与教导,是他们在我迷茫的时候给了我些许提示,激发了我编程的灵感;还有,我在此也十分感谢本次课程设计中同学们对我的帮

23、助,尽管本次不是团队合作,但是他们也给了我不少的提示和帮助,是他们让我有信心坚持做下来,谢谢老师同学们! 参考文献1 谭浩强.C程序设计(第3版).清华大学出版社 2005.22 谭明金.俞海英.C语言程序设计实例精粹.电子工业出版社 2007.1致谢首先,我要感谢我的老师,感谢他们每天辛勤的教导,不仅教我们知识,还鼓励我们不放弃,遇到困难勇于去克服,敢于去挑战;正因为有老师的谆谆教诲,才让我们能够较好的完成这次实验,老师总是不厌其烦地给同学们讲解。同时,我还要感谢学校为我们提供了优良的设备还有舒适干净的学习环境。最后,我要感谢和我共同奋斗的同学们,在遇到困难时给予了我帮助和鼓励,是他们教会我他们让我懂得鼓励的力量的强大。我们互相关心、互相帮助,让我们的学习生活不单调,有战胜更多困难的决心。相信以后的日子里我们都会继续互助互爱,共同努力,共同进步,一起见证美好的明天。

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

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