1小型学生信息系统11.docx

上传人:b****1 文档编号:13632421 上传时间:2023-06-15 格式:DOCX 页数:20 大小:17.17KB
下载 相关 举报
1小型学生信息系统11.docx_第1页
第1页 / 共20页
1小型学生信息系统11.docx_第2页
第2页 / 共20页
1小型学生信息系统11.docx_第3页
第3页 / 共20页
1小型学生信息系统11.docx_第4页
第4页 / 共20页
1小型学生信息系统11.docx_第5页
第5页 / 共20页
1小型学生信息系统11.docx_第6页
第6页 / 共20页
1小型学生信息系统11.docx_第7页
第7页 / 共20页
1小型学生信息系统11.docx_第8页
第8页 / 共20页
1小型学生信息系统11.docx_第9页
第9页 / 共20页
1小型学生信息系统11.docx_第10页
第10页 / 共20页
1小型学生信息系统11.docx_第11页
第11页 / 共20页
1小型学生信息系统11.docx_第12页
第12页 / 共20页
1小型学生信息系统11.docx_第13页
第13页 / 共20页
1小型学生信息系统11.docx_第14页
第14页 / 共20页
1小型学生信息系统11.docx_第15页
第15页 / 共20页
1小型学生信息系统11.docx_第16页
第16页 / 共20页
1小型学生信息系统11.docx_第17页
第17页 / 共20页
1小型学生信息系统11.docx_第18页
第18页 / 共20页
1小型学生信息系统11.docx_第19页
第19页 / 共20页
1小型学生信息系统11.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

1小型学生信息系统11.docx

《1小型学生信息系统11.docx》由会员分享,可在线阅读,更多相关《1小型学生信息系统11.docx(20页珍藏版)》请在冰点文库上搜索。

1小型学生信息系统11.docx

1小型学生信息系统11

/************************************************************************/

/*

Author:

Tiger

Date:

6/15/2018

Function:

小型信息管理系统

Version:

1.1

1、增加了学生成绩输入范围的检查。

2、优化部分代码。

*/

/************************************************************************/

#include

#include

#include

//学生基类

classStudent

