学生成绩分析管理系统Word文档格式.docx
- 文档编号:18157090
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:52
- 大小:849.98KB
学生成绩分析管理系统Word文档格式.docx
《学生成绩分析管理系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《学生成绩分析管理系统Word文档格式.docx(52页珍藏版)》请在冰豆网上搜索。
charMsg;
//获取操作命令
boolflag;
//判断操作是否正确
chartel[50];
//是否错误通知
characcount[20];
//账号或学号
structstudent*p;
//用于链表寻找节点
structstudent*q;
//用于链表寻找节点
成员函数:
DisplayChoose(charid[][20],charn);
//选择界面显示
DisplayChoose(chartel[]);
//老师登陆
DisplayList(structstudent*t);
//列表界面
DisplayAnalysis(charid[][20]);
//分析界面
DisplayAdd(structstudent*head);
//添加界面
DisplayOperate(structstudent*t);
//修改界面
DisplayDelete(structstudent*t);
//删除界面
DisplayExit();
//关闭界面
模型类-后台运算(Model):
boolflag;
//判断操作是否正确
characcount[20];
//账号和密码
structstudenthead;
//头链表
structstudentt;
//临时结构体
structstudent*p;
boolLogin(characcount[]);
//登陆
structstudent*LoadData();
//数据加载
voidQuery(structstudent*Head,characcount[20],charMsg);
//查询数据
voidAnalysis(structstudent*head,charMsg);
//分析数据
structstudent*Ranking(structstudent*head,charMsg);
//排名数据
voidQuit(structstudent*head);
//退出
friendclassController;
//私有方法充许Controller类调用的声明
voidAddData(structstudent*head,structstudent*t);
//添加数据
boolUpData(structstudent*head,structstudent*t,characcount[]);
//更新数据
boolDeleteDate(structstudent*head,characcount[]);
//删除数据
boolSaveDate(structstudent*head);
//保存数据
控制器--逻辑控制(Controller):
charMsg;
//获取操作命令
chartel[50];
//是否错误通知
charid[5][20];
//选择项
structstudent*head;
//链表头
voidLogin();
//登陆
voidMenu(charMsg);
//主菜单
voidOperate(structstudent*head);
//操作
voidQuery(structstudent*head);
//查找
voidAnalysis(structstudent*head);
//分析
voidRanking(structstudent*head);
//排名
voidQuit(structstudent*head);
2.2数据结构设计
利用结构体创建链表用来保存提取的学生信息
结构体如下:
structstudent
{
charStuNo[12];
//学号
charName[20];
//姓名
charMajors[20];
//系别
charClas[20];
//班级
intgrade[4];
//成绩----5科成绩
structstudent*next;
};
2.3.界面设计(UI)字符界面
选择登陆权限界面
老师登陆界面
老师主菜单
学生界面
退出界面
2.4数据存储(Datastorage)
数据以文件形式存储,以二进制形式顺序存储在一个文件中,是student.txt,用与存储学生成绩信息。
2.5详细设计(Detailfunction)
系统流程图
学生操作流程图
老师操作流程图
查看流程图
分析流程图
排名流程图
添加流程图
修改流程图
删除流程图
三,类图(Classdiagram)
●Controller.h
#include"
iostream"
fstream"
iomanip"
string"
windows.h"
Model.h"
usingnamespacestd;
classController:
publicView,Model//控制流程
public:
voidLogin();
voidMenu(charMsg);
boolQuery(structstudent*head);
private:
//账号认证
charadmin[20];
//账号
charid[5][20];
doubleresult[25];
//分析结果
structstudent*t;
structstudent*head;
●Model.h
View.h"
classModel//运算
boolLogin(characcount[20],charadmin[20]);
structstudent*Query(structstudent*Head,characcount[20],charMsg);
voidAnalysis(structstudent*head,charMsg,characcount[20],double*result);
structstudent*Ranking(structstudent*head,charMsg,characcount[20]);
friendclassController;
//私有方法充许Controller类调用的声明
char*LoadAdmin();
//加载老师账号
voidSaveAdmin(characcount[20]);
//保存老师帐号
voidAddData(structstudent*head,structstudent*t);
voidUpData(structstudent*head,structstudent*t,characcount[20]);
voidDeleteData(structstudent*head,characcount[]);
voidSaveData(structstudent*head);
boolflag;
//账号和密码
structstudent*c;
●student.h
//定义结构体
doublegrade[4];
//成绩----4科成绩
●View.h
student.h"
classView//显示
charDisplayChoose(charid[][20],charn);
char*DisplayChoose(chartel[]);
boolDisplayList(structstudent*t);
voidDisplayAnalysis(double*result);
boolDisplayEnquire();
//询问是否继续
char*DisplayIn();
//输入条件
char*DisplayIn(structstudent*head);
//输入条件
structstudent*DisplayAdd(structstudent*head);
structstudent*DisplayUpdata(structstudent*head,characcount[20]);
boolDisplayDelete();
voidDisplayExit();
//退出界面
voidDisplayWelcome();
//欢迎页面
voidDisplayError();
//错误页面
charMsg;
●学生成绩管理分析系统.cpp
//输入输出流的头文件
//iomanip.h是I/O流控制头文件,就像C里面的格式化输出一样
Controller.h"
charView:
:
DisplayChoose(charid[][20],charn)//选择界面显示
Msg='
0'
;
strcpy(tel,"
"
);
while(Msg=='
)//Msg='
故恒为真
{
DisplayWelcome();
cout<
<
\n\t\t\t\t︳\n"
<
\t\t\t"
setw(10)<
id[1]<
︳"
id[2]<
\n"
\t\t\t\t︳\n"
\t\t---------------------------------\n"
id[3]<
id[4]<
\t\t\t\t︳\n\n\n"
tel<
\n\n"
您当前的状态——"
id[0]<
请输入数字然后按ENTER:
Msg=getchar();
fflush(stdin);
//刷新缓冲区,防止输入过多数据
if(Msg<
='
||Msg>
n){
\t\t\t输入错误!
请重新输入!
}
returnMsg;
}
char*View:
DisplayChoose(chartel[])//老师登陆界面
\n\n\n\t\t\t请输入账号然后按ENTER:
cin>
>
account;
//account账号/密码
returnaccount;
boolView:
DisplayList(structstudent*t)//列表界面
p=t;
intn=0;
if(p->
next!
=NULL)
{
\t╔══╦══╦══╦══╦══╦══╦══╦══╦══╗\n"
\t║编号║学号║姓名║系别║班级║语文║数学║理综║英语║\n"
\t╠══╬══╬══╬══╬══╬══╬══╬══╬══╣\n"
while(p->
n++;
p=p->
next;
\t║"
setw(4)<
n<
║"
p->
StuNo<
Name<
Majors<
Clas<
grade[0]<
grade[1]<
grade[2]<
grade[3]<
║\n"
else
\t╚══╩══╩══╩══╩══╩══╩══╩══╩══╝\n"
flag=true;
\n\n\n\t\t\t没有数据!
flag=false;
system("
pause"
//暂停命令行里输出一行类似于“Pressanykeytoexit”的字,等待用户按一个键,然后返回。
returnflag;
voidView:
DisplayAnalysis(double*result)//分析界面
\t\t科目\t及格率\t优秀率\t最高分\t最低分\t平均成绩\n\n"
cout.precision
(2);
//保留两位小数
\t\t语文\t"
result[0]<
\t"
result[1]<
result[2]<
result[3]<
result[4]<
\t\t数学\t"
result[5]<
result[6]<
result[7]<
result[8]<
result[9]<
\t\t理综\t"
result[10]<
result[11]<
result[12]<
result[13]<
result[14]<
\t\t英语\t"
result[15]<
result[16]<
result[17]<
result[18]<
result[19]<
\t\t汇总\t"
result[20]<
result[21]<
result[22]<
result[23]<
result[24]<
\n\n\t"
DisplayEnquire()//询问是否继续
是否继续?
请输入Y/N后,按ENTER键:
Msg;
returnMsg=='
Y'
||Msg=='
y'
?
true:
false;
DisplayIn()//输入条件
\t\t\t请输入条件,然后按ENTER:
DisplayIn(structstudent*head)//输入条件
\t\t\t"
while(!
flag)
输入学号然后按ENTER:
p=head;
if(strcmp(account,p->
StuNo)==0)
break;
if(!
\t\t学号输入错误,请重新"
structstudent*View:
DisplayAdd(structstudent*head)//添加界面
q=(structstudent*)malloc(sizeof(structstudent));
while(flag){
q->
StuNo;
if(strcmp(q->
StuNo,p->
StuNo)==0)//看是不是与添加的学号相同
\t\t输入学号重复,请重新"
\t\t\t输入姓名然后按ENTER:
Name;
\t\t\t输入系别然后按ENTER:
Majors;
\t\t\t输入班级然后按ENTER:
Clas;
\n\n\t\t\t输入语文然后按ENTER:
grade[0];
\t\t\t输入数学然后按ENTER:
grade[1];
\t\t\t输入理综然后按ENTER:
grade[2];
\t\t\t输入英语然后按ENTER:
grade[3];
q->
next=NULL;
returnq;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩 分析 管理 系统