学生成绩管理系统.docx
《学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统.docx(28页珍藏版)》请在冰点文库上搜索。
![学生成绩管理系统.docx](https://file1.bingdoc.com/fileroot1/2023-6/27/5caeae21-dc16-429b-96ea-5fcfa707e651/5caeae21-dc16-429b-96ea-5fcfa707e6511.gif)
学生成绩管理系统
1问题描述
学生成绩管理系统
学生成绩管理系统
学生信息包括学期、学号、班级、姓名,和语文、数学、英语、计算机四门课成绩。
并按班级、学期查询学生成绩,并能录入、修改,求学生平均成绩和总成绩,输出不及格科目,按班级输出成绩单,按班级对学生成绩进行排序。
2系统分析
2.1题目要求
学生成绩管理系统设计
学生成绩信息包括:
学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)。
主要功能:
(1)能按学期、按班级完成对学生成绩的录入、修改
(2)能按班级统计学生的成绩,求学生的总分及平均分,设计并输出统计报表
(3)能查询学生成绩,不及格科目及学生名单
(4)能按班级输出学生的成绩单
(5)能按班级,按课程,对学生成绩进行排序。
要求:
使用二进制文件方式存储数据,系统以菜单方式工作
2.2算法设计
(1)创建主菜单
(2)实现学生成绩信息录入
(3)实现学生成绩信息修改
(4)实现学生成绩信息查询
(a)按学期、班级查询学生的成绩
(b)按学号查询学生的成绩
(c)查询不及格的科目和学生名单
(5)实现学生成绩成绩统计
(a)按班级统计学生的总分、平均分
(b)按班级、课程对学生的总分进行排序
(6)实现学生成绩信息浏览
2.3流程图
2.4关键问题
难点:
指针p、函数。
解决:
无条件循环
指针p指向新开辟的单元
指针p是否为空
是否
输入学号>
输出>是否为@
内存是否
溢出输入姓名>
停止(0<3)
输入输入成绩
返回>;
菜单>()3;
主函数:
()
新建函数:
*()
输入函数*()
显示函数:
*(*)
删除函数:
*(*)
按名字寻找函数:
(*)
保存函数:
(*)
按总分排序函数:
*(*)
计算总分和均分函数:
(*)
修改函(*)
按学号排序函数:
*(*h)
3系统实现
3.1题目一
(源代码)
<>
<>
<>
N4
{
;定义学期(1或2)
;学号
;定义班级(1或2班)
[9];姓名
;定义四门成绩
;
;
;
*;
};
0;
******************************************************************************
函数功能:
创建链表,录入学生的相关信息,此函数返回一个指向链表头的指针
******************************************************************************
*()
{
*,*,*;
c;
();
("是否要输入信息():
");
("");
(*)(());
;
('y')
{
;
(*)(());
("请输入要录入学生信息的学期:
");
();
("">);学期只能为1或2
(>1>2)
{
();
("输入错误!
请重新输入:
");若学期不为1或2,则输入有误
("">);
}
("请输入要录入学生成绩信息的班级:
");
();班级只能为1或2
("">);
(>1>2)
{
();
("输入错误!
请重新输入:
");
("">);
}
("请输入该班的学生信息!
\n");输入学生信息(包括学号、四门成绩)
("请输入学生学号:
");
();
("">);
("请输入学生姓名:
");
();
("">);输入学生姓名
("请输入语文成绩(0-100):
");输入四门成绩
("">);
("请输入数学成绩(0-100):
");
("">);
("请输入英语成绩(0-100):
");
("">);
("请输入计算机成绩(0-100):
");
("">);
(1)创建新结点
;
>;
;
("是否还要输入信息():
");
();
("");
}
>;链表结尾
();链表返回头指针
}
******************************************************************************
函数功能:
实现对学生信息的修改
******************************************************************************
(*)
{
*;
;
[9];定义一个数组,存储学生的姓名
;
()("出错!
请先输入学生信息!
");
(1)设置循环控制
{
("\t\t\t请选择要修改的信息!
\t\n");
("\t\t\\n");输出要修改的信息
("\t\t\ta、学号:
\n");
("\t\t\tb、姓名:
\n");
("\t\t\tc、班级:
\n");
("\t\t\td、成绩:
\n");
("\t\t\\n");
();清盘
("");
('a')
{
("你要修改的信息是:
学号!
\n");按姓名修改学号
("请输入你要修改的学生姓名:
");
("");
((>)0)
{
("请输入该学生新的学号:
");输入新学号
("">);
}
("无法查找到该学生!
\n");找不到信息
}
('b')按学号修改该班级学生的信息
{
("你要修改的信息是:
姓名!
\n");
("请输入你要修改的学生的学号:
");
("");
(>)输入学号,判断条件
{
("请输入该学生的姓名:
");
("">);输入要做修改的学生姓名
}
("无法查找到该学生!
\n");找不到信息
}
('c')
{
("你要修改的信息是:
班级!
\n");按学号修改班级
("请输入你要修改的学生的学号:
");
("");
(>)
{
("请输入该学生的班级:
");输入要做修改的班级
("">);
}
("无法查找到该学生!
\n");找不到信息
}
('d')
{
("你要修改的信息是:
成绩!
\n");按学号修改成绩
("请输入你要修改的学生的学号:
");
("");
(>)输入学号
{
("请输入该学生新的语文成绩:
");
("">);
("请输入该学生新的数学成绩:
");
("">);输入新的四门成绩
("请输入该学生新的英语成绩:
");
("">);
("请输入该学生新的计算机成绩:
");
("">);
}
("无法查找该学生的信息!
\n");找不到信息
}
("出错!
\n");
>;
("是否还要继续修改信息():
");判断,是否还要修改信息,跳出循环
();
((())'n');
}
}
******************************************************************************
函数功能:
按照学号查询学生信息
******************************************************************************
(*)
{按学号查询学生的成绩
*p;
;
0;
("请输入你要查询的学生学号:
\n");
("");
(>)输入学号,判断条件
{
("");
("\t学期\t学号\t班别\t姓名\t语文\t数学\t英语\t计算机\t\n");
("\n");
("\t">);
("\t">);
("\t">);输出学生的班级
("\t">);
("%1f\t">);输出四门成绩
("%1f\t">);
("%1f\t">);
("%1f\t">);
2;
}
(0)
("没找到该学生的信息!
");找不到信息
}
(*)
{
0;
*;
()按班级查询学生的成绩
{
("请输入你要查询成绩的班级:
");
("");
(>)
{
("请输出班所有同学的成绩:
");
("");
("\t学期\t学号\t班别\t姓名\t语文\t数学\t英语\t计算机\t\n");
("\n");
("\t">);输出要查询成绩的班级
("\t">);输出查询成绩的学生学号
("\t">);输出要查询成绩的班级
("\t">);输出要查询成绩的学生姓名
("%1f\t">);
("%1f\t">);输出四门成绩
("%1f\t">);
("%1f\t">);
("\n");
2;
}
>;
(0)
("没找到学生信息!
");输出错误,找不到信息
}
}
(*)定义按学期查找信息的函数
{
0;
*;
()设置循环控制
{
按学期查询学生的成绩
("请输入你要查询成绩的学期:
");
("");
(>)
{
("请输出第学期所有班级的信息:
");
("");
("\t学期\t学号\t班别\t姓名\t语文\t数学\t英语\t计算机\t\n");
("\n");
("\t">);
("\t">);
("\t">);
("\t">);输出姓名
("%1f\t">);
("%1f\t">);
("%1f\t">);输出四门成绩
("%1f\t">);
("\n");
2;
}
>;
(0)
("没找到学生信息!
");找不到信息
}
}
(*)定义一个函数,查找不及格的学生
{
*p;
;
0;
;
("请输入要查询成绩的学生学号:
");
("");
(>)
{
("正在查询该学生的成绩,请稍侯>>>>>\n");查询学生的成绩,输出不及格的科目
()
{
(><60)
{
("该学生的语文不及格!
\n");
("\n");
;
}
(><60)输出该学生的不及格科目
{
("该学生的数学不及格!
\n");
("\n");
;
}
(><60)
{
("该学生的英语不及格!
\n");对各门成绩进行判断
("\n");
("\n");
;
}
(><60)
{
("该学生的计算机不及格!
\n");
("\n");
;
}
(i>0)
("同学共有门成绩不及格!
\n学号是\n">>);
("\n");
>>>>;
(<240)
("不及格学生名单为">);输出不及格的学生名单
>;
}
}
}
(*)定义一个查询学生信息的函数,调用各子函数,进行查询
{
;
*;
()设置循环控制条件
{输出查询方式
("\t\t\t你要选择何种方式查询成绩!
\n");
("\\n");
("\t\t\ta、学号:
\n");
("\t\t\tb、班级:
\n");
("\t\t\tc、学期:
\n");
("\t\t\td、不及格的学生:
\n");
("\\n");
();
("");
(k)
{
'a'();调用学号函数
'b'();
'c'();
'd'();
}
("\n");
("是否还要继续查询学生的信息():
");
();
((())'n');跳出循环,返回主菜单
}
}
******************************************************************************
函数功能:
对学生成绩进行统计,按班级求总分及平均分
******************************************************************************
(*)对该班级的学生成绩求总分、平均分
{
00;
0;
*;
()
{
>>>>;输出学生的总分和平均分成绩
;
("第个学生的总分为1f!
\n"1);
("\n");
("第个学生的平均分1f!
\n"1);
("\n");
("已经统计了第个学生的成绩!
\n"1);统计完毕
("\n");
;
>;指向下一个结点
}
}
(*)对该班级的学生成绩进行排序
{
0;
a[10];把结点信息输入到数组,然后排序
*;
()
{
a[i]>>>>;
;
>;
}
(0<4)用数组排序
(0<3)
(a[i]{
[i];
a[i][1];
a[1];
;
}
(0<4)输出排序后的总分
(""[i]);
}
(*)按学号和班级对学生成绩进行统计
{
*p;
;
;
12;
("请输入要统计成绩的班级(1或2):
");输入要统计成绩的班级
("");
("正在统计该班级学生的总分,请稍侯!
!
!
\n");
(1)设置循环控制条件
{
(p);调用总分函数
("是否还要继续统计其他学生的成绩():
");
();
((1())'n');
}
("是否要对该班的学生成绩进行排序():
");
();清盘
((2()'n'))
{("正在对该班学生的总分进行排序,请稍侯!
!
!
\n");
(p);调用排序函数
("\n");}
}
******************************************************************************
函数功能:
信息浏览,查看库中全部记录
******************************************************************************
*(*)
{
*p;
;
("\n");
("学期\t学号\t班别\t姓名\t语文\t数学\t英语\t计算机\t\n");
("\n");
()
{
("\t">);查询学期
("\t">);查询学号
("\t">);查询姓名
("\t">);
("\t">);查询四门成绩
("%1f\t">);
("%1f\t">);
("%1f\t">);
>;
("\n");
("\n");
}
();
}
******************************************************************************
将信息存入磁盘文件e:
\,该文件是一个文本文件
******************************************************************************
(*)
{
*;定义文件指针
*;
("d:
\\","");
()
{
((),1);
>;
}
();关闭磁盘文件
("数据存盘成功!
\n");
}
******************************************************************************
******************************************************************************
()
{
*;
;
创建菜单
{
("\t\\n");
("\t\t学生成绩信息管理系统\n");
("\t\\n");
("\t\t\t1信息导入\n");
("\t\t\t2信息修改\n");
("\t\t\t3信息查询\n");
("\t\t\t4信息浏览\n");
("\t\t\t5统计成绩\n");
("\t\\n");
("\t\t\t6数据存盘\n");
("\t\\n");
("\t\t\t0退出系统\n");
("\t\\n");
("请选择:
");
("");
()
{
1();调用函数
2();
3();
4();
5();
6();
8("\n\n\t\t\t\t^-^,再见!
\n\n\n");
}
}(0);
}
4系统测试
4.1如何设计测试数据
先输入学期、班级,再输入学生信息(学号、语文、数学、英语、计算机成绩(限定在100以内));再查询成绩可以按学号、班级、学期查询;同样修改可以按学号、班级、学期修改
4.2系统测试过程
(1)测试数据1及测试结果
4系统测试
4.1如何设计测试数据
先输入学生班级、学期,再输入学生信息(学号、姓名、语文、数学、计算机成绩(限定在100分以内));可以按学期、班级、学号查询成绩;同样也可以按学期、班级、学号修改成绩;能求总分和平均分。
4.2系统测试过程
(1)测试数据1及测试结果
登陆界面:
输入信息:
输入成绩:
查询成绩:
求平均分:
修改信息:
5总结
5.1系统工作总结
此学生成绩管理系统做的比较人性化,系统很容易操作。
成绩导入、成绩流览这些模块做的比较好,成绩修改这一模块做的还不够成熟,需要继续完善。
5.2心得体会
做这个系统,感觉很难,有些内容上课没听懂,对知识点没彻底弄懂,导致做系统的时候感觉知识不够用,力不从心。
在以后的学习中更要上课认真听讲,注重每个知识点、细节,彻底搞懂;也要多些程序以提高自己编程的水平;课余时间更要多花时间在编程上面,这样才能学好。