C++:输入10个学生的姓名、学号和成绩,将其中不及格者的姓名、学号和成绩输出。

写出源程序关键执行语句需要给出注释,并给出程序的运行结果。... 写出源程序关键执行语句需要给出注释,并给出程序的运行结果。 展开
 我来答
czy7812
2017-07-03 · TA获得超过2670个赞
知道小有建树答主
回答量:518
采纳率:88%
帮助的人:189万
展开全部
【解题思路】
本题用类数组很好解决。可以先声明一个具有姓名、学号、成绩3个数据成员的类,然后输出、输入可以写成类里的成员函数。完成了类声明之后,用这个类定义一个含有10个元素的数组,这样就可以很方便的实现输入学生信息、存储学生信息,再根据需要输出学生信息的功能。而且这样程序看起来也会相当简洁。具体代码如下:
 
【程序代码】
#include <iostream>            //控制台操作头文件
#include <string.h>            //字符串操作头文件
 
class Stu                      //定义学生类
{private:                      //私有成员关键字
  char Name[32];               //姓名
  int  ID;                     //学号
  int  Score;                  //成绩
 public:                       //外部成员关键字
  Stu(){strcpy(Name,"无");     //无参构造函数
        ID=0;Score=0;}
  int Inp()                    //从键盘输入学生信息函数
     {printf("请输入姓名:");
      scanf("%s",Name);
      printf("请输入学号:");
      scanf("%d",&ID);
      printf("请输入成绩:");
      scanf("%d",&Score);}
  int Put()                    //学生信息输出函数
     {printf("姓名:%s,学号:%d,成绩:%d\n",Name,ID,Score);}
  int Get(){return Score;}     //获取学生成绩的成员函数
};                             //类定义结束
 
int main()                     //主函数
{Stu S[10];                    //学生信息数组
 int i;                        /循环变量
 for(i=0;i<10;i++)             //用一个循环输入10个学生信息
   {printf("请输入第%d个学生信息\n",i+1);
    S[i].Inp();                //调用成员函数输入学生信息
    printf("\n");}             //换行
 printf("\n不及格的学生有:\n");
 for(i=0;i<10;i++)             //用循环检测每个学生是否及格
    if(S[i].Get()<60) S[i].Put();//输出不及格学生信息
 printf("\n");                 //换行
 system("PAUSE");              //屏幕暂停,以便看到显示结果
 return 0;}                    //结束程序
 
【运行结果】
以上程序在DEV  C++中运行通过,运行结果截图如下:

匿名用户
2013-06-06
展开全部
#include<iostream>
using namespace std;
struct student //定义结构体,储存学生全部信息
{
char name[20];
int number;
int grade;
}stu[10]; //声明10个学生结构
int main()
{
int i,j=0,a[10]; //数组a[10]用来记录不及格学生在结构数组中的位置
for(i=0;i<10;i++)
{
a[i]=11; //将a[10]全部赋值11,以便后面进行比较
cout<<"输入第"<<i+1<<"个学生的姓名,学号和成绩:";
cin>>stu[i].name>>stu[i].number>>stu[i].grade;
if(stu[i].grade<60)
{
a[j++]=i; //将不及格学生在数组中的位置记录到a[10]中
}
}
if(a[0]==11) //进行不及格判定
{
cout<<"没学生不及格";
}
else
{
cout<<"不及格学生信息:"<<endl;
for(i=0;a[i]!=11;i++)
{
student temp=stu[a[i]];
cout<<temp.name<<" "<<temp.number<<" "<<temp.grade<<endl;
}
}
}
程序运行示例:
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-06
展开全部
#include<stdio.h>typedef struct Stu
{
char name[40];
int stu_number;
int grate;
}Stu;int main()
{
int i;
Stu student[10]={0};
for( i = 0; i < 10; i ++ )
{
scanf("%s %d %d",student[i].name,&student[i].stu_number,&student[i].grate);
}
for(i=0;i<10;i++)
{
if(student[i].grate<60)
{
printf("name=%s,stu_number=%d,grete=%d\n",student[i].name,student[i].stu_number,student[i].grate);
}
}
return 0;
}测试通过
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-06-06
展开全部
#include<iostream>
using namespace std;struct Stu
{
string name;
int stu_number;
int grate;
}student[100];
int main()
{
int i = 0;
for( i = 0; i < 10; i ++ )
cin >> student[i].name >> student[i].stu_number >> student[i].grate;
for( i = 0; i < 10; i ++ )
if(student[i].grate < 60)
cout << student[i].name << " "
<< student[i].stu_number << " "
<< student[i].grate << endl;
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式