学生管理系统课程设计Word下载.docx
- 文档编号:14407463
- 上传时间:2022-10-22
- 格式:DOCX
- 页数:29
- 大小:306.92KB
学生管理系统课程设计Word下载.docx
《学生管理系统课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《学生管理系统课程设计Word下载.docx(29页珍藏版)》请在冰豆网上搜索。
要求:
使用二进制文件方式存储数据,系统以菜单方式工作
2系统分析
2.1题目要求
本系统可以对学生的成绩信息进行简单的管理操作:
主菜单包括9个选项:
1.学生成绩浏览
如果未导入学生成绩,系统会提示导入成绩,成绩导入后,可以用本功能浏览成绩。
2.学生成绩录入
当学生成绩未导入是会自动提示对学生成绩的录入,可以按学期,按班级完成对学生成绩的录入。
3.学生成绩修改
当需要修改学生成绩时,本功能可以修改学生的成绩,可以按学期,按班级完成对学生成绩的修改。
4.按班级统计学生成绩的总分和平均分
可以对计算学生的成绩的总分和平均分,并按班级统计出来。
5.学生成绩查询
完成对学生成绩的查询,本功能是按照学号查询。
6.学生成绩保存
可以将学生成绩存入磁盘文件,并从磁盘里读出学生成绩,信息保存在e:
\\wh.dat。
7.学生成绩未存盘时导入
当磁盘文件不存在会提示导入学生的成绩。
8.按班级输出学生成绩
可以按班级输出学生的成绩单,其中包括学生的四门课的成绩不及格科目和学生的名单。
9.学生成绩排序
能按班级,按课程,对学生成绩进行排序。
按班级排序时可以对某个班级学生的成绩排序,按课程排序时是对某一门课的排序。
2.2算法设计
模块一:
学生成绩浏览模块
该模块实现对学生成绩的浏览功能,但前提是学生的信息已经保存,
实现算法如下:
①输出学生信息的标题
②检索信息数组
③用循环实现对学生信息的对应输出
模块二:
学生成绩录入模块
该模块实现对学生成绩的录入功能,通过菜单的选择,调用两个子函数实现成绩的录入。
1输出按不同方式录入学生成绩的选择菜单,一是按学期录入,二是按班级录入
②调用按学期录入的函数
③选择学期用循环完成对学生信息的录入
④保存学生信息,并回到录入函数
⑤调用按班级录入的函数
⑥选择班级用循环完成对学生信息的录入
⑦保存学生信息,并回到录入函数
模块三:
学生成绩修改模块
该模块实现对学生成绩的修改功能,通过菜单的选择,调用两个子函数实现对学生的成绩的修改。
①输出按不同方式修改学生成绩的选择菜单,一是按学期修改,二是按班级修改
②调用按学期修改的函数
③选择学期用循环完成对学生成绩的修改,修改的科目包括语文,数学,英语,计算机
④保存学生成绩信息,并回到修改函数
⑤调用按班级修改的函数
⑥选择班级用循环完成对学生成绩的修改,修改的科目包括语文,数学,英语,计算机
⑦保存学生成绩信息,并回到修改函数
模块四:
按班级统计学生成绩的总分和平均分模块
该模块可以计算学生成绩的总分和平均分
①输出选择的班级
②通过检索数组选出某个班
③通过循环输出这个班的每个学生的总分和平均分
模块五:
学生成绩查询模块
该模块能通过学生的学号查询学生的成绩
①输入要查询的学生的学号
②通过检索数组选出对应的学生
③调用输出函数输出学生相关的信息
模块六:
学生成绩保存模块
该模块可以保存学生信息的导入,修改,录入
①定义文件的保存位置
②通过数组写入要保存的文件
③关闭磁盘文件
模块七:
学生成绩为存盘时导入模块
该模块可以在学生成绩为存盘是完成对学生成绩的导入并存盘
①输出是否创建的提示
②选择是否创建
③提示已经导入,并关闭磁盘文件
模块八:
按班级输出学生成绩模块
该模块可以从多个班级里选择某班学生的成绩并输出
①输入要选择的班级
②检索数组选出该班
③输出该班学生的相关信息
模块九:
学生成绩排序模块
该模块可以对学生的成绩按不同的方式排序
①输出排序方式的菜单
2调用按班级排序的函数
3输出菜单后用冒泡法对总分进行比较,按从大到小的顺序输出
4保存并回到排序函数
5调用按课程对学生排序的函数
6通过冒泡法分别对语文,数学,英语,计算机的成绩进行对比,按从大到小输出
7保存并回到排序的函数
读取文件
开始
是否创建文件
退出
1学生成绩浏览
7为存盘时导入
4总分和平均分
5学生成绩查询
6学生成绩保存
2学生成绩录入
9学生成绩排序
3学生成绩修改
8按班输出成绩
按学期
按班级
按班级统计和与平均分
保存
按学期查询
查找
输出
输入班级
按课程
从大到小的顺序排序
模块十:
退出模块
退出系统
2.3流程图
是
否
2.4关键问题
这个系统最主要是要掌握各个函数的方法,比如说成绩的录入,修改,成绩的查询等。
在对学生成绩的录入,修改,求平均分和总分,输出学生的成绩时都要求按不同的方式完成,比如录入,修改,输出成绩扥等。
这里我写一个菜单,用一个主函数,分别调用两个子函数。
在成绩修改时注意输出的数据的对应,最后哟啊保存修改的数据,这里最容易被忽略,如果不保存的话,就白费心机啦。
注意自己定义的头文件的数据类型和源文件里面的数据类型要符合,这个函数有点大,随意这种细节一般容易出错。
在输入一个函数数据的时候,应该清空键盘区,很容易出错。
总之来说,编译的时候会有很多错,但是经过改正过后,发现很多都是不必要的或是细节问题。
3系统实现
3.1题目一
#include<
stdio.h>
windows.h>
string.h>
stdlib.h>
#include"
student.h"
intnumber;
voidview(structstudentpeople[])
{
inti;
printf("
\t\t\t\t学生成绩管理系统\n"
);
\t\t\n"
学期\t学号\t班别\t姓名\t语文\t数学\t英语\t计算机\n"
****************************************************************\n"
for(i=0;
i<
=number-1;
i++)
{
printf("
%s\t"
people[i].sem);
people[i].num);
%d\t"
people[i].clas);
people[i].name);
%4d\t"
people[i].chinese);
people[i].math);
people[i].english);
people[i].computer);
\n"
--------------------------------------------------------------------------------\n"
}
}
//********************************************************************************************
//按班级统计学生总分和平均分
voidgrade(structstudentpeople[])
{
intclas;
intaver=0;
intsum=0;
scanf("
%d"
&
clas);
for(inti=0;
number;
if(people[i].clas==clas)//查找班级
{
sum=people[i].chinese+people[i].math+people[i].english+people[i].computer;
aver=sum/4;
printf("
第%d个学生总分为:
%d\n"
i+1,sum);
第%d个学生的平均分为:
i+1,aver);
}
//输出某一个学生的信息
voidprnt(structstudentpeople[],inti)
------------------------------------------------------------------------------\n"
姓名\t语文\t数学\t英语\t计算机\t不及格科目\t学生名单\n"
%.1f\t"
while
(1)//输出不及格的学生的成绩
if(people[i].chinese<
60)
语文,"
if(people[i].math<
数学,"
if(people[i].english<
英语,"
if(people[i].computer<
计算机\t"
break;
%s"
//输出学生的名单
---------------------------------------
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 管理 系统 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)