求用【C++】编写一个成绩管理系统,题目如下:
- 提问者网友:眉目添风霜
- 2021-11-27 22:09
- 五星知识达人网友:上分大魔王
- 2021-11-27 23:35
#include
#include
#include
#include
#include
class Stu //构建学生类
{
public:
friend void Input(Stu stud[]) ;
friend void Statistic(Stu stud[]);
friend void Lookup(Stu stud[]) ;
friend void Modify(Stu stud[]) ;
friend void Delete(Stu stud[]) ;
friend void Output(Stu stud[]) ;
friend void Sort(Stu stud[]) ;
friend void Insert(Stu stud[]) ;
friend void Write(Stu stud[],int n);
friend int Read(Stu stud[]);
private:
char class_0[20];
int num;
char name[8];
float elec;
float c_program;
float media;
float english;
float math;
float sport;
float polity;
float average;
int order;
}stud[100];
void Write(Stu stud[],int n) //向文件中写入数据
{
fstream myFile;
myFile.open("student.dat",ios::out|ios::binary);
if(!myFile)
{
cout<<"student.dat can't open!"<
}
int count=n;
myFile<
{
myFile<
myFile.close();
}
int Read(Stu stud[]) //从文件中读数据
{
fstream myFile;
myFile.open("student.dat",ios::in|ios::binary);
if(!myFile)
{
cout<<"student.dat can't open!"<
}
int count;
myFile.seekg(0);
myFile>>count;
for(int i=0;i<=count;i++)
{
myFile>>stud[i].class_0>>stud[i].num>>stud[i].name>>stud[i].elec>>stud[i].c_program>>stud[i].media>>stud[i].english>>stud[i].math>>stud[i].sport>>stud[i].polity>>stud[i].average;
}
myFile.close();
return count ;
}
void Input(Stu stud[]) //---------------输入学生成绩
{
system("cls");
int i=0;
int flag;
char sign;
cout<
{
cout<<" 班级:";
cin>>stud[i].class_0;
loop:
cout<<" 学号:";
cin>>stud[i].num;
int c=0;
while(c {
c++;
if(stud[i].num==stud[i-c].num)
{
cout<<" 你输入的学号已经存在!请重新输入。"<
}
}
cout<<" 姓名: ";
cin>>stud[i].name;
do{
flag=0;
cout<<" 模拟电路:";
cin>>stud[i].elec;
if(stud[i].elec>100 ||stud[i].elec<1)
cout<<"对不起,请输入1-100之间的数字!!
";
flag=1;
}while(flag==0);
do{
flag=0;
cout<<" C++程序设计成绩:";
cin>>stud[i].c_program;
if(stud[i].c_program>100 ||stud[i].c_program<1)
cout<<"对不起,请输入1-100之间的数字!!
";
flag=1;
}while(flag==0);
do{
flag=0;
cout<<" 软件工程成绩:";
cin>>stud[i].media;
if(stud[i].media>100 ||stud[i].media<1)
cout<<"对不起,请输入1-100之间的数字!!
";
flag=1;
}while(flag==0);
do{
flag=0;
cout<<" 大学英语成绩:";
cin>>stud[i].english;
if(stud[i].english>100 ||stud[i].english<1)
cout<<"对不起,请输入1-100之间的数字!!
";
flag=1;
}while(flag==0);
do{
flag=0;
cout<<" 大学物理成绩:";
cin>>stud[i].math;
if(stud[i].math>100 ||stud[i].math<1)
cout<<"对不起,请输入1-100之间的数字!!
";
flag=1;
}while(flag==0);
do{
flag=0;
cout<<" 大学体育成绩:";
cin>>stud[i].sport;
if(stud[i].sport>100 ||stud[i].sport<1)
cout<<"对不起,请输入1-100之间的数字!!
";
flag=1;
}while(flag==0);
do{
flag=0;
cout<<" 民族理论:";
cin>>stud[i].polity;
if(stud[i].polity>100 ||stud[i].polity<1)
cout<<"对不起,请输入1-100之间的数字!!
";
flag=1;
}while(flag==0);
stud[i].average=(stud[i].elec+stud[i].c_program+stud[i].media+stud[i].english+stud[i].math+stud[i].sport+stud[i].polity)/7;
cout<<" 平均分为:"<
cin>>sign;
i++;
}
Write(stud,i);
}
void Statistic(Stu stud[]) //---------------统计学生数据
{
system("cls");
int n=Read(stud);
cout<
}
void Lookup(Stu stud[]) //---------------查找学生成绩
{
system("cls");
int n=Read(stud);
int s;
int i=0;
cout<
while((stud[i].num-s)!=0&&i
{
cout<<"=====>提示:对不起,无法找到该学生的信息!"<
else
{
cout<<"---------------------------"<
}
void Modify(Stu stud[]) //---------------修改学生成绩
{
system("cls");
int n=Read(stud);
int s;
int i=0;
cout<
while((stud[i].num-s)!=0&&i
{
cout<<"=====>提示:对不起,无该学生的成绩……"<
else
{
cout<<"----------该学生的信息----------"<
cout<<"班级:"<
cout<<"学号:"<
cout<<"姓名:"<
cout<<"模拟电路成绩:"<
cout<<"C++程序设计成绩:"<
cout<<"软件工程成绩:"<
cout<<"大学英语成绩:"<
cout<<"大学物理成绩:"<
cout<<"大学体育成绩:"<
cout<<"民族理论成绩:"<
stud[i].average=(stud[i].elec+stud[i].c_program+stud[i].media+stud[i].english+stud[i].math+stud[i].sport+stud[i].polity)/7;
cout<<"平均分为:"<
cout<<"是否保存数据?(y/n)"<
if(c!='n'&&c!='N')
Write(stud,n);
}
}
void Delete(Stu stud[]) //---------------按学号查找,删除学生信息
{
system("cls");
int n=Read(stud);
int s;
int i=0,j;
cout<
while((stud[i].num-s)!=0&&i
{
cout<<"====>提示:对不起,无法找到该学生……"<
else
{
for(j=i;j
strcpy(stud[j].class_0,stud[j+1].class_0);
stud[j].num=stud[j+1].num;
strcpy(stud[j].name,stud[j+1].name);
stud[j].elec=stud[j+1].elec;
stud[j].c_program=stud[j+1].c_program;
stud[j].media=stud[j+1].media;
stud[j].english=stud[j+1].english;
stud[j].math=stud[j+1].math;
stud[j].sport=stud[j+1].sport;
stud[j].polity=stud[j+1].polity;
stud[j].average=stud[j+1].average;
}
cout<<"====>提示:已成功删除!"<
Write(stud,n-1);
}
void Insert(Stu stud[]) //---------------增加学生成绩
{
system("cls");
int n=Read(stud);
char s;
cout<
{
cout<<"班级:"<
cout<<"学号:";
cin>>stud[n].num;
cout<<"姓名:";
cin>>stud[n].name;
cout<<"模拟电路成绩:";
cin>>stud[n].elec;
cout<<"C++程序设计成绩:";
cin>>stud[n].c_program;
cout<<"软件工程成绩:";
cin>>stud[n].media;
cout<<"大学英语成绩:";
cin>>stud[n].english;
cout<<"大学物理成绩:";
cin>>stud[n].math;
cout<<"大学体育成绩:";
cin>>stud[n].sport;
cout<<"民族理论成绩:";
cin>>stud[n].polity;
stud[n].average=(stud[n].elec+stud[n].c_program+stud[n].media+stud[n].english+ stud[n].math+stud[n].sport+stud[n].polity)/7;
cout<<"平均分"<
cout<<"=====>提示:插入成功!"<
}
Write(stud,n);
}
void Sort(Stu stud[]) //---------------按平均分对学生成绩记录项进行降序排序
{
system("cls");
int i,j,k;
float s;
char t[20];
cout<
for(i=0;i
strcpy(t,stud[j+1].class_0);
strcpy(stud[j+1].class_0,stud[j].class_0);
strcpy(stud[j].class_0,t);
k=stud[j+1].num;
stud[j+1].num=stud[j].num;
stud[j].num=k;
strcpy(t,stud[j+1].name);
strcpy(stud[j+1].name,stud[j].name);
strcpy(stud[j].name,t);
s=stud[j+1].elec;
stud[j+1].elec=stud[j].elec;
stud[j].elec=s;
s=stud[j+1].c_program;
stud[j+1].c_program=stud[j].c_program;
stud[j].c_program=s;
s=stud[j+1].media;
stud[j+1].media=stud[j].media;
stud[j].media=s;
s=stud[j+1].english;
stud[j+1].english=stud[j].english;
stud[j].english=s;
s=stud[j+1].math;
stud[j+1].math=stud[j].math;
stud[j].math=s;
s=stud[j+1].sport;
stud[j+1].sport=stud[j].sport;
stud[j].sport=s;
s=stud[j+1].polity;
stud[j+1].polity=stud[j].polity;
stud[j].polity=s;
s=stud[j+1].average;
stud[j+1].average=stud[j].average;
stud[j].average=s;
}
cout<<"----------------------------------------------------"<
cout<
Write(stud,n);
}
void Output(Stu stud[]) //---------------显示全部学生成绩
{
system("cls");
int n=Read(stud);
cout<
cout<<"没有记录";
else
{
cout<<"----------------------------------------------------"<
cout<
cout<<"--------------------------------------------------------"<
}
int menu()
{
char c;
do
{
system("cls");
cout<<" -----------------<<欢迎您使用学生成绩管理系统-------------- cout<<" ******************************************* cout<
"<
"<
}
while(c<'0'||c>'8');
return(c-'0');
}
void main()
{
for(;;)
{
switch(menu())
{
case 1:
Input(stud);
break;
case 2:
Statistic(stud);
break;
case 3:
Lookup(stud);
cout<<" ";
system("pause");
break;
case 4:
Modify(stud);
cout<<" ";
system("pause");
break;
case 5:
Delete(stud);
cout<<" ";
system("pause");
break;
case 6:
Insert(stud);
cout<<" ";
system("pause");
break;
case 7:
Sort(stud);
cout<<" ";
system("pause");
break;
case 8:
Output(stud);
cout<<" ";
system("pause");
break;
case 0:
"<
system("pause");
exit(0);
}
}
}
- 1楼网友:人類模型
- 2021-11-28 01:48
- 2楼网友:不甚了了
- 2021-11-28 00:40