C++程序设计课程实践报告Word格式.docx
《C++程序设计课程实践报告Word格式.docx》由会员分享,可在线阅读,更多相关《C++程序设计课程实践报告Word格式.docx(23页珍藏版)》请在冰豆网上搜索。
5.各模块的功能·
31
6.!
总结及参考文献·
35
第一题
一、题目:
使用菜单选择趣味程序
△菜单是应用程序的界面,控制语句用来改变程序执行的顺序,是实现结构化设计的基础。
△本题的任务是设计一个比较实用的菜单,通过菜单选择不同的功能。
△本题的设计分两步:
—
(1)先设计一个含有多个菜单项的菜单演示程序;
A、菜单内容:
程序运行后,给出六个菜单项的内容和输出提示
1、FindNum
2、FindRoot
3、Detective
4、Bear
5、Curve
"
6、YearDay
7、Goodbye!
B、设计要求:
使用数字1-7来选择菜单项,其他输入则不起作用。
(2)再为上述菜单项配上相应的功能,即以上述菜单的设计为基础,增加菜单项的处理功能。
菜单设计要求(这是6道编程题,要求在运行菜单时,能给出每个程序的运行结果):
有0、1、2、3、4、5、6、7、8、9十个数,按要求填入下列算式中,要求每
个数只使用一次,首位数不能为零,输出时显示所有可能的组合并统计个数。
/
□□□+□□□=□□□□
求方程
在区间[-8,8]内的全部实根。
这是一个侦探题,有一辆汽车撞人后跑了,4个目击证人提供如下线索:
牌照三、四位
相同;
牌号为31xxxx;
牌照五、六位相同,三到六位是一个整数的平方。
有一只狗熊到玉米地里吃玉米,一边掰一边吃。
第一天吃了一半,又拿走一
¥
个回去喂小熊。
第二天又去吃了剩下的一半,走是仍带走一个回去喂小熊。
以后每天都吃前天剩下的一半,拿走一个。
到第十天,地里只剩下一个玉米。
求地里一共有多少玉米。
5、Curve(可选作)
绘制一条滴定曲线(已知是L的氢氧化钠滴定同浓度的
盐酸)。
曲线如图所示。
此题可以根据所给曲线大致形状,运用常规的编制图形的方法来绘制。
也可
根据下面所列的方程式来绘出滴定曲线。
。
其中[H]为氢离子浓度,cHCl为盐酸浓度,Kt=,a为滴定分数(令a在0—2范围
》
内取值,步长为),
,Vb为氢氧化钠加入到盐酸中的瞬时浓度。
已知2000年1月1日为星期六,请输入任一年的年份后,打印该年的年历。
这里除了输出一个信息外,还必须结束程序运行。
二、系统功能模块结构图:
[
主调main函数启动
Detective
Findnum
Curve
Goobye!
Bear
Findroot
《
Yearday
三、数据结构设计及说明(程序):
#include<
iostream>
#include<
cmath>
usingnamespacestd;
#defineYES1/*定义符号常数“是”*/
@
#defineNO0/*定义符号常数“否”*/
voidFindNum()<
<
endl;
cout<
第一天吃了一半,又拿走一个回去喂小熊。
输出菜单
及提示信息
1
2
6
其它
7
Findnum()
Findroot()
Detective()
Goodbye!
结束
输入错误
Yearday()
^
Bear()
数字判断
开始
Curve()
A=1000
B<
=999
-
B=100
B++
C++
判断各位数字是否相同,等式是否成立
C=100
A++
False
ture
C<
A<
=9999
】
i<
=7
j=i+1;
s1=i*i*i-3*i-1
s2=j*j*j-3*j-1;
s1*s2<
k=(i+j)/2;
s=k*k*k-3*k-1
s1*s<
j=k;
s2=s
精度在小数点后六位fabs((double)s)>
=1e-6
Flase
输出符合的根
i++
a*a=A
输出车牌
i=0
:
j<
=9
j=0
j++
a++
A=1000*i+100*i+10*j+j
a=0
)
a<
100
;
bear()
n=10
bear(10)=1
return
n=9
2*bear(10)+1
n=8
2*bear(9)+1
n=2
2*bear(3)+1
n=3
2*bear(4)+1
n=1
2*bear
(2)+1
结束并返回值
输出sorry(此题未编写
输入年份
按闰年方式打印年历
判断是否闰年
计算各月天数,打印年历
结束,返回主菜单
输出goodbye
菜单程序结束
2000年1月1日
于此程序,需要在运行时输出整个元素周期表,且对应有相应的原子序数和元素符号,且具有查找功能,即输入原子序数或元素符号时,能相应的输出元素符号或原子序数。
?
2.程序:
cstring>
voidmain()
{
char*a[]={"
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"
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"
Uuu"
Uub"
};
intb[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112};
#
inti,j,k=1,l=1;
for(i=0;
7;
i++)
for(j=0;
18&
&
k<
=112;
j++)出;
2.输入原子序数找对应元素;
3.输入元素找对应原子序数"
cin>
>
j;
if(j==1)cout<
退出!
elseif(j==2)
{intk;
cout<
原子序数k="
k;
if((k>
0)&
(k<
=112))
112;
i++)通过if语句输入的是原子序数还是元素符号,再通过for语句与之对应的元素符号或序数并输出。
,
三、程序结构(流程图):
输入元素周期表
(
输入数字
;
输入元素找对
应原子序数
~
输入原子序
数找对应元素
退出
四、运行结果:
1、输出周期表
2、按原子序数查找元素符号
3、元素符号查找原子序号
第三题(选做)
对学生的成绩信息进行管理。
学生信息包括:
学号、姓名、学期、每门课程的成绩、平均成绩、名次。
实现:
学生信息的录入;
修改;
删除和查询,按学期、学号、成绩不及格等查询。
第四题(选做)
小学生数学测试软件的编写
要求:
$
(1)可选择题型(+,-,*,/);
(2)可选择每次答题的个数;
(3)随机生成两个数进行运算;
(4)每次在输入答案后应判断对错,若答案错误,应给出正确答案;
(5)最后给出做对题目的总个数。
注意:
产生随机数的方法——使用随机数函数
`
主调main函数
加法计算
减法计算
乘法计算
除法计算
intmain()
inti,j,k,R=0,n;
~~~~~小学数学测试~~~~~"
请选择想测试的题型:
1.+3.*4./"
i;
if(i==1)
{
请输入测试题的个数:
for(intn=0;
n<
n++)出1.继续:
n;
if(n==1){cout<
下面开始重新测试"
returnmain();
}
*
+
输出菜单及提示信息
正确个数
进行四则运算
n++,R++
R
j
题目数j
生成两个随机数
c++程序设计第二版》[M].北京.中国水利水电出版社..
[2]刘卫国,杨长兴.《c++程序设计实践教程》[M].北京.中国水利水电出版社..