主观

阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。

 【说明】

 设计一个日期类Date包括年、月、日等私有数据成员。要求实现日期的基本运算,如某日期加上天数、某日期减去天数、两日期相差的天数等。

 在Date类中设计如下重载运算符函数:

 Date operator + (int days) : 返回某日期加上天数得到的日期。

 Date operator - (int days) : 返回某日期减去天数得到的日期。

 int operator - (Date&b): 返回两日期相差的天数。

 【程序】

 #include<iostream.h>

 int day tab[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},

 {31,29,31,30,31,30,31,31,30,31,30,31}};

 //day_tab二维数组存放各月天数,第一行对应非闰年,第二行对应闰年class Date

 {

 int year, month, day    //年,月,日

 int leap(int);     //判断是否闰年

 int dton(Date&)

 Date ntod(int)

 public:

   Date() { }

   Date (int y, int mint d) I year = y; month = m; day = d;}

   void setday(intd){day = d;}

   void setmonth(int m) {month = m;}

   void setyear(int y) {year =y;}

   int getday() {return day;}

   int getmonth() {return month:}

   int getyear() {return yea;}

   Date operator + (int days)      //+运算符重载函数

   {

     static Date date;

     int number =(1) 

     date = ntod(number)

     return date

   }

   Date operator - (int days)      //-运算符重载函数

   {

     staffs Date date;

     int number=(2); 

     number - = days;

     date = ntod(number)

     return date;

   }

   int operator - (Date &b)       //-运算符重载函数

    {

     int days=(3);

     return days;

   }

   void disp()

   {

     cout<<year<<"."<<month<<". "<<day<<endl;

   }

 };

 int Date: :leap( int year)

   if((4))         //是闰年

     return 1;           //不是闰年

   else

     return0:

 }

 int Date:: dton( Date &d)    //求从公元0年0月0日到d日期的天数

 {

   inty,m,days =0;

   for(y=1;y<=d. year;y++)

   if((5))days+ =366;    //闰年时加366天

   else days + = 365;       //非闰年时加365天

   for(m =0;m<d. month-1;m++)

   if((6))

   days += day_tab[1] [m];

   else

   days +=day_tab[0] [m];

   days + = d. day;

   return days;

 }

 Date Date::ntod(intn)          //将从元0年0月0日的天数转换成日期

 {

   int y=1,m = 1,d,rest = n,lp;

   while(1)

   {  if(leap(y))

      if(rest<= 366) break;

      else rest - = 366;

      else             //非闰年

        if(rest = 365 ) break;

        else rest-=365;

参考答案
您可能感兴趣的试题

阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。

 【说明】

 设计一个日期类Date包括年、月、日等私有数据成员。要求实现日期的基本运算,如某日期加上天数、某日期减去天数、两日期相差的天数等。

 在Date类中设计如下重载运算符函数:

 Date operator + (int days) : 返回某日期加上天数得到的日期。

 Date operator - (int days) : 返回某日期减去天数得到的日期。

 int operator - (Date&b): 返回两日期相差的天数。

 【程序】

 #include<iostream.h>

 int day tab[2][12]={{31,28,31,30,31,30,31,31,30,31,30,31},

 {31,29,31,30,31,30,31,31,30,31,30,31}};

 //day_tab二维数组存放各月天数,第一行对应非闰年,第二行对应闰年class Date

 {

 int year, month, day    //年,月,日

 int leap(int);     //判断是否闰年

 int dton(Date&)

 Date ntod(int)

 public:

   Date() { }

   Date (int y, int mint d) I year = y; month = m; day = d;}

   void setday(intd){day = d;}

   void setmonth(int m) {month = m;}

   void setyear(int y) {year =y;}

   int getday() {return day;}

   int getmonth() {return month:}

   int getyear() {return yea;}

   Date operator + (int days)      //+运算符重载函数

   {

     static Date date;

     int number =(1) 

     date = ntod(number)

     return date

   }

   Date operator - (int days)      //-运算符重载函数

   {

     staffs Date date;

     int number=(2); 

     number - = days;

     date = ntod(number)

     return date;

   }

   int operator - (Date &b)       //-运算符重载函数

    {

     int days=(3);

     return days;

   }

   void disp()

   {

     cout<<year<<"."<<month<<". "<<day<<endl;

   }

 };

 int Date: :leap( int year)

   if((4))         //是闰年

     return 1;           //不是闰年

   else

     return0:

 }

 int Date:: dton( Date &d)    //求从公元0年0月0日到d日期的天数

 {

   inty,m,days =0;

   for(y=1;y<=d. year;y++)

   if((5))days+ =366;    //闰年时加366天

   else days + = 365;       //非闰年时加365天

   for(m =0;m<d. month-1;m++)

   if((6))

   days += day_tab[1] [m];

   else

   days +=day_tab[0] [m];

   days + = d. day;

   return days;

 }

 Date Date::ntod(intn)          //将从元0年0月0日的天数转换成日期

 {

   int y=1,m = 1,d,rest = n,lp;

   while(1)

   {  if(leap(y))

      if(rest<= 366) break;

      else rest - = 366;

      else             //非闰年

        if(rest = 365 ) break;

        else rest-=365;

阅读以下应用说明及Visual Basic程序代码,将应填入(n)处的字句写在对应栏内。

【说明】

 本应用程序的运行窗口如图2所示。

窗口中的3个文本框和两个按钮名称分别为Txt_salary、Txt_base、Txt_tax、Cmd_compute和Cmd_quit。运行时,文本框Txt_base存放的是免税金额基数(应扣除的基本费用co)当用户在文本框Txt_salary中输入月收入(工资或薪金)并单击“计算”按钮Cmd_compute后,Txt_tax框中就显示计算所得的应纳税额。文本框Txt_base和Txt_tax在运行时不接受用户输入,Txt_base的内容以灰色显示。

 个人工资(或薪金)所得税是按照超额累进的税率来征收的,方法是:以每月收入总额减去免税金额基数后的余额作为该月的月应纳税所得额,再将应纳税所得额按相应级数采用相应的税率进行累进计算。目前的免税金额基数为800元,税率如表1所示。

设一个人的月应纳税所得额为K(元),用下面的公式计算其应缴纳的个人所得税额S (元);

 若0<K≤500,则S=K×5%;

 若500<K≤2000,则S=500×5%+(K-500)×10%;

 若2000<K≤5000,则S=500×5%+1500×10%+(K-2000)×15%;

若5000<K≤20000,则S=500×5%+1500×10%+3000×15%+(K-5000)×20%;

 例如,某人某月工资总额为4100元,减去800元后,应纳税所得额为3300元,其应缴纳的个人所得税额为500*5%+1500*10%+1300*15%=370元。

 在开发过程中,需要编写的程序代码如下;

 【程序】

 Option Base 0

 Private Sub Cmd_compute_Click( )

   Dim paylevel,taxPrate

   paylevel = Array(0,500,2000,5000,20000,40000,60000,80000,100000, _1000001)

   taxPrate = Array (5,10,15,20,25,30,35,40,45)

   K=(1) 

   S=0

   If(K>0) Then

     For j = 1 To 9

     If (2) Then

      S = S + (paylevel(j) - paylevel(j -1) ) * taxPrate(j - 1)/100

    Else

      S=S+(3)*taxPrate(j-1)/100

      Exit For

    End If

   Next j

   Ent If

    (4)=Str $(S)

 End Sub

 Private Sub Cmd_quit_Click( )

   End

 End Sub

 Private Sub Form_Load()

   Txt_tax. Text =" "

   Txt_salaw. Text =" "

   Txt_base. Text = 800

   Txt_tax. Locked = True

   Txt_base. Enabled =(5) 

 End Sub

阅读下列说明和C代码,将应填入(n)处的字句写在对应栏内。

 【说明】

 本题给出四个函数,它们的功能分别是:

 1.int push(PNODE*top,int e)是进栈函数,形参top是栈顶指针的指针,形参e是入栈元素。

 2.int pop(PNODE*top,int*e)是出栈函数,形参top是栈顶指针的指针,形参e作为返回出栈元素使用。

 3.int enQueue(PNODE*tail,int e)是入队函数,形参tail是队尾指针的指针,形参e是入队元素。

 4.int deQueue(PNODE*tail,int*e)是出队函数,形参tail是队尾指针的指针,形参e作为返回出队元素使用。

  以上四个函数中,返回值为。表示操作成功,返回值为-1表示操作失败。

 栈是用链表实现的;队是用带有辅助结点(头结点)的单向循环链表实现的。两种链表的结点类型均为:

  typedef struct node {

   int value;

   struct node * next;

 } NODE, * PNODE;

 【函数1】

 int push(PNOOE * top,int e)

 {

   PNODE p = (PNODE) malloc (sizeof (NODE));

   if (! p) return-1;

   p->value=e;

    (1);

   *top=p;

   return 0;

 }

 【函数2】

 int pop (PNODE * top,int * e)

 {

   PNODE p = * top;

   if(p == NULL) return-1;

   * e = p->value;

   (2);

   free(p);

   return 0;

 }

 【函数3】

 int enQueue (PNODE * tail,int e)

 {  PNODE p,t;

    t= *tail;

    p = (PNODE) malloc(sizeof(NODE));

    if(!p) return-1;

    p->value=e;

    p->next=t->next;

    (3);

    * tail = p;

    return 0;

 }

 【函数4】

 int deQueue(PNODE * tail,int * e)

 {  PNODE p,q;

    if(( * tail)->next == * tail) return-1;

    p= (* tail)->next;

    q = p ->next;

  * e =q ->value;

    (4)=q->next;

   if(,tail==q) (5);

   free(q);

   return 0;

 }

¥

订单号:

遇到问题请联系在线客服

订单号:

遇到问题请联系在线客服