收藏 分销(赏)

C学生成绩标准管理系统源代码.doc

上传人:a199****6536 文档编号:2827534 上传时间:2024-06-06 格式:DOC 页数:15 大小:38.54KB 下载积分:8 金币
下载 相关 举报
C学生成绩标准管理系统源代码.doc_第1页
第1页 / 共15页
C学生成绩标准管理系统源代码.doc_第2页
第2页 / 共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); } } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服