首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

是否和类的作用域有关,一下程序是一个选课 要求输入课程数目,课程名和日期,可以选择增加或减少课程的人数,求讲解?

2013-04-21 
是不是和类的作用域有关,一下程序是一个选课要求输入课程数目,课程名和日期,可以选择增加或减少课程的人数

是不是和类的作用域有关,一下程序是一个选课 要求输入课程数目,课程名和日期,可以选择增加或减少课程的人数,求讲解???



#include<cstring>
#define MAX 100
#define NUM 100
#include<iostream>
using namespace std;
//int num[MAX]={0};
int i=0;
class Course
{
public:
Course(){for(int j = 0; j < MAX; j++) num[j] = 0;}
Course(Course &C){}
void fuzhi(int d)
{
int j;
for(j=0;j<d;j++)
{
strcpy(time[j],"0000/00/00 00:00~00;00");
}
}
void add(int d)
{
for(;i<d;i++)
{
gets(subject[i]);gets(time[i]);
//num[i]++;//cout<<"Add"<<num[i]+i<<endl;
}
}
void Add(int j)
{
j--;//cout<<j<<endl;
num[j]++;cout<<num[j]<<endl;//这里输出出错,why???
}
void Remove(int n)
{
n--;
if(num[n]>0)
{
num[n]--;//cout<<"remo"<<num[n]<<endl;
}
else
{
cout<<"this subject have no be choosed\n";
}
}
void show(int d)
{
int j;
cout<<"SeqNum   "<<"subject   "<<"number       "<<"time"<<endl;
for(j=0;j<d;j++)
{
cout<<j+1<<"        "<<subject[j]<<" "<<num[j]<<"    "<<time[j]<<endl;
}
}
~Course(){}
private:
char subject[MAX][NUM];
char time[MAX][30];int num[MAX];
//static int i;

};
class CourseSchedule
{
public:
CourseSchedule(Course course):cou(course){}
CourseSchedule(CourseSchedule &CS):cou(CS.cou){}
void ADD(Course xc,int jj)
{
xc.Add(jj);
}
void remove(Course xr,int j)
{
xr.Remove(j);
}
~CourseSchedule(){}
private:
Course cou;
};
int main()
{
Course mycou;
CourseSchedule mycous1(mycou);
CourseSchedule mycous2(mycous1);
int j,sum;
char c,a;
cout<<"please input your course's amount "<<endl;
cin>>sum;getchar();//必需要用getchar()
cout<<"please input your course"<<endl;
mycou.fuzhi(sum);
mycou.add(sum);
cout<<"\t\t********CourseSchedule*********"<<endl;
mycou.show(sum);
cout<<"want to choose course ? Y or N"<<endl;
cin>>c;
if(c=='y'||c=='Y')
{
cin>>j;
mycous1.ADD(mycou,j);
cout<<"\t\t********CourseSchedule*********"<<endl;
mycou.show(sum);
}
else
{
cout<<" choose course are fail"<<endl;
}
cout<<"do you want to remove your course ? Y or N"<<endl;
cin>>a;
if(a=='y'||a=='Y')
{
cin>>j;
mycous1.remove(mycou,j);
cout<<"\t\t********CourseSchedule*********"<<endl;
mycou.show(sum);
}
else
{
cout<<" remove course are fail"<<endl;
}
return 0;
} 类 c++
[解决办法]

引用:

引用:num[j]++;cout<<num[j]<<endl;//这里输出出错,why???
你看不到這句
引用:程序哪里出错了吗?
编译错误还是运行错误.先说一下
但是如果要问作业怎么做的话还是去问编译器的好。
编译错误吗?还是数值不对,
你num[j]++的意思是想要num[j]里的数字+……

他(或她)說"这里输出出错"
我的理解是num[j]的值不對
[解决办法]
ADD這函數試下改傳Course指針或引用類型做參數

热点排行