| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 652 人关注过本帖
标题:求助 一个简单的程序运行问题
只看楼主 加入收藏
zuiwutong5
Rank: 2
等 级:新手上路
威 望:4
帖 子:62
专家分:0
注 册:2008-11-17
收藏
 问题点数:0 回复次数:5 
求助 一个简单的程序运行问题
有谁能给我看看这个程序到底哪里出现了问题。不胜感激。

#include <iostream>
using namespace std;
struct stu
{
    char no[20];
    float mark;
    char name[35];
    int class1;
};
 void input(struct stu student)//对于单个学生做操作;
 {
     cout<<"请输入你的学号"<<endl;
     cin>>student.no;
     cout<<"请输入你的姓名"<<endl;
     cin>>student.name;
     cout<<"输入班级(1~4)"<<endl;
     cin>>student.class1;
     cout<<"输入你此门课程的成绩"<<endl;
     cin>>student.mark;
 }
 void output(struct stu student)
 {
     cout<<"你的学号是:"<<student.no<<endl;
     cout<<"你的姓名是;"<< student.name<<endl;
     cout<<"班级是"<<student.class1<<endl;
     cout<<"你的成绩为"<<student.mark<<endl;

 }
void rankanalysis(struct stu student)
 {    float s;
          s=student.mark;
          if(s>=90) cout<<"你的成绩等级为"<<"A"<<endl;
          else if(s>=80)cout<<"你的成绩等级为"<<"B"<<endl;
          else if(s>=70)cout<<"你的成绩等级为"<<"C"<<endl;
          else if(s>=60) cout<<"你的成绩等级为"<<"D"<<endl;
          else cout<<"你的成绩等级为"<<"E"<<endl;
}
//针对所有选课的学生
 void shuru()
{   int n;
    cout<<"请输入所有选课学生的人数(为5),请输入"<<endl;//设输入的学生总数为5
    cin>>n;
    cout<<"所有选课的人数为5,开始成绩分析操作。"<<endl;
}
void analysis2(stu a[5])
{   int i,h;
    int q=0,w=0,e=0,t=0,y=0;
    for ( i=0;i<5;i++)
    {
    cin>>a[i].mark;
    h=(int)a[i].mark/10;}
    switch(h)
    {
        case 10:
        case 9:q++; break;
        case 8:w++;break;
        case 7:e++; break;
        case 6:t++; break;
        default:y++;break;
    }
    {
    cout<<"A等级的人数为"<<q;
    cout<<"B等级的人数为"<<w;
    cout<<"C等级的人数为"<<e;
    cout<<"D等级的人数为"<<t;
    cout<<"E等级的人数为"<<y;
    }
    {
        cout<<"A等级的人数占总人数的百分比为"<<(float) q/5<<endl;
        cout<<"B等级的人数占总人数的百分比为"<<(float)w/5<<endl;
        cout<<"C等级的人数占总人数的百分比为"<<(float) e/5<<endl;
        cout<<"D等级的人数占总人数的百分比为"<<(float) t/5<<endl;
        cout<<"D等级的人数占总人数的百分比为"<<(float) y/5<<endl;
    }
}
void average(stu a[5])  
{
    cout<<"求所有学生的平均分"<<endl;
       int x;
       float average1=0;
       for( x=0;x<5;x++)
       { average1+=a[x].mark;}
       cout<<"学生的平均分为"<<average1/5<<endl;
}
void main()
{   int j;
   stu m[5];//学生的总数为5;
   for(j=0;j<=5;j++);
   {
       input(m[j]);
       output(m[j]);
   }
   shuru();
   analysis2(m);
   average(m);
}
搜索更多相关主题的帖子: 运行 
2008-11-17 13:54
pascale
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2008-9-9
收藏
得分:0 
很乱
lz说清楚这个程序的最终目的吧
2008-11-17 15:50
PcrazyC
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:5652
专家分:0
注 册:2006-10-20
收藏
得分:0 
#include <iostream>
using namespace std;
struct stu
{
    char no[20];
    float mark;
    char name[35];
    int class1;
};
void input(struct stu *student)//对于单个学生做操作;此处应该传地址
{
    cout<<"请输入你的学号"<<endl;
    cin>>student->no;
    cout<<"请输入你的姓名"<<endl;
    cin>>student->name;
    cout<<"输入班级(1~4)"<<endl;
    cin>>student->class1;
    cout<<"输入你此门课程的成绩"<<endl;
    cin>>student->mark;
}
void output(struct stu student)
{
    cout<<"你的学号是:"<<student.no<<endl;
    cout<<"你的姓名是;"<< student.name<<endl;
    cout<<"班级是"<<student.class1<<endl;
    cout<<"你的成绩为"<<student.mark<<endl;
    
}
void rankanalysis(struct stu student)
{   
    float s;
    s=student.mark;
    if(s>=90) cout<<"你的成绩等级为"<<"A"<<endl;
    else if(s>=80)cout<<"你的成绩等级为"<<"B"<<endl;
    else if(s>=70)cout<<"你的成绩等级为"<<"C"<<endl;
    else if(s>=60) cout<<"你的成绩等级为"<<"D"<<endl;
    else cout<<"你的成绩等级为"<<"E"<<endl;
}
//针对所有选课的学生
void shuru()
{   
    int n;
    cout<<"请输入所有选课学生的人数(为5),请输入"<<endl;//设输入的学生总数为5
    cin>>n;
    cout<<"所有选课的人数为5,开始成绩分析操作。"<<endl;
}

