C++程序设计上机

实验一、数据类型和表达式 

【实验目的】

1、熟悉并学习使用C++程序编译平台VC6.0; 

2、掌握如何在编译平台下编辑、编译、连接和运行一个简单的C++程序;

3、掌握C++语言基础数据类型,熟悉变量及常量的定义和赋值方法;

4、学会使用C++算术运算符和算术表达式;

5、掌握C++程序的赋值和输入输出语句的使用方法;

6、掌握简单C++程序的编写和调试

【源程序】

1、从键盘上输入两个int型数,比较其大小,并输出显示其中较小的数;

#include<iostream>

usingnamespace std;

intmain()

{

    int a,b;

    cin>>a;

    cin>>b;

    int min(inta,int b);

    cout<<min(a,b)<<endl;

    return 0;

}

intmin(int a,int b)

{

   return(a<b?a:b);

}

2、从键盘上输入一个int型数,一个浮点数,比较其大小,将输出其中较大的数;

#include<iostream>

usingnamespace std;

intmain()

{

    int a;

    float b;

    cin>>a;

    cin>>b;

    floatmin(float (a),float b);  函数声明

    cout<<min(a,b)<<endl;

    return 0;

}

floatmin(float (a),float b)     

{

   return(a<b?a:b);

}

3、输入一摄氏温度,编程输出华氏温度。已知;华氏温度转换为摄氏温度的计算公式如下:

 ,其中, 表示华氏温度, 表示摄氏温度。

#include<iostream>

usingnamespace std;

intmain()

{

   floatC,F;

    cout<<"输入摄氏温度C:";

    cin>>C;

    F=C*9*1.0/5+32;

    cout<<"输出华氏温度F="<< F<<endl;

    return 0;

}

4、编程实现输入千米数,输出显示其英里数。已知:1英里=1.60934千米(用符号常量)

#include<iostream>

usingnamespace std;    

intmain()

{

    float C,F;

    const floats=1.60934;     用到了符号常量

    cout<<"输入千米数C:";

    cin>>C;

    F=s*C;

    cout<<"输出英里数F="<< F<<endl;   

    return 0;

}

5、输入一个int型数,将它的低4位(右四位)都置为1;

#include<iostream>

usingnamespace std;

intmain()

{

    int n,m;  

    cout<<"输入一个整数:";

    cin>>n; 

    m=n/10000*10000+1111;      十进制下

    cout<<m<<endl;

   

   /* m=n|15; 

    printf("%x",m); */        十六进制下用printf

    return 0;

}

【错误及解决办法】

1、本次实验相对较为简单,第四个用到符号常量还不熟悉,主要的问题还是出现在第五个将它的低四位都置位1。把它转化为十进制,理解为最后四位都改为1,后来经过同学老师指点也可以用16进制,更为简便。

【实验总结】

在本次实验中主要让我们重新认识并掌握了C++数据类型和表答式的应用,而且熟练cin和cout的应用,让我们了解了C++的基本用法。cin相当于c语言中的scanf语句,是用来输入使用的。而cout语句相当于c语言中的printf语句,是用来输出时使用的。

2、第四小题如果改为宏定义的话则为 #define r 1.60934;

 

实验二、预处理和语句

【实验目的】

1、熟悉并掌握使用文件包含命令;

2、熟悉并学习使用条件编译命令;

3、掌握选择语句;

4、掌握循环语句;

【实验内容】

1、编写一个程序,输入某雇员的每周工作时间(以小时计)和每小时的工资数,计算并输出他的工资。若雇员周工作小时超过40 小时,则超过部分按原工资的1.5 倍的加班工资来计算。若雇员每周工作小时超过60 小时,则超过60 的部分按原工资的3 倍的加班工资来计算,而40 到50 小时的工资仍按照原工资的1.5 倍的加班工资来计算。

•要求有输入提示和输出提示,如要输入雇员的工作时间和每小时的工资值时,可以提示:“Please input employee’s work time and wage_per_hour:”输出时,提示:

“Theemployee’s wage :”;

【源程序】

#include<iostream>

usingnamespace std;

intmain()

{  

       intt,x;

       doubley=0;

       cout<<"Pleaseinput employee's work time:\n";

       cin>>t;

       cout<<"Pleaseinput employee's wage_per_hour:\n";

       cin>>x;

       if(t<=40)

           y=x*t;         

       else{

             if(t>=60)

             y=40*x+20*1.5*x+(t-60)*3*x;

           else               

             y=40*x+(t-40)*x*1.5;                                       }            

       cout<<"Theemployee's wage :"<<y<<endl;   

    return 0;

}

