(桂电)学生成绩管理系统(论文加源代码) 数据结构与算法课设(3)

2019-08-31 19:33

3.3.5 统计模块

谇功能是用void TJ_stu(struct Student stud[], int n, int o) 来实现的。选3进入统计界面,首先有提示要统计的学科,有123供你选择,选择了以后,就可以显示出该课程的成绩表,按从高到低的顺序排列,算法是用冒泡排序方法。以及各种统计,包括:平均成绩、及格率、优生率、不及格人数\\、优生人数。

排序代码如下:

for (i = 0; i < n-1; i++) { for(j = i+1; j < n; j++) { if (stud[j].score[o] > stud[i].score[o]) { temp = stud[i]; stud[i] = stud[j];

}

stud[j] = temp; } }

10

3.3.6 班级成绩表模块

该模块是用void chenji_stu(struct Student stud[], int n, int o) /函数实现,用到的算法是直接选择排序,是按总成绩从高到低排序的,显示是调用了显示模块的函数,使得函数的结构大的简化了。

主要程序如下:

for (i = 0; i < n-1; i++) {

k=i;

for(j = i+1; j < n; j++) {

if (stud[j].score[3] > stud[i].score[3]) k=j; // score[3])表示总成绩

if(k!=i) {

temp = stud[i]; stud[i] = stud[k]; stud[k] = temp; } }

11

4 所遇到的问题和分析解决

4.1系统存在的不足

本学生成绩管理系统由九大模块组成,每个模块相互联系又相互独立。这个学生成绩管理系统存在着很多不足之处,由于自己本身编程能力的问题,这个系统可以实现的功能非常有限。只能实现学生管理系统最基本的功能,可以进行简单的输入、输出学生资料,查询和修改学生信息,能直接从文件中读入数据,能对系统所作的修改、操作进行保存等。而且在每个模块也有不足的地方,比如在输入学生资料时,对每个信息项没有严格的规定,可以输入任何的字符。感觉应用范围还是不容乐观。这有待以后努力,更详尽的实现模块的功能。 4.2 制作过程中遇到的问题

4.2.1 do-while语句的位置问题

在查询学生记录此模块中,只能查询一次,若要进行多次查询的话就不行了,只能先到主菜单,再先查询选项,很是麻烦。不能实现原有的功能。所以要想清楚到底是哪里循环出问题,按照逻辑思路找到相应的语句正确添加就行了。 4.2.2 system('cls')的使用问题

刚开始时对菜单的切换不是很了解,编写的程序运行的时候是一竖行向下的,很影响使用者的视觉范围,通过查询一些资料得知了system('cls')的作用,能够把一些暂时不用或不相关的信息通过清屏来处理。

4.2.3内存的分配问题

12

对于初学者的话对内存的分配和释放问题是比较抽象的和模糊的问题,在排序是

之前就出现了交换数据困难的问题,以及内存分配空间繁琐释放空间不及时的问题,造成空间的浪费,使得程序运行时效率较低,因此最后采用了顺序存储记录的方式,这就能改变前面所出现的问题。

4.4 问题分析

在自己动手写的时候才会发现有太多的问题,这些都是只有自已亲自去实践才会有的收获,例如在有些细节方面还是要特别注意啊,像分号的添加,是或还是与的的方向问题,函数的返回值等问题,虽然容易改掉,但是很容易养成不好的习惯,而且还会浪费时间,所以在一开始写的时候就要很仔细,这样才能保证程序编的精细,同时若出现很多这样的错误的话,在编写程序的时候也会心里烦的,所以在编程的时候要认真仔细。就你在刚开始时对文件的操作不是很明白,一直不能很好的操作文件,直到快验收的时候,仍旧出现问题,就是对已经存在的文件读取问题,将数据从文件中读取,但是不能够正常的读出,最后把读文件的操作语句进行仔细检查后,发现语句的顺序有点问题,重新把fscanf()语句进行再修改后就发现能够正常的读取文件了。其余的就没什么比较大的问题了,基本上只要细心一点的话就可以正确调试成功了。 。

5 系统特色及关键技术

其实在本程序的设计过程当中,没有很吸引人的关键技术,因为我的C语言

学的很好,所以当初设计的时候就只是想把功能都实现就好了,尽可能的把所要求的功能都编进程序,这样就觉得很满足了。所以都是设计的比较简单易懂的语言,这样自己能够更明白一些,所以就没有时间去细细地去设计自己的程序。本程序要说有什么值得说的,那就只有人性化这点了,在设计成学的时候,因为自己怕弄混了,所以添加了很详尽的提示,这样在编程的过程中或调试的时候都能够比较快的运行。还有就是尽可能的应用了do-while语句和switch-case语句,这两个语句在之前不是很常用,所以在这个程序中试炼了一下,虽然在编写的过程中总是出错,但还是成功的用好了,也是程序有条理一些。我也知道这些东西别人可能比我弄得还要好,但是我在我所学的知识中成功的应用了这些,我觉得就是好事,就是进步。

6 结论及心得体会

学生成绩管理系统终于成功的验收了,从这最后的测试结果来看,基本上实现了成绩管理系统的几大功能:成绩信息录入、成绩信息的管理。并达到操作过程中的直观、方便、实用、安全等要求。系统采用模块化程序设计的方法,既便于系统功能的组合和修改。本系统经过测试,证明其运行是稳定、可靠的。但在系统设计中也也遇到很多的问题,并且本系统的功能还需要不断的完善和改进,在以后空闲时间里逐一进行完善,使系统功能更加完善,

一周多的数据结构与算法课程设计虽然有些疲惫,但还是有很多的收获的,像

13

数据库的课设一样,我又一次巩固了所学到的知识,之前的学习只是停留在理论基础上,现在自己动手操作试验后,才是真正的理解及体会。编程也学了一年多了,有很多知识都是似懂非懂,通过平时上机操作,自己也了解了一些,但让我有了更深的理解和更好的认识,则是在这次的课设上,之前的困惑也通过这次的课设解决了一些,虽然还是不能够全面的理解,但是有进步就很高兴。在课程设计之前,因为有以前实验的经验与教训,明白了写代码这一步是非常重要的,因为当你把代码输进去之后,并编译让其运行,发现通过不了,再来检查出问题,是很费费力的事情,因此分析和规划代码是很重要的,最重要的是要把逻辑结构写好,这样就不会出现大问题,写代码就要先找出核心的内容,用多种方法来实现核心部分,这样可以尽可能的避免发现逻辑或编译不支持的错误。

通过本次论文设计,我学会了怎样去借鉴别人的方法和经验,知道了如何整合资料和处理这些资料的能力,这位以后做毕设的论文打下了基础,使我感觉比较好的是有一种成功的喜悦,虽然在编译的时候会经常因为一些小的错误而心烦意乱,但是也不失为一件好事,失败的越多积累的经验越丰富,对人的考验也比较多,那么在最后编译成功时的喜悦就越浓烈,也是自己的能力有了进一步的提高。

参考文献

[1] 谭浩强.C程序设计[M].北京:清华大学出版社, 2005 [2] 陈雁.数据结构 [M].北京:高等教育出版社,2004. [3] 黄梯云.管理信息系统. 北京:经济科学出版社, 2007 [4] 甘仞初.信息系统开发. 北京:经济科学出版社, 2009

[5] 严蔚敏. 数据结构(C语言版) [M]. 北京:清华大学出版社, 2008 [6] 张乃孝.算法与数据结构(C语言描述).北京:高等教育出版社,2005.

运行前

14


(桂电)学生成绩管理系统(论文加源代码) 数据结构与算法课设(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:小学生理想信念教育计划 - 小学教育 - 教育专区

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: