一、 设计目的
通过本课程设计,最终达到结构化程序设计和把若干程序文件模块连接成一个完整的可执行程序的学习目的,即学会编写出具有良好结构程序的有效方法。学会这个方法十分的重要,因为如果要编写的程序规模很大,那就需要几个人合作完成,而每个人所编写的程序会保存在自己的.c文件中。当然,为了避免一个文件过长,也可以把程序分开保存为几个文件。最后,汇总后对各文件模块分别编译,然后通过连接,把编译好的文件模块再合起来,连接生成可执行程序。这样,一个大规模的程序才算完成。
二、 设计内容与要求
本课程要求设计一个由多文件模块组成的学生信息库系统。主要包括学生信息的管理和学生在学校课程的考试成绩的管理。设计多文件模块的学生信息库系统的目的就是利用计算机的快速计算、调用函数、查询、统计、修改等功能来代替人们对数据的手工统计。
此多文件模块组成的学生信息库系统主要内容有:
主函数:可通过菜单选择要操作的功能:
0.使用学生信息库系统帮助及说明
1.新建学生信息;
2.输出学生信息;
3.计算并输出平均成绩;
4.按平均成绩排序;
5.计算并输出总分;
6.按总分排序;
7.各科成绩排序;
8.修改学生成绩;
9.查询学生信息;
10.删除学生信息;
11.学生科目评价;
12.查看目录;
13.退出系统。
三、 设计思路
设计的多文件模块组成的学生信息库系统的主体框架如图所示:
图一:多文件模块组成的学生信息库系统的主体框架
3.1主函数
主函数设计比较简洁,只提供了目录,输入和对于多文件模块组成的学生信息库系统中的各个函数调用。其中各功能模块的功能在目录上展示,只需要通过输入所需要进行的功能前面的序号即可运行。
主函数流程图如下图2:
图2:主函数流程图
3.2 student.h头文件
定义了学生信息的结构,里面包括学生的学号、姓名、数学成绩、英语成绩、计算机成绩、个人平均成绩和个人的总分的定义。
3.3 输入输出模块(input_output.c模块)
输入模块提供了录入学生信息功能,可以让程序建立新的空间去加入新的学生的信息。
输入模块流程图如图3:
图3:学生信息建立流程图
输出模块是当用户需要查看学生信息时,只要通过主函数输入输出模块前的序号,就会将所有的学生的信息输出在屏幕上。
输出流程图如下图4:
图4:学生信息输出流程图
3.4 计算平均数并输出和对平均数排序模块(aver_sort.c模块)
计算平均数即将每次将一位同学的数学英语和计算机三门课的成绩加在一起再除以3,直至所有同学的平均数都算完为止。
计算平均数并输出流程图如下图5:
图5:计算平均数并输出流程图
对于平均数排序,我运用了选择法排序,最后按照从大到小的顺序排好。
对平均数排序流程图如下图6:
图6:对平均数排序流程图
3.5 计算总分并输出和对总分排序模块(sum.c模块)
计算总分并输出功能主要是实现计算总分即将每次将一位同学的数学英语和计算机三门课的成绩加在一起,直至所有同学的总分都算完为止。
计算总分并输出流程图如下图7:
图7:计算总分并输出流程图
对于总分的排序,我也是运用了选择法排序,最后按照从大到小的顺序排好。
总分排序流程图如下图8:
图8:对总分排序流程图
3.6 各科成绩排序模块(subject_average_sort.c模块)
各科成绩排序是将每个同学的同一科目的成绩进行相加并最后算出每个科目的总分和平均值,接着每科按照当前科目的成绩从大到小输出。
各科成绩排序流程图如下图9:
图9:各科成绩排序流程图
3.7 修改学生成绩的函数和查询学生信息的函数(modify.c模块)
设计的修改学生成绩的函数,每次只修改某位学生其中一项科目的成绩。
修改学生成绩流程如图10:
图10:修改学生成绩流程图
查询学生信息的函数功能:根据输入的学生的学号来查询学生的成绩及其平均分。
查询学生信息的函数流程图如图11:
图11:查询学生信息流程图
3.8 删除学生信息功能模块(delete_information.c模块)
删除学生信息功能主要是实现对于输入错误的单个或多个的学生信息快速删除,提高整理学生成绩的效率。
删除学生信息流程图如下图12:
图12:删除学生信息流程图
3.9 学生科目评价模块(evaluate_three.c模块)
学生科目评价模块主要是实现学生科目的评价,让学生了解应该努力的方向。
学生科目评价流程图如下图13
图13:删除学生信息流程图
3.10 使用学生信息库系统帮助及说明模块和目录功能模块(help.c和menu.c)
帮助和目录流程图如图14:
3.11 退出系统模块(ending.c模块)
退出系统流程图如图15:
图15:退出系统流程图
四、 实现过程
1. 新建学生信息功能;
新建学生信息功能主要是实现将新输入的学生的各科成绩保存好,而且旧的信息没有被替代。
1.1 运行结果:
输入学生信息(分两次)
2. 输出学生信息功能;
输出学生信息功能主要是实现将所有录入学生信息库系统的学生的信息都能准确地输出。
2.2 运行结果:
输出学生信息
3. 计算并输出平均成绩功能;
计算并输出平均成绩功能主要是实现算出所有录入学生信息库系统的学生的平均数。
3.1 运行结果:
计算每一个学生的平均成绩并输出
4. 按平均成绩排序功能(从大到小);
按平均成绩排序功能主要是实现将所有录入学生信息库系统的学生按照平均分高到低的顺序进行排序。
4.1 运行结果:
按学生的平均成绩排序(从大到小)
程序设计基础课程设计 —— 学生信息管理系统(下)https://developer.aliyun.com/article/1507689?spm=a2c6h.13148508.setting.14.1b484f0eD2AqhJ