zoukankan      html  css  js  c++  java
  • C++第10周项目3扩展参考——英尺到米的转换表

    课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565


    【项目3扩展(选做)】编程序生成一张从英尺到米的转换表(1米大约等于3.28英尺),以方便工厂里工人师傅使用。输出形式如下图所示,罗列了从0英尺到99英尺对应的米数,即第i行第j列的值vij代表i*10+j英尺对应的米数。例如,通过下图所示,我们可以方便地查到17英尺相当于5.18米。只输出内容即可,不用考虑表格线。

    提示:每输出10英尺的转换表后,另起一行输出。为使输出美观,可以在各项中间用’\t’分隔,或者用课本p53讲的输入输出控制流。再扩展,你还可以输出真正的表格。


    本题给出一个较完整的设计过程。

    观察一共要输出11行,第一行特殊,是“表头”,需特殊处理,其他行需要计算。
    采用“自顶向下、逐步求精”的思路,程序分为两个部分:

    (1)输出第一行;  
    (2)输出后面的10行;  

    可是有人就要将第一行与后10行搅在一起做,中间还加了if等判断;后来,行号i与计算中需要用到的运算量不对应了,产生了更复杂的计算,自找苦吃。
    多想想自顶向下,要先有宏观的框架。

    下面解决“(1)输出第一行”的问题
    可以一个cout解决。简单,不漂亮,好象没有学过循环的样子。
    写作下面的样子,不难。
    cout<<"I2M\t";  //Inch2Meter的缩写,米到英尺,2念作to
    for(i=0;i<=9;i++)  
       cout<<i<<"\t";  
    cout<<endl; //为下面的工作先做点贡献,保证以后的输出从新的一行开始  
    

    再解决“(2)输出后面的10行”的问题
    一共输出10行嘛,行号定为从0到9,又是一个典型的“计数型”,就用0到9,有
    for(i=0;i<=9;i++)  
    {  
      (2.1)输出第i行;  
      换行; //cout<<endl;就可以了  
    }  

     对于“(2.1)输出第i行;”,每行先输出行号,再接着10个计算得到的数值,又是计数型的循环
    cout<<i<<"/t";   //输出行号  
    for(j=0;j<=9;j++)  
    {  
      vij=(i*10+j)/3.28;  
      cout<<vij<<"/t";   //可以不用vij变量,而是直接在cout中写表达式(i*10+j)/3.28,但用vij更漂亮  
    }  

    就这样了,问题就这样解决了。具体写程序时,考虑到输出需要对齐,

    完整的参考代码如下:

    #include<iostream>
    #include<iomanip>   //用于支持格式控制
    using namespace std;
    int main()
    {
    	int i,j; //i,j用作计数,整型最好
    	double vij; //vij用小数,用成int自找苦吃
    	
    	// (1)输出第一行;
    	cout<<"I2M\t";
    	for(i=0;i<=9;i++)
    		cout<<i<<"\t";
    	cout<<endl; //为下面的工作先做点贡献,保证以后的输出从新的一行开始
    	
    	//(2)输出后面的10行;
    	for(i=0;i<=9;i++) //前面的i的使命已经完成,在此可以挪作他用,但必须赋好初值
    	{ 
    		cout<<i<<"\t";   //输出行号
    		cout<<setprecision(4);  //设置输出精度为4
    		for(j=0;j<=9;j++)
    		{
    			vij=(i*10+j)/3.28;
    			cout<<vij<<"\t";  
    		}
    		cout<<endl;
    	}
    	cout<<"不容易吗? 要头脑清楚地做,别碰运气。"<<endl;
    }
    

    程序输出为:






  • 相关阅读:
    super返回不过来
    对象与内存控制
    java数组学习
    careercup-递归和动态规划 9.8
    careercup-递归和动态规划 9.7
    careercup-递归和动态规划 9.6
    careercup-递归和动态规划 9.5
    careercup-递归和动态规划 9.4
    careercup-递归和动态规划 9.3
    careercup-递归和动态规划 9.2
  • 原文地址:https://www.cnblogs.com/hehe520/p/6142649.html
Copyright © 2011-2022 走看看