学生成绩管理系统文档.docx
《学生成绩管理系统文档.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统文档.docx(18页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统文档
《高级语言课程设计》
实验项目:
学生成绩管理系统
学号:
1027328255
姓名:
王斌
专业:
网络工程
班级:
10-5
指导教师:
徐素锦
成绩:
2011年12月22日
1、系统分析3
2、系统设计4
2.1数据结构设计4
2.2各功能模块设计6
2.2.1学生记录录入模块设计3
2.2.2学生信息管理模块设计6
2.2.3学生成绩管理模块设计…………………………………………………………6
3、系统实现7
3.1学生记录录入模块的实现7
4、总结14
1、系统分析
1.1系统分析结构图:
1.2系统功能分析:
学生成绩录入模块中:
管理人员能通过手动输入学生信息,同时可以通过文档流导入大量学生信息。
学生信息管理模块中:
管理人员能查看、添加、删除、修改学生信息。
学生成绩管理模块中:
管理人员能查看所需要的各种学生信息,以及查询某个学生或某个班级的学生成绩。
权限:
全部可用
2、
系统设计
2.1数据结构设计
2.1.1定义课程分数类
{课程成绩类
:
[40];课程名
;学分
;成绩
:
(*s);
*();
();
();
();
}
2.1.2定义类
{类
:
[20];
;
;
:
(*);
(){
<<"\t姓名:
"<<<<"\t性别:
"<<<<;
}
};
2.1.3定义学生类型
{学生类继承自类
:
[10];学号
[10];班级
;总成绩
;平均成绩
;总学分
;课程数
60;60分以下课程
:
<>;学生成绩
(***)设置学生信息
(&);添加课程成绩信息
();输出学生信息
60();输出60分以下的课程
*();
*();
<>();
();
();
();
();
60();
*();
};
2.1.4定义班级类
{班级类
:
[10];班级名
;班级人数
:
<>;学生
(&);向学生向量中添加学生
();输出该班级的所有学生信息
*();
();
<>();
<>();
(*);
(*);删除学生信息
();按学号排序
();按分数查找
};
2.1.5定义全局变量
;全局变量存放当前学生人数
<>全局向量存放当前所有班级信息
2.2各功能模块设计
2.2.1学生记录录入模块设计
1从键盘输入学生各种信息,学号,姓名,年龄,性别,班级,成绩:
课程名称,学分,成绩。
遍历全局变量,把学生对象添加到相应的班级中,不存在班级,新建班级对象,把该学生添加进去,
2从文件中录入学生信息,运用文件流从文件读取相应信息
2.2.2学生信息管理功能模块设计
1学生信息显示,遍历,再遍历相应班级里的学生。
输出学生信息,
2学生信息添加,调用从键盘输入信息的方法。
3删除学生信息,遍历全部学生信息,查找该学生,找到了则删除该学生对象,找不到返回“未找到该学生”
4学生修改信息,遍历全部学生,查找指定,找到该学生,修改学生各种信息,然后重新赋值给该对象。
2.2.3学生成绩管理功能模块设计
1按学号排大小:
遍历先确定班级,再遍历该班级的每个学生,根据每个学生的学号,用冒泡方法排序。
2按总成绩高到低排列:
遍历,先确定班级,然后遍历该班级的每个学生,根据每个学生的总成绩,用冒泡方法排序。
3输出所有60分一下的学生:
遍历全部学生成绩。
假如有低于60分的课程,则输出该学生信息。
4输出所有80分以上的学生:
遍历全部学生成绩。
假如有高于80分的课程,则输出该学生信息。
5查询指定学生的信息:
遍历全部学生信息,根据学号查找该同学,存在,输出该学生信息,
不存在,输出“不存在该学生”
6查找指定姓名的学生信息:
遍历全部学生信息,根据学生姓名查找该同学,存在,输出该学生信息,不存在,输出“不存在该学生”
7查询指定班级的学生信息:
遍历全部班级,输出每个班级全部学生信息,
3、系统实现
3.1学生记录录入模块的实现
3.1.1键盘录入学生信息
(){键入学生信息
n;
<<"请输入需要录入的学生人数:
"<<;
>>n;
[10];
[40];
;
;
[10];
[40];
;
;
c;
("");
0;
0;
<<"\t\t\t录入学生信息"<<;
(n){
;
<<"请依次输入第"<
>>>>>>>>>>;
;
();
{
;
<<"请依次输入第"<
>>>>>>;
;
();
();
();
}('#');
(()){
c1;
c1();
c1();
(c1);
}{
c2=*();
c2();
}
;
;
}
("");
}
3.1.2文件导入学生信息
()导入文件
{
M:
[10][40][10][40];
[40];
;
<<"请输入你要录入的文件名:
";
>>;
();
()文件不存在
{
<<"不存在文件!
"<<;
M;
}
();
();
(>>);
(0<)循环次,每次读入一个学生信息
{
;
();读入第一行
1();定义字符串流对象1
1>>>>>>>>>>;
();
();
2();定义字符串流对象2
2>>;
();
(0<)
{
();
3();
3>>>>>>;
1;
1();
;
(1);
();
}
(())
{
;
();
()0;
();
();
}
{
=*();
()0;
();
*();
}
}
}-
3.2学生信息管理功能模块的实现
3.2.1学生信息显示
(){输出所有信息
("");
(0<()){
[i];
();
}
("");
}
(){
(0<()){
1[i];
1();
}
}
3.2.2学生信息添加
同键入学生信息
3.2.3学生信息删除
(){删除指定学生信息
*0;
<<"请输入学号:
"<<;
>>c;
;
(0<()){
[i](c);
(){
;
}{
;
}
(){
<<"删除信息成功!
"<<;
}{
<<"未找到学生!
"<<;
}
("");
}
}
(*){删除学生信息
;
;
(0<()){
(([i]())0){
([i]);
;
}
}
;
}
3.2.4学生信息修改
(*)修改信息
{
[10][40][10][10];
(0<())遍历各个班级
{
[t];
(0<())
{
[y];
((())0)比较字符串是否相同
{
<<"请输入用户的新信息";
<<"学号";
>>;
<<"姓名";
>>;
<<"年龄";
>>;
<<"性别";
>>;
<<"班级";
>>;
;
()重新设置对象属性;
[y];
[t][y]赋值
;
}
}
;
}
}
3.3.学生成绩管理功能模块实现
3.3.1按学号从小到大排序
(){按学号排序
<<"按学号从小到大排序后结果:
"<<;
(0<())
{
<<"这是"<<[o]()<<"班"<<;
[o]();
}
}
(){按学号排序
*s[100]={""}*"";
(0<()){
s[i][i]();
}
(0<()){
(0<()1){
([j]()<[1]()){
[j][j][1][1];
}
}
}
<
}
3.3.2按成绩从高到低排序
(){按成绩排序
2;
2();
}
(){按成绩排序
0a[5]*b[100]00;
(0<())
{
[i];
(0<())
{
[k];
(0<[k]())
{
();
[j];
();
}
a[s][s]()0;
;
}
}
*"";
(0<5)
{
(0<5)
{
(a[]{
[][][1][1];
}
}
}
(0<)
{
<}
}
4、总结
问题:
语法错误偏多。
指针运用不好。
对设计模式没有概念,总是感觉这样写类不好,但又不知道具体怎样写一个刚好的类。
解决方法:
通常去网上查找方法,论坛上,XX知道有很多答案。
建议:
实验中发现这个程序的架构有一些问题,很一些是不是不必要写,适当的添加一些抽象类,“工厂类“系列的。