void analysis2(stu a[5])
{   
    int i,h;
    int q=0,w=0,e=0,t=0,y=0;
    for ( i=0;i<5;i++)
    {
        cin>>a[i].mark;
        h=(int)a[i].mark/10;}
    switch(h)
    {
    case 10:
    case 9:q++; break;
    case 8:w++;break;
    case 7:e++; break;
    case 6:t++; break;
    default:y++;break;
    }
    {
        cout<<"A等级的人数为"<<q;
        cout<<"B等级的人数为"<<w;
        cout<<"C等级的人数为"<<e;
        cout<<"D等级的人数为"<<t;
        cout<<"E等级的人数为"<<y;
    }
    {
        cout<<"A等级的人数占总人数的百分比为"<<(float) q/5<<endl;
        cout<<"B等级的人数占总人数的百分比为"<<(float)w/5<<endl;
        cout<<"C等级的人数占总人数的百分比为"<<(float) e/5<<endl;
        cout<<"D等级的人数占总人数的百分比为"<<(float) t/5<<endl;
        cout<<"D等级的人数占总人数的百分比为"<<(float) y/5<<endl;
    }
}
void average(stu a[5])  
{
    cout<<"求所有学生的平均分"<<endl;
    int x;
    float average1=0;
    for( x=0;x<5;x++)
    {
        average1+=a[x].mark;}
    cout<<"学生的平均分为"<<average1/5<<endl;
}
void main()
{   int j;
struct stu m[5];//学生的总数为5;
for(j=0;j<5;j++)    //不应该有分号
{
    input(&m[j]);
    output(m[j]);
}
shuru();
analysis2(m);
average(m);
}

雁无留踪之意,水无取影之心
2008-11-18 17:17
goushuangquan
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-11-19
收藏
得分:0 
看不出来,要不你先学点简单的
2008-11-19 17:12
huangxiuqing
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2008-11-19
收藏
得分:0 
你是这个意思吗
你是不是要问在运行时输入学生的学号,姓名,分数,班级之后,输出来的数据是一些代码吗?
  我帮你运行了一下,然后改了一下。
  void input(stu &student)//对于单个学生做操作        
{
     cout<<"请输入你的学号"<<endl;
     cin>>student.no;
     cout<<"请输入你的姓名"<<endl;
     cin>>student.name;
     cout<<"输入班级(1~4)"<<endl;
     cin>>student.class1;
     cout<<"输入你此门课程的成绩"<<endl;
     cin>>student.mark;
}
void output(stu &student)
{
     cout<<"你的学号是:"<<student.no<<endl;
     cout<<"你的姓名是;"<< student.name<<endl;
     //cout<<"班级是"<<student.class1<<endl;
     //cout<<"你的成绩为"<<student.mark<<endl;

} 这上面是我改了以后的
  还有就是,建议你最好是在主函数中来实现输入的信息,因为你的班级,成绩都是传值调用,不会改变实参的结果。
而当你调用outpu()时,他们的值就是0了达不到你的目的。
2008-11-19 19:19
yang133054
Rank: 1
等 级:新手上路
威 望:1
帖 子:57
专家分:0
注 册:2008-11-4
收藏
得分:0 
感觉不出来有什么意图
2008-11-19 19:37
快速回复:求助 一个简单的程序运行问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.018052 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved