c++课程设计报告。
学院:信息工程学院。
姓名:班级:
学号:指导老师:
实习题目一。
需求规格说明】
1、福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:abcde * edcba。他对华生说:
“abcde应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!
”。于是,两人沉默了好久,还是没有算出合适的结果来。请你利用编程技术,找到破解的答案。
问题描述:abcde代表一个五位数,edcba代表这个五位数倒过来输出,用一个五位数乘以一个个位数等于这个五位数倒序输出。
问题分析:abcde从最小的符合条件的五位数开始遍历,j从1开始遍历,用两个循环控制。
算法设计】1)设计思想:
写一个整型函数invertedorder,功能是将一个五位数倒序输出,方便下面if语句判断条件的编写。
用for循环从最小的、最后一位不是零且没有重复数字的五位数开始,每循环一次加1,内部套一个for循环,控制?代表的数字从1开始,每次加1。若不符合题设条件继续执行下一次循环,如果符合条件,就用if语句控制跳出循环,最后输出想要的等式。
2)设计表示:
调试报告】未出现错误。
附录】源程序清单:
#include ""
#include
using namespace std;
int n[5];
int invertedorder(int num) /将一个5位数倒序输出。
int i,m;
n[4]=num%10;
m=num/10;
for(i=3;i>=0;i--)将5位数的每一位分开,依次储存在整型数组n中。
int invertedordered=n[4]*10000+n[3]*1000+n[2]*100+n[1]*10+n[0];/倒序输出。
return invertedordered;
int _tmain(int argc, _tchar* ar**)
int i,j;
for(i=10234;i<100000;i++)从最小的没有重复数字的五位数开始循环。
if(i*j==invertedorder(i)&&n[0]!=n[1]&&n[0]!=n[2]&&n[0]!=n[3]&&n[0]!=n[4]&&
n[1]!=n[2]&&n[1]!=n[3]&&n[1]!=n[4]&&n[2]!=n[3]&&n[2]!=n[4]&&n[3]!=n[4])
break接着上个跳出继续跳出。
cout< return 0;
运行结果:实习题目二。
需求规格说明】
2、小明带两个妹妹参加元宵灯会。别人问她们多大了,她们调皮地说:“我们俩的年龄之积是年龄之和的6倍”。
小明又补充说:“她们可不是双胞胎,年龄差肯定也不超过8岁啊。” 请你写出:
小明的较小的妹妹的年龄。
问题描述:设两个人的年龄分别为s、l,s代表年龄较小的妹妹,l代表年龄较大的妹妹。
两人的年龄符合s*l=6*(s+l)和l+s<8,即可解得s和l的值。
问题分析:s和l都从1开始遍历,用两个循环控制。
算法设计】1)设计思想:
用for循环控制s从1开始,每循环一次加1,内部套一个for循环,控制l从1开始,每次加1。若不符合题设条件继续执行下一次循环,如果符合条件,就用if语句控制跳出循环,最后输出想要的等式。
2)设计表示:
调试报告】未出现错误。
附录】源程序清单:
#include ""
#include
using namespace std;
int _tmain(int argc, _tchar* ar**)
int s,l;//s代表年龄较小的妹妹,l代表年龄较大的妹妹。
for(s=1;s<100;s++)从s=1岁开始循环,最大到99
if((s+l)*6==s*l)//接着上个跳出继续跳出。
break;
cout<<"妹妹的年龄为"< return 0;
运行结果:实习题目三。
需求规格说明】
3、(a+b)的n次幂的展开式中各项的系数很有规律,对于n=2,3,4时分别是:1 2 1, 1 3 3 1,1 4 6 4 1。这些系数构成了著名的杨辉三角形:
试计算给定n对应的杨辉三角形,输出到文件中。
问题描述:计算杨辉三角中的每一个数,按格式输出到文件中。n由用户输入。
问题分析:根据排列组合计算(a+b)的n次幂的展开式中各项的系数,需要调用计算阶乘的函数。
算法设计】1)设计思想:
编写函数factorial计算n的阶乘,调用这个函数在主函数中进行计算,每算出一个就输出到文件中,设置空格和域宽。
2)设计表示:
调试报告】一开始每个需要空的地方只输出了一个空格,因为数字位数不同导致三角形是歪的。设置域宽为5后解决。
附录】源程序清单:
#include ""
#include
#include
#include
using namespace std;
inline double factorial(int n) /计算n的阶乘。
double n=1;
for(int i=1;i<=n;i++)
n=n*i;
return n;
int _tmain(int argc, _tchar* ar**)
ofstream fout("d:\\
int n;
cout<<"n=";
cin>>n;
for(int i=0;i<=n;i++)控制输出n+1行。
for(int j=0;j<=i;j++)依次输出第i行的数字。
fout< }
cout<<"请打开d:\\查看输出结果"< return 0;
运行结果:实习题目四。
需求规格说明】
4、假设图书馆的图书包含书名、编号、作者属性;读者包含姓名和借书证属性;每位读者最多可借5本书,编写程序列出某读者的借书情况。
提示:设计一个基类cobject,从它派生出书类cbook和读者类creader,在creader类中有一个rentbook()成员函数用于借阅图书。基类和测试**已经给出,请完成cbook,creader类。
问题描述:根据基类和给出的测试**写两个派生类,完成要求的功能。
问题分析:在不同的类中通过函数的相互调用,实现借阅功能。
算法设计】1)设计思想:
写cbook类和creader类,分别用于存放书籍和读者的信息。cbook类新增string型的变量author,用于储存书籍作者的名字。creader类新增int型的变量bookquantity,用于存储读者借书的数量,cobject类的对象数组book,大小为5,存储读者借的书。
另外creader类还新增rentbook函数和showreader函数,分别用于借书和显示读者信息。
rentbook函数的参数设置为cbook类对象,在函数中判断bookquantity的大小,如果小于4就借书,将这个对象赋给成员book[bookquantity],如果大于4就提示已达到上限,实现了控制借阅数量的功能。
showreader函数中直接调用基类的show函数可以显示当前读者的姓名和编号信息,再用一个for循环,循环中用book[i]调用show函数,显示所借书籍的书名和编号。
2)设计表示:
调试报告】一开始不知道如何控制借阅数量,新增一个数据成员后解决。
c语言课程设计报告 课程设计报告
周口师范学院。课程设计报告。院 系 计算机科学与技术学院 班级。学生姓名学号。设计题目 职工工资管理系统。完成日期 年月日 课程设计任务书。设计题目 工资管理系统 教研室主任指导教师 年月日。摘要11设计内容 任务及具体要求2 1.1设计内容2 1.2设计任务及具体要求2 2概要设计3 2.1该系统...
C课程设计报告
题目各类图形面积与周长计算和高考倒计时。学生姓名张磊 学号 20131344054 学院计算机与软件学院 专业软件工程 指导教师马瑞。二 一五年六月 25 日。目录。1 引言 1 1.1 系统开发背景和意义 1 1.2 服务器运行环境 2 1.3 课题内容 2 2 系统需求分析及相关技术介绍 2 2...
C 课程设计报告
c 程序课程设计报告。学院 资源与安全工程学院 专业班级 城市地下空间工程1303 姓名卢途。指导教师 彭述权。课程设计时间 2013 2014学年第二学期18 19周。一 题目一 设计一 学生成绩管理系统 它的主要功能是对学生的成绩进行输入 修改和管理。系统功能要求 界面要求 学生成绩管理系统 1...