博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小草的Trouble学生信息管理系统
阅读量:6688 次
发布时间:2019-06-25

本文共 3511 字,大约阅读时间需要 11 分钟。

小草最近上课学C++,在图书馆纠结了好久,决定做这个小东西,没想到遇到了好多困难,好吧,功夫不负有心人,小草也在敲代码中提高了不少。

小草硬是学了好几天,才搞完这个东西,也算是了结了小草的一个心结。

小草的Trouble学生信息管理系统写得不咋样,就是一个学习C++的笔记吧。

 

1、类。

2、继承与派生。

#include 
#include
#include
#include
#include
using namespace std;class tagScore{public: tagScore(); tagScore(int ch,int ma,int en):chinese(ch),math(ma),english(en) {}protected: int chinese; int math; int english;};tagScore::tagScore(){ chinese=-1; math=-1; english=-1;}class tagStudent:protected tagScore{public: tagStudent(int ch,int ma,int en,string na,int i,char s):tagScore(ch,ma,en) { name=na; id=i; sex=s; score=ch+ma+en; } void setdata(); void display() { //score=chinese+math+english; printf("%d ",id); cout<
>id>>name>>sex>>chinese>>math>>english;}typedef tagScore Score;typedef tagStudent Student;Student a[3]{ tagStudent(43,35,35,"xiaoming",20153480,'M'), tagStudent(23,35,35,"liyang",20153435,'W'), tagStudent(43,35,35,"kjdfi",20153847,'M')};void print()///显示学生数据{ cout << " 学生成绩信息 " << endl; cout << "================================================================================" << endl; cout <<"ID\tName\tSex Scores chinese math english"<
<< endl; cout << " 1----------按姓名查询 2----------按ID查询" << endl; cout << " 3----------按学号排序并输出 4----------按成绩排序并输出" << endl; cout << " 0----------退出程序"<
<< endl;}///按姓名查询void FindByName(){ bool flag=false; system("cls"); cout<<"请输入姓名"<
>n; int i; for(i=0; i<3; i++) { if(a[i].getDataName()==n) { flag=true; break; } } if(flag==true) { print(); a[i].display(); } else printf("It is nonexistent!\n");}///按ID查询void FindById(){ bool flag=false; system("cls"); printf("请输入学的ID\n"); int i; int pos; cin>>pos; for(i=0; i<3; i++) { if(a[i].getDataId()==pos) { flag=true; break; } } if(flag==true) { print(); a[i].display(); } else printf("It is nonexistent!\n");}int CmpById(const void *a,const void *b){ Student p1=*((Student *)a); Student p2=*((Student *)b); if(p1.getDataId()!=p2.getDataId()) return p1.getDataId()-p2.getDataId();}///按学号排序输出void SortById(){ system("cls"); print(); qsort(a,3,sizeof(a[0]),CmpById); int i; for(i=0; i<3; i++) { a[i].display(); }}int CmpByScore(const void *a,const void *b){ Student p1=*((Student *)a); Student p2=*((Student *)b); if(p1.getDataScore()!=p2.getDataScore())///成绩按降序排列 return p2.getDataScore()-p1.getDataScore(); else if(p1.getDataChinese()!=p2.getDataChinese()) return p2.getDataChinese()-p1.getDataChinese(); else if(p1.getDataMath()!=p2.getDataMath()) return p2.getDataMath()-p1.getDataMath(); else if(p1.getDataEnglish()!=p2.getDataEnglish()) return p2.getDataEnglish()-p1.getDataEnglish(); else return p1.getDataId()-p2.getDataId();}///按成绩排序并输出void SortByScore(){ system("cls"); print(); qsort(a,3,sizeof(a[0]),CmpByScore); for(int i=0; i<3; i++) { a[i].display(); }}/*void DelStudent(){ system("cls"); printf("请输入要删除学生的ID\n"); int pos; bool flag=false; cin>>pos; for(int i=0; i<3; i++) { if(pos==i) { flag=true; for(int j=i; j<3; j++) a[j]=a[j+1]; } } if(flag==false) { cout<<"It is nonexistent!\n"; }}*/int main(){ screenA(); int order; scanf("%d",&order); switch(order) { case 1: FindByName(); system("pause"); break; case 2: FindById(); system("pause"); break; case 3: SortById(); break; case 4: SortByScore(); system("pause"); break; case 0: system("pause"); break; default: cout<<"错误命令\n"<

 

转载于:https://www.cnblogs.com/TreeDream/p/5269547.html

你可能感兴趣的文章
Git rebase使用
查看>>
Tetris in javascript[俄罗斯方块]
查看>>
[转载]日历设计之重复事件规则设计
查看>>
HTTP协议详解(真的很经典)
查看>>
(转)什么是云计算
查看>>
Linux性能监控命令——sar
查看>>
使用Asp.net mvc + Linq + mvc_scaffold_gen_setup.exe 生成一个完整的家庭帐册大管家程序 之二...
查看>>
视差滚动(Parallax Scrolling)效果的原理和实现
查看>>
带监督的文本分类算法FastText
查看>>
新书推荐:细说PHP(含样章试读)
查看>>
《黑客防线》2010合订本(下半年)
查看>>
intel I7平台Win7 x64 下wpf、silverlight 与aero特效动画缓慢故障排除一则
查看>>
shell常识总结
查看>>
内存池版本1--单线程-固定大小专为某类设计的内存池
查看>>
大道至简,职场上做人做事做管理
查看>>
《C++必知必会》读书笔记2
查看>>
web 学习资源整理
查看>>
make 参数定义
查看>>
java从字符串中提取数字
查看>>
Android深入浅出系列之服务机制—1.Android中的Service
查看>>