请教c++程序编写

王朝知道·作者佚名  2010-04-23
窄屏简体版  字體: |||超大  
 
分類: 電腦/網絡 >> 程序設計 >> 其他編程語言
 
問題描述:

11.编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求只输出成绩在80~89分的学生数据。

解:

设计一个学生类Stud,包括no(学号)、name(姓名)和deg(成绩)数据成员,另有两个普通成员函数setdata()和disp(),前者用于设置对象数据,后者用于只输出成绩在80~89分数段的学生数据。在main()函数中定义了一个对象数组,用于存储输入的学生数据。

本程序执行结果如下:

输入学号 姓名 成绩: 1 stud1 78

输入学号 姓名 成绩: 2 stud2 85

输入学号 姓名 成绩: 3 stud3 89

输出数据

学号 姓名 成绩

2 stud2 85

3 stud3 89

參考答案:

//其它代码修改而来

//void show();相当于disp()

//void getinfo();类似于setdata();请自己修改

//有问题加C++群***********

#include<iostream>

#include<cstring>

using namespace std;

class student

{

static int n;//学生人数

static float sum;//总成绩

static int jige;//及格人数

static int bujige;//不及格人数

char name[32];

char num[32];

int score;

public:

student(){};

~student();

void getinfo();

void show();

int getscore(){return score;}

static void show_info();

};

int student::n = 0;

float student::sum = 0;

int student::jige = 0;

int student::bujige = 0;

student::~student()

{

n--;

sum-=score;

if (score<60)

bujige--;

else

jige--;

}

void student::getinfo()

{

cout<<"请输入姓名:";

cin>>name;

cout<<"请输入学号:";

cin>>num;

cout<<"请输入成绩:";

cin>>score;

sum+=score;

n++;

if (score<60)

bujige++;

else

jige++;

}

void student::show()

{

cout<<"姓名:\t"<<name<<"\t学号:\t"<<num<<"\t成绩:\t"<<score<<endl;

}

void student::show_info()

{

cout<<"共有学生"<<n<<"人"<<endl;

cout<<"及格人数"<<jige<<"个"<<endl;

cout<<"不及格人数"<<bujige<<"个"<<endl;

if (n!=0)

cout<<"平均成绩是"<<sum/n<<endl;

}

void main()

{

student* obj;

int n;

cout<<"请输入学生总数:";

cin>>n;

if (n<=0)

{

cout<<"错误的学生人数"<<endl;

return;

}

obj = new student[n];

for (int i=0;i<n;i++)

{

cout<<"请输入第"<<i+1<<"个学生的信息"<<endl;

obj[i].getinfo();

}

for (i=0;i<n;i++)

if(obj[i].getscore()>=80)

obj[i].show();

student::show_info();

delete[] obj;

}

小贴士:① 若网友所发内容与教科书相悖,请以教科书为准;② 若网友所发内容与科学常识、官方权威机构相悖,请以后者为准;③ 若网友所发内容不正确或者违背公序良俗,右下举报/纠错。
 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航