C学生成绩标准管理系统源代码_第1页
已阅读1页,还剩14页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include<iostream.h>#include<fstream.h>#include<stdlib.h>#include<string.h>#include<stdio.h>classPerson{public:charname[8];};classstudent:publicPerson//构建学生类{public: friendvoidManage(studentstud[]); friendvoidInput(studentstud[]); friendvoidStatistic(studentstud[]); friendvoidLookup(studentstud[]); friendvoidModify(studentstud[]); friendvoidOutput(studentstud[]); friendvoidInsert(studentstud[]); friendvoidWrite(studentstud[],intn);friendintRead(studentstud[]);private: intnum; charname[8]; charclass_0[20]; floatc_program; floatenglish; floatmath; floataverage; intorder;}stud[100];classManage:publicstudent{};voidWrite(studentstud[],intn)//向文件中写入数据{ fstreammyFile; myFile.open("score.txt",ios::out|ios::binary); if(!myFile) { cout<<"score.txtcan'topen!"<<endl; abort(); } intcount=n; myFile<<count<<endl<<endl; for(inti=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();}intRead(studentstud[])//从文件中读数据{fstreammyFile;myFile.open("score.txt",ios::in|ios::binary); if(!myFile) { cout<<"score.txtcan'topen!"<<endl; abort(); } intcount; myFile.seekg(0);myFile>>count; for(inti=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();returncount;}voidInput(studentstud[])//---------------输入学生成绩{ system("cls");/*运行前清屏*/ inti=0; intflag; charsign; cout<<endl<<">>>>>>>>请输入学生成绩<<<<<<<<\n"<<endl; while(sign!='n'&&sign!='N')/*判定*/ { cout<<"班级:";/*交互输入*/ cin>>stud[i].class_0;loop: cout<<"学号:"; cin>>stud[i].num; intc=0; while(c<i) { c++; if(stud[i].num==stud[i-c].num) { cout<<"你输入学号已经存在!请重新输入!"<<endl; gotoloop; } } 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";elseflag=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";elseflag=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";elseflag=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);}voidStatistic(studentstud[])//---------------统计学生数据{system("cls");/*运行前清屏*/intn=Read(stud); cout<<endl<<">>>>>>>>显示学生成绩<<<<<<<<\n"<<endl;cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"平均分"<<endl;for(inti=0;i<n;i++)cout<<stud[i].class_0<<"\t"<<stud[i].num<<"\t"<<stud[i].name<<"\t"<<stud[i].average<<endl;system("pause");}voidLookup(studentstud[])//---------------查找学生成绩{intp;cout<<"请选择1.按学号查找2.按姓名查找"<<endl; cin>>p; if(p==1){ system("cls");/*运行前清屏*/intn=Read(stud); ints; inti=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");/*运行前清屏*/intm=Read(stud); chart; inti=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; }}}voidModify(studentstud[])//---------------修改学生成绩{ system("cls");/*运行前清屏*/intn=Read(stud); ints,a;floatq; inti=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; charc; cout<<"是否保留数据?(y/n)"<<endl; cin>>c; if(c!='n'&&c!='N') Write(stud,n); }}voidInsert(studentstud[])//---------------增加学生成绩{ system("cls");/*运行前清屏*/ intn=Read(stud); chars; 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);}voidManage(studentstud[])//---------------按平均分对学生成绩统计项进行降序排序{ system("cls");/*运行前清屏*/ inti,j,k; floats; chart[20]; cout<<endl<<"**********排列管理成绩**********\n"<<endl; intn=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);}voidOutput(studentstud[])//---------------显示全部学生成绩{ system("cls");/*运行前清屏*/ intn=Read(stud); cout<<"*****************显示班级学生成绩*****************\n"<<endl; if(!stud) cout<<"没有统计"; else { cout<<"-------------------------------------------------------------------------"<<endl;/*格式头*/ cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"c++"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"平均分"<<endl; for(inti=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; }}intmenu()/*菜单函数*/{ charc; 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<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论