南航C语言-课设资料讲解.doc

南航C语言-课设资料讲解.doc

ID:57090820

大小:391.50 KB

页数:12页

时间:2020-08-02

南航C语言-课设资料讲解.doc_第1页
南航C语言-课设资料讲解.doc_第2页
南航C语言-课设资料讲解.doc_第3页
南航C语言-课设资料讲解.doc_第4页
南航C语言-课设资料讲解.doc_第5页
资源描述:

《南航C语言-课设资料讲解.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、南航C语言-课设精品文档一、程序简介:程序名称:学生成绩简单管理程序二(StudentScoreManager)程序功能:程序主要功能是用于学生成绩的管理,可以帮助统计人员对学生成绩进行简单的管理,程序包括:10个菜单项,其中9个管理项、1个为退出程序项。收集于网络,如有侵权请联系管理员删除精品文档菜单项包括:1.CreateList:按学生姓名汉语拼音顺序建立有序列表。2.DisplayAllRecord:在屏幕上显示列表记录。3.InsertaRecord:向已建立的有序列表中按序添加记录。4.DeleteaRecor

2、d:在有序列表中查找并删除记录。5.Query:给出学生姓名,在有序列表中查找相关记录并在屏幕上显示该记录。6.AddRecordsfromaTextFile:从文本文档输入学生记录并按序插入已有列表。7.WritetoaTextFile:将列表写入指定位置的文档。8.ReverseList:将现有列表按逆序存放。9.DeletetheSameRecord:删除列表中相同姓名的记录。0.Quit:退出程序。二、题目分析及心得感想题目分析:该程序要求9个子程序项,分别实现9个不同的操作。分析后知:需建立14个函数才能实现。函

3、数的具体解析请参见第三部分的源文件中。编程中所遇到问题及解决:(1)在程序刚写完时,找出所有错误后,运行程序,但不能完美执行程序的第一项功能:即在进入1.CreateList程序项后,一次只能输入一个学生的信息。一旦输入一次后,自动调回到主选单(如上图所示)分析后发现:{printf("DoYouWantToContinueToInput?(Y/N)");scanf("%s",a);while(strcmp(a,"Y")!=0&&strcmp(a,"N")!=0)}其中的a在函数的开头已被定义,且自己下意识的将其赋值为

4、:a=‘Y’由于这个错误,使a成为了一个该函数中的一个全局变量,而后的对a的输入赋值对其不起任何作用,于是导致了我设计的程序不能循环输入学生成绩。发现后,我果断将起赋值处给删去,程序完美运行了。(2)在写Insert函数时,暴露出我写程序时的思想的不全面性。如下:在Insert函数的编写中,对于插入节点的情况分析欠缺。没有完全考虑到:链表是空链表时情况,链表插入节点在链表的头、链表插入节点在链表的尾等情况。而后通过于同学讨论,相互帮助,让我想通了所有可能的情况,最后还是成功编写出了。编程心得体会:(1)在编写课程设计之前,

5、可以这样说,对C语言的学习对C语言这门学科的整体把握还是不强!但在课程设计中,各函数的说明,函数的调用,函数的编写,让我真正明白了C语言这门学科,其实是很强的一门学科,它训练我们的思维缜密,训练我对新事物的领悟能力。(2)在课程设计中,让我明白了:也许书上的一个小小的知识点,在实际的编程中还是非常重要的,比如:全局变量的定义,各种循环(dowhile,for,while)以及函数的嵌套调用等到等等的实现都非常重要!(3)课程设计我觉得是对书本上所学知识的一个实际运用,在书本上的知识都是死的,只有活学活用才能成功。课程设计的

6、过程非常辛苦,但也非常充实,它让我复习了课上所学的知识,锻炼了编程的思维。也为C语言的最终考试做了准备。新增功能:(1)ReverseList:将现有列表按逆序存放:首先判断链表是否为空,再判断是否为单节点,或为双节点,若为两个节点以上,则定义三个Student指针来循环逆序存放节点,返回头指针。(2)DeletetheSameRecord:删除列表中相同姓名的记录:首先判断链表是否为空,再判断是否为单节点。若为两节点以上链表则运用两个Student指针循环比较是否有两个相同的节点,若有则调用Delete函数删除其中一个,

7、若无返回头指针。收集于网络,如有侵权请联系管理员删除精品文档三、源文件及函数说明#include#include#include#include#includestructstud/*定义结构体*/{charName[20];intScore;structstud*next;};typedefstructstudStudent;/*定义结构体stud替代为Student*/intmenu_select();Student*Crea

8、te(void);/*从键盘输入若干条记录,调用Insert函数建立以学生姓名为序的单向链表,返回链表头指针*/voidDisplay(Student*head);/*显示所有学生的姓名和成绩,每10条一页,并暂停一下*/Student*Insert(Student*head,Student*p0);/

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。