收藏 分销(赏)

c大作业学生信息管理系统源代码.docx

上传人:人****来 文档编号:4456546 上传时间:2024-09-23 格式:DOCX 页数:38 大小:31.45KB 下载积分:12 金币
下载 相关 举报
c大作业学生信息管理系统源代码.docx_第1页
第1页 / 共38页
c大作业学生信息管理系统源代码.docx_第2页
第2页 / 共38页


点击查看更多>>
资源描述
c大作业学生信息管理系统源代码 38 2020年4月19日 文档仅供参考,不当之处,请联系改正。 学生信息管理系统源代码: #include<iostream.h> #include<stdlib.h> #include<string.h> #include<conio.h> #include<iomanip.h> #include<fstream.h> struct student { char num[30]; int maths; char name[30]; int chinese; char clas[30]; int english; int total; float average; student *next; }; //◆1(1) void createlist(student * & head) //学生成绩文件导入功能(用链表储存) { char t[80],num0[30],name0[30],clas0[30]; int chinese0,maths0,english0; student *s,*p; ifstream instuf("student-score.txt",ios::in); if (!instuf) {cerr<<"file could not be open."<<endl; abort();} instuf.getline(t,80); while (instuf>>num0>>name0>>clas0>>chinese0>>maths0>>english0) { s=new student; strcpy(s->num,num0);strcpy(s->name,name0);strcpy(s->clas,clas0); s->chinese=chinese0;s->maths=maths0;s->english=english0; s->total=s->chinese+s->maths+s->english; s->average=float(s->total)/3; if (head==NULL) head=s; else p->next=s; p=s; } p->next=NULL; instuf.close(); } //◆1(2) void showlist(student *head) //学生成绩信息显示功能(遍历链表) { int n=1; cout<<"学号 姓名 班级 语文 数学 英语 总分 均分 序号 "; while (head) { cout<<head->num<<" "<<head->name<<'\t'<<head->clas<<'\t'<<" "<<head->chinese<<'\t' <<head->maths<<'\t'<<head->english<<'\t'<<head->total<<'\t'<<setprecision(3)<<head->average<<'\t'<<" "<<n<<endl; n=n+1; head=head->next; } } //◆2 void charu(student *head) //学生成绩信息插入功能(链表尾部插入学生成绩信息) { student *s,*p,*q; int n,i; cout<<"请输入需要【插入】的学生成绩信息的数量: "; cin>>n; cout<<"请输入需插入的学生成绩信息(每人一行):"<<endl; cout<<"学号 姓名 班级 语文 数学 英语"<<endl; p=head; while (p) { q=p; p=p->next; } for (i=1;i<=n;i++) { s=new student; cin>>s->num>>s->name>>s->clas>>s->chinese>>s->maths>>s->english; s->total=s->chinese+s->maths+s->english; s->average=float(s->total)/3; q->next =s; q=s; } q->next=NULL; } //◆3 void shanchu(student * & head) //学生成绩信息删除功能 { student *p,*q; char a[30]; int n,i,b=1; cout<<"请输入需【删除】的学生成绩信息的数量: "; cin>>n; cout<<"请输入需要删除的学生的学号或姓名:"<<endl; for (i=1;i<=n;i++) { cin>>a; if ((strcmp(head->num,a)==0)||(strcmp(head->name,a)==0)) { b=0; p=head; head=head->next; delete p; p=NULL; } else { p=head; while ((p->next!=NULL)&&(strcmp(p->next->num,a)!=0)&&(strcmp(p->next->name,a)!=0)) { p=p->next; } if (p->next!=NULL) { b=0; q=p->next; p->next=q->next; delete q; q=NULL; } } } if (b==1) cout<<"无此学号或姓名的成绩记录!"<<endl; } //◆4 void change(student *head) //学生成绩信息的修改功能(修改指定学生信息) { char a[30]; int b=1; cout<<"请输入您要【修改】的学生的学号或姓名: "; cin>>a; while (head) { if ((strcmp(head->num,a)==0)||(strcmp(head->name,a)==0)) { cout<<""<<endl; b=0; cout<<"此学生原来的学生成绩信息是:"<<endl; cout<<"学号 姓名 班级 语文 数学 英语"<<endl; cout<<head->num<<" "<<head->name<<'\t'<<head->clas<<'\t'<<" " <<head->chinese<<'\t'<<head->maths<<'\t'<<head->english<<endl; cout<<"请输入修改后的学生成绩信息:"<<endl; cout<<"学号 姓名 班级 语文 数学 英语"<<endl; cin>>head->num>>head->name>>head->clas>>head->chinese>>head->maths>>head->english; head->total=head->chinese+head->maths+head->english; head->average=float(head->total)/3; } head=head->next; } if (b==1) cout<<"无此学号或姓名的成绩记录!"<<endl; } //◆5(1) void geren(student *head) //查询个人成绩功能 { char a[30]; int b=1; cout<<"请输入您要【查询】的学生的学号或姓名: "; cin>>a; cout<<"此学生的学生成绩信息是:"<<endl; cout<<"学号 姓名 班级 语文 数学 英语 总分 均分"<<endl; while (head) { if ((strcmp(head->num,a)==0)||(strcmp(head->name,a)==0)) { b=0; cout<<head->num<<" "<<head->name<<'\t'<<head->clas<<'\t'<<" "<<head->chinese<<'\t' <<head->maths<<'\t'<<head->english<<'\t'<<head->total<<'\t'<<setprecision(3)<<head->average<<endl; } head=head->next; } if (b==1) cout<<"无此学号或姓名的成绩记录!"<<endl; } //◆5(2) void chabanji(student *head) //查询班级成绩功能 { char a[30]; int b=1; cout<<"请输入您要查询成绩的【班级】的名称: "; cin>>a; cout<<"此班级的学生成绩信息是:"<<endl; cout<<"学号 姓名 班级 语文 数学 英语 总分 均分"<<endl; while (head) { if (strcmp(head->clas,a)==0) { b=0; cout<<head->num<<" "<<head->name<<'\t'<<head->clas<<'\t'<<" "<<head->chinese<<'\t' <<head->maths<<'\t'<<head->english<<'\t'<<head->total<<'\t'<<setprecision(3)<<head->average<<endl; } head=head->next; } if (b==1) cout<<"无此班级的成绩记录!"<<endl; } //◆5(3) void chayuwen(student *head) //查询语文成绩功能 { int h,l,b=1; cout<<"请输入您要查询的【语文】成绩的分数段: "<<endl; cout<<"起始分 终止分"<<endl; cin>>l; cin>>h; cout<<"此分数段的学生语文成绩信息是:"<<endl; cout<<"学号 姓名 班级 语文 数学 英语 总分 均分"<<endl; while (head) { if ((head->chinese>=l)&&(head->chinese<=h)) { b=0; cout<<head->num<<" "<<head->name<<'\t'<<head->clas<<'\t'<<" "<<head->chinese<<'\t' <<head->maths<<'\t'<<head->english<<'\t'<<head->total<<'\t'<<setprecision(3)<<head->average<<endl; } head=head->next; } if (b==1) cout<<"无此分数段的语文成绩记录!"<<endl; } //◆5(4) void chashuxue(student *head) //查询数学成绩功能 { int h,l,b=1; cout<<"请输入您要查询的【数学】成绩的分数段: "<<endl; cout<<"起始分 终止分"<<endl; cin>>l; cin>>h; cout<<"此分数段的学生数学成绩信息是:"<<endl; cout<<"学号 姓名 班级 语文 数学 英语 总分 均分"<<endl; while (head) { if ((head->maths>=l)&&(head->maths<=h)) { b=0; cout<<head->num<<" "<<head->name<<'\t'<<head->clas<<'\t'<<" "<<head->chinese<<'\t' <<head->maths<<'\t'<<head->english<<'\t'<<head->total<<'\t'<<setprecision(3)<<head->average<<endl; } head=head->next; } if (b==1) cout<<"无此分数段的数学成绩记录!"<<endl; } //◆5(5) void chayingyu(student *head) //查询英语成绩功能 { int h,l,b=1; cout<<"请输入您要查询的【英语】成绩的分数段: "<<endl; cout<<"起始分 终止分"<<endl; cin>>l; cin>>h; cout<<"此分数段的学生英语成绩信息是:"<<endl; cout<<"学号 姓名 班级 语文 数学 英语 总分 均分"<<endl; while (head) { if ((head->english>=l)&&(head->english<=h)) { b=0; cout<<head->num<<" "<<head->name<<'\t'<<head->clas<<'\t'<<" "<<head->chinese<<'\t' <<head->maths<<'\t'<<head->english<<'\t'<<head->total<<'\t'<<setprecision(3)<<head->average<<endl; } head=head->next; } if (b==1) cout<<"无此分数段的英语成绩记录!"<<endl; } //◆5(6) void chazongfen(student *head) //查询总分成绩功能 { int h,l,b=1; cout<<"请输入您要查询的【总分】成绩的分数段: "<<endl; cout<<"起始分 终止分"<<endl; cin>>l; cin>>h; cout<<"此分数段的学生总分成绩信息是:"<<endl; cout<<"学号 姓名 班级 语文 数学 英语 总分 均分"<<endl; while (head) { if ((head->total>=l)&&(head->total<=h)) { b=0; cout<<head->num<<" "<<head->name<<'\t'<<head->clas<<'\t'<<" "<<head->chinese<<'\t' <<head->maths<<'\t'<<head->english<<'\t'<<head->total<<'\t'<<setprecision(3)<<head->average<<endl; } head=head->next; } if (b==1) cout<<"无此分数段的总分成绩记录!"<<endl; } //◆6(1) void yuwen(student *head) //按语文成绩从高到低排序功能 { student *p,*q; char a[30]; int b; float c; p=head; while (p) { q=p->next; while (q) { if (p->chinese<q->chinese) { strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a); strcpy(a,p->name);strcpy(p->name,q->name);strcpy(q->name,a); strcpy(a,p->clas);strcpy(p->clas,q->clas);strcpy(q->clas,a); b=p->chinese;p->chinese=q->chinese;q->chinese=b; b=p->maths;p->maths=q->maths;q->maths=b; b=p->english;p->english=q->english;q->english=b; b=p->total;p->total=q->total;q->total=b; c=p->average;p->average=q->average;q->average=c; } q=q->next; } p=p->next; } } //◆6(2) void shuxue(student *head) //按数学成绩从高到低排序功能 { student *p,*q; char a[30]; int b; float c; p=head; while (p) { q=p->next; while (q) { if (p->maths<q->maths) { strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a); strcpy(a,p->name);strcpy(p->name,q->name);strcpy(q->name,a); strcpy(a,p->clas);strcpy(p->clas,q->clas);strcpy(q->clas,a); b=p->chinese;p->chinese=q->chinese;q->chinese=b; b=p->maths;p->maths=q->maths;q->maths=b; b=p->english;p->english=q->english;q->english=b; b=p->total;p->total=q->total;q->total=b; c=p->average;p->average=q->average;q->average=c; } q=q->next; } p=p->next; } } //◆6(3) void yingyu(student *head) //按英语成绩从高到低排序功能 { student *p,*q; char a[30]; int b; float c; p=head; while (p) { q=p->next; while (q) { if (p->english<q->english) { strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a); strcpy(a,p->name);strcpy(p->name,q->name);strcpy(q->name,a); strcpy(a,p->clas);strcpy(p->clas,q->clas);strcpy(q->clas,a); b=p->chinese;p->chinese=q->chinese;q->chinese=b; b=p->maths;p->maths=q->maths;q->maths=b; b=p->english;p->english=q->english;q->english=b; b=p->total;p->total=q->total;q->total=b; c=p->average;p->average=q->average;q->average=c; } q=q->next; } p=p->next; } } //◆6(4) void zongfen(student *head) //按总分成绩从高到低排序功能 { student *p,*q; char a[30]; int b; float c; p=head; while (p) { q=p->next; while (q) { if (p->total<q->total) { strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a); strcpy(a,p->name);strcpy(p->name,q->name);strcpy(q->name,a); strcpy(a,p->clas);strcpy(p->clas,q->clas);strcpy(q->clas,a); b=p->chinese;p->chinese=q->chinese;q->chinese=b; b=p->maths;p->maths=q->maths;q->maths=b; b=p->english;p->english=q->english;q->english=b; b=p->total;p->total=q->total;q->total=b; c=p->average;p->average=q->average;q->average=c; } q=q->next; } p=p->next; } } //◆7 void xuehao(student *head) //按学号从小到大排序功能 { student *p,*q; char a[30]; int b; float c; p=head; while (p) { q=p->next; while (q) { if (strcmp(p->num,q->num)>0) { strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a); strcpy(a,p->name);strcpy(p->name,q->name);strcpy(q->name,a); strcpy(a,p->clas);strcpy(p->clas,q->clas);strcpy(q->clas,a); b=p->chinese;p->chinese=q->chinese;q->chinese=b; b=p->maths;p->maths=q->maths;q->maths=b; b=p->english;p->english=q->english;q->english=b; b=p->total;p->total=q->total;q->total=b; c=p->average;p->average=q->average;q->average=c; } q=q->next; } p=p->next; } } //◆8 void xingming(student *head) //按姓名首字母排序功能 { student *p,*q; char a[30]; int b; float c; p=head; while (p) { q=p->next; while (q) { if (strcmp(p->name,q->name)>0) { strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a); strcpy(a,p->name);strcpy(p->name,q->name);strcpy(q->name,a); strcpy(a,p->clas);strcpy(p->clas,q->clas);strcpy(q->clas,a); b=p->chinese;p->chinese=q->chinese;q->chinese=b; b=p->maths;p->maths=q->maths;q->maths=b; b=p->english;p->english=q->english;q->english=b; b=p->total;p->total=q->total;q->total=b; c=p->average;p->average=q->average;q->average=c; } q=q->next; } p=p->next; } } //◆9 void banji(student *head) //按班级的类别排序功能 { student *p,*q; char a[30]; int b; float c; p=head; while (p) { q=p->next; while (q) { if (strcmp(p->clas,q->clas)>0) { strcpy(a,p->num);strcpy(p->num,q->num);strcpy(q->num,a); strcpy(a,p->name);strcpy(p->name,q->name);strcpy(q->name,a); strcpy(a,p->clas);strcpy(p->clas,q->clas);strcpy(q->clas,a); b=p->chinese;p->chinese=q->chinese;q->chinese=b; b=p->maths;p->maths=q->maths;q->maths=b; b=p->english;p->english=q->english;q->english=b; b=p->total;p->total=q->total;q->total=b; c=p->average;p->average=q->average;q->average=c; } q=q->next; } p=p->next; } } //◆10 void show(student *head,char *s) //学生成绩信息文件导出功能 { int n=1; ofstream outstuf; outstuf.open(s,ios::out); if (!outstuf) {cerr<<"file could not be open."<<endl; abort();} outstuf<<"学号 姓名 班级 语文 数学 英语 总分 均分 序号"<<endl; while (head) { outstuf<<head->num<<" "<<head->name<<'\t'<<head->clas<<'\t'<<" "<<head->chinese<<'\t' <<head->maths<<'\t'<<head->english<<'\t'<<head->total<<'\t' <<setprecision(3)<<head->average<<'\t'<<" "<<n<<endl; n=n+1; head=head->next; } outstuf.close(); } void main() { student *head=NULL; int n; char s[30]; cout<<"********************************************************************************"; cout<<"* ★欢迎使用学生成绩管理系统★ *"; cout<<"* 管理员: XXX *"; cout<<"* 请选择您想使用的功能: *"; cout<<"* 功能名 请输入 功能名 请输入 *"; cout<<"* ◆导入学生成绩文件 1 ◆按学号小到大排序 7 *"; cout<<"* ◆插入学生成绩信息 2 ◆按姓名首字母排序 8 *"; cout<<"* ◆删除学生成绩信息 3 ◆按班级的类别排序 9 *"; cout<<"* ◆修改学生成绩信息 4 ◆导出学生成绩文件 10 *"; cout<<"* ◆查询学生成绩信息 5 ◆其它功能...... *"; cout<<"* ◆按成绩高到低排序 6 ◆退出管理系统 0 *"; cout<<"********************************************************************************"; cout<<"您的输入是: "; cin>>n; createlist(head); while (n>0) { switch (n) { case 1:cout<<"导入的需管理的学生成绩信息表:"<<endl; showlist(head); break; case 2:charu(head); cout<<"插入后的学生成绩信息表:"<<endl; showlist(head); break; case 3:shanchu(head); cout<<"删除后的学生成绩信息表:"<<endl; showlist(head); break; case 4:change(head); cout<<"修改后的学生成绩信息表:"<<endl; showlist(head); break; case 5:cout<<"请选择查询学生成绩的方式:"<<endl; cout<<" 方式 请输入 方式 请输入 "<<endl; cout<<" ●查询个人成绩 1 ●查询数学成绩 4 "<<endl; cout<<" ●查询班级成绩 2 ●查询英语成绩 5 "<<endl; cout<<" ●查询语文成绩 3 ●查询总分成绩 6 "<<endl; cout<<"您的输入是: "; cin>>n; switch (n) { case 1:geren(head); break; case 2:zongfen(head); chabanji(head); break; case 3:yuwen(head); chayuwen(head); break; case 4:shuxue(head); chashuxue(head); break; case 5:yingyu(head); chayingyu(head); break; case 6:zongfen(head); chazongfen(head); break;
展开阅读全文

开通  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 

客服