博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用C++实现学生管理系统
阅读量:6283 次
发布时间:2019-06-22

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

我在前面的博客中分别使用C语言的动态数组和链表实现了学生成绩管理系统。近期正好在学习C++,于是我便使用C++实现了学生成绩管理系统。算法和前面的C语言的动态数组实现的学生成绩管理系统几乎相同,仅仅是在动态内存分配上使用了C++的New,而C语言中使用的是malloc,在排序中使用了插入排序

我的使用C语言实现的学生成绩管理系统:

使用链表实现的学生成绩管理系统:

插入排序:

首先定义一个Student类

class Student//学生类{public:	~Student();//析构函数    void InputStudent(void);//输入学生信息    void OutputStudent(void);//输出学生信息    void DeleteStudent(void);//删除学生信息    void SearchStudent(void);//查找学生信息    void ChangeStudent(void);//改动学生信息    void ScortByChinese(void);//对学生的语文成绩排序    void ScortByMath(void);  //对学生的数学成绩排序    void ScortByEnglish(void);//对学生的英语成绩排序    void ScortByTotal(void);//对学生的总分排序 private:    Student *St;     //学生类指针    int Size;       //学生的人数        string Name;    //姓名    int Age;        //年龄    int No;         //学号    float Score[3];//三科的成绩    float Total;  //总分    float Ave;   //平均分};

然后通过各个成员函数操作Student类,算法和C语言的几乎相同我就不多解释

程序的所有代码

#include 
#include
#include
using namespace std;class Student//学生类{public: ~Student();//析构函数 void InputStudent(void);//输入学生信息 void OutputStudent(void);//输出学生信息 void DeleteStudent(void);//删除学生信息 void SearchStudent(void);//查找学生信息 void ChangeStudent(void);//改动学生信息 void ScortByChinese(void);//对学生的语文成绩排序 void ScortByMath(void); //对学生的数学成绩排序 void ScortByEnglish(void);//对学生的英语成绩排序 void ScortByTotal(void);//对学生的总分排序 private: Student *St; //学生类指针 int Size; //学生的人数 string Name; //姓名 int Age; //年龄 int No; //学号 float Score[3];//三科的成绩 float Total; //总分 float Ave; //平均分};//析构函数Student::~Student(){ delete(St);}//输入学生的信息void Student::InputStudent(void){ int len;//学生的人数 cout<<"请输入学生的人数:"; cin>>len; system("cls"); Size = len; St = new Student[Size]; for(int i=0; i
>St[i].Name; cout<<"请输入第"<
<<"个学生的年龄:"; cin>>St[i].Age; cout<<"请输入第"<
<<"个学生的学号:"; cin>>St[i].No; cout<<"请输入第"<
<<"个学生的语文成绩:"; cin>>St[i].Score[0]; cout<<"请输入第"<
<<"个学生的数学成绩:"; cin>>St[i].Score[1]; cout<<"请输入第"<
<<"个学生的英语成绩:"; cin>>St[i].Score[2]; St[i].Total = St[i].Score[0] + St[i].Score[1] + St[i].Score[2]; St[i].Ave = St[i].Total / 3.0f; system("cls"); }}//输出学生的信息void Student::OutputStudent(void){ cout<<"姓名 年龄 学号 语文 数学 英语 总分 平均分"<
>str; int num;//标记姓名相等时的下标 //寻找姓名相等时的下标 for(int i=0; i
>name; int i; for(i=0; i
>name; int i; for(i=0; i
>St[i].Name; cout<<"请输入学生的年龄:"; cin>>St[i].Age; cout<<"请输入第个学生的学号:"; cin>>St[i].No; cout<<"请输入学生的语文成绩:"; cin>>St[i].Score[0]; cout<<"请输入学生的数学成绩:"; cin>>St[i].Score[1]; cout<<"请输入第学生的英语成绩:"; cin>>St[i].Score[2]; St[i].Total = St[i].Score[0] + St[i].Score[1] + St[i].Score[2]; St[i].Ave = St[i].Total / 3.0f;}void Student::ScortByChinese(void)//对学生的语文成绩排序{ //提供插入数组中的数据 for(int i=1; i
St[j].Score[0] && j>=0) { St[j+1] = St[j]; j--; } St[++j] = temp; }}void Student::ScortByMath(void)//对学生的数学成绩排序{ //提供插入数组中的数据 for(int i=1; i
St[j].Score[1] && j>=0) { St[j+1] = St[j]; j--; } St[++j] = temp; }}void Student::ScortByEnglish(void)//对学生的英语成绩排序{ //提供插入数组中的数据 for(int i=1; i
St[j].Score[2] && j>=0) { St[j+1] = St[j]; j--; } St[++j] = temp; }}void Student::ScortByTotal(void)//对学生的总分排序{ //提供插入数组中的数据 for(int i=1; i
St[j].Total && j>=0) { St[j+1] = St[j]; j--; } St[++j] = temp; }}void main(){ cout<<"================================================================================\n"<
>Item; system("cls");//清屏 switch(Item) { case 1://输入学生信息 { st.InputStudent(); } break; case 2://输出学生信息 { st.OutputStudent(); } break; case 3://删除学生信息 { st.DeleteStudent(); } break; case 4://查找学生信息 { st.SearchStudent(); } break; case 5://改动学生信息 { st.ChangeStudent(); } break; case 6://对学生的语文成绩排序 { st.ScortByChinese(); st.OutputStudent(); } break; case 7://对学生的数学成绩排序 { st.ScortByMath(); st.OutputStudent(); } break; case 8://对学生的英语成绩排序 { st.ScortByEnglish(); st.OutputStudent(); } break; case 9://对学生的总分排序 { st.ScortByTotal(); st.OutputStudent(); } break; default: break; } } system("pause"); }

转载地址:http://psxva.baihongyu.com/

你可能感兴趣的文章
机器学习算法:朴素贝叶斯
查看>>
小五思科技术学习笔记之扩展访问列表
查看>>
使用Python脚本检验文件系统数据完整性
查看>>
使用MDT部署Windows Server 2003 R2
查看>>
Redhat as5安装Mysql5.0.28
查看>>
通过TMG发布ActiveSync
查看>>
Web服务器的配置与管理(4) 配置访问权限和安全
查看>>
Git: 在CentOS上设置共享Repository
查看>>
vue axios 跨域解决办法
查看>>
P1198 最大数 线段树水题
查看>>
回归预测算法
查看>>
魔兽1 -备战
查看>>
elk定时清理日志
查看>>
java Socket编程
查看>>
我的Android进阶之旅------>Android关于ImageSpan和SpannableString的初步了解
查看>>
【Python学习 】Python获取命令行参数的方法
查看>>
Seleniumz中 dr.quit()和dr.close()的区别
查看>>
openwrt生成备份文件
查看>>
hue忘记管理员登陆密码
查看>>
scrum敏捷开发的几款工具
查看>>