学生信息管理系统设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

学生信息管理系统设计要求:学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:1)系统以菜单方式工作2)学生信息录入功能(学生信息用文件保存)---输入3)学生信息浏览功能---输出4)排序功能5)按学号查询6)按姓名查询7)学生信息的删除与修改#includeiostream.h#includestring.h#includestdio.h#includestdlib.h#includefstream.h//*****定义一个学生原子的的数据结构*****//structstuatom{char*name;intid;charsex;floatmath,eng,comp,totll,aver;voidshow();voidsetup();};//*********定义一系列对学生的操作**********//classstudent{private:stuatomob[100];intstulen;public:student();voidinput();voidorder();voidsave();voidQuery();voidread();voidadd();voiddel();};//********对学生数据的初始化(类的构造函数)**********//student::student(){//用for循环对全部数组中的数据初始化for(inti=0;i100;i++){ob[i].math=ob[i].eng=ob[i].comp=ob[i].totll=ob[i].aver=0;ob[i].id=0;ob[i].sex='';ob[i].name=NULL;}this-stulen=0;}//********输入学生的数据,并判断是否在规定数据域内*******//voidstuatom::setup(){charn[20];chars;intb;//如果输入学好在数据域内,跳出循环并且赋值。//如果不再数据域内,一直循环到输入数据符合数据域为止do{cout学号:;cinb;if(b1020||b1001)coutBaddatainput!!endlendl;}while(b1001||b1020);id=b;//如果输入学好在数据域内,跳出循环并且赋值。//如果不再数据域内,一直循环到输入数据符合数据域为止do{name=newchar[strlen(n)+1];cout姓名:;cinn;if(strlen(n)6||strlen(n)4)coutBaddatainput!!endlendl;}while(strlen(n)6&&strlen(n)4);strcpy(name,n);cout性别(m/f):;cins;//如果输入学好在数据域内,跳出循环并且赋值。//如果不再数据域内,一直循环到输入数据符合数据域为止while(s!='m'&&s!='f'){coutBaddatainput!!endlendl;cout性别(m/f):;cins;}sex=s;floatm,e,co;cout数学:;cinm;//如果输入学好在数据域内,跳出循环并且赋值。//如果不再数据域内,一直循环到输入数据符合数据域为止while(m0||m100){coutBaddatainput!!endlendl;cout数学:;cinm;}math=m;cout英语:;cine;//如果输入学好在数据域内,跳出循环并且赋值。//如果不再数据域内,一直循环到输入数据符合数据域为止while(e0||e100){coutBaddatainput!!endlendl;cout英语:;cine;}eng=e;cout计算机:;cinco;//如果输入学好在数据域内,跳出循环并且赋值。//如果不再数据域内,一直循环到输入数据符合数据域为止while(co0||co100){coutBaddatainput!!endlendl;cout计算机:;cinco;}comp=co;totll=math+eng+comp;aver=(math+eng+comp)/3;}//*******按照规定格式把该学生的数据显示在屏幕上******//voidstuatom::show(){cout.setf(ios::left);cout.width(6);coutid;cout.width(8);coutname;cout.width(10);coutsex;cout.width(9);coutmath;cout.width(9);couteng;cout.width(11);coutcomp;cout.width(10);couttotllaverendl;}//**************输入学生的数据***********************//voidstudent::input(){intn;coutendl输入将要录入的学生数目:;cinn;intj;//通过循环输入要求输入学生个数的学生的数据。for(j=0;jn;j++){cout输入学生信息jendl;ob[j].setup();}this-stulen=n;//学生个数赋值//学生数据显示格式system(cls);coutendl-----------------------------学生信息表------------------------------------endl;coutendl学号姓名性别数学英语计算机总分平均分endl;//通过循环输出所有学生数据。for(j=0;jn;j++){ob[j].show();}coutendl;cout是否保存?(Y/N):;charY;cinY;system(cls);}//**************按照一定格式显示所要查询学生的信息。**************//voidstudent::Query(){intx,i;coutendl输入要查询学生的学号:;cinx;coutendl学号姓名性别数学英语计算机总分平均分endl;for(i=0;i=this-stulen;i++){if(x==ob[i].id){cout.setf(ios::left);cout.width(6);coutob[i].id;cout.width(8);coutob[i].name;cout.width(10);coutob[i].sex;cout.width(9);coutob[i].math;cout.width(9);coutob[i].eng;cout.width(11);coutob[i].comp;cout.width(10);coutob[i].totllob[i].averendl;}}getchar();}//*******************保存学生数据**************************//voidstudent::save(){inti;ofstreamoutfile;outfile.open(list.txt,ios::trunc);if(!outfile){coutCannotopenoutputfile!\n,;}//通过循环把所有的学生数据保存在list.txt里边。for(i=0;ithis-stulen;i++){outfileob[i].idob[i].nameob[i].sexob[i].mathob[i].engob[i].compob[i].totllob[i].averendl;}outfile.close();}//*************显示所有学生数据*********************//voidstudent::read(){inti;system(cls);coutendl-----------------------------学生信息表------------------------------------endl;coutendl学号姓名性别数学英语计算机总分平均分endl;for(i=0;ithis-stulen;i++){ob[i].show();}getchar();}//*******************一个学生的数据****************//voidstudent::add(){inti,d=this-stulen;cout输入要添加学生的信息:endl;ob[d].setup();coutendl-----------------------------学生信息表------------------------------------endl;coutendl学号姓名性别数学英语计算机总分平均分endl;for(i=0;i=d;i++){ob[i].show();}ofstreamfout(list.txt,ios::app);if(!fout){coutCannotopenoutputfile!\n,;}//把添加的学生数据添加到list.txt里边去。foutob[d].idob[d].nameob[d].sexob[d].mathob[d].engob[d].compob[d].totllob[d].averendl;fout.close();getchar();}//*********************删除指定名字学生的数据*******************//voidstudent::del(){inti,p;charx[8];cout输入要删除学生名字:endl;cinx;//通过for循环查找要删除学生的姓名for(i=0;istulen;i++){if(strcmp(ob[i].name,x)==0){p=i;coutendl学号姓名性别数学英语计算机总成绩平均成绩endl;coutob[i].idob[i].nameob[i].sexob[i].mathob[i].engob[i].compob[i].totllob[i].averendl;break;}elsecontinue;}coutendl-----------------------------学生信息表------------------------------------endl;coutendl学号姓名性别数学英语计算机总分平均分endl;//删除了之后,应该把后面的数据往前移,把要删除的数据覆盖,并且学生长度减1stulen--;for(i;istulen;i++){ob[i]=ob[i+1];}this-read();cout删除成功!endl;getchar();}//***********把学生成绩排序******************//voidstudent::order(){intk,j;floatt;charn[20];//排序算法。for(j=0;j=(2-1);j++){for(k=1;k=(2-j);k++){if(ob[k].totllob[k+1].totll){t=ob[k].totll;ob[k].to

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功