#include<iostream>
#include<string>
#include<fstream>
#include<iomanip>
#include<stdlib.h>
#include <cstring>
const int TMAX=50;
using namespace std;
class Student //对于基类的定义
{
public:
int num; //公用数据成员用于记录类成员的编号
string name;//公用数据成员用于记录类成员的姓名
string sex;//公用数据成员用于记录类成员的性别
string clas;//公用数据成员用于记录类成员的班级
int age;//公用数据成员用于记录类成员的年龄
public:
Student(int n=0,string nm="",string s="",string cl="",int a=0):num(n),name(nm),sex(s),age(a),clas(cl){};
virtual void Input(){};
virtual void Output(){};
int GetNum(){return num;}//公有数据成员函数用于获得成员编号
string GetName(){return name;}//公有数据成员函数用于获得成员姓名
};
class Pupil:public Student//对小学生派生类的定义
{
public:
float Chinese;//公有数据成员用于记录小学生的语文成绩
float Math;//公有数据成员用于记录类成员的数学成绩
float English;//英语成绩
float Sum;//总分
float Adv;//平均分
int choice2;//公有数据成员用于选择类成员的性别
public:
Pupil(int n=0,string nm="",string s="男",string cl="",int a=0,float l=0.0,float z=0.0,float e=0.0,float c=0.0,float d=0.0)
:Student(n,nm,s,cl,a),Chinese(l),Math(z),English(e),Sum(c),Adv(d){};
void Input()//成员函数用于输入成员信息
{
cout<<"请输入学号"<<endl;
cin>>num;
cout<<"请输入姓名"<<endl;
cin>>name;
cout<<"请输入性别";
cout<<"(1.男 2.女)"<<endl;
cout<<"请输入你的选择"<<endl;
cin>>choice2;
switch(choice2)
{
case 1:sex="男";break;
case 2:sex="女";break;
default:cout<<"输入错误。"<<endl;break;
}
cout<<"请输入年龄"<<endl;
cin>>age;
cout<<"请输入班级"<<endl;
cin>>clas;
cout<<"请输入语文成绩"<<endl;
cin>>Chinese;
cout<<"请输入数学成绩"<<endl;
cin>>Math;
cout<<"请输入英语成绩"<<endl;
cin>>English;
Sum=Math+English+Chinese;
Adv=Sum/3;
}
void Output()//成员函数用于输出成员信息
{
cout<<setw(10)<<num
<<setw(10)<<name
<<setw(10)<<sex
<<setw(10)<<age
<<setw(10)<<clas
<<setw(10)<<Chinese
<<setw(10)<<Math
<<setw(10)<<English
<<setw(10)<<Sum
<<setw(10)<<Adv
<<endl;
}
};
class Middle:virtual public Student//对于中学生派生类的定义
{
public:
float Chinese;//公有数据成员用于记录中学生的语文成绩
float Math;//公有数据成员用于记录类成员的数学成绩
float geography;//公有数据成员用于记录类成员的地理成绩
float history;//公有数据成员用于记录类成员的历史成绩
float English;//公有数据成员用于记录类成员的英语成绩
float Sum;//公有数据成员用于记录类成员的成绩总分
float Adv;//公有数据成员用于记录类成员的成绩平均分
int choice2;//公有数据成员用于选择类成员的性别
public:
Middle(int n=0,string nm="",string s="男",string cl="",int a=0,float ge=0.0,float hi=0.0,float ad=0.0,float l=0.0,float z=0.0,float c=0.0,float d=0.0)
:Student(n,nm,s,cl,a),geography(ge),history(hi),English(ad),Chinese(l),Math(z),Sum(c),Adv(d){};
void Input()//成员函数用于输入成员信息
{
cout<<"请输入学号"<<endl;
cin>>num;
cout<<"请输入姓名"<<endl;
cin>>name;
cout<<"请输入性别";
cout<<"(1.男 2.女)"<<endl;
cout<<"请输入你的选择"<<endl;
cin>>choice2;
switch(choice2)
{
case 1:sex="男";break;
case 2:sex="女";break;
default:cout<<"输入错误。"<<endl;break;
}
cout<<"请输入年龄"<<endl;
cin>>age;
cout<<"请输入班级"<<endl;
cin>>clas;
cout<<"请输入语文成绩"<<endl;
cin>>Chinese;
cout<<"请输入数学成绩"<<endl;
cin>>Math;
cout<<"请输入地理成绩"<<endl;
cin>>geography;
cout<<"请输入历史成绩"<<endl;
cin>>history;
cout<<"输入英语成绩"<<endl;
cin>>English;
Sum=English+history+geography+Chinese+Math;
Adv=Sum/5;
}
void Output()//成员函数用于输出成员信息
{
cout<<setw(10)<<num
<<setw(10)<<name
<<setw(10)<<sex
<<setw(10)<<age
<<setw(10)<<clas
<<setw(10)<<Chinese
<<setw(10)<<Math
<<setw(10)<<geography
<<setw(10)<<history
<<setw(10)<<English
<<setw(10)<<Sum
<<setw(10)<<Adv
<<endl;
}
};
class College:virtual public Student//对于大学生派生类的定义
{
public:
string speciailty;//公有数据成员用于记录类成员的专业
float English;//公有数据成员用于记录英语成绩
float program;//公有数据成员用于记录程序设计成绩
float Gmath;//公有数据成员用于记录高数成绩
float Sum;//公有数据成员用于记录成绩总分
float Adv;////公有数据成员用于记录成绩平均分
int choice2;// 公有数据成员用于选择成员的性别
public:
College(int n=0,string nm="",string s="男",string cl="",int a=0,string speciailty="",float te=0.0,float p=0.0,float g=0.0,float c=0.0,float d=0.0)
:Student(n,nm,s,cl,a),speciailty(s),English(te),program(p),Gmath(g),Sum(c),Adv(d){};
void Input()//成员函数用于输入成员信息
{
cout<<"请输入学号"<<endl;
cin>>num;
cout<<"请输入姓名"<<endl;
cin>>name;
cout<<"请输入性别";
cout<<"(1.男 2.女)"<<endl;
cout<<"请输入你的选择"<<endl;
cin>>choice2;
switch(choice2)
{
case 1:sex="男";break;
case 2:sex="女";break;
default:cout<<"输入错误。"<<endl;break;
}
cout<<"请输入年龄"<<endl;
cin>>age;
cout<<"请输入班级"<<endl;
cin>>clas;
cout<<"请输入专业"<<endl;
cin>>speciailty;
cout<<"请输入英语成绩"<<endl;
cin>>English;
cout<<"请输入程序设计成绩"<<endl;
cin>>program;
cout<<"请输入高等数学成绩"<<endl;
cin>>Gmath;
Sum=English+program+Gmath;
Adv=Sum/3;
}
void Output()
{
cout<<setw(10)<<num
<<setw(10)<<name
<<setw(10)<<sex
<<setw(10)<<age
<<setw(10)<<clas
<<setw(10)<<speciailty
<<setw(10)<<English
<<setw(10)<<program
<<setw(10)<<Gmath
<<setw(10)<<Sum
<<setw(10)<<Adv
<<endl;
}
};
class Pup_Manage
{
Pupil Mid[TMAX]; //TMAX为常量,为数组中可存储的中学生记录的最大数;
int top; //top表示当前系统中存储的记录个数;
public:
Pup_Manage(){top=0;} //初始时记录的个数为0,所以设置top=0;
void Add(); //实现该类记录的添加;
void Show(); //实现该类所有记录的显示;
void Search(); //实现该类记录的查询;
void Edit(); //实现该类记录的修改;
void Delete(); //实现该类记录的删除;
void Total(); //实现该类记录的统计;
void Save(); //将该类记录保存到文件;
void Read(); //可从文件中将记录读取到该类的数组中;
void Sort(); //将该类记录按要求排序;
};
void Pup_Manage::Add()//函数的实现进行添加功能
{
if(top>=TMAX)
{
cout<<"用户已满"<<endl;
return;
}
Pupil t;
cout<<"输入新添加的学生的信息"<<endl;
t.Input();
for(int i=0;i<top;i++)
if (t.GetNum()==Mid[i].GetNum())
{
cout<<"该编号的学生已存在"<<endl;
return;
}
Mid[top]=t;
top=top+1;
cout<<"添加成功!"<<endl;
}
void Pup_Manage::Show()//显示功能:可显示当前系统中所有记录,每条记录占据一行。
{
if(top==0)
{
cout<<"无数据!"<<endl;
return;
}
cout<<setw(10)<<"编号"
<<setw(10)<<"姓名"
<<setw(10)<<"性别"
<<setw(10)<<"年龄"
<<setw(10)<<"班级"
<<setw(10)<<"语文"
<<setw(10)<<"数学"
<<setw(10)<<"英语"
<<setw(10)<<"总分"
<<setw(10)<<"平均分"
<<endl;
for(int i=0;i<top;i++)
Mid[i].Output();
}
void Pup_Manage::Sort()
{
cout<<"1 按总分排序 2 语文成绩排序 3 数学成绩排序 4 英语成绩排序 "<<endl;
int choice;
cout<<"请输入你的选择"<<endl;
cin>>choice;
switch(choice)
{
case 1:
{
Pupil temp;
int i,j,k;
for(i=0;i<top-1;i++)
{
k=i;
for(j=i+1;j<top;j++)
if(Mid[j].Sum>Mid[k].Sum)
k=j;
if(k!=i)
{
temp=Mid[i];
Mid[i]=Mid[k];
Mid[k]=temp;
}
}
Show(); break;
}
case 2:
{
Pupil temp;
int i,j,k;
for(i=0;i<top-1;i++)
{
k=i;
for(j=i+1;j<top;j++)
if(Mid[j].Chinese>Mid[k].Chinese)
k=j;
if(k!=i)
{
temp=Mid[i];
Mid[i]=Mid[k];
Mid[k]=temp;
}
}
Show(); break;
}
case 3:
{
Pupil temp;
int i,j,k;
for(i
没有合适的资源?快使用搜索试试~ 我知道了~
课程设计-学生成绩管理系统设计(C++)
共1个文件
cpp:1个
需积分: 49 50 下载量 94 浏览量
2019-04-12
21:27:08
上传
评论 17
收藏 5KB RAR 举报
温馨提示
学生成绩管理系统设计” A.问题描述 学生信息包括:学号、姓名、性别、年龄、班级等信息。 小学生除了包括学生所有信息外,还包括英语、数学和语文成绩。 中学生除了包括小学生所有信息外,还包括地理、历史成绩。 大学生除了包括学生所有信息外,还包括专业、英语、程序设计和高等数学等课程。 设计一程序能够对学生成绩进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。 B.功能要求 (1)添加功能:程序能够添加不同学生的记录,提供选择界面供用户选择所要添加的类别,要求学号要唯一,如果添加了重复学号的记录时,则提示数据添加重复并取消添加。 (2)查询功能:可根据学号、姓名等信息对已添加的学生记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。 (3)显示功能:可显示当前系统中所有学生的记录,每条记录占据一行。 (4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。 (5)删除功能:主要实现对已添加的学生记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。 (6)统计功能:能根据多种参数进行统计。能统计学生人数、总分、单科的平均分等。 (7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。 (8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。 (9)排序功能:可按总分和单科成绩排名次。
资源推荐
资源详情
资源评论
收起资源包目录
学生成绩管理系统.rar (1个子文件)
学生成绩管理系统.cpp 33KB
共 1 条
- 1
资源评论
尼古拉斯~刘能
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功