学分管理软件C++编程.docx
- 文档编号:9365154
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:17
- 大小:17.21KB
学分管理软件C++编程.docx
《学分管理软件C++编程.docx》由会员分享,可在线阅读,更多相关《学分管理软件C++编程.docx(17页珍藏版)》请在冰豆网上搜索。
学分管理软件C++编程
#include
#include
usingnamespacestd;
intp=0;//计数
structScore_sys//定义一个结构体存储学生相关信息
{
doubleid;
charname[20];
structScore//定义一个分数结构体存储各项课程分数
{
intbasic;
intmajor;
intselected;
inthumanities;
intexperiment;
};
Scorescore;
structClass_num//定义一个一个班级结构体
{
intnum;
};
Class_numclassnum;
Score_sys*next;
};
classList
{
Score_sys*head,*tail;
public:
List();
~List();
voidadd();
voidinquire();
voidinquire_cla();
voidchange();
voidcompositor();
};
Score_sysstu[2000];//允许添加2000个学生的信息
//给定某个班级的班号,显示该班所有学生学分完成情况;
List:
:
List()//构造函数实现
{
head=tail=NULL;
}
List:
:
~List()//析构函数实现
{
Score_sys*p;
if(head)//若非空,则删除
{
p=head;
head=head->next;
deletep;//删除,释放空间
}
}
voidList:
:
add()//添加学生信息函数
{
inti;
chars;
cout< "< cout< for(i=p;i<2000;i++) { p++; cout<<"请输入第"< "; cin>>stu[i].classnum.num; cout<<"请输入第"< "; cin>>stu[i].id; cout<<"请输入第"< "; cin>>stu[i].name; cout<<"请输入第"< "; cin>>stu[i].score.basic; cout<<"请输入第"< "; cin>>stu[i].score.major; cout<<"请输入第"< "; cin>>stu[i].score.selected; cout<<"请输入第"< "; cin>>stu[i].score.humanities; cout<<"请输入第"< "; cin>>stu[i].score.experiment; cout< cout< cout<<"继续输入吗? ! (y/n)"; cin>>s; if(s=='n')break; else if(s=='y') continue; else { cout<<"输入有误! ! 请重新输入: "; break; } } } voidList: : inquire()//查询学生信息 { chars; intj; doublek; do{ cout< "< cout<<"请输入该学生的学号: "; cin>>k; for(j=0;j<2000;j++) { if(k==stu[j].id) { cout<<"这是系统中存储的第"< cout<<"他所在班级: "< cout<<"该学生名字为: "< cout<<"该学生的基础课学分为: "< cout<<"该学生的专业课学分为: "< cout<<"该学生的选修课学分为: "< cout<<"该学生的人文类课程学分为: "< cout<<"该学生的实验性课程学分为: "< cout< "< /*-------------------判断学生学分的情况---------------*/ if(stu[j].score.basic<50) cout<<"基础课学分未完成"< else cout<<"基础课学分完成"< if(stu[j].score.major<50) cout<<"专业课学分未完成"< else cout<<"专业课学分完成"< if(stu[j].score.selected<24) cout<<"选修课学分未完成"< else cout<<"选修课学分完成"< if(stu[j].score.selected<8) cout<<"人文类课程学分未完成"< else cout<<"人文类课程学分完成"< if(stu[j].score.selected<20) cout<<"实践性课程学分未完成"< else cout<<"实践性类课程学分完成"< break; } elsecout<<"无该生信息"< } cout< cout<<"继续查询吗? ! (y/n)"; cin>>s; if(s=='n') break; }while(s=='y'); } voidList: : inquire_cla() { chars; intn,j,i; do { i=1; cout<<"本操作为显示某个班级所有的学生学分完成情况! "< cout< "; cin>>n; for(j=0;j { if(n==stu[j].classnum.num) { cout<<"这个班第"< "< cout<<"这个班第"< "< cout<<"这个班第"< "< cout<<"这个班第"< "< cout<<"这个班第"< "< cout<<"这个班第"< "< i++; continue; } } cout< cout<<"继续查询吗? ! (y/n)"; cin>>s; if(s=='n') break; } while(s=='y'); } //给定某位学生的学号,修改该学生的学分信息; voidList: : change() { inti,j; chars; doublen; do { cout< "< cout<<"请输入需要修改学生的学号: "; cin>>n; for(j=0;j { if(n==stu[j].id) { cout<<"这是系统中存储的第"< cout<<",他所在班级为: "< cout<<"该名学生名字为: "< cout<<"该名学生的基础课学分为: "< cout<<"该名学生的专业课学分为: "< cout<<"该名学生的选修课学分为: "< cout<<"该名学生的人文类课程学分为: "< cout<<"该名学生的实验性课程学分为: "< /*-------------------判断修改学生学分---------------*/ do { cout<<"*****************************************"< cout<<"*子菜单*"< cout<<"*1.--------修改基础课学分-----------*"< cout<<"*2.--------修改专业课学分-----------*"< cout<<"*3.--------修改选修课学分-----------*"< cout<<"*4.--------修改人文类课程学分-------*"< cout<<"*5.--------修改实验性课程学分-------*"< cout<<"*6.--------不做修改(退出)-----------*"< cout<<"*****************************************"< cout<<"请输入你想要操作(1、2、3、4、5、6): "; cin>>i; switch(i) { case1: cout<<"基础学分修改为: ";cin>>stu[j].score.basic;break; case2: cout<<"专业学分修改为: ";cin>>stu[j].score.major;break; case3: cout<<"选修学分修改为: ";cin>>stu[j].score.selected;break; case4: cout<<"人文类课程学分修改为: ";cin>>stu[j].score.humanities;break; case5: cout<<"实验性课程学分修改为: ";cin>>stu[j].score.experiment;break; } } while(i! =6); /*-------------------判断修改学生学分---------------*/ } } cout< cout<<"继续修改吗? ! (y/n)"; cin>>s; if(s=='n') break; } while(s=='y'); } voidList: : compositor() { inta,i,j,max; do { cout<<"请输入需要排序的科目"; cout<<"*****************************************"< cout<<"*子菜单*"< cout<<"*1.--------排序基础课学分-----------*"< cout<<"*2.--------排序专业课学分-----------*"< cout<<"*3.--------排序选修课学分-----------*"< cout<<"*4.--------排序人文类课程学分-------*"< cout<<"*5.--------排序实验性课程学分-------*"< cout<<"*6.--------不做排序(退出)-----------*"< cout<<"*****************************************"< cout<<"请输入你想要操作(1、2、3、4、5、6): "; cin>>a; if(a==1) {for(i=0;i { max=i; for(j=i+1;j { if(stu[j].score.basic>stu[max].score.basic) max=j; } if(i! =max) { Score_systemp; temp=stu[i]; stu[i]=stu[max]; stu[max]=temp; } } for(i=0;i { cout< "< } else if(a==2) {for(i=0;i { max=i; for(j=i+1;j { if(stu[j].score.major>stu[max].score.major) max=j; } if(i! =max) { Score_systemp; temp=stu[i]; stu[i]=stu[max]; stu[max]=temp; } for(i=0;i cout< "< } } else if(a==3) { for(i=0;i { max=i; for(j=i+1;j { if(stu[j].score.selected>stu[max].score.selected) max=j; } if(i! =max) { Score_systemp; temp=stu[i]; stu[i]=stu[max]; stu[max]=temp; } for(i=0;i cout< "< } } else if(a==4) { for(i=0;i { max=i; for(j=i+1;j { if(stu[j].score.humanities>stu[max].score.humanities) max=j; } if(i! =max) { Score_systemp; temp=stu[i]; stu[i]=stu[max]; stu[max]=temp; } for(i=0;i cout< "< } } else if(a==5) { for(i=0;i { max=i; for(j=i+1;j<2000;j++) { if(stu[j].score.experiment>stu[max].score.experiment) max=j; } if(i! =max) { Score_systemp; temp=stu[i]; stu[i]=stu[max]; stu[max]=temp; } for(i=0;i cout< "< } }; break; } while(a! =6); } //---------------------------------- //给定某位学生的学号,修改该学生的学分信息; voidmain() { inti; cout<<"**********************************************"< cout<<"*主菜单*"< cout<<"*1.--------新增学生信息*"< cout<<"*2.--------查询单个学生信息*"< cout<<"*3.--------查询班级全部学生信息*"< cout<<"*4.--------修改学生信息*"< cout<<"*5.--------按照某类课程的学分高低进行排序*"< cout<<"*6.--------退出*"< cout<<"**********************************************"< cout<<"请输入你想要操作: "< intflag=1; ListTXL; while(flag) { cin>>i; switch(i) { case1: TXL.add();break; case2: TXL.inquire();break; case3: TXL.inquire_cla();break; case4: TXL.change();break; case5: TXL.compositor();break; case6: flag=0;break; } } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学分 管理软件 C+ 编程
![提示](https://static.bdocx.com/images/bang_tan.gif)