南航C语言_课设.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
南航C语言_课设

一 、程序简介: 程序名称:学生成绩简单管理程序二(Student Score Manager) 程序功能: 程序主要功能是用于学生成绩的管理,可以帮助统计人员对学生成绩进行简单的管理,程序包括:10个菜单项,其中9个管理项、1个为退出程序项。 菜单项包括: 1. Create List:按学生姓名汉语拼音顺序建立有序列表。 2. Display All Record:在屏幕上显示列表记录。 3. Insert a Record:向已建立的有序列表中按序添加记录。 4. Delete a Record:在有序列表中查找并删除记录。 5. Query:给出学生姓名,在有序列表中查找相关记录并在屏幕上显 示该记录。 6. Add Records from a Text File:从文本文档输入学生记录并按序插入已有列表。 7. Write to a Text File:将列表写入指定位置的文档。 8. Reverse List:将现有列表按逆序存放。 9. Delete the Same Record:删除列表中相同姓名的记录。 0. Quit:退出程序。 二 、题目分析及心得感想 题目分析:该程序要求9个子程序项,分别实现9个不同的操作。分析后知:需建立14个函数才能实现。函数的具体解析请参见第三部分的源文件中。 编程中所遇到问题及解决: (1)在程序刚写完时,找出所有错误后,运行程序,但不能完美执行程序的第一项功能:即在进入1.Create List 程序项后,一次只能输入一个学生的信息。一旦输入一次后,自动调回到主选单(如上图所示)分析后发现:{printf(Do You Want To Continue To Input?(Y/N)\n); scanf(%s, a);while( strcmp (a,Y)!=0 strcmp ( a,N)!=0)}其中的a在函数的开头已被定义,且自己下意识的将其赋值为:a=‘Y’ 由于这个错误,使a成为了一个该函数中的一个全局变量,而后的对a的输入赋值对其不起任何作用,于是导致了我设计的程序不能循环输入学生成绩。发现后,我果断将起赋值处给删去,程序完美运行了。 (2)在写Insert函数时,暴露出我写程序时的思想的不全面性。如下:在Insert 函数的编写中,对于插入节点的情况分析欠缺。没有完全考虑到:链表是空链表时情况,链表插入节点在链表的头、链表插入节点在链表的尾等情况。而后通过于同学讨论,相互帮助,让我想通了所有可能的情况,最后还是成功编写出了。 编程心得体会: 在编写课程设计之前,可以这样说,对C语言的学习对C语言这门学科的整体把握还是不强!但在课程设计中,各函数的说明,函数的调用,函数的编写,让我真正明白了C语言这门学科,其实是很强的一门学科,它训练我们的思维缜密,训练我对新事物的领悟能力。 在课程设计中,让我明白了:也许书上的一个小小的知识点,在实际的编程中还是非常重要的,比如:全局变量的定义,各种循环(dowhile, for , while )以及函数的嵌套调用等到等等的实现都非常重要! 课程设计我觉得是对书本上所学知识的一个实际运用,在书本上的知识都是死的,只有活学活用才能成功。课程设计的过程非常辛苦,但也非常充实,它让我复习了课上所学的知识,锻炼了编程的思维。也为C语言的最终考试做了准备。 新增功能: Reverse List:将现有列表按逆序存放:首先判断链表是否为空,再判断是否为单节点,或为双节点,若为两个节点以上,则定义三个Student指针来循环逆序存放节点,返回头指针。 Delete the Same Record:删除列表中相同姓名的记录:首先判断链表是否为空,再判断是否为单节点。若为两节点以上链表则运用两个Student指针循环比较是否有两个相同的节点,若有则调用Delete函数删除其中一个,若无返回头指针。 三 、源文件及函数说明 #includestdio.h #includestdlib.h #includectype.h #includealloc.h #includestring.h struct stud /*定义结构体*/ { char Name[20]; int Score; struct stud*next; }; typedef struct stud Student; /* 定义结构体stud替代为Student */ int menu_select(); Student *Create(void); /*从键盘输入

您可能关注的文档

文档评论(0)

153****9595 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档