| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 662 人关注过本帖
标题:一道C++练习题,大家帮忙看看。
只看楼主 加入收藏
jessychen
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-17
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
一道C++练习题,大家帮忙看看。
程序a22功能是实现电视机管理,为此专门定义了电视机类。请仔细阅读程序,修正其中的错误,并把程序中的空白补充完整,最后把程序的输出结果贴图到ans.doc中。
//电视类的应用实例
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

class TV {
protected:
    int num;
    char name[10];
    int grade;
    int score;
    int no;
public:
    void TV();
    int TV(char name1[],int num1,int grade1,int score1,int no1);
    ~TV();
    void scan();
    int setName(char&);
    int setNum(char&);
    int setGrade(char&);
    int getScore();
    char * getName();
    char getNum();
    int  getGrade();
    int getNo();
}


int sort_line(TV aa[]);
int getMax(TV aa[]);
int getMin(TV aa[]);
float getAdv(TV aa[]);
void display(TV aa[]);
TV scan(int n);
int n=0;


void TV() {
    num=0;
    strcpy(name,"A");
    grade=0;
    score=0;
    no=0;
}

void TV(char name1[],int num1,int grade1,int score1,int no1) {
    num=num1;
    strcpy(name,name1);
    grade=grade1;
    score=score1;
    no=no1;
}

~TV() {
}

int getScore() {
    return score;
}

char getName() {
    return name;
}
char getNum(){
    return num;
}

int getGrade(){
    return grade;
}
int getNo(){
     return no;
}

TV scan(int n) {          //数据输入过程
    char name[20];
    int num,score,grade;
    n++; printf("请输入第%d台电视机 厂商,编号,等级,价格:\n",n);
    scanf("%s",name);
    scanf("%d%d%d",&num,&grade,&score);
    TV tv(name,num,grade,score,n);
    return tv;
}

int sort_line(TV aa[]) {   //对数据进行冒泡排序
  TV tv();
  for (int i=9;i>0;i--)
  for (int j=0;j<i;j++)
      if(aa[j].getScore()>aa[j+1].getScore())
      {
//请考生补充三个语句





      }
  return 0;
}

int getMax(TV aa[])
{ int i,maxx=0;
  for(i=0;i<10;i++)
      if(aa[i].getGrade() > maxx) maxx=aa[i].getGrade();
  return maxx;
}

int getMin(TV aa[])
{ int i,minx=100;
  for(i=0;i<10;i++)
      if(aa[i].getGrade() < minx) minx=aa[i].getGrade();
  return minx;
}

float getAdv(TV aa[])
{ int i;
  float adv=0;
  for(i=0;i<10;i++)
     adv=adv+aa[i].getScore();
  return adv/10;
}

void display(TV aa[])  //输出数据
{ int i;
  printf("  序号    编号       厂商       等级      价格\n");
  for(i=0;i<10;i++)
      printf("%5d  %5d  %16s   %5d  %5d\n",aa[i].getNo(),aa[i].getNum(),aa[i].getName(),aa[i].getGrade(),aa[i].getScore());
}  


int main()
{   
   int i;
   TV aa[10];
   for(i=0;i<10;i++) aa[i]=scan(i);
   printf("现在输出电视机的基本情况:\n");
   display(aa);
   printf("最高等级: %5d,  ",getMax(aa));
   printf("最低等级: %5d,  ",getMin(aa));
   printf("平均价格   %6.1f\n",getAdv(aa));
   printf("\n排序后再次输出电视机基本情况:\n");
   sort_line(aa);       //对数据进行排序
   display(aa);
   return 0;
}
搜索更多相关主题的帖子: include 练习题 public 
2013-04-17 20:59
zhuxiaoneng
Rank: 4
等 级:业余侠客
威 望:2
帖 子:51
专家分:215
注 册:2013-4-10
收藏
得分:20 
程序可以说是一塌糊涂,建议不要一下写那么长的程序
可以对照一个C++的基本书籍,看看如何声明一个构造函数,如何定义一个构造函数
等会声明以及定义一个构造函数后,在试着写一个空函数, 类似与void show() 之类的,cout一些信心,然后构造一个对象,调用show函数
接着再声明一个数据成员,对它赋值,然后把这个数据成员show出来。
要循序渐进
2013-04-18 09:42
jessychen
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-17
收藏
得分:0 
把其中的错误也找到了,补充的语句也加上了,大家再给看看。
//电视类的应用实例
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

class TV {
protected:
    int num;
    char name[10];
    int grade;
    int score;
    int no;
public:
    TV();
    TV(char name1[],int num1,int grade1,int score1,int no1);
    ~TV();
    void scan();
    int setName(char&);
    int setNum(char&);
    int setGrade(char&);
    int getScore();
    char  getName();
    int getNum();
    int  getGrade();
    int getNo();
};


int sort_line(TV aa[]);
int getMax(TV aa[]);
int getMin(TV aa[]);
float getAdv(TV aa[]);
void display(TV aa[]);
TV scan(int n);
int n=0;


TV::TV() {
    num=0;
    strcpy(name,"A");
    grade=0;
    score=0;
    no=0;
}

TV::TV(char name1[],int num1,int grade1,int score1,int no1) {
    num=num1;
    strcpy(name,name1);
    grade=grade1;
    score=score1;
    no=no1;
}

TV::~TV() {
}

int TV:: getScore() {
    return score;
}

char TV::getName() {
    return *name;
}
int TV:: getNum(){
    return num;
}

int TV::getGrade(){
    return grade;
}
int TV ::getNo(){
     return no;
}

