学生成绩信息管理系统.docx
- 文档编号:23453247
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:21
- 大小:102.74KB
学生成绩信息管理系统.docx
《学生成绩信息管理系统.docx》由会员分享,可在线阅读,更多相关《学生成绩信息管理系统.docx(21页珍藏版)》请在冰豆网上搜索。
学生成绩信息管理系统
面向对象技术实验报告
(学生成绩信息管理系统)
1.实验目的
使用C++语言编写一个基于控制台的简单程序,使学生掌握简单的程序设计技巧。
同时设计一个简单的学生成绩信息管理系统,可以实现管理学生成绩的基本功能,比如学生管理、信息输出、排名管理等。
适合班级统计成绩使用,能够减少统计工作量,节约统计时间,是一款实用的小型程序。
2.程序功能简介
学生成绩信息管理系统可实现如下功能:
2.1学生基本信息的录入和保存
2.2提取全部信息
2.3删除学生信息
2.4增加学生信息
2.5按总成绩查询
2.6按姓名查询
3.程序流程图
3.1系统设计总模块
3.2查找学生信息函数3.3学生信息增加
4.程序代码(改进后的)
5.代码分析(实现的技术)
#include
#include
#include
classstu//学生类(信息包含姓名,数学成绩,语文成绩,外语成绩。
平均成绩,总成绩)//
{
charname[20];//用来存放姓名的//
doublemath,chinese,english,average,sum;//用来存储各科成绩及总分及平均分//
public:
stu()
{
}
stu(charn[20],doublema,doublechin,doubleeng)//用来存储各科成绩//
{
strcpy(name,n);
math=ma;
chinese=chin;
english=eng;
}
doublegetsum()
{
sum=chinese+english+math;//获得总成绩//
returnsum;
}
doublegetaver()
{
average=getsum()/3;//获得平均成绩//
returnaverage;
}
friendvoidmain();
};
voidmain()
{cout<<"\n\n\n\n★★★***************石君茹欢迎您进入学生成绩信息管理系统**************★★★\n\n";
cout<<"请选择您需要的操作!
"< cout<<"操作: "< cout<<"(0)数据录入"< cout<<" (1)增加人员"< cout<<" (2)删除人员"< cout<<"(3)修改数据"< cout<<"查询: "< cout<<"(4)按总成绩查询"< cout<<"(5)按姓名查询"< cout<<"(6)输出所有学生的数据"< cout<<"成绩名词"< cout<<"(7)按总分查询排名"< cout<<"(8)按语文查询排名"< cout<<"(9)按数学查询排名"< cout<<"(y)按英语查询排名"< cout<<"选择相关操作请输入相对的括号里的阿拉伯数字! "< cout<<"\n★★★*************谢谢使用再见**********************★★★\n\n"< charp;charw; stu*s[50]; ofstream*file[50]; inti=0; intj=0; boolflag2=0; do {cin>>p; if((p>='0'&&p<='10'))//if–else语句// flag2=1; else cout<<"指令错误! 请重新输入: "< }while(flag2==0);//do-while循环// do{ switch(p)//switch语句// {case'0': { charc; charname[20];doublemath,chinese,english; do{ cout<<"请输入姓名"< cin>>name; cout<<"请输入数学成绩: "< cin>>math; cout<<"请输入语文成绩: "< cin>>chinese; cout<<"请输入外语成绩: "< cin>>english; file[j]=newofstream("d: \\document",ios: : ate); *file[j]<<"姓名"< j++; s[i]=newstu(name,math,chinese,english); i++; cout<<"数据录入成功,想继续录入吗(y/n)"< cin>>c; flag2=0; do { if(c! ='y'&&c! ='n') { cout<<"指令错误! 请重新输入! "< cin>>c; } else flag2=1; }while(flag2==0); }while(c=='y'); break; } case'4': { doublet;charc; do { intflag1=0; cout<<"请输入你要查询学生的总成绩"< cin>>t; for(intq=0;q { if(s[q]->getsum()==t) { flag1=1; cout<<"您要查询的学生是: "<<(*s[q]).name< } } if(flag1==0) cout<<"对不起! 您要查询的学生不存在! "< cout<<"您想继续查询吗? (y/n)"< cin>>c; if(c! ='y'&&c! ='n') { cout<<"指令错误! 请重新输入! "< cin>>c; } } while(c=='y'); break; } case'5': { } case'1': { charname[20];doublemath,chinese,english;//用来存储各科成绩// charc; do { cout<<"请输入您要增加的学生的姓名: "< cin>>name; cout<<"请输入数学成绩: "< cin>>math; cout<<"请输入语文成绩: "< cin>>chinese; cout<<"请输入外语成绩: "< cin>>english; file[j]=newofstream("d: \\document",ios: : ate);//ofstream提供写文件的功能// *file[j]<<"姓名"< j++; s[i]=newstu(name,math,chinese,english); i++; cout<<"数据录入成功,想继续录入吗(y/n)"< cin>>c; if(c! ='y'&&c! ='n') { cout<<"指令错误! 请重新输入! "< cin>>c; } }while(c=='y'); break; } case'2': {charname[20];boolflag3=0;charc; do{ cout<<"请输入您要删除的学生姓名: "< cin>>name; for(inth=0;h { if(strcmp(name,s[h]->name)==0)//调用字符看是否继续输入// { flag3=1; i--; do{ s[h]=s[h+1]; h++; }while(h<=i); } } if(flag3==0) cout<<"您要求删除的对象本来就不存在! 请检查输入的正确性! "; cout<<"要继续删除吗? (y/n)"< cin>>c; if(c! ='y'&&c! ='n') { cout<<"指令错误! 请重新输入! "< cin>>c; } }while(c=='y'); break; } case'3': {charname[20];doublemat,chin,eng;flag2=0; charc; do { cout<<"请输入您要修改的学生的姓名: "< cin>>name; for(inth=0;h { if(strcmp(name,s[h]->name)==0) { flag2=1; cout<<"请输入新的数学成绩: "< cin>>mat; cout<<"请输入新的语文成绩: "< cin>>chin; cout<<"请输入新的外语成绩: "< cin>>eng; s[h]->chinese=chin;//指针函数用来指向对应学生的信息// s[h]->math=mat;//指针函数用来指向对应学生的信息// s[h]->english=eng;//指针函数用来指向对应学生的信息// cout<<"数据修改成功! "; } } if(flag2==0) { cout<<"您要修改的学生本来就不存在! 请检查重新输入! "< } cout<<"想继续修改吗(y/n)"< cin>>c; if(c! ='y'&&c! ='n') { cout<<"指令错误! 请重新输入! "< cin>>c; } }while(c=='y'); break; } case'6': {cout<<"本系统所有学生数据如下: "< if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除! "< for(intk=0;k { cout< "<<""< "语文: "<<""< "<<""< <<"外语: "<<""< "<<""<<(*s[k]).getsum() <<"平均分: "<<""<<(*s[k]).getaver()< } break; } case'7': {intt;stub; cout<<"本系统所以学生排名如下: "< for(intx=0;x { t=x; for(inty=x+1;y { if((s[t]->getsum())<(s[y]->getsum())) t=y; if(t! =x) { b=*s[x]; *s[x]=*s[t]; *s[t]=b; } } } if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除! "; for(intk=0;k { cout< "<<""< "语文: "<<""< "<<""< <<"外语: "<<""< "<<""< <<"平均分: "<<""< } break; } case'8': { intt;stub; cout<<"本系统所以学生语文排名如下: "< for(intx=0;x { t=x; for(inty=x+1;y { if((s[t]->chinese)<(s[y]->chinese)) t=y; if(t! =x) { b=*s[t]; *s[t]=*s[x]; *s[x]=b; } } } if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除! "; for(intk=0;k { cout< "<<""< "语文: "<<""< "<<""< <<"外语: "<<""< "<<""< <<"平均分: "<<""< } break; } case'9': { intt;stub; cout<<"本系统所以学生数学排名如下: "< for(intx=0;x { t=x; for(inty=x+1;y { if((s[t]->math)<(s[y]->math)) t=y; if(t! =x) { b=*s[t]; *s[t]=*s[x]; *s[x]=b; } } } if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除! "; for(intk=0;k { cout< "<<""< "语文: "<<""< "<<""< <<"外语: "<<""< "<<""< <<"平均分: "<<""< } break; } case'y': { intt;stub; cout<<"本系统所以学生英语排名如下: "< for(intx=0;x { t=x; for(inty=x+1;y { if((s[t]->english)<(s[y]->english)) t=y; if(t! =x) { b=*s[t]; *s[t]=*s[x]; *s[x]=b; } } } if(i==0) cout<<"管理系统中没有录入数据或者数据已经被删除! "; for(intk=0;k { cout< "<<""< "语文: "<<""< "<<""< <<"外语: "<<""< "<<""< <<"平均分: "<<""< } } break; } cout<<"您想继续进行其他操作吗? (y/n)"< boolflag4=0; do { cin>>w; if(w! ='y'&&w! ='n') cout<<"指令错误! 请重新输入! "< else flag4=1; }while(flag4==0); if(w=='y') cout<<"请输入操作代码(0录入/4按总分查询/5按姓名查询/1增加人员/2删除人员/3修改数据/6显示所有成员数据/7按总分排名/8按语文排名/9按数学排名/y按英语排名)"< cin>>p; }while(w=='y'); for(intx=0;x { deletes[x]; cout<<"deleteallmembers! "< cout<<"\n-------谢谢使用本系统,再见! \n"< break; } } 6.改进建议 ⑴运行界面的优化 ⑵功能的多样化 ⑶力求程序简洁 7.改进后代码 voidmain() {cout<<"\n\n\n\n★★★***************石君茹欢迎您进入学生成绩信息管理系统**************★★★\n\n"; cout<<"请选择您需要的操作! "< cout<<"操作: "< cout<<"(0)数据录入"< cout<<" (1)增加人员"< cout<<" (2)删除人员"< cout<<"(3)修改数据"< cout<<"查询: "< cout<<"(4)按总成绩查询"< cout<<"(5)按姓名查询"< cout<<"(6)输出所有学生的数据"< cout<<"成绩名词"< cout<<"(7)按总分查询排名"< cout<<"(8)按语文查询排名"< cout<<"(9)按数学查询排名"< cout<<"(y)按英语查询排名"< cout<<"选择相关操作请输入相对的括号里的阿拉伯数字! "< cout<<"\n★★★*************谢谢使用再见**********************★★★\n\n"< 改进前界面: 改进后界面: 目的: 运行界面的优化,在主函数程序进行补充。name<<chinese<<"数学:mathenglish<<"总分:name<<chinese<<"数学:mathenglish<<"总分:getsum()getaver()<name<<chinese<<"数学:mathenglish<<"总分:getsum()getaver()<name<<chinese<<"数学:mathenglish<<"总分:getsum()getaver()<name<<chinese<<"数学:mathenglish<<"总分:getsum()getaver()<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩 信息管理 系统