C学生成绩标准管理系统源代码.doc
《C学生成绩标准管理系统源代码.doc》由会员分享,可在线阅读,更多相关《C学生成绩标准管理系统源代码.doc(15页珍藏版)》请在咨信网上搜索。
#include<iostream.h> #include<fstream.h> #include<stdlib.h> #include<string.h> #include<stdio.h> class Person { public:char name[8]; }; class student:public Person //构建学生类 { public: friend void Manage(student stud[]) ; friend void Input(student stud[]) ; friend void Statistic(student stud[]); friend void Lookup(student stud[]) ; friend void Modify(student stud[]) ; friend void Output(student stud[]) ; friend void Insert(student stud[]) ; friend void Write(student stud[],int n); friend int Read(student stud[]); private: int num; char name[8]; char class_0[20]; float c_program; float english; float math; float average; int order; }stud[100]; class Manage:public student {}; void Write(student stud[],int n) //向文件中写入数据 { fstream myFile; myFile.open("score.txt",ios::out|ios::binary); if(!myFile) { cout<<"score.txt can't open!"<<endl; abort(); } int count=n; myFile<<count<<endl<<endl; for(int i=0;i<=count;i++) { myFile<<stud[i].class_0<<" "<<stud[i].num<<" "<<stud[i].name<<" "<<stud[i].c_program<<" "<<stud[i].english<<" "<<stud[i].math<<" "<<stud[i].average<<endl; } myFile.close(); } int Read(student stud[]) //从文件中读数据 { fstream myFile; myFile.open("score.txt",ios::in|ios::binary); if(!myFile) { cout<<"score.txt can't open!"<<endl; abort(); } int count; myFile.seekg(0); myFile>>count; for(int i=0;i<=count;i++) { myFile>>stud[i].class_0>>stud[i].num>>stud[i].name>>stud[i].c_program>>stud[i].english>>stud[i].math >>stud[i].average; } myFile.close(); return count ; } void Input(student stud[]) //---------------输入学生成绩 { system("cls"); /*运行前清屏*/ int i=0; int flag; char sign; cout<<endl<<">>>>>>>> 请输入学生成绩 <<<<<<<<\n"<<endl; while(sign!='n'&&sign!='N') /*判定*/ { cout<<"班级:"; /*交互输入*/ cin>>stud[i].class_0; loop: cout<<"学号:"; cin>>stud[i].num; int c=0; while(c<i) { c++; if(stud[i].num==stud[i-c].num) { cout<<"你输入学号已经存在!请重新输入!"<<endl; goto loop; } } cout<<"姓名:"; cin>>stud[i].name; do{ flag=0; cout<<"C++成绩:"; cin>>stud[i].c_program; if(stud[i].c_program>100 ||stud[i].c_program<1) cout<<"请输入1-100之间数字!\n"; else flag=1; }while(flag==0); do{ flag=0; cout<<"英语成绩:"; cin>>stud[i].english; if(stud[i].english>100 ||stud[i].english<1) cout<<"请输入1-100之间数字!\n"; else flag=1; }while(flag==0); do{ flag=0; cout<<"数学成绩:"; cin>>stud[i].math; if(stud[i].math>100 ||stud[i].math<1) cout<<"请输入1-100之间数字!\n"; else flag=1; }while(flag==0); stud[i].average=(stud[i].c_program+stud[i].english+stud[i].math)/3; cout<<"平均分:"<<stud[i].average<<endl; cout<<"继续录入学生成绩?(y/n)"; cin>>sign; /*输入判定*/ i++; } Write(stud,i); } void Statistic(student stud[]) //---------------统计学生数据 { system("cls"); /*运行前清屏*/ int n=Read(stud); cout<<endl<<">>>>>>>> 显示学生成绩 <<<<<<<<\n"<<endl; cout<<"班级"<<"\t "<<"学号"<<"\t "<<" 姓名"<<"\t "<<" 平均分"<<endl; for(int i=0;i<n;i++) cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t "<<stud[i].average<<endl; system("pause"); } void Lookup(student stud[]) //---------------查找学生成绩 {int p; cout<<"请选择1.按学号查找 2.按姓名查找"<<endl; cin>>p; if(p==1) { system("cls"); /*运行前清屏*/ int n=Read(stud); int s; int i=0; cout<<endl<<">>>>>>>> 查找学生成绩 <<<<<<<<\n"<<endl; cout<<"请输入查找学生学号:"<<endl; cin>>s; while((stud[i].num-s)!=0&&i<n) i++; /*查找判定*/ if(i==n) { cout<<"没有该学生信息!"<<endl; /*输入失败信息*/ } else { cout<<"---------------------------"<<endl; cout<<"班级:"<<stud[i].class_0<<endl; /*输出该学生信息*/ cout<<"学号:"<<stud[i].num<<endl; cout<<"姓名:"<<stud[i].name<<endl; cout<<"C++:"<<stud[i].c_program<<endl; cout<<"英语:"<<stud[i].english<<endl; cout<<"数学:"<<stud[i].math<<endl; cout<<"平均分:"<<stud[i].average<<endl; } } if(p==2) {system("cls"); /*运行前清屏*/ int m=Read(stud); char t; int i=0; cout<<endl<<">>>>>>>> 查找学生成绩 <<<<<<<<\n"<<endl; cout<<"请输入查找学生姓名:"<<endl; cin>>t; while(strcmp(stud[i].name-t,stud[i].name)==0&&i<m) i++; /*查找判定*/ { cout<<"---------------------------"<<endl; cout<<"班级:"<<stud[i].class_0<<endl; /*输出该学生信息*/ cout<<"学号:"<<stud[i].num<<endl; cout<<"姓名:"<<stud[i].name<<endl; cout<<"C++:"<<stud[i].c_program<<endl; cout<<"英语:"<<stud[i].english<<endl; cout<<"数学:"<<stud[i].math<<endl; cout<<"平均分:"<<stud[i].average<<endl; } } } void Modify(student stud[]) //---------------修改学生成绩 { system("cls"); /*运行前清屏*/ int n=Read(stud); int s,a; float q; int i=0; cout<<endl<<">>>>>>>> 修改学生成绩 <<<<<<<<\n"<<endl; cout<<"输入修改成绩学生学号:"<<endl; cin>>s; while((stud[i].num-s)!=0&&i<n) i++; /*查找判定*/ if(i==n) { cout<<"没有该学生成绩!"<<endl; /*输入失败信息*/ } else { cout<<"----------该学生信息----------\n"<<endl; /*格式头*/ cout<<"班级"<<"\t"<<"学号 "<<"\t"<<"姓名"<<"\t"<<"c++"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"平均分"<<endl; cout<<"---------------------------------"<<endl; cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].c_program<<"\t"<<stud[i].english<<"\t"<<stud[i].math<<"\t"<<stud[i].average<<endl; cout<<"---------------------------------"<<endl; cout<<"请输入要修改课程号"<<endl; cout<<"1.c语言 2.英语 3.数学"<<endl; cin>>a; cout<<"重新输入分数"<<endl; cin>>q; if(a==1) stud[i].c_program=q; if(a==2)stud[i].english=q; if(a==3)stud[i].math=q; stud[i].average=(stud[i].c_program+stud[i].english+stud[i].math)/3; cout<<"----------该学生信息----------\n"<<endl; /*格式头*/ cout<<"班级"<<"\t"<<"学号 "<<"\t"<<"姓名"<<"\t"<<"c++"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"平均分"<<endl; cout<<"---------------------------------"<<endl; cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].c_program<<"\t"<<stud[i].english<<"\t"<<stud[i].math<<"\t"<<stud[i].average<<endl; char c; cout<<"是否保留数据?(y/n)"<<endl; cin>>c; if(c!='n'&&c!='N') Write(stud,n); } } void Insert(student stud[]) //---------------增加学生成绩 { system("cls"); /*运行前清屏*/ int n=Read(stud); char s; cout<<endl<<"************ 插入学生成绩***********\n"<<endl; while(s!='n'&&s!='N') { cout<<"班级:"<<endl; /*交互输入*/ cin>>stud[n].class_0; cout<<"学号:"; cin>>stud[n].num; cout<<"姓名:"; cin>>stud[n].name; cout<<"C++成绩:"; cin>>stud[n].c_program; cout<<"英语成绩:"; cin>>stud[n].english; cout<<"数学成绩:"; cin>>stud[n].math; stud[n].average=(stud[n].c_program+stud[n].english+ stud[n].math)/3; cout<<"平均分"<<stud[n].average; n++; cout<<"插入成功!"<<endl; /*返回成功信息*/ cout<<"是否继续输入(y/n)"<<endl; cin>>s; } Write(stud,n); } void Manage(student stud[]) //---------------按平均分对学生成绩统计项进行降序排序 { system("cls"); /*运行前清屏*/ int i,j,k; float s; char t[20]; cout<<endl<<"********** 排列管理成绩 **********\n"<<endl; int n=Read(stud); for(i=0;i<n-1;i++) /*冒泡法排序*/ for(j=0;j<n-1-i;j++) if(stud[j].average<stud[j+1].average) { strcpy(t,stud[j+1].class_0); strcpy(stud[j+1].class_0,stud[j].class_0); strcpy(stud[j].class_0,t); k=stud[j+1].num; stud[j+1].num=stud[j].num; stud[j].num=k; strcpy(t,stud[j+1].name); strcpy(stud[j+1].name,stud[j].name); strcpy(stud[j].name,t); s=stud[j+1].c_program; stud[j+1].c_program=stud[j].c_program; stud[j].c_program=s; s=stud[j+1].english; stud[j+1].english=stud[j].english; stud[j].english=s; s=stud[j+1].math; stud[j+1].math=stud[j].math; s=stud[j+1].average; stud[j+1].average=stud[j].average; stud[j].average=s; } cout<<"-------------------------------------"<<endl; /*格式头*/ cout<<"班级"<<"\t "<<"学号"<<"\t "<<"姓名"<<"\t"<<"C++"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"平均分"<<"\t"<<"名次"<<endl; for(i=0;i<n;i++) /*循环输入*/ { stud[i].order=i+1; cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].c_program<<"\t"<<stud[i].english<<"\t"<<stud[i].math<<"\t"<<stud[i].average<<"\t "<<stud[i].order<<endl; } Write(stud,n); } void Output(student stud[]) //---------------显示全部学生成绩 { system("cls"); /*运行前清屏*/ int n=Read(stud); cout<<"***************** 显示班级学生成绩 *****************\n"<<endl; if(!stud) cout<<"没有统计"; else { cout<<"-------------------------------------------------------------------------"<<endl; /*格式头*/ cout<<"班级"<<"\t "<<"学号"<<"\t "<<"姓名"<<"\t"<<"c++"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"平均分"<<endl; for(int i=0;i<n;i++) /*循环输入*/ { cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].c_program<<"\t "<<stud[i].english<<"\t " <<stud[i].math<<"\t"<<stud[i].average<<endl; } cout<<"-------------------------------------------------------------------------"<<endl; } } int menu() /*菜单函数*/ { char c; do { system("cls"); /*运行前清屏*/ cout<<"*******************************************************\n"<<endl; cout<<" -----------------欢迎使用学生成绩管理系统-------------\n"<<endl; cout<<" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<<endl; cout<<" * 【1】输入学生成绩 * "<<endl; cout<<" * 【2】显示学生成绩 * "<<endl; cout<<" * 【3】查找学生成绩 * "<<endl; cout<<" * 【4】修改学生成绩 * "<<endl; cout<<" * 【5】插入学生成绩 * "<<endl; cout<<" * 【6】排列管理成绩 * "<<endl; cout<<" * 【7】显示班级学生成绩 * "<<endl; cout<<" * 【0】退出本系统 * " <<endl; cout<<" $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ "<<endl; cout<<"请你选择(0-7):"<<endl; c=getchar(); /*读入选择*/ } while(c<'0'||c>'8'); return(c-'0'); /*返回选择*/ } void main() /*主函数*/ { for(;;) { switch(menu()) /*选择判定*/ { case 1: Input(stud);/*输入学生成绩*/ break; case 2: Statistic(stud); /*输出学生统计数据*/ break; case 3: Lookup(stud); /*查找学生成绩*/ cout<<"\t\t\t"; system("pause"); break; case 4: Modify(stud); /*修改学生成绩*/ cout<<"\t\t\t"; system("pause"); break; case 5: Insert(stud);/*增加学生成绩*/ cout<<"\t\t\t"; system("pause"); break; case 6: Manage(stud); /*按平均分对成绩统计项进行降序排序*/ cout<<"\t\t\t"; system("pause"); break; case 7: Output(stud); /*显示全部学生成绩*/ cout<<"\t\t\t"; system("pause"); break; case 0: cout<<endl<<" ===========================感谢您使用学生成绩管理系统==========================\n"<<endl; /*结束程序*/ cout<<"\t\t\t"; system("pause"); exit(0); } } }- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩 标准 管理 系统 源代码
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文