题目9学生成绩管理.docx
- 文档编号:30069818
- 上传时间:2023-08-04
- 格式:DOCX
- 页数:14
- 大小:17.98KB
题目9学生成绩管理.docx
《题目9学生成绩管理.docx》由会员分享,可在线阅读,更多相关《题目9学生成绩管理.docx(14页珍藏版)》请在冰豆网上搜索。
题目9学生成绩管理
题目9学生成绩管理
设计主要功能:
1.能按学期、按班级完成对学生成绩的录入、修改;
2.能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序;
3.能查询学生成绩,不及格科目及学生名单;
能按班级输出学生的成绩单。
源程序代码:
}#include
#include
#include
#definemax9999//学生上限
structStu//学生结构
{
char
class1[20];//班级
charterm1[20];//学期
charname[20];//姓名
longnumber;//学号
floatGradeOfChianese;//语文成绩
floatGradeOfMath;//数学成绩
floatGradeOfEnglesh;//英语成绩
floatGradeOfComput;//计算机成绩
floattotal;//总分
floataverage;//平均分
};
classStudent//学生类
{
public:
Student(){
size=0;//初始化学生数量
}
voidaddStu();//输入学生信息
voidshow();//输出某班学生信息
voidshowAll();//输出所有学生信息
voidshowFail();//输出不及格学生信息
voidchange();//修改学生信息
voidsave();//将学生成绩保存入文本
~Student(){}
private:
Stustu[max];//建立学生链表
intsize;//学生数量标记
};
voidStudent:
:
addStu()//输入学生信息
{
longnum;
charch;
do{
cout<<"请输入学生所在班级:
\n";
cin>>stu[size].class1;
cout<<"请输入学期:
(如2008年上学期:
200801)\n";
cin>>stu[size].term1;
cout<<"请输入学生学号:
(学号为8位数,格式为入学年份+班级号+班级排名,如:
20080623)\n";
cin>>num;
while(num<11111111||num>99999999)//检查学号
{
cout<<"您的输入有误!
请重新输入!
\n";
cin>>num;
}
for(intj=0;j { while(stu[j].number==num) { cout<<"学号重复! 请重新输入: \n"; cin>>num; } } stu[size].number=num; stu[size].GradeOfChianese=stu[size].GradeOfMath=stu[size].GradeOfEnglesh=stu[size].GradeOfComput=0;//初始化成绩 cout<<"请输入学生姓名: \n"; cin>>stu[size].name;//录入学生姓名 cout<<"请输入该学生语文成绩: \n"; cin>>stu[size].GradeOfChianese;//录入学生语文成绩 while(stu[size].GradeOfChianese<0||stu[size].GradeOfChianese>100) { cout<<"您的输入有误! 分数范围为1-100! 请重新输入! \n"; cin>>stu[size].GradeOfChianese; } cout<<"请输入该学生数学成绩: \n"; cin>>stu[size].GradeOfMath;//录入学生数学成绩 while(stu[size].GradeOfMath<0||stu[size].GradeOfMath>100) { cout<<"您的输入有误! 分数范围为1-100! 请重新输入! \n"; cin>>stu[size].GradeOfMath; } cout<<"请输入该学生英语成绩: \n"; cin>>stu[size].GradeOfEnglesh;//录入学生英语成绩 while(stu[size].GradeOfEnglesh<0||stu[size].GradeOfEnglesh>100) { cout<<"您的输入有误! 分数范围为1-100! 请重新输入! \n"; cin>>stu[size].GradeOfEnglesh; } cout<<"请输入该学生计算机成绩: \n"; cin>>stu[size].GradeOfComput;//录入学生 while(stu[size].GradeOfComput<0||stu[size].GradeOfComput>100) { cout<<"您的输入有误! 分数范围为1-100! 请重新输入! \n"; cout<<"1-100! 请重新输入! \n"; cin>>stu[size].GradeOfComput; } stu[size].total=stu[size].GradeOfChianese+stu[size].GradeOfMath+stu[size].GradeOfEnglesh+stu[size].GradeOfComput; //求总分 stu[size].average=stu[size].total/4;//求平均分 cout<<"添加学生信息成功! \n";//提示添加信息成功 size++;//学生数加1 cout<<"是否继续添加? (y/n)\n";//提示是否继续 cin>>ch; } while(ch=='y'||ch=='Y');//判断是否继续 } voidStudent: : show()//输出某班学生成绩 { if(size==0) cout<<"没有学生信息! 请添加! ";//判断是否有学生成绩 else { inti,flag=0; charch[20]; cout<<"请输入学生所在班级: ";//选择班级查询学生成绩 cin>>ch; for(i=0;i { if(strcmp(stu[i].class1,ch)==0) { flag=0; for(i=0;i { cout<<"姓名: \t\t"< cout<<"学号: \t\t"< cout<<"语文成绩: \t"< cout<<"数学成绩: \t"< cout<<"英语成: \t"< cout<<"计算机成绩: \t"< cout<<"总分: \t\t"< cout<<"平均分: \t\t"< } } } if(flag)//给出输入查询班级不存在提示 { cout<<"\t没有找到所在班级! 请重新输入! "; show();//返回继续查询 } } } voidStudent: : showAll()//输出所有学生成绩 { inti=0; cout<<"所有学生成绩如下: \n"; for(i;i { cout<<"姓名: "< "< "< "<< stu[i].GradeOfMath<<"\t"<<"英语成绩: "< "< "<< stu[i].total<<"\t"<<"平均分: "< } } voidStudent: : showFail()//输出不及格名单及科目 { inti,flag=1; for(i=0;i { if(stu[i].GradeOfChianese>=60&&stu[i].GradeOfMath>=60&&stu[i].GradeOfEnglesh>=60&&stu[i].GradeOfComput) { cout<<"没有学生不及格! \n"; flag=0; } } if(flag)//输出不及格名单及科目 { cout<<"不及格名单及科目如下: \n"; for(intk=0;k { if(stu[k].GradeOfChianese<60) cout< \t"< if(stu[k].GradeOfMath<60) cout< \t"< if(stu[k].GradeOfEnglesh<60) cout< \t"< if(stu[k].GradeOfComput<60) cout< \t"< } } } voidStudent: : change()//修改学生信息 { inti,flag=1; charclass2[20]; charterm2[20]; charch; do { cout<<"请输入要修改的班级和学期! "; cin>>class2>>term2; for(i=0;i { if((strcmp(stu[i].class1,class2)==0)&&(strcmp(stu[i].term1,term2)==0)) { intenter; intnum; flag=0; cout<<"请输入要修改学生的学号: \n"; cin>>num; do{ for(i=0;i { if(stu[i].number==num) cout<<"姓名: "< "< "< "<< stu[i].GradeOfMath<<"\t"<<"英语成绩: "< "< cout<<"请选择要修改的选项: 1.学号2.姓名3.语文4.数学5.英语6.计算机7.退出"< //选择修改选项 cin>>enter; switch(enter) { case1: cout<<"学号: "; cin>>stu[i].number; break; case2: cout<<"姓名: "; cin>>stu[i].name; break; case3: cout<<"语文: "; cin>>stu[i].GradeOfChianese; break; case4: cout<<"数学: "; cin>>stu[i].GradeOfMath; break; case5: cout<<"英语: "; cin>>stu[i].GradeOfEnglesh; break; case6: cout<<"计算机: "; cin>>stu[i].GradeOfComput; break; } cout<<"是否继续修改? (y/n)\n";//提示是否继续 cin>>ch; } } while((enter<7)&&((ch=='Y')||(ch=='y'))); } } if(flag)//给出输入班级、学期错误提示 { cout<<"没有找到所在班级、学期! 请重新输入! \n"; change();//返回继续修改 } } while(ch=='y'||ch=='Y');//判断是否继续 } voidStudent: : save()//将学生成绩保存入文本 { ofstreamofile("D: \\saveStudent.txt"); ofile<<"学号姓名语文数学英语计算机"< for(inti=0;i { ofile< stu[i].GradeOfEnglesh<<""< } ofile.close(); cout<<"学生信息已存入文件! "< } voidmain() { intopr;//操作项 Students; while(true)//建立循环操作 { cout<<"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"; cout<<"┃****************☆学生成绩管理系统☆*******************┃"; cout<<"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"; cout<<"┃***************☆请选择操作: ☆★****************┃"; cout<<"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"; cout<<"┃****************★☆1.按学期、班级输入学生成绩☆★****************┃"; cout<<"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"; cout<<"┃****************★☆2.按学期、班级修改学生成绩☆★****************┃"; cout<<"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"; cout<<"┃****************★☆3.查询学生成绩☆★****************┃"; cout<<"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"; cout<<"┃****************★☆4.按班级统计学生总分及平均分☆★****************┃"; cout<<"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"; cout<<"┃****************★☆5.输出学生不及格科目及学生名单☆★****************┃"; cout<<"┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫"; cout<<"┃****************★☆6.保存并退出☆★****************┃"; cout<<"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"; cin>>opr;//读入用户的操作项 while(opr<1||opr>6)//检查用户输入 { cout<<"您的输入有误,请重新输入! "< cin>>opr; } switch(opr) { case1: s.addStu();//添加一个学生 break; case2: s.change();//修改学生信息 break; case3: s.showAll();//输出所有学生信息 break; case4: s.show();//学生信息 break; case5: s.showFail();//输出不及格学生信息 break; case6: s.save();//将学生成绩保存入文本 return; break; default: break; } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 题目 学生 成绩 管理