else
{
switch(i)
{
case1:
f1();cout<>j;break;
case2:
f2();cout<>j;break;
case3:
f3();cout<>j;break;
case4:
f4();cout<>j;break;
case5:
cout<>j;break;
case6:
f6();cout<>j;break;
}
}
}
elsebreak;
}
}}
5.运行结果
6.流程图
7.小结
我们小组通力合作完成了这个程序的设计。
我抽签抽到了第一个FINDNUM,开始觉得有些无从下手,但仔细想想,想到了用循环的方式解决,但是有10个数字,想到可能要用10个for循环,在每个for循环中还要进行一轮判断,这样过于繁琐,我也没心情把程序写下去。
于是我想到了在前面只用一个双重for循环,把所有可能的3位数的加法循环过去,用最后的for循环通过一定的条件限制剔除不符合要求的。
这样果然奏效,没有很多繁琐的for循环。
不过我开始的判断语句是:
if(d!
=e&&d!
=f&&d!
=g&&d!
=h&&d!
=i&&d!
=j&&d!
=k&&d!
=l&&d!
=m&&e!
=f&&e!
=g&&e!
=h&&e!
=i&&e!
=j&&e!
=k&&e!
=l&&e!
=m&&f!
=g&&f!
=h&&f!
=i&&f!
=j&&f!
=k&&f!
=l&&f!
=m&&g!
=h&&g!
=i&&g!
=j&&g!
=k&&g!
=l&&g!
=m&&h!
=i&&h!
=j&&h!
=k&&h!
=l&&h!
=m&&i!
=j&&i!
=k&&i!
=l&&i!
=m&&j!
=k&&j!
=l&&j!
=m&&k!
=l&&k!
=m&&l!
=m&&c>1000),这个语句足够繁琐,不符合通用性和可扩充性,我自己觉得很别扭。
于是我一直想用个数组来代替那些d,e,f…….于是我就尝试着编写数组d[10],通过如上正确程序中的循环方法来达到剔除不符合要求的答案。
但是令我苦恼的是,我竟然试了很多次都没有成功,输出结果不是0就是无穷多。
我知道这个循环中一定出了问题,我试着多次进行优化,不断改变循环语句,结果还是不如人意。
最后我发现,那个用来判断的if(f==45&&c>1000)语句后面的语句一次都没有被执行,想到那个f的值可能存在问题,于是猛然发现原来每次循环f都需要归零才行,这样终于大功告成。
完善了自己的程序真的有一点小小的成就感。
通过这次编程,我了解了循环语句的运用,知道了要用数组来简化程序,并且知道了要充分注意细节,把自己全部的思想都融入到程序中去。
我的伙伴刘萍同学抽到了第二个求解的,她开始很得意,以为自己抽到了最简单的一个,只要用一个循环很快就能得出结果。
结果虽然程序没错误,但每次的输出都是无解,这显然是错误的。
大家都认为程序没有问题,输不出正解感觉很纠结。
后来我无意中想到程序中用的“==”是有问题的,一个只要求一定精确度的解是不可能满足“==”的,所以输不出正解是理所当然的。
后来她应用牛顿迭代法总算求出了正解。
第三题很简单,只需一点点的条件判断就能得出结果,关键在于数学函数sqrt的应用。
第四题也一样,只要一点点逻辑思维加上运用一点点循环就可以了。
第六题,有一定的难度,关键在于一个闰年的问题,还有大小月的问题,这些可以通过switch语句以及判断语句来解决,我认为程序设计者在这方面做得相当不错。
另外,我们的程序运行出来显示的年历按月分布得很有条理,这也归功于设计者对于判断语句的充分运用与精巧构思.
另外值得一提的是整个程序的整合,通过巧妙地用switch语句以及main函数等,把6个程序融为一体并且运用了友好的界面,相当精巧,非常不错。
通过设计这个程序,小组成员共同努力,默契配合,让我们体会到了团队的力量。
元素周期表
1.问题描述
编写一段程序,对元素周期表进行输出,查询。
2.基本要求
*输出一份元素周期表;
*要求有原子序数和元素符号;
*在输入原子序数或元素符号时,能相应的输出元素符号或原子序数。
3.系统分析
本题主要是对大型数的输出,采用数组的方法可以使问题显得容易一些。
将各元素放入数组中,由于其原子序数与其数组的序号存在一定的关系,只需利用数组序号代替原子序号。
另外,可以采用结构体的存放方式,对元素周期表进行有序的管理。
在输出时,为了对其进行进一步的管理,可以采用了for语句,这样可以自如的对数据进行进一步输出管理。
并且运用了一定的判断语句,优化了程序的输出界面,使其更为直观实用,接近于我们平时见到的周期表。
4.测试数据及伪代码
include
#include
#include
usingnamespacestd;
voidchazhao(chars,char*b[]);
voidmain()
{
cout<<"元素周期表"<cout<char*b[113]={"H","He","Li","Be","B","C","N","O","F","Ne",
"Na","Mg","Al","Si","P","S","Cl","Ar","K","Ca",
"Sc","Ti","V","Cr","Mn","Fe","Co","Ni","Cu","Zn",
"Ga","Ge","As","Se","Br","Kr","Rb","Sr","Y","Zr",
"Nb","Mo","Tc","Ru","Rh","Pd","Ag","Cd","In","Sn"
"Sb","Te","I","Xe","Cs","Ba","La","Ce","Pr","Nd",
"Pm","Sm","Eu","Gd","Tb","Dy","Ho","Er","Tm","Yb",
"Lu","Hf","Ta","W","Re","Os","Ir","Pt","Au","Hg",
"Tl","Pb","Bi","Po","At","Rn","Fr","Ra","Ac","Th","Pa","U","Np","Pu","Am","Cm","Bk","Cf","Es","Fm","Md","No","Lr","Rf","Db","Sg","Bh","Hs","Mt","Uun",
"Uub","Uub"};
inti,j,flag1=1,flag2=1;
chars;
for(i=0;i<7;i++)
{
for(j=0;j<18&&flag1<113;j++)
{
if(((i==0)&&(j>0&&j<17))||((i>0&&i<3)&&(j>1&&j<12)))
cout<<"";
else
{
if(i==5&&j==2)
{cout<else
{
if(i==6&&j==2)
{cout<else
cout<}
}
}
cout<for(j=0;j<18&&flag2<113;j++)
{
if(((i==0)&&(j>0&&j<17))||((i>0&&i<3)&&(j>1&&j<12)))
cout<<"";
else
{
if(i==5&&j==2)
{cout<else
{
if(i==6&&j==2)
{cout<else
cout<}
}
}
cout<}
cout<<"镧";
for(i=57;i<72;i++)
cout<cout<cout<<"系";
for(i=56;i<71;i++)
cout<cout<cout<<"錒"