请求编写一个简单C++程序

设计一个学生类,该类中包括如下成员:数据成员:学号、姓名、学生5门课的成绩成员函数:构造函数、输入函数、对5门课按由高到低排序的函数、输出函数。再编写一个主函数,要求执行... 设计一个学生类,该类中包括如下成员:
数据成员:学号、姓名、学生5门课的成绩
成员函数:构造函数、输入函数、对5门课按由高到低排序的 函数、输出函数。
再编写一个主函数,要求执行如下步骤:
1、定义一个学生类对象
2、用构造函数实现数据成员的初始化,调用排序函数,并输出排序后该学生的信息。
3、定义一个指向对象的指针,该对象指针要动态向系统申请内存。
4、对该对象指针调用输入函数获得数据成员的值,调用排序函数,并输出排序后该学生的信息。
展开
 我来答
免费共享文档之神秘村长
2007-04-12 · TA获得超过325个赞
知道答主
回答量:309
采纳率:0%
帮助的人:65.1万
展开全部
正好,我老师要做了一道题和你的要求差不多。
我做了一个。花了2个小时,给你看看好了。
不要累死喽
#include <stdio.h>
#include <stdlib.h>
#define N 50
struct student
{
int num;
char name[20];
float score[3];
float avange;
}stu[N];

void paixun(struct student a[N],int n);
void shuchu(struct student a[N],int n);
int charu(struct student a[N],int n);
int shanchu(struct student a[N],int n);

void main()
{
char ans;
int count = 0; //当前学员总数
int sel;
do
{
printf("\t0:退出\t1:插入新学员\t2:删除学员\n");
printf("请输入你的选项:");
scanf("%d",&sel);
switch(sel)
{
case 0:
void exit(0);
break;
case 1:
count = charu(stu,count);
break;
case 2:
count = shanchu(stu,count);
break;
}
shuchu(stu,count);
printf("是否继续?(y/n)");
fflush(stdin);
scanf("%c",&ans);

}while(ans=='y' || ans == 'Y');
}
int charu(struct student a[N],int count)
{
int i,j;
int n;
int totalnum;
printf("请输入学员的个数:");
scanf("%d",&n);
totalnum = count + n;
for(i=count;i<totalnum;i++)
{
printf("学号:");
scanf("%d",&a[i].num);
printf("\n");
printf("姓名:");
fflush(stdin);
gets(a[i].name);
printf("三门成绩:\n");
for(j=0;j<n;j++)
{
printf("\n成绩%d为:",j+1);
scanf("%f",&a[i].score[j]);
a[i].avange += a[i].score[j];
}
a[i].avange = a[i].avange/3;
}
return totalnum;

}
void paixu(struct student a[N],int n)
{
int i,j;
struct student temp;

for(i=0;i<n-1;i++)
{
for(j=n-1;j>i;j--)
{
if(a[j].avange < a[j-1].avange)
{
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
}
}
}
}

int shanchu(struct student a[N],int n)
{
int i,j;
int shu;
int b = 0;
if(n<=0)
{
printf("结构里没有学员信息,请先输入学员信息!\n");
return 0;
}
printf("请输入要删除学员的学号:");
scanf("%d",&shu);
for(i=0;i<n;i++)
{
if(a[i].num == shu)
{
b = 1;
break;
}
}
if(b)
{
for(j=i;j<n;j++)
{
a[j] = a[j+1];

}
return n-1;
}
else
{
printf("没有找到要删除的学员\n");
return n;
}

}

void shuchu(struct student a[N],int n)
{
int i;
paixu(a,n);
for(i=n-1;i>=0;i--)
{
printf("排序后为");
printf("学号:%d ",a[i].num);
printf("姓名:%s ",a[i].name);
printf("成绩1为:%.2f ",a[i].score[0]);
printf("成绩2为:%.2f ",a[i].score[1]);
printf("成绩3为:%.2f ",a[i].score[2]);
printf("\n");
}
printf("\n");
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式