TV scan(int n) {          //数据输入过程
    char name[20];
    int num,score,grade;
    n++; printf("请输入第%d台电视机 厂商,编号,等级,价格:n",n);
    scanf("%s",name);
    scanf("%d%d%d",&num,&grade,&score);
    TV tv(name,num,grade,score,n);
    return tv;
}

int sort_line(TV aa[]) {   //对数据进行冒泡排序
  TV tv();
  for (int i=9;i>0;i--)
  for (int j=0;j<i-1;j++)
      if(aa[j].getScore()>aa[j+1].getScore())
      { TV tv(aa[j+1]);
         aa[j+1]=aa[j];
         aa[j]=tv;
        
//请考生补充三个语句
      }
  return 0;
}

int getMax(TV aa[])
{ int i,maxx=0;
  for(i=0;i<10;i++)
      if(aa[i].getGrade() > maxx) maxx=aa[i].getGrade();
  return maxx;
}

int getMin(TV aa[])
{ int i,minx=100;
  for(i=0;i<10;i++)
      if(aa[i].getGrade() < minx) minx=aa[i].getGrade();
  return minx;
}

float getAdv(TV aa[])
{ int i;
  float adv=0;
  for(i=0;i<10;i++)
     adv=adv+aa[i].getScore();
  return adv/10;
}

void display(TV aa[])  //输出数据
{ int i;
  printf("  序号    编号       厂商       等级      价格n");
  for(i=0;i<10;i++)
      printf("%5d  %5d  %16s   %5d  %5dn",aa[i].getNo(),aa[i].getNum(),aa[i].getName(),aa[i].getGrade(),aa[i].getScore());
}  


int main()
{   
   int i;
   TV aa[10];
   for(i=0;i<10;i++) aa[i]=scan(i);
   printf("现在输出电视机的基本情况:n");
   display(aa);
   printf("最高等级: %5d,  ",getMax(aa));
   printf("最低等级: %5d,  ",getMin(aa));
   printf("平均价格   %6.1fn",getAdv(aa));
   printf("n排序后再次输出电视机基本情况:n");
   sort_line(aa);       //对数据进行排序
   display(aa);
   return 0;
}
2013-04-18 20:04
jessychen
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-17
收藏
得分:0 
谢谢zhuxiaoneng的意见,用心学习。
2013-04-18 20:06
jessychen
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2013-4-17
收藏
得分:0 
调试过了,答案如下:
//电视类的应用实例
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <iostream>
using namespace std;


class TV {
protected:
   
    char name[10];
    int num;
    int grade;
    int score;
    int no;
public:
    TV();
    TV(char name1[],int num1,int grade1,int score1,int no1);
    ~TV();
    void scan();
    int getScore();
    char getName();
    int getNum();
    int  getGrade();
    int getNo();
};



TV::TV() {
    num=0;
    strcpy(name,"A");
    grade=0;
    score=0;
    no=0;
}

TV::TV(char name1[],int num1,int grade1,int score1,int no1) {
    num=num1;
    strcpy(name,name1);
    grade=grade1;
    score=score1;
    no=no1;
}

TV::~TV() {
}

int TV::getScore() {
    return score;
}

char TV::getName() {
    return *name;
}
int TV::getNum(){
    return num;
}

int TV::getGrade(){
    return grade;
}
int TV::getNo(){
     return no;
}

TV scan(int n) {          //数据输入过程
    char name[20];
    int num,score,grade;
    n++;
    printf("请输入第%d台电视机 厂商,编号,等级,价格:\n",n);
    scanf("%s",name);
    scanf("%d%d%d",&num,&grade,&score);
    TV tv(name,num,grade,score,n);
    return tv;
}

int sort_line(TV aa[]) {   //对数据进行冒泡排序
 
  for (int i=9;i>0;i--)
  for (int j=0;j<i;j++)
      if(aa[j].getScore()>aa[j+1].getScore())
      { TV xx=aa[j];
      aa[j]=aa[j+1];
      aa[j+1]=xx;
   

//请考生补充三个语句

      }
  return 0;
}

int getMax(TV aa[])
{ int i,maxx=0;
  for(i=0;i<10;i++)
      if(aa[i].getGrade() > maxx) maxx=aa[i].getGrade();
  return maxx;
}

int getMin(TV aa[])
{ int i,minx=100;
  for(i=0;i<10;i++)
      if(aa[i].getGrade() < minx) minx=aa[i].getGrade();
  return minx;
}

float getAdv(TV aa[])
{ int i;
  float adv=0;
  for(i=0;i<10;i++)
     adv=adv+aa[i].getScore();
  return adv/10;
}

void display(TV aa[])  //输出数据
{ int i;
  printf("序号     编号       厂商       等级      价格\n");
  for(i=0;i<10;i++)
      cout<<aa[i].getNo()<<"          "<<aa[i].getNum()<<"          "<<aa[i].getName()<<"           "<<aa[i].getGrade()<<"           "<<aa[i].getScore()<<endl;
}  


int main()
{   
   int i;
   TV aa[10];
   for(i=0;i<10;i++) aa[i]=scan(i);
   printf("现在输出电视机的基本情况:\n");
   display(aa);
   printf("最高等级: %5d,  ",getMax(aa));
   printf("最低等级: %5d,  ",getMin(aa));
   printf("平均价格   %6.1f\n",getAdv(aa));
   printf("\n排序后再次输出电视机基本情况:\n");
   sort_line(aa);       //对数据进行排序
   display(aa);
   return 0;
}
2013-04-26 20:15
快速回复:一道C++练习题,大家帮忙看看。
数据加载中...
 
   



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

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