{

protected:

charname[20]。

//姓名

floatscore1,score2,score3。

//成绩1、2、3、

public:

voidgetname(chara[]>。

//得到学生的姓名,用于查询

voidset(>。

//设置学生信息

voidshow(>。

//显示学生信息

voidaverage(>。

//计算并输出平均成绩

floatcheck_score(inti,floatsc>。

//输入学生的第i门的成绩,分数在<0---100)

}。

floatStudent:

:

check_score(inti,floatsc>

{

cout<<"成绩"<

"<

cin>>sc。

if(sc<0||sc>100>

{

cout<<"输入成绩有误!

"<

check_score(i,sc>。

}

returnsc。

}

voidStudent:

:

getname(chara[]>

{

strcpy(a,name>。

}

voidStudent:

:

show(>

{

cout<<"学生姓名:

"<

<<"成绩1:

"<

<<"成绩2:

"<

<<"成绩3:

"<

}

voidStudent:

:

set(>

{

cout<<"学生姓名:

"。

cin>>name。

//输入并检查成绩的范围

floattemp_sc=0。

score1=check_score(1,temp_sc>。

score2=check_score(2,temp_sc>。

score3=check_score(3,temp_sc>。

}

voidStudent:

:

average(>

{

cout<<"姓名:

"<

cout<<"平均成绩:

"<<(score1+score2+score3>/3<

}

//中学生类

classMiddle_school_student:

publicStudent

{

protected:

charhouseholder[20]。

//家长

public:

Middle_school_student(>。

voidset(>。

voidshow(>。

}。

Middle_school_student:

:

Middle_school_student(>

{

strcpy(name,"张三">。

score1=0。

score2=0。

score3=0。

strcpy(householder,"李四">。

}

voidMiddle_school_student:

:

set(>

{

Student:

:

set(>。

cout<<"家长:

"。

cin>>householder。

}

voidMiddle_school_student:

:

show(>

{

Student:

:

show(>。

cout<<"家长:

"<

}

//大学生类

classUniversity_student:

publicStudent

{

charprofession[20]。

//专业

public:

University_student(>。

voidset(>。

voidshow(>。

}。

University_student:

:

University_student(>

{

strcpy(name,"张三">。

score1=0。

score2=0。

score3=0。

strcpy(profession,"无">。

}

voidUniversity_student:

:

set(>

{

Student:

:

set(>。

cout<<"专业:

"。

cin>>profession。

}

voidUniversity_student:

:

show(>

{

Student:

:

show(>。

cout<<"专业:

"<

}

//研究生类

classPostgraduate:

publicStudent

{

chartutor[20]。

public:

Postgraduate(>。

voidset(>。

voidshow(>。

}。

Postgraduate:

:

Postgraduate(>

{

strcpy(name,"张三">。

score1=0。

score2=0。

score3=0。

strcpy(tutor,"李四">。

}

voidPostgraduate:

:

set(>

{

Student:

:

set(>。

cout<<"导师:

"。

cin>>tutor。

}

voidPostgraduate:

:

show(>

{

Student:

:

show(>。

cout<<"导师:

"<

}

//菜单界面

intmenu(>

{

intx。

cout<<"*************欢迎使用*************"<

cout<<"*******小型学生信息管理系统*******"<

cout<<"1、输入学生信息"<<'\n'<<"2、查询学生信息并显示"<<'\n'

<<"3、计算平均成绩并显示"<<'\n'<<"4、退出"<<'\n'<<"请您选择<1-4):

"。

cin>>x。

returnx。

}

//管理界面

intmanage(>

{

intx。

cout<<"**********按学生类别进行管理**************"<

cout<<"***************学生类别选择***************"<

cout<<"1中学生类"<<'\n'<<"2大学生类"<<'\n'

<<"3研究生类"<<'\n'<<"4退出"<<'\n'<<"请您选择学生类别:

"。

cin>>x。

returnx。

}

//创建一个Middle_school_student

Middle_school_studentnewmiddle(>

{

Middle_school_studentm。

m.set(>。

returnm。

}

//将Middle_school_student对象写进D:

\\middle.txt

voidwriteMiddle(Middle_school_student&m>

{

fstreamfo。

fo.open("D:

\\middle.txt",ios:

:

out|ios:

:

app>。

if(!

fo>

{

cout<<"不能打开文件!

"<

return。

}

fo.write((char*>&m,sizeof(Middle_school_student>>。

fo.close(>。

}

//读取一个Middle_school_student对象

voidreadMiddle(intj>/*j=1进入查询学生信息、j=2查询学生平均成绩*/

{

Middle_school_students。

fstreamfr。

chartemp1[20],temp2[20]。

cout<<"请输入要查询的学生名:

"。

cin>>temp1。

fr.open("D:

\\middle.txt",ios:

:

in>。

if(!

fr>

{

cout<<"不能打开文件!

"<

return。

}

//计算Middle_school_student记录的个数Num

fr.seekp(0,ios:

:

end>。

longNum=fr.tellp(>/sizeof(Middle_school_student>。

for(inti=0。

i

i++>

{

fr.seekp(sizeof(Middle_school_student>*i>。

fr.read((char*>&s,sizeof(Middle_school_student>>。

s.getname(temp2>。

inttbb=strcmp(temp1,temp2>。

if(!

tbb>

{

if(j==1>{s.show(>。

return。

}

elseif(j==2>{s.average(>。

return。

}

else{cout<<"错误!

"<

return。

}

}

}

cout<<"没有该学生!

"<

fr.close(>。

}

//创建一个University_student

University_studentnewuniversity(>

{

University_studentu。

u.set(>。

returnu。

}

//将University_student对象写进D:

\\university.txt

voidwriteUniversity(University_student&u>

{

fstreamfo。

fo.open("D:

\\university.txt",ios:

:

out|ios:

:

app>。

if(!

fo>

{

cout<<"不能打开文件!

"<

return。

}

fo.write((char*>&u,sizeof(University_student>>。

fo.close(>。

}

//读取一个University_student对象

voidreadUniversity(intj>/*j=1进入查询学生信息、j=2查询学生平均成绩*/

{

University_students。

fstreamfr。

chartemp1[20],temp2[20]。

cout<<"请输入要查询的学生名:

"。

cin>>temp1。

fr.open("D:

\\university.txt",ios:

:

in>。

if(!

fr>

{

cout<<"不能打开文件!

"<

return。

}

//计算University_student记录的个数

fr.seekp(0,ios:

:

end>。

longNum=fr.tellp(>/sizeof(University_student>。

for(inti=0。

i

i++>

{

fr.seekp(sizeof(University_student>*i>。

fr.read((char*>&s,sizeof(University_student>>。

s.getname(temp2>。

inttbb=strcmp(temp1,temp2>。

if(!

tbb>

{

if(j==1>{s.show(>。

return。

}

elseif(j==2>{s.average(>。

return。

}

else{cout<<"错误!

"<

return。

}

}

}

cout<<"没有该学生!

"<

fr.close(>。

}

//创建一个Postgraduate

Postgraduatenewpostgraduate(>

{

Postgraduatep。

p.set(>。

returnp。

}

//将Postgraduate对象写进D:

\\postgraduate.txt

voidwritePostgraduate(Postgraduate&p>

{

fstreamfo。

fo.open("D:

\\postgraduate.txt",ios:

:

out|ios:

:

app>。

if(!

fo>

{

cout<<"不能打开文件!

"<

return。

}

fo.write((char*>&p,sizeof(Postgraduate>>。

fo.close(>。

}

//读取一个Postgraduate对象

voidreadPostgraduate(intj>/*j=1进入查询学生信息、j=2查询学生平均成绩*/

{

Postgraduates。

fstreamfr。

chartemp1[20],temp2[20]。

cout<<"请输入要查询的学生名:

"。

cin>>temp1。

fr.open("D:

\\postgraduate.txt",ios:

:

in>。

if(!

fr>

{

cout<<"不能打开文件!

"<

return。

}

//计算Postgraduate记录的个数

fr.seekp(0,ios:

:

end>。

longNum=fr.tellp(>/sizeof(Postgraduate>。

for(inti=0。

i

i++>

{

fr.seekp(sizeof(Postgraduate>*i>。

fr.read((char*>&s,sizeof(Postgraduate>>。

s.getname(temp2>。

inttbb=strcmp(temp1,temp2>。

if(!

tbb>

{

if(j==1>{s.show(>。

return。

}

elseif(j==2>{s.average(>。

return。

}

else{cout<<"错误!

"<

return。

}

}

}

cout<<"没有该学生!

"<

fr.close(>。

}

voidfunc1(inti,intt>。

//判断函数、判断是否继续输入

voidcheck_enter(inti>/*i的取值决定输入的学生的类型*/

{

charce。

cout<<"信息存储成功!

是否继续输入

"。

cin>>ce。

if(ce=='y'>

{

switch(i>

{

case1:

writeMiddle(newmiddle(>>。

check_enter(i>。

break。

case2:

writeUniversity(newuniversity(>>。

check_enter(i>。

break。

case3:

writePostgraduate(newpostgraduate(>>。

check_enter(i>。

break。

default:

cout<<"错误!

"<

break。

}

}elseif(ce=='n'>return。

elsecout<<"输入错误!

"<

}

//判断函数、判断是否继续查询

voidcheck_find(inti>/*i的值决定查询的学生的类型*/

{

charcf。

cout<<"是否继续查询

"<

cin>>cf。

if(cf=='y'>

{

func1(i,1>。

}elseif(cf=='n'>return。

elsecout<<"输入错误!

"<

}

//判断函数、判断是否继续查询

voidcheck_average(inti>/*i的值决定查询的学生的类型*/

{

charca。

cout<<"是否继续查询

"<

cin>>ca。

if(ca=='y'>

{

func1(i,2>。

}elseif(ca=='n'>return。

elsecout<<"输入错误!

"<

}

//函数,t=1查询学生信息t=2查询平均成绩,i代表学生类型

voidfunc1(inti,intt>

{

if(t==1>

{

switch(i>

{

case1:

readMiddle(t>。

check_find(i>。

break。

case2:

readUniversity(t>。

check_find(i>。

break。

case3:

readPostgraduate(t>。

check_find(i>。

break。

case4:

break。

default:

cout<<"错误!

"<

break。

}

}elseif(t==2>

{

switch(i>

{

case1:

readMiddle(t>。

check_average(i>。

break。

case2:

readUniversity(t>。

check_average(i>。

break。

case3:

readPostgraduate(t>。

check_average(i>。

break。

case4:

break。

default:

cout<<"错误!

"<

break。

}

}

elsecout<<"错误!

"<

}

//

voidfunc2(inti>

{

switch(i>

{

case1:

writeMiddle(newmiddle(>>。

check_enter(i>。

break。

case2:

writeUniversity(newuniversity(>>。

check_enter(i>。

break。

case3:

writePostgraduate(newpostgraduate(>>。

check_enter(i>。

break。

case4:

break。

default:

cout<<"输入错误"<

break。

}

}

//

voidwindow(>

{

switch(menu(>>

{

case1:

func2(manage(>>。

window(>。

break。

case2:

func1(manage(>,1>。

window(>。

break。

case3:

func1(manage(>,2>。

window(>。

break。

case4:

cout<<"已退出!

"<

break。

default:

cout<<"输入错误"<

break。

}

}

intmain(>

{

window(>。

return0。

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2