学生管理系统课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
重庆理工大学
课程设计
课程程序设计基础C 题目 C语言综合程序设计
院系名称商贸信息学院
班级计算机应用技术一班
学生姓名吴昊学号 20920310119 指导教师卢玲
评阅教师
时间 2010年6月
1 问题描述
5.4题目五:学生成绩管理系统设计
学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)。
主要功能:
(1)能按学期、按班级完成对学生成绩的录入、修改
(2)能按班级统计学生的成绩,求学生的总分及平均分,设计并输出统计报表
(3)能查询学生成绩,不及格科目及学生名单
(4)能按班级输出学生的成绩单
(5)能按班级,按课程,对学生成绩进行排序。
要求:使用二进制文件方式存储数据,系统以菜单方式工作
2 系统分析
2.1 题目要求
本系统可以对学生的成绩信息进行简单的管理操作:
主菜单包括9个选项:
1.学生成绩浏览
如果未导入学生成绩,系统会提示导入成绩,成绩导入后,可以用本功能浏览成绩。
2.学生成绩录入
当学生成绩未导入是会自动提示对学生成绩的录入,可以按学期,按班级完成对学生成绩的录入。
3.学生成绩修改
当需要修改学生成绩时,本功能可以修改学生的成绩,可以按学期,按班级完成对学生成绩的修改。
4.按班级统计学生成绩的总分和平均分
可以对计算学生的成绩的总分和平均分,并按班级统计出来。
5.学生成绩查询
完成对学生成绩的查询,本功能是按照学号查询。
6. 学生成绩保存
可以将学生成绩存入磁盘文件,并从磁盘里读出学生成绩,信息保存在e:\\wh.dat。
7.学生成绩未存盘时导入
当磁盘文件不存在会提示导入学生的成绩。
8.按班级输出学生成绩
可以按班级输出学生的成绩单,其中包括学生的四门课的成绩不及格科目和学生的名单。
9.学生成绩排序
能按班级,按课程,对学生成绩进行排序。
按班级排序时可以对某个班级学生的成绩排序,按课程排序时是对某一门课的排序。2.2算法设计
模块一:学生成绩浏览模块
该模块实现对学生成绩的浏览功能,但前提是学生的信息已经保存,
实现算法如下:
①输出学生信息的标题
②检索信息数组
③用循环实现对学生信息的对应输出
模块二:学生成绩录入模块
该模块实现对学生成绩的录入功能,通过菜单的选择,调用两个子函数实现成绩的录入。
①输出按不同方式录入学生成绩的选择菜单,一是按学期录入,二是按班级录入
②调用按学期录入的函数
③选择学期用循环完成对学生信息的录入
④保存学生信息,并回到录入函数
⑤调用按班级录入的函数
⑥选择班级用循环完成对学生信息的录入
⑦保存学生信息,并回到录入函数
模块三:学生成绩修改模块
该模块实现对学生成绩的修改功能,通过菜单的选择,调用两个子函数实现对学生的成绩的修改。
①输出按不同方式修改学生成绩的选择菜单,一是按学期修改,二是按班级修改
②调用按学期修改的函数
③选择学期用循环完成对学生成绩的修改,修改的科目包括语文,数学,英语,计算机
④保存学生成绩信息,并回到修改函数
⑤调用按班级修改的函数
⑥选择班级用循环完成对学生成绩的修改,修改的科目包括语文,数学,英语,计算机
⑦保存学生成绩信息,并回到修改函数
模块四:按班级统计学生成绩的总分和平均分模块
该模块可以计算学生成绩的总分和平均分
①输出选择的班级
②通过检索数组选出某个班
③通过循环输出这个班的每个学生的总分和平均分
模块五:学生成绩查询模块
该模块能通过学生的学号查询学生的成绩
①输入要查询的学生的学号
②通过检索数组选出对应的学生
③调用输出函数输出学生相关的信息
模块六:学生成绩保存模块
该模块可以保存学生信息的导入,修改,录入
①定义文件的保存位置
②通过数组写入要保存的文件
③关闭磁盘文件
模块七:学生成绩为存盘时导入模块
该模块可以在学生成绩为存盘是完成对学生成绩的导入并存盘
①输出是否创建的提示
②选择是否创建
③提示已经导入,并关闭磁盘文件
模块八:按班级输出学生成绩模块
该模块可以从多个班级里选择某班学生的成绩并输出
①输入要选择的班级
②检索数组选出该班
③输出该班学生的相关信息
模块九:学生成绩排序模块
该模块可以对学生的成绩按不同的方式排序
①输出排序方式的菜单
②调用按班级排序的函数
③输出菜单后用冒泡法对总分进行比较,按从大到小的顺序输出
④保存并回到排序函数
⑤调用按课程对学生排序的函数
⑥通过冒泡法分别对语文,数学,英语,计算机的成绩进行对比,按从大到小输出
⑦保存并回到排序的函数
模块十:退出模块
退出系统2.3流程图
在对学生成绩的录入,修改,求平均分和总分,输出学生的成绩时都要求按不同的方式完成,比如录入,修改,输出成绩扥等。这里我写一个菜单,用一个主函数,分别调用两个子函数。
在成绩修改时注意输出的数据的对应,最后哟啊保存修改的数据,这里最容易被忽略,如果不保存的话,就白费心机啦。
注意自己定义的头文件的数据类型和源文件里面的数据类型要符合,这个函数有点大,随意这种细节一般容易出错。
在输入一个函数数据的时候,应该清空键盘区,很容易出错。
总之来说,编译的时候会有很多错,但是经过改正过后,发现很多都是不必要的或是细节问题。
3 系统实现
3.1 题目一
#include
#include
#include
#include
#include "student.h"
int number;
void view (struct student people[])
{
int i;
printf("\t\t\t\t学生成绩管理系统\n");
printf("\t\t\n");
printf("\t\t\n");
printf("学期\t学号\t班别\t姓名\t语文\t数学\t英语\t计算机\n");
printf("********************************************************* *******\n");
for(i=0;i<=number-1;i++)
{
printf("%s\t",people[i].sem);
printf("%s\t",people[i].num);
printf("%d\t",people[i].clas);