数据结构论坛

首页 » 分类 » 常识 » 关于学生成绩管理系统的C语言课程设计
TUhjnbcbe - 2025/3/29 16:59:00

课程设计报告

课程名称程序设计课程设计

选题名称学生成绩管理系统

班级XXXXXXXXX姓名XX学号XXXXXXX

实验组别XXXX同组实验者XXXXX

完成时间XXXXXXXXXXXXXXXXXXXXXXX

指导教师XXXX

自动生成目录

1、课程设计任务

1.1、题目

学生成绩管理系统

1.2、要求

(1)使用addStu函数实现增加学生信息及成绩的功能

(2)使用lookStu函数实现根据学号查找学生信息及成绩的功能

(3)使用delStu函数实现根据学号对学生信息及成绩进行删除功能

(4)使用outStu函数实现输出所有学生信息及成绩功能

(5)使用setStu函数实现根据学号修改成绩的功能

(6)使用sortStu函数实现学生信息及成绩的筛选排序的功能

(7)使用stuAvg函数实现计算各科成绩的平均分功能

(8)使用menu函数创建菜单

2、总体设计

2.1、功能模块设计

根据学生成绩管理系统的功能要求,功能模块的组成框图如图2-1所示:

图2-1学生成绩管理系统功能组成框图

2.2、所有功能模块的流程图

(a)增加学生信息及成绩功能流程图如图2-2所示:

图2-2增加学生信息及成绩功能流程图

(b)根据学号查找学生信息及成绩功能流程图如图2-3所示:

图2-3根据学号查找学生信息及成绩功能流程图

(c)根据序号删除学生信息及成绩功能流程图如图2-4所示:

图2-4根据学号删除学生信息及成绩功能流程图

(d)输出全部学生信息及成绩功能流程图如图2-5所示:

图2-5输出全部学生信息及成绩功能流程图

(e)根据学号修改学生成绩功能流程图如图2-6所示:

图2-6根据学号修改学生成绩功能流程图

(f)学生信息及成绩筛选排序功能的流程图如图2-7所示:

图2-7学生成绩的筛选及排序功能流程图

(g)筛选并计算各科平均分功能的流程图如图2-8所示:

图2-8筛选并计算各科学生成绩平均分功能流程图

3、详细设计

3.1、程序中各变量、常量及函数说明

设计存放学生信息的结构体类型:

typedefstructstudent{

  intsid;//学号

  charsclass[10];//班级

  charmajor[10];//专业

  charsName[10];//姓名

  intscores[4];//成绩

}STU;

学生的基础信息,scores数组长度为4,前三位用来存放学习的三门课程获得的分数,最后一位存放每个学生的总分。并给该结构体类型取了别名为STU;

charfile[]="d:\\stu.txt";

这是全局变量,将默认的文件位置字符串存放在字符数组中;

#defineMAX

这是一个常量,主要在排序时使用,每个班的人数最多人

3.2、子模块的设计与实现

(a)增加学生信息及成绩功能

录入学生的基础信息,学号,姓名,专业,班级,和学生成绩信息:C语言成绩,数据库成绩和JAVA成绩。

对录入的信息进行判断,需要判断该学号是否不存在以及输入的成绩信息是否都在0到之间。上述条件只要有一个不不满足条件,则增加学生信息和成绩失败。

(b)根据学号查找学生信息及成绩功能

输入需要查找成绩的学生学号,进入文件读取并匹配,匹配成功则输出并结束查询,如果文件读取结束都没有匹配成功,则代表该学生成绩还未录入。

(c)根据序号删除学生信息及成绩功能

输入需要删除成绩的学生学号,首先判断该学生成绩是否存在,如果存在则将文件中的数据,除了该学号学生的信息存入临时文件,全部读取完成之后,将原文件删除,将临时文件改成原文件的名字。

(d)输出全部学生信息及成绩功能

从文件中依次读取相关的学生信息和成绩。

(e)根据学号修改学生成绩功能

输入需要修改成绩的学生学号,判断学号是否存在,若存在,依次从原文件中取出学生信息记录,将学生的学号和需要修改的学号进行匹配,匹配成功则选择需要修改成绩的课程,使新的成绩替换取出的原成绩,将修改后的记录写入临时文件中。如果和需要修改的学号不匹配,则直接将记录写入临时文件。

将原文件的内容全部写入临时文件之后,将原文件删除并将临时文件名称改成原文件名称。

(f)学生信息及成绩筛选排序功能

输入要筛选出信息并进行排序的专业班级,筛选出信息后,选择排序的排序条件和排序的顺序,使用选择排序方法对筛选的数据按照条件进行排序并输出。

(g)筛选并计算各科平均分功能

选择筛选的条件,进行筛选条件输入。从文件中依次读取数据,判断读取的数据是否满足筛选条件,满足则进行各科成绩的分别累加和人数计算。输出时需要将总分除以人数来计算平均分。

4、调试与测试

4.1、调试方法与步骤

第一步:选择增加4位学生信息及成绩,输入正确的学生信息及成绩。

第二步:选择增加1位学生信息及成绩,将第一步信息再输入一遍。

第三步:提示录入信息有误,重新输入,输入不正确的成绩信息。

第四步:提示录入信息有误,重新输入,输入正确的学生信息。

第五步:选择查找学生信息及成绩功能,输入查找的学生学号。

第六步:选择输出全部学生信息及成绩功能。