2、编写一个程序,提示用户输入一个年份及这一年的第一天是星期几,输出每个月的第一天是星期几。例如,如果用户输入2005和6,表示2005年1月1日是星期六,程序应输出如下内容:

January1, 2005 is Saturday

December1, 2005 is Thursday

•用函数 int ComputeDay(int year, int day)计算星期;

•在main函数完成用户输入和输出工作;

【源程序】

#include<iostream>

using namespace std;

int i=0,n;

void ComputeDay(int year, intday)

{

    int monthday[20]={0,31,28,31,30,31,30,31,31,30,31,30,31};

   if(year%4==0&&year%100!=0||year%400==0)    //判断是否闰年

    monthday[2]=29;

    int j,m=0;

    i++;

    for(j=0;j<i;j++)

    {

       m+=monthday[j];

       n=(day+m)%7; //n的值即为星期几

       m=0;   //m重新初始化回去,然后i++,再次进入循环,前面得出的几个月的星期几不变,会覆盖

    }

}

int  main()

{

    Char *monthname[]={"0","January","February","March","April","May","June","July","August","Sepetember","October","November","December"};

    char*week[]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};//能被7整除则余数为0,故Sunday居首

    int year,day,k;

    cout<<"请输入一个年份及这一年的第一天是星期几:";

    cin>>year>>day;

    if (day <8 && day >0)    //星期几只能为1到7的整数

    for(k=0;k<12;k++)

   {

       ComputeDay(year,day);

       cout<<*(monthname+i)<<" ,1, "<<year<<" is"<<*(week+n)<<endl;

    }

    else

       cout<<"输入星期几有误,请重输"<<endl;

    return 0;

}

3、编写贷款分期偿还程序。一笔贷款的月还款包含偿还本金和偿还利息。月利息可以通过月利率乘以余额(剩余本金)来计算,于是月偿还金额就等于月还款额减去月利息。

•要求用户输入贷款额、贷款年限和利率,程序输出分期还款的计划。

•如果输入贷款额度10000美元、期限1年和利率7%,程序应该输出:

LoadAmount:10000

Numberof Years:1

AnnualInterest Rate:7%

MonthlyPayment:865.26

TotalPayment:10381.21

Payment#      Interest     Principal      Balance

1              58.33      806.93       9193.07

2              53.62      811.64       8381.43

11             10.0       855.26       860.27

12             5.01       860.25         0.01

【源程序】

#include<iostream>

#include<stdio.h>

#include<math.h>

usingnamespace std;

intmain()

{

   doublemoney,year,rate;

cout<<"InputLoad Amount ,"<<"Number of Years,"<<"AnnualInterest Rate:"<<"\n";

   cin>>money>>year>>rate;

   cout<<"LoadAmount:"<<money<<"\n";

   cout<<"Numberof Years:"<<year<<"\n";

   cout<<"AnnualInterest Rate:"<<rate<<"\n";

   doubleyue,x,k;

   yue=rate/12;    //每月利率

   x=money*yue*pow(1+yue,12*year)/(pow(1+yue,12*year)-1);//月还款额

    //每月还款金额=〔贷款本金×月利率×(1+月利率)^还款月数〕÷〔(1+月利率)^还款月数-1〕

   k=x*12*year;  //总还款额

   cout<<"MonthlyPayment:"<<x<<"\n";

   cout<<"TotalPayment:"<<k<<"\n";

   cout<<"Payment# "<<"Interest "<<"Principal "<<"Principal "<<"\n";

   for(inti=1;i<=12*year;i++)

   {

      doublem,n,s;

      m=money*yue;//m是月利息

      n=x-m;//n是月偿还金额,月偿还金额=月还款额-月利息。

      s=money-n;//即是下一个月的本金

      money=s;

      printf("%d          %.2f      %.2f     %.2f\n",i,m,n,s);

   }

}

【错误及解决办法 实验总结】

第一题相对简单,条理清晰,主要是编辑方面的输入错误。第二题相对难些,我喜欢将主函数写在前面,就容易犯没有函数声明的错误,即//ComputeDay函数声明。另外数组的定义,特别是二维数组,月份星期还有天数怎样的顺序定义我也思考了很久,比如为了数字对应上月份cout<<*(monthname+i) <<" ,1,"<<year<<" is "<<*(week+n)<<endl;,所以我定义为monthname[][20]={"0","January","February","March",····而星期几不用这样定义。

至于第三题最主要的是数学公式的运用,先前自己的想法编的公式,始终不能得出正确结果,后来同学告诉了公式,程序需要的结果也就出来了,也百度了下公式,确实没接触过。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值