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 + -
显示快捷键?