读书人

到底错在哪里?解决方案

发布时间: 2012-02-08 19:52:21 作者: rapoo

到底错在哪里?
/*我的思路:
首先,定义一个employee的结构,里面的成员分别是雇员号码和报酬,身份,入职日期。
第二,定义一个date的变量,成员是年月日。
第三,定义一个enum类型,里面是雇员类别。
第四,组织程序运行的结果,就是初始化雇员的信息。
第五,实现用户选择雇员的界面,输出雇员的四项信息。
*/


#include <iostream>
using namespace std;

///////////////////////////////////
struct date
{
int year;
int month;
int day;
};
///////////////////////////////////
struct employee
{
int Number;
int Sarary;
date Date;
enum Type;
};
///////////////////////////////////

enum Type {manager, laborer, executive, secretary, researcher, accountant};

void main()
{
Type t1 = manager, t2 = laborer, t3 = executive;
employee Em1 = { 123, 3000, {2009, 12, 2}, t1},
Em2 = { 124, 4000, {2001, 2, 3}, t2},
Em3 = { 134, 2000, {2004, 3, 5}, t3};

cout<<"\nEmployee 1 : "<<Em1.Number<<" "<<Em1.Sarary<<" "<<Em1.Date.year<<"\"<<Em1.Date.month<<"\"<<Em1.Date.day<<endl;
cout<<"\nEmployee 2 : "<<Em2.Number<<" "<<Em2.Sarary<<" "<<Em2.Date.year<<"\"<<Em2.Date.month<<"\"<<Em2.Date.day<<endl;
cout<<"\nEmployee 3 : "<<Em3.Number<<" "<<Em3.Sarary<<" "<<Em3.Date.year<<"\"<<Em3.Date.month<<"\"<<Em3.Date.day<<endl;
}


难道不是这样初始化Em1它们的吗?到底错在哪里啊?

[解决办法]

C/C++ code
#include <iostream>using namespace std;///////////////////////////////////struct date  {    int year;    int month;    int day;};///////////////////////////////////struct employee{    int Number;    int Sarary;    date Date;    enum Type;};///////////////////////////////////enum Type {manager, laborer, executive, secretary, researcher, accountant};void main(){    Type t1 = manager, t2 = laborer, t3 = executive;    struct employee Em1 = { 123, 3000, (2009, 12, 2), t1},          Em2 = { 124, 4000, (2001, 2, 3), t2},        Em3 = { 134, 2000, (2004, 3, 5), t3};        cout<<"\nEmployee 1 : "<<Em1.Number<<" "<<Em1.Sarary<<" "<<Em1.Date.year<<"\\"<<Em1.Date.month<<"\\"<<Em1.Date.day<<endl;        cout<<"\nEmployee 2 : "<<Em2.Number<<" "<<Em2.Sarary<<" "<<Em2.Date.year<<"\\"<<Em2.Date.month<<"\\"<<Em2.Date.day<<endl;        cout<<"\nEmployee 3 : "<<Em3.Number<<" "<<Em3.Sarary<<" "<<Em3.Date.year<<"\\"<<Em3.Date.month<<"\\"<<Em3.Date.day<<endl;
[解决办法]
C/C++ code
///////////////////////////////////struct date  {int year;int month;int day;};///////////////////////////////////enum Type {manager, laborer, executive, secretary, researcher, accountant};///////////////////////////////////struct employee{int Number;int Sarary;date Date;Type tp;//用"enum Type ;"的话,就是定义了一个名字叫Type的类型,而不是变量};/////////////////////////////////// void main(){employee Em1 = { 123, 3000, {2009, 12, 2}, manager},  Em2 = { 124, 4000, {2001, 2, 3},laborer},Em3 = { 134, 2000, {2004, 3, 5}, executive};    cout<<"\nEmployee 1 : "<<Em1.Number<<" "<<Em1.Sarary<<" "<<Em1.Date.year<<"\\"<<Em1.Date.month<<"\\"<<Em1.Date.day<<endl;  //要想输出'\',必须写成'\\',因为'\'是转义字符,这样一来“\"”就相当于输出字符“ "  ”  cout<<"\nEmployee 2 : "<<Em2.Number<<" "<<Em2.Sarary<<" "<<Em2.Date.year<<"\\"<<Em2.Date.month<<"\\"<<Em2.Date.day<<endl;  cout<<"\nEmployee 3 : "<<Em3.Number<<" "<<Em3.Sarary<<" "<<Em3.Date.year<<"\\"<<Em3.Date.month<<"\\"<<Em3.Date.day<<endl;} 

读书人网 >C++

热点推荐