prog22.cpp
来自「C++语言程序设计题典」· C++ 代码 · 共 77 行
CPP
77 行
#include <stdio.h>
#include <string.h>
#define N 10
class student
{
char name[10];
int deg;
public:
void setname(char na[]) { strcpy(name,na); }
char *getname() { return name; }
void setdeg(int d) { deg=d; }
int getdeg() { return deg; }
};
class compute
{
int ns;
student na[N];
public:
void getdata();
void sort();
void disp();
};
void compute::getdata()
{
int i,tdeg;
char tname[10];
printf("输入学生人数:");
scanf("%d",&ns);
printf(" 输入学生姓名和成绩:\n ");
for (i=0;i<ns;i++)
{
scanf("%s%d",tname,&tdeg);
na[i].setname(tname);
na[i].setdeg(tdeg);
}
}
void compute::sort()
{
int i,j,pick;
student temp;
for (i=0;i<ns-1;i++)
{
pick=i;
for (j=i+1;j<ns;j++)
{
if (na[j].getdeg()>na[pick].getdeg())
pick=j;
}
temp=na[i];
na[i]=na[pick];
na[pick]=temp;
}
}
void compute::disp()
{
int cutoff,i;
printf("输出结果\n");
printf(" 姓名 成绩 合格否\n");
printf(" ----- ---- ------\n");
cutoff=ns*7/10-1;
for (i=0;i<ns;i++)
{
printf(" %-6s%3d",na[i].getname(),na[i].getdeg());
if (i<=cutoff)
printf(" PASS\n");
else
printf(" FAIL\n");
}
}
void main()
{
compute obj;
obj.getdata();
obj.sort();
obj.disp();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?