《C语言课程方案设计书报告 .docx》由会员分享,可在线阅读,更多相关《C语言课程方案设计书报告 .docx(19页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品名师归纳总结封面可编辑资料 - - - 欢迎下载精品名师归纳总结作者: PanHongliang仅供个人学习课程设计报告可编辑资料 - - - 欢迎下载精品名师归纳总结(本科)课程:高级语言程序设计学号:1310411031姓名:秦钱军班级:2021 级运算机科学与技术老师:冯凤时间:2021 年 1 月运算机科学与技术系可编辑资料 - - - 欢迎下载精品名师归纳总结设计名称:同学通讯录治理系统设计设计内容、目的与要求:设计内容:设计一个同学通讯录,同学通讯录数据信息构成内容可自行设计(如:姓名、家庭的址、邮政编码、电话号码等等),通讯录数据类型定义为结构类型。目的与要求:设计同学通讯录
2、1. 主要功能:( 1)能建立、修改和增减同学通讯录(2)能够多种方式进行查询2. 要求:界面友好,易于操作,接受文件储备数据。方案与进度支配:12 月 20 日至 12 月 22 日:争论题目的要求及所给条件,综合分析试验应当达到的目标,探讨试验需要使用的方法和解决此问题的实际情形,图书馆查阅相 关资料,综合比较。12 月 23 日至 12 月 25 日:设计解题的方法和具体步骤,并进行分步摸索,利用主菜单函数menu将程序模块化,在进行各个模块的设计和制作方案,绘制试验的流程图,再将各个模块综合,将各个函数运用于主函数中,绘制主函数 的流程图,综合运用全部的函数。12 月 26 日至 12
3、 月 31 日:查阅书籍,仔细争论书本上的例题,再结合网络资料,结合各方面所得的资料,编写程序,仔细修改程序。1 月 1 日至 1 月 2 日:调试程序,运行程序,再次将程序修改。1 月 3 日至 1 月 5 日:完善程序,仔细填写课程设计报告,再次仔细阅读程序并熟识程序,为验收做最终的预备。设计过程、步骤(可加页):整个程序主要使用了结构体类型,结构体类型充当了整个程序的骨架,将各个程序段有机神奇的结合在一起。例如:struct student/ 声明一个结构体类型struct studentlong num 。/学号char name20 。/ 姓名int banji 。/ 班级char
4、tel11 。/ 号码char Email20 。/ 邮箱int sushe。/ 宿舍struct student *next 。/ next 是指针变量,指向结构体变量 。整个系统必需有一个主函数,为了尽量提高程序的易修改性,且不至于相互干扰,将每一个功能分成不同的模块,用不同的函数来实现,例如在我写的这个程序中,一共用了 9 个函数,分别是:主菜单函数 void menuvoid。输入函数 struct student *shuruvoid)。输出单个同学信息函数void shuchustruct student *s。 输出全部同学信息函数void findall()。按姓名查找函数 v
5、oid findname()。 按学号查找函数 void findnum()。可编辑资料 - - - 欢迎下载精品名师归纳总结删除函数 struct student *stushanchu(struct student *stu)。 排序函数 void paixu()。主函数 void main(),这样在整个程序的设计过程中也就一目了然,写起来也相对轻松了不少。下面是摘自源程序的主函数:void main/* 主函数 */char a。menu 。putsn 您为首次使用本系统 ,建议您按 1 开头录入同学信息, 。a=getche。whileaputs 。switchacase0:goto
6、 end。break。case 1:putsn 好了,您可以开头向本系统录入同学通讯录信息了:。stu=shuru。systemcls 。menu。putsn 同学信息录入完毕,请输入你的选择06:n 。break。case 2:findall 。putsn 请输入你的选择 06: 。 break。case 3:findname 。putsn 请输入你的选择 06: 。 break。case 4:findnum 。putsn 请输入你的选择 06: 。 break。case 5:stu=shanchustu。 putsn 请输入你的选择 06: 。 break。case 6:paixu。put
7、sn 请输入你的选择 06: 。 break。default:puts 输错了 .按数字 1 键录入同学信息吧. 。 break。a=getche。end:。puts 感谢您使用本系统,欢迎再次使用! 。结果与分析(可以加页): 主界面:按 1 录入同学通讯录信息:按 2 查看全部同学信息:按 3 按姓名查找同学信息:按 4 按学号查找同学信息:按 5 删除同学信息:可编辑资料 - - - 欢迎下载精品名师归纳总结删除后:按 6 将通讯录信息排序:按 0 退出:程序已实现对同学信息的录入、按姓名查询、按学号查询和删减,唯独的不足之处是没能实现对同学信息的修改。设计体会与建议:课程设计 是培养同
8、学综合运用所学学问 , 发觉, 提出, 分析和解决实际问题 , 锤炼实践才能的重要环节 , 是对同学实际工作才能的具体训练和考察过程 . 随着科学技术进展的日新月异,当今运算机应用在是生活中可以说得是无处不在。因此作为二十一世纪的高校来说把握运算机开发技术特别重要的。具体的各个函数是参照课本上链表那一章的内容的,比如结构体的建立、查找和排序等功能,这些书上都有类似的,例如在第六章中有一个用冒泡法排序的例题,我就是仿照这个模式来对结构体进行排序的。回忆起此次课程设计,至今我仍感叹颇多,的确,从从拿到题目到完成整个编程,从理论到实践,在整整半个学期的日子里,可以学到很多很多的的东 西,同时不仅可以
9、巩固了以前所学过的学问,而且学到了很多在书本上所没有学到过的学问。通过这次课程设计使我懂得了理论与实际相结合是很重要的, 只有理论学问是远远不够的,只有把所学的理论学问与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手才能和独立摸索的才能。在设计的过程中遇到问题,可以说得是困难重重,这到底第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发觉了自己的不足之处,对以前所学过的学问懂得得不够深刻,把握得不够牢固,比如说结构体通过这次课程设计之后,确定把以前所学过的学问重新温顾。在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定方案,怎么样去实现这个方案,
10、并把握了在执行过程中怎么样去克服心理上的不良情 绪,黑夜过去了,我们收成的是早晨。在本次实践中,给我印象最为深刻的是在文件删除程序的编译过程中,先有我的各个子程序都已经编辑胜利,那么这最终的程序就将是我胜利的关键。在这个问题的解决上,我打了退堂鼓,我不能忍耐长时间的无功而反,时间正在消磨我的意志。没有了柳暗花明的一天, 那么我怎么能说经受住了考查?感谢老师的那句话,她说:人力有所不能及, 然而,人的精神是不会败倒的。我鼓起士气,到处问,到处查资料,黄天不负有心人,在一篇文章上,最终看到了我所特别要求的函数,我实现了组合是关键的理论。不得不说这是精神的胜利,是永不言败的精神让我的程序重见天 日。
11、我们的课程设计终止了,但是它留给我的印象是不行磨灭的。无论我以后会不会涉及到 C 语言程序编译的争论,我想,我至少把握了一种系统的争论方法,我们学习的目的就在于运用,我们运用这种争论方法的时候会很多,我最终要感谢课程设计,它的确教会我很多。附录:#include可编辑资料 - - - 欢迎下载精品名师归纳总结#include #include #include #include #define NULL 0 struct studentlong num 。char name20 。int banji 。char tel11 。char Email20 。int sushe。struct stu
12、dent *next 。 。struct student *stu 。int n。void menuvoid /*主菜单函数 */ systemcls 。puts* 。puts*_ 同学通讯录治理系统 _*。puts* 。puts*。puts*puts*1=2=录入同学通讯录信息列出全部同学通讯录*。*。puts*3=按姓名查询信息*。puts*4=按学号查询信息* 。puts* puts* puts* puts*5= 删除同学信息6= 按学号将通讯录排序0=退出* 。* 。*。puts*。puts*。puts* 。struct student *shuruvoid/* 输入函数 */syst
13、emcls 。struct student *s1,*s2 。n=1。int num 。puts 请输入同学个数(提示:个数不能输入0!): 。可编辑资料 - - - 欢迎下载精品名师归纳总结scanf%d,&num 。s1=s2=struct student *mallocsizeofstruct student。puts*。puts 请输入学号: 。scanf%ld,&s1-num。puts 请输入同学姓名: 。scanf%s,s1-name 。puts 请输入班级: 。scanf%d,&s1-banji 。puts 请输入电话号码: 。scanf%s,s1-tel 。puts 请输入电子
14、邮件: 。scanf%s,s1-Email 。puts 请输入同学宿舍号: 。scanf%d,&s1-sushe 。stu=s1。whilennext=s1 。s2=s1。s1=struct student *mallocsizeofstruct student。puts*。puts 请输入学号: 。scanf%ld,&s1-num。puts 请输入同学姓名: 。scanf%s,s1-name 。puts 请输入班级: 。scanf%d,&s1-banji 。puts 请输入电话号码: 。scanf%s,s1-tel 。puts 请输入电子邮件: 。scanf%s,s1-Email 。puts
15、 请输入同学宿舍号: 。scanf%d,&s1-sushe 。n=n+1 。puts*。s2-next=s1 。s2=s1。s2-next=NULL 。returnstu 。/systemcls 。void shuchustruct student *s/*输出单个同学信息*/可编辑资料 - - - 欢迎下载精品名师归纳总结printf* %-8ld,s-num。printf%-15s,s-name 。printf%-8d,s-banji。printf%-15s,s-tel 。printf%-15s,s-Email。printf%-5d *n,s-sushe。void findall/*输出全
16、部同学信息*/systemcls 。struct student *s 。/ifn=2/printfn现在有 %d 个同学信息,分别是: n,n 。/elseprintfn现在有 %d 个同学信息,分别是:n,n。puts。puts*学号姓名班级电话电子邮件宿舍 * 。s=stu。whiles.=NULLshuchus。s=s-next。puts。puts 返回主菜单请按【 9】 。ifgetche=9 menu 。void findname/*按姓名查找函数 */ systemcls 。struct student *s 。char name20 。printfn请输入你要查询的同学姓名:n
17、。scanf%s,name 。s=stu。whilestrcmps-name,name.=0s=s-next。 ifs=NULLputs 查无此同学姓名 . 。goto end。可编辑资料 - - - 欢迎下载精品名师归纳总结elseputs 该同学的信息为 : 。puts*学号姓名班级电话电子邮件宿舍 * 。shuchus。end:。puts 返回主菜单请按【 9】 。ifgetche=9 menu 。void findnum/*按学号查找函数 */systemcls 。struct student *s 。puts 请输入你要查询的同学学号: 。long i 。scanf%ld,&i。s=
18、stu。whiles-num.=is=s-next。 ifs=NULLputs 查无此同学学号 . 。goto end。elseputs 该同学的信息为 : 。puts*学号姓名班级电话电子邮件宿舍 * 。shuchus。end:。puts 返回主菜单请按【 9】 。ifgetche=9 menu 。struct student *shanchustruct student*stu/* 删除函数 */systemcls 。long num 。char s。struct student *s1,*s2 。ifstu=NULLputs 没有任何同学信息。 。可编辑资料 - - - 欢迎下载精品名师
19、归纳总结goto end。puts 请输入你要删除的同学学号: 。scanf%ld,&num。s1=stu。puts 警告 :你确定要删除这个同学的信息吗Y/N. 。scanf%s,&s 。ifs=Y|s=ywhilenum.=s1-num&s1-next.=NULLs2=s1 。s1=s1-next。 ifnum=s1-num puts 该同学的信息为 : 。puts*学号姓名班级电话电子邮件宿舍 * 。shuchus1。ifs1=stu stu=s1-next 。elses2-next=s1-next 。puts 留意哟,该同学的信息已经删除了. 剩下的同学通讯录信息如下: 。n=n-1
20、。findall 。returnstu 。end:。puts 返回主菜单请按【 9】 。ifgetche=9 menu 。void paixu/*排序函数 */ struct student *p, *p1,*p2 。int i,j 。int temp。char b20 。ifstu=NULLprintfn同学信息不存在 n 。goto end。fori=0 。in-1 。 i+p1=stu 。forj=0 。 jnext 。ifp1-nump2-num可编辑资料 - - - 欢迎下载精品名师归纳总结temp=p1-num 。p1-num=p2-num 。 p2-num=temp 。strcp
21、yb,p1-name 。strcpyp1-name,p2-name 。strcpyp2-name,b 。temp=p1-banji 。p1-banji=p2-banji 。p2-banji=temp 。strcpyb,p1-tel 。strcpyp1-tel,p2-tel 。strcpyp2-tel,b 。strcpyb,p1-Email 。strcpyp1-Email,p2-Email。strcpyp2-Email,b 。temp=p1-sushe。p1-sushe=p2-sushe。p2-sushe=temp。p1=p1-next 。p=stu。puts已按同学学号次序排序完毕. 重新排序
22、如下 : 。puts* 。puts*学号姓名班级电话电子邮件宿舍 * 。whilep.=NULLprintf* %-8ld,p-num。printf%-15s,p-name 。printf%-8d,p-banji。printf%-15s,p-tel。printf%-15s,p-Email。printf%-5d *n,p-sushe。p=p-next 。end:。puts 返回主菜单请按【 9】 。ifgetche=9menu。void main/* 主函数 */char a。menu 。putsn 您为首次使用本系统 ,建议您按 1 开头录入同学信息 ,。a=getche。whileaputs
23、 。switchacase0:goto end 。break。case 1:putsn 好了,您可以开头向本系统录入同学通讯录信息了:。stu=shuru。可编辑资料 - - - 欢迎下载精品名师归纳总结systemcls 。menu。putsn 同学信息录入完毕,请输入你的选择06:n 。break。case 2:findall 。putsn 请输入你的选择 06: 。 break。case 3:findname。putsn 请输入你的选择 06: 。 break。case 4:findnum 。putsn 请输入你的选择 06: 。 break。case 5:stu=shanchustu。
24、putsn 请输入你的选择 06: 。 break。case 6:paixu。putsn 请输入你的选择 06: 。 break。default:puts 输错了 .按数字 1 键录入同学信息吧 . 。 break。a=getche。end:。puts 感谢您使用本系统,欢迎再次使用!。版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理。版权为潘宏亮个人全部This article includes some parts, including text, pictures, and design. Copyright is Pan Hongliangs personal owner
25、ship.用户可将本文的内容或服务用于个人学习、争论或观看,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵害本网站及相关权益人的合法权益。除此以 外,将本文任何内容或服务用于其他用途时,须征得本人及相关权益人的书面许可,并支付酬劳。Users may use the contents or services of this article for personal study, research or appreciation, and other non-commercial or non-profit purposes, but at the可编辑资料 -
26、 - - 欢迎下载精品名师归纳总结same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permissio
27、n and remuneration shall be obtained from the person concerned and the relevant obligee.转载或引用本文内容必需是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修 改,并自负版权等法律责任。Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.可编辑资料 - - - 欢迎下载
限制150内