C++实现简单班级成绩管理系统
本文为大家分享了C++实现简单班级成绩管理系统的具体代码,供大家参考。
#include<iostream> #include<fstream> #include<cstring> #include <stdlib.h> #include <conio.h> using namespace std; int n=0; class Student {public: string name; string num; char cclass[20]; int lisan; int gaoshu; int dianlu; int sum; /*--------------------------输入函数-----------------------------*/ void input() { cout<<"\t请输入姓名:"; cin>>name; cout<<"\t请输入学号:"; cin>>num; cout<<"\t请输入班级:"; cin>>cclass; cout<<"\t请输入离散成绩:"; cin>>lisan; cout<<"\t请输入高数成绩:"; cin>>gaoshu; cout<<"\t请输入电路成绩:"; cin>>dianlu; sum=lisan+gaoshu+dianlu; } /*------------------------------show函数------------------------*/ void show() { cout<<"姓名:"<<name<<endl; cout<<"学号:"<<num<<endl; cout<<"班级:"<<cclass<<endl; cout<<"离散:"<<lisan<<endl; cout<<"高数:"<<gaoshu<<endl; cout<<"电路"<<dianlu<<endl; cout<<"总成绩"<<sum<<endl; } }; /*------------------------------创建类------------------------------*/ class Message {public: Message(){}; ~Message(){}; Student stu[20]; void menu(); void add(); void display(); int sname(string x); int snum(string y); void find(); void change(); void sort(); void dele(); }; /*------------------------------菜单------------------------------*/ void Message::menu() { cout<<"--------------*班级成绩管理系统*--------------"<<endl; cout<<"--------------*$1. 增加学生成绩*--------------"<<endl; cout<<"--------------*$2. 显示学生成绩*--------------"<<endl; cout<<"--------------*$3. 更改学生成绩*--------------"<<endl; cout<<"--------------*$4. 排序学生成绩*--------------"<<endl; cout<<"--------------*$5. 查找学生成绩*--------------"<<endl; cout<<"--------------*$6. 删除学生成绩*--------------"<<endl; cout<<"--------------*$7. 退出成绩系统*--------------"<<endl; } /*------------------------------添加数据------------------------------*/ void Message::add() { stu[n++].input(); cout<<"添加成功!输入任意字符继续:"; getch(); } /*------------------------------显示数据------------------------------*/ void Message::display() { for(int x=0;x<n;x++) stu[x].show(); cout<<"输入任意字符继续:"; getch(); } /*------------------------------查找函数------------------------------*/ int Message::sname(string na) { int i; for(i=0;i<n;i++) { if(stu[i].name==na) return i; } return -1; } int Message::snum(string nu) { int i; for(i=0;i<n;i++) { if(stu[i].num==nu) return i; } return -1; } void Message::find() { int a; int z; string ap,bp; cout<<"请选择查找方式:1.按学号查找"<<endl; cout<<" 2.按姓名查找"<<endl; cout<<"请输入1或2:"; cin>>a; switch(a) { case 1:{ cout<<"请输入需查找学生的学号:"; cin>>bp; z=snum(bp); if(z!=-1) stu[z].show(); else cout<<"没有找到该学生"<<endl; cout<<"输入任意字符继续"<<endl; getch(); break; } case 2:{ cout<<"请输入需查找学生的姓名:"; cin>>ap; z=sname(ap); if(z!=-1) stu[z].show(); else cout<<"没有找到该学生"<<endl; cout<<"输入任意字符继续"<<endl; getch(); break; } } } /*------------------------------更改数据------------------------------*/ void Message::change() { int k; string cp; cout<<"请输入需修改学生学号:"; cin>>cp; k=snum(cp); if(k!=-1) {cout<<"已找到,请输入新的信息。"<<endl; stu[k].input();} else cout<<"没有该生信息"<<endl; cout<<"输入任意字符继续:"; getch(); } /*------------------------------数据排序------------------------------*/ void Message::sort() { int k,j,t,flag=0; for(j=0;j<n-1;j++){ for( k = 0; k < n-1-j; k++) if (stu[k].sum>stu[k+1].sum) {t=stu[k].sum;stu[k].sum=stu[k+1].sum;stu[k+1].sum=t;flag=1;} if (flag==0) break; } for( k = 0; k <n; k++ ) cout<<stu[k].sum<<endl; cout<<"输入任意字符继续"; getch(); } /*------------------------------删除数据------------------------------*/ void Message::dele() { int y; string dp; cout<<"请输入要删除学生的学号:"; cin>>dp; y=snum(dp); if(y!=-1) { for(;y<n;y++) {stu[y].name=stu[y+1].name; stu[y].num=stu[y+1].num; strcpy(stu[y].cclass,stu[y+1].cclass); stu[y].lisan=stu[y+1].lisan; stu[y].gaoshu=stu[y+1].gaoshu; stu[y].dianlu=stu[y+1].dianlu; } n--; } else cout<<"输入错误,找不到该生信息"<<endl; cout<<"输入任意字符继续"; getch(); } /*------------------------------主函数------------------------------*/ int main() { int y; string ss="y"; Message h; do { system("cls"); cout<<"====================欢迎进入班级成绩管理系统!===================="<<endl; h.menu(); cout<<"请输入相应的阿拉伯数字:"; cin>>y; switch(y) { case 1:h.add();break; case 2:h.display();break; case 3:h.change();break; case 4:h.sort();break; case 5:h.find();break; case 6:h.dele();break; case 7:ss="n";break; } }while(ss=="y"); return 0; }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程宝库。
1.实现机制内部主要通过m_capacity数组容量成员和m_length数组有效长度成员来维护一个T* data数组空间.内部默认分配一定数量大小的数组指针,每次append尾部追加的 ...