好文档 - 专业文书写作范文服务资料分享网站

数据结构课程设计 学生成绩管理系统 

天下 分享 时间: 加入收藏 我要投稿 点赞

四、调试分析

(1)调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析

在调试过程中遇到的第一个问题是输出学生的问题,因为输出的问题,其中总是发现输出乱码,找了好久,后来终于发现是输入时出了问题,因为姓名我定义了字符串型,而字符串长度我定义了20,在创建节点的时候我却把name[20]给了学生节点,导致输出时地址错误而输出乱码。

第二个问题是查找,我开始一直想不到怎么把查找到的学生输出,后来想了很久,找到了方法,我先通过查找关键字去找到该学生是在链表的那个位置,在通过返回的位置的值来输出想要输出的那个学生,所以就定义了Locate_Student和Out_one_Student来完成查找功能。

第三个问题是筛选功能的实现,我本来想通过比较,将符合关键字的学生筛选出来在输出,结果发现输出函数是已经定义成一次性全部输出的形式。导致我一直想不到好的方法来进行这个功能的代码编写。后来经过老师的指导,我知道了一种新的方法来编写,就是通过创建一个新的学生链表来存已经筛选出来的学生。然后在通过输出函数来将新链表进行输出,这样就可以达到筛选的目的。

改进方法:现在想了一下,其实可以将输出函数进行改进,改成一个一个学生输出的形式,在通过一个判断语句进行选择性输出,用这个输出的方法可以减少代码的的量,而达到同样的效果。

第四个问题是主函数的问题,因为我想让主函数看起来简洁一点,就把主函数分成两部分,一部分用于选择操作,另一部分用于进行选择好的操作,可是这样一来却出现了问题,就是输出数据之后无法暂停在输出界面,而是闪了一下就退出来进入主界面了,这个问题我开始以为是输出函数的问题,结果我去改了输出函数,结果还是无法停留。后来知道原因了,主函数退出switch循环之后会立即回到主菜单界面,到时无法停在输出界面。我在主函数最后加一个system(“pause”)之后才打到可以观察到的地方。

改进方法:可以将主函数定义成一个,不用分开,去掉for(;;)这个循环会好点。

(2)经验和体会

本次课程设计的题目我一开始看到的时候以为很容易就能做出来,所以只是

11

大概想了一下思路,就直接开始了,其实这个实验可以用顺序表做会思路更清晰一些,我没有选择顺序表来做,因为我在单链表这一部分有点模糊,所以想挑战一下用单链表来做。这个程序的每一个代码都是我经过一步一步分析写出来的,在编写的过程中遇到了很多的阻碍,很多自己无法预知的错误,在不断的找错过程中,我感觉到自己在c语言这一方面的不足,对算法的精髓还不是很了解, 对于单链表的操作也不是很熟练,尤其是在节点指针多起来的时候会有点乱,甚至搞不清指针到底指向哪里了。

然而,在编程过程中,一次次的测试失败,再一次次修改正确却让我慢慢的熟悉了数据结构一些用法,渐渐的知道要编写一个系统,需要各种功能协调才能算一个系统,而每一个功能有需要很多函数之间的相互联系来调用与支撑。同时要想将课程设计完成的好,就需要积极提问,遇到不懂的地方可以找老师或同学相互交流经验,这样才会更加有效率的完成课设。

经过这一段时间的课设,我学到的不仅仅是数据结构的想关知识,也懂得了团队协作的重要性,知道学习需要真正扎实去学习,这样才能真正学到知识,并灵活运用这些所学知识。

五、用户使用说明

1、添加学生功能:进入系统后先选择1回车即可进入输入界面,然后按照提示输入学生学号、姓名和数据结构、数字信号处理、数字电子技术基础的分数在按回车,如果还想再继续添加就按1继续,否则可以按任何键退出。

2、输出学生:用户在输入完学生数据后既可以按2输出所输入的全部学生 3、插入学生:用户需在主界面按3即可以进入插入界面,此时可以按数字键在选择要插入的位置,如输入1即可以将要插入的学生插入到第一个位置,可以在主界面输入2进行查看是否插入到指定位置。

4、删除学生:用户可以在主界面输入4进入删除,在通过选择编号来删除要删除的学生。

5、查找:查找查找功能有按学号和姓名查找,如按一进入学号查找,可以输入要查找的学号,回车即可以输出要查找的学生。

6、排序:排序可以通过学号,总分,和各科成绩,输入1可以按学号从小到大排序,输入2可以按总分从小到大进行排序,输入3可以进入科目选择,再按1进行数据结构排序,2进行数字型号处理排序,3进行数电的排序。

12

7、筛选:可以按1进入总分筛选,进入之后输入筛选多少分以上的人,输入分数,如:200,即可输出所有大于200分的学生;在筛选界面输入2可以输出全部及格的学生;按3可以进入各科成绩的筛选,再按1选出所有数据结构及格的学生、再按2选出所有数字信号处理及格的学生、再按3选出所有数字电子技术基础及格的学生。

8、退出:退出程序只需要在主界面按0再回车即可以退出程序。

六、测试结果

1、添加学生:

2、输出学生:

13

3、 插入学生:

14

4、删除学生:

15

5dr3b2llfr6msok1o3yz
领取福利

微信扫码领取福利

微信扫码分享