第七步:选择修改学生成绩,输入需要修改成绩的学号,选择修改成绩的课程,输入修改的成绩。

第八步:选择对学生信息和成绩进行筛选排序,输入筛选的专业和班级,选择按照总分降序排序。

第九步:选择对学生成绩进行筛选计算平均分,选择计算班级的平均分,输入专业和班级。

第十步:选择删除学生信息及成绩,输入需要删除的学生学号。

第十一步:选择退出系统。

4.2、测试结果的分析与讨论

第一步测试过程:

目录选择:1

输入录入的学生数量:4

输入学生的信息及成绩:

1刘欣计算机

2王佳计算机

3黄欣计算机

4吴小蕾计算机

运行结果如图4-1所示:

图4-1第一步测试运行结果图

第二步测试过程:

目录选择:1

输入录入的学生数量:1

输入学生的信息及成绩:

4吴双节计算机

运行结果如图4-2所示:

图4-2第二步测试运行结果图

第三步测试过程:

第二步运行提示错误,需要重新输入学生信息及成绩:

5吴双节计算机

运行结果如图4-3所示:

图4-3第三步运行结果截图

第四步测试过程:

第三步运行提示错误,重新输入学生信息及成绩:

5吴双节计算机

运行结果如图4-4所示:

图4-4第四步运行结果截图

第五步测试过程:

目录选择2

输入查找的学生学号:4

运行结果如图4-5所示:

图4-5第五步运行结果截图

第六步测试过程:

目录选择:4

运行结果如图4-6所示:

图4-6第六步运行结果截图

第七部测试过程:

目录选择:5

输入需要修改成绩的学生学号:5

选择需要修改成绩的课程:2

输入修改的成绩:91

运行结果如图4-7所示:

图4-7第七步运行结果截图

第八步测试过程:

目录选择:6

输入筛选出信息的班级所属的专业:计算机

输入筛选出信息的班级:

选择排序条件:2

选择排序的顺序:0

运行结果如图4-8所示:

图4-8第八步运行结果截图

第九步测试过程:

目录选择:7

选择筛选的条件:3

输入班级:

输入班级所属专业:计算机

运行结果如图4-9所示:

图4-9第九步运行结果截图

第十步测试过程:

目录选择:3

输入需要删除成绩的学生学号:5

运行结果如图4-10所示:

图4-10第十步运行结果截图

第十一步测试过程:

目录选择:0

运行结果如图4-11所示:

图4-11第十一步运行结果截图

4.3、测试过程中遇到的主要问题及采取的解决措施

1打开文件,若文件不存在,就会打开失败,如果手动创建文件比较麻烦,只需要在打开文件时将打开方式加上t就可以了。

例如:a----atr-----rtw-----wtr+----rt+

2文件写入时,使用fwrite函数时,需要配合fflush函数,才能将文件输入缓冲区的内容写入文档中。

3文件读出时使用feof函数判断是否结束时,最后一组数据将会被重复输出,需要将循环条件改成fread函数。

5、源程序清单

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

6、课程设计总结

在刚开始着手编写系统程序时,对于系统的功能设计方面有一点模糊,在同学的建议最后选择了7个功能进行主要设计。在详细设计主要代码时也在遇到了许多的错误,其中包括文件打不开,写入文件的信息没有写入成功,读出数据重复等问题。经过书本查阅和网络搜索之后,这些问题都得到了解决。现在能对学生信息进行增加、删除、修改、查看这些基本的操作之外,还可以根据条件计算各科成绩的平均分,并对学生信息及成绩进行筛选后排序输出。

本次实验中,不仅对课程里学习的知识进行了复习和巩固,也对没有接触或者没有深入讲解的只是进行了自学,将自学的知识进行了使用,增加了对不同知识的理解,了解不同的知识主要的应用领域。

7、致谢

能够完成这次课程设计必须感谢数据结构课程设计指导老师XXX老师,老师提供的系统内容介绍和功能举例,为本系统的功能设计奠定了很好的基础,另外还要感谢我的室友给我的系统功能设计提供建议,并对系统功能的详细设计步骤增加更加详细的提议,让我的系统更加完善。

8、参考文献

[1]谭浩强.C程序设计(第五版)[M].北京:清华大学出版社,:-.

[2]K.N.King.C语言程序设计:现代方法.吕秀锋,黄倩.北京:人民邮电出版社,.

[3]StephenPrata.CPrimerPlus(第6版).姜佑.北京:人民邮电出版社,.

[4]李文娟,郭永红.基于C语言的学生成绩管理系统的设计与实现[J].中央民族大学学报:自然科学版,(2):7.

[5]毛宇昂,黄超.学生成绩管理信息系统设计研究[J].科技风,,(1):.

[6]宋福英.C语言基于结构体的学生信息管理系统实现[J].计算机时代,(3):4.

[7]钟玲玲,刘冬雪,黄小平.基于C语言的学生信息管理系统设计与实现[J].河南科技学院学报:自然科学版,,47(4):7.

[8]黄橡丽,周艳聪,孟巍.数据结构在学生成绩管理系统设计中的应用[J].数字技术与应用,,37(11):2.

[9]周轩.网络教学平台在高职院校中的应用与研究——以《C语言程序设计》课程为例[J].南方农机,,50(19):2.

[10]彭莉.基于C语言的学生成绩管理系统的实现[J].武汉工程职业技术学院学报,,():36-39.

1
查看完整版本: 关于学生成绩管理系统的C语言课程设计