




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C+课程设计报告C+课程设计报告课程名称: C+课程设计 院 系: 信息工程学院 专 业: 信息工程 学生姓名: 冯齐奇 班 级: 116101-28 学 号: 20101004014 指导教师: 陈亮 张发勇 2010 年 12 月25日输出1至100之间每位数的乘积大于每位数的和的数【A组】1、输出1至100之间每位数的乘积大于每位数的和的数,例如对于数字12,有1*22+7,故输出该数。问题分析:要找出1至100之间每位数的乘积大于每位数的和的数,可以将一个数连续除以10,取其余数,将余数相乘、相加,比较其乘积和的大小,输出乘积大于和的数。考虑到1到10 之间的数只需除一次,10到100的数需除两次,故用for语句分类讨论情况。算法设计:(1)设计思想: 设计for语句将一个数连续除以10,取其余数,将余数相乘、相加,比较其乘积和的大小,输出乘积大于和的数。(2)设计表示: for (i=1;in)coutiendl; for (i=10;im+n)coutiendl; 调试报告: 由于开始未考虑到1到10之间的数,只设计了一个for语句。在调试时,1到10的数全为0乘以数本身。虽然结果正确,但逻辑与题目相违背。故重新加了一个for语句,将1到100的数分类讨论.附录: (1)源程序: / A组1.cpp : Defines the entry point for the console application./ #include stdafx.h#includeusing namespace std;int main(int argc, char* argv) int i,m,n; for (i=1;in) couti ; for (i=10;im+n) couti ; return 0; (2)测试数据及运行结果: 2、编写一个程序,求出所有的“水仙花数”。所谓水仙花数,是指一个三位数,其各位数字的立方和恰好等于该数本身。例如153=1*1*1+5*5*5+3*3*3,所以153是水仙花数。问题分析:要找出“水仙花数”只需将某个三位数连续除以10,取其余数,比较余数的立方和与这个数本身的大小,输出立方和等于该数的数即可。 算法设计:(1) 设计思想:设计for语句将三位数连续除以10并取出余数,用if语句比较余数的立方 和与这个数本身的大小。 (2) 设计表示:for (i=100;i1000;i+) x=i%10;y=(i/10)%10;z=(i/10)/10)%10;if (i=(x*x*x+y*y*y+z*z*z) couti ; 调试报告: 由于开始时三次取余未取商,直接连续用%,使得程序的到不正确的结果。 附录: (1)源程序:/ A组2.cpp : Defines the entry point for the console application./ #include stdafx.h#includeusing namespace std;int main(int argc, char* argv)int i=100,x,y,z;cout水仙花数: endl;for (i=100;i1000;i+)x=i%10;y=(i/10)%10;z=(i/10)/10)%10;if (i=(x*x*x+y*y*y+z*z*z)couti ;coutendl;return 0;(2)测试数据与结果:3、求任意n个数中的最大数和最小数:先输入一个正整数n(个数),而后再输入任意n个实数,找出这n个数中的最大数及最小数并显示出来。问题分析:输入n个实数,用max和min表示最大和最小值,将第一个数同时赋给max和min,编写程序执行n-1次循环,并在每一次更新掉max和min,最后输出最大和最小值。算法设计:(1) 设计思想:输入第一个值时,将其赋给max和min,用for语句执行n-1次循环,并在每一次更新max和min的值。(2) 设计表示:for (int j=0;jk;if (k=max) max=k; if (k=min) min=k; 调试报告: (1) 由于开始时,让for语句执行了n次,导致结果出错。 (2)由于开始未将第一个值同时赋给max和min,导致结果出错。 附录:(1) 源程序:/ A组3.cpp : Defines the entry point for the console application./#include stdafx.h#includeusing namespace std;int main(int argc, char* argv)int n;coutn;double i,max,min;cout请输入任意n个实数: i;max=i; min=i;for (int j=0;jk;if (k=max) max=k; if (k=min) min=k; cout这n个数中最大数是:maxendl;cout这n个数中最小数是:minendl;return 0;(2) 测试数据和结果:n=5,这5个任意实数为:10.5,5,3,9.5,11.2最大值11.2,最小值3。 n=7,这7个任意实数为:1,5.5,-9,55,12,12,0 最大值55,最小值-9。【B组】 4、对两个有序数组进行合并:设有如下数组A、B,并假设两个数组的元素都已经有序(从大到小降序排列)。编程序,合并A、B数组形成一个新的数组C,并使C的元素仍有序(从大到小降序排列)。int A10=123,88,86,86,33,15,7,0,-1,-3;int B10=86,69,51,50,27,19,15,12,5,2; 问题分析: 由于数组A和B中的元素的大小顺序都是由大到小确定的,从A和B中的第一个元素比较,将大的传到C中的第一个,并将大的那个数组序列向后移一位,在和另一个数组的元素比较,将大的传给C中的第二个,又把大的那个数组序列向后移一位以此类推,在A和B中,有的一个数组中的元素会先用完,由于A和B中的元素由大到小,只需再将剩下的那个数组中的元素全部传给C即可。 算法设计: (1)设计思想: 用循环语句使数组A和B中的比较元素序列依次向后移,并将每次的结果传给数组C,再把最后剩下的元素全部传给数组C即可。(2)设计表示: while (a10 & bBb)Ci+=Aa+;elseCi+=Bb+;while(a10)Ci+=Aa+;while(b10)Ci+=Bb+; 调试报告:(1)由于未考虑剩下的元素,导致结果出错。(2)由于未注意全角和半角的输入,导致编译出错。 附录: (1)源程序: / B组4.cpp : Defines the entry point for the console application./#include stdafx.h#includeusing namespace std;int main(int argc, char* argv)int A10=123,88,86,86,33,15,7,0,-1,-3;int B10=86,69,51,50,27,19,15,12,5,2;int C20;int a=0,b=0;int i=0;while (a10 & bBb)Ci+=Aa+;elseCi+=Bb+;while(a10)Ci+=Aa+;while(b10)Ci+=Bb+;cout按C的元素从大到小降序排列: endl;coutint C20 = ;for(i=0;i20;i+)coutCi ;if (i19)cout,;coutendl;return 0; (2)测试数据和结果:【C组】7、编写一个程序计算两个给定长方形的面积,其中在设计类成员函数addarea()(用于计算两个长方形的总面积)时使用对象作为参数。 问题分析:设计一个矩形类,其中矩形的长和宽为矩形的私有变量,用成员函数GetArea()得到矩形的面积,设计成员函数addarea(),用两个对象做参数,然后得到这两个矩形的面积和。 算法设计: (1)设计思想: 设计一个矩形类Rectangle,私有变量有长(length)和宽(wide),成员函数GetArea()计算矩形的面积,addarea()计算两个矩形的面积之和。通过主函数调用类,实现计算。(2)设计表示: 定义矩形类: class Rectanglepublic:Rectangle(float l,float w); Rectangle() float GetArea(); /计算面积 float addarea(Rectangle Rectangle1,Rectangle Rectangle2); /计算面积和private:float length,wide;/ stdafx.hRectangle类的定义/C组7.cppRectangle类的实现/C组7.cppmain()实现调用,输出结果调试报告: (1)由于设计数据是,数据类型用的是int,导致在输入小数时程序运行错误,换用float后运行正常。 (2)调用addarea()函数时,用类名调用,程序编译出错,要用对象名调用。附录: (1)源程序:/ stdafx.h #includeusing namespace std;class Rectanglepublic:Rectangle(float l,float w);Rectangle()float GetArea(); /计算面积float addarea(Rectangle Rectangle1,Rectangle Rectangle2); /计算面积和private:float length,wide; / C组7.cpp : Defines the entry point for the console application./#include stdafx.hRectangle:Rectangle(float l,float w)length=l;wide=w;float Rectangle:GetArea()return length*wide;float Rectangle:addarea(Rectangle Rectangle1,Rectangle Rectangle2)float addarea=Rectangle1.GetArea()+Rectangle2.GetArea();return addarea;int main(int argc, char* argv)float l,w;coutlw;Rectangle Rectangle1(l,w);coutlw;Rectangle Rectangle2(l,w);cout第一个矩形的面积: Rectangle1.GetArea()endl;cout第二个矩形的面积: Rectangle2.GetArea()endl;cout两个矩形的面积和: coutRectangle1.addarea(Rectangle1,Rectangle2)endl;return 0; (2)测试数据和结果: 第一个矩形长2,宽4,面积为8 第二个矩形长5,宽5.5,面积为35.5 两个矩形面积和为35.5 第一个矩形长3.3,宽2,面积为6.6 第二个矩形长6.5,宽10,面积为65 两个矩形面积和为71.68、以面向对象的概念设计一个类,此类包含3个私有数据:unlead(无铅汽油)、lead(有铅汽油)以及total(当天总收入)。无铅汽油的价格是17元/公升,有铅汽油的价格是16元/公升。请以构造函数方式建立此值。试输入某天所加的汽油量,本程序将列出加油站当天的总收入。 问题分析:设计一个汽油收入类,unlead、lead、total为私有数据,构造函数LeadTotal(),用成员函数GetTotal()得到汽油总收入。 算法设计: (1)设计思想: 设计一个汽油收入类,unlead、lead、total为私有数据,分别储存无铅汽油量、有铅汽油量、总收入,将无铅汽油的价格和有铅汽油的价格设计为常量,用构造函数LeadTotal()得到unlead和lead,用成员函数GetTotal()计算汽油的总收入,并返回。(2)设计表示: 定义汽油收入类:class LeadTotalpublic:LeadTotal(float U,float L);LeadTotal()float GetTotal();private:float unlead;float lead;float total;声明汽油价格常量:const float UnleadFence=17;/C组8.cppLeadTotal类的实现LeadTotal()/得到unlead和leadGetTotal()/计算总收入const float LeadFence=16;/ stdafx.hLeadTotal类的定义LeadTotal()GetTotal()unlead、lead、total/C组8.cppmain()函数调用类,输出结果调试报告: 开始时未设计构造函数,不符合题意。附录: (1)源程序: / stdafx.h#includeusing namespace std;const float UnleadFence=17;const float LeadFence=16;class LeadTotalpublic:LeadTotal(float U,float L);LeadTotal()float GetTotal();private:float unlead;float lead;float total; / C组8.cpp : Defines the entry pofloat for the console application./#include stdafx.hLeadTotal:LeadTotal(float U,float L)unlead=U;lead=L;float LeadTotal:GetTotal()return total=unlead*UnleadFence+lead*LeadFence;float main(float argc, char* argv)float U,L;coutU;coutL;LeadTotal LT(U,L);cout汽油总收入: LT.GetTotal()endl;return 0; (2)测试数据和结果: 无铅汽油汽油量100公斤,有铅汽油汽油量150公斤总收入4100元 无铅汽油汽油量120.5公斤,有铅汽油汽油量155.5公斤总收入4536.5元9、设计一个时间类Time,包括3个数据成员,时(h)、分(m)、秒(s),另外包括存取各数据成员和设置时间的成员函数,按上、下午各12小时或按24小时输出时间的成员函数,以及默认构造函数,默认时间值为0时0分0秒。 问题分析: 设计一个时间类,私有数据为时(h)、分(m)、秒(s),默认构造函数Time()用来初始化时间,并默认为0时0分0秒,成员函数包括SetHour()、SetMinute()、SetSecond()、GetTime()。 算法设计: (1)设计思想: 设计一个时间类Time,私有数据为时(h)、分(m)、秒(s),分别储存小时、分钟、秒。默认构造函数Time()用来初始化时间,并默认为0时0分0秒,成员函数SetHour(int hour)、SetMinute(int minute)、SetSecond(int second)分别用来得到时、分、秒。成员函数GetTime()用来的得到时间,并显示出来。(2)设计表示: 定义时间Time类:class Timepublic:Time()h=0;m=0;s=0;void SetHour(int hour);void SetMinute(int minute);void SetSecond(int second);void GetTime();private:int h,m,s;/ C组9.cppmain()函数中调用类,提示用户输入时间,并判断数据的合法性。/ stdafx.hTime类的定义Time()SetHour()SetMinute()SetSecond()GetTime()h、m、s/ C组9.cppTime类的实现Time()/默认构造函数SetHour()/得到时SetMinute()/得到分SetSecond()/得到秒GetTime()/显示时间调试报告: (1)由于开始是未设计判断数据合法性的语句,致使输入不合法的数据时,程序依然运行,但这与现实不相符,程序的实用性不高。因此在main()函数中加了判断语句。 (2)由于未注意题中的默认构造函数,设计的类不合题意。因此修改了类,设计了默认构造函数,且值未0时0分0秒。附录: (1)源程序: / stdafx.h#includeusing namespace std;class Timepublic:Time()h=0;m=0;s=0;void SetHour(int hour);void SetMinute(int minute);void SetSecond(int second);void GetTime();private:int h,m,s; / C组9.cpp : Defines the entry point for the console application./#include stdafx.hint main(int argc, char* argv) int h,m,s;cout默认时间;Time myTime; myTime.GetTime();couthms;myTime.SetHour(h);myTime.SetMinute(m);myTime.SetSecond(s);if(h=0 & h=0 & m=0 & s=59)myTime.GetTime();elsecout输入时间不合法!数据错误!endl;return 0;void Time:SetHour(int hour)h=hour;void Time:SetMinute(int minute)m=minute;void Time:SetSecond(int second)s=second;inline void Time:GetTime()cout按24小时制表示时间为: endl;couth:m:s=t2&t2=t3)cout第一名:s1 总分: t1endl;cout第二名:s2 总分: t2endl;cout第三名:s3 总分: t3=t3&t3=t2)cout第一名:s1 总分: t1endl;cout第二名:s3 总分: t3endl;cout第三名:s2 总分: t2=t1&t1=t3)cout第一名:s2 总分: t2endl;cout第二名:s1 总分: t1endl;cout第三名:s3 总分: t3=t3&t3=t1)cout第一名:s2 总分: t2endl;cout第二名:s3 总分: t3endl;cout第三名:s1 总分: t1=t1&t1=t2)cout第一名:s3 总分: t3endl;cout第二名:s1 总分: t1endl;cout第三名:s2 总分: t2endl;elsecout第一名:s3 总分: t3endl;cout第二名:s2 总分: t2endl;cout第三名:s1 总分: t1endl; /fun.cpp:函数fun()实现学生成绩的排序/ stdafx.h类Student的定义:SetEnglish()SetComputer()GetTotal()/ C组10.cppmain()函数调用Student类和函数fun(),提示用户输入数据,并输出结果/ C组10.cpp类Student的实现:SetEnglish()/得到英语成绩SetComputer()/得到计算机成绩GetToal()/计算总成绩调试报告:(1) 排序函数fun()设计时,if-else语句出错。(2) 加cpp文件是未加预定义处理#includestdafx.h,编译出错。附录: (1)源程序: / stdafx.h #includeusing namespace std;class Studentpublic:Student()void SetEnglish(int E);void SetComputer(int C);int GetTotal();private:int English;int Computer;int Total; /fun.cpp:#includestdafx.hvoid fun(int t1,int t2,int t3)if(t1=t2&t2=t3)cout第一名:s1 总分: t1endl;cout第二名:s2 总分: t2endl;cout第三名:s3 总分: t3=t3&t3=t2)cout第一名:s1 总分: t1endl;cout第二名:s3 总分: t3endl;cout第三名:s2 总分: t2=t1&t1=t3)cout第一名:s2 总分: t2endl;cout第二名:s1 总分: t1endl;cout第三名:s3 总分: t3=t3&t3=t1)cout第一名:s2 总分: t2endl;cout第二名:s3 总分: t3endl;cout第三名:s1 总分: t1=t1&t1=t2)cout第一名:s3 总分: t3endl;cout第二名:s1 总分: t1endl;cout第三名:s2 总分: t2endl;elsecout第一名:s3 总分: t3endl;cout第二名:s2 总分: t2endl;cout第三名:s1 总分: t1endl;/ C组10.cpp : Defines the entry point for the console application./#include stdafx.hint main(int argc, char* argv)Student s1;Student s2;Student s3;int e,c;coute;s1.SetEnglish(e);coutc;s1.SetComputer(c);coute;s2.SetEnglish(e);coutc;s2.SetComputer(c);coute;s3.SetEnglish(e);coutc;s3.SetComputer(c);int t1=s1.GetTotal();int t2=s2.GetTotal();int t3=s3.GetTotal();void fun(int t1,int t2,int t3);fun(t1,t2,t3);return 0;void Student:SetEnglish(int E)English=E;void Student:SetComputer(int C)Computer=C;int Student:GetTotal()Total=English+Computer;return Total; (2)测试数据和结果: 第一个学生的英语、计算机成绩:100、90第二个学生的英语、计算机成绩:90、98第三个学生的英语、计算机成绩:80、70 第一个学生的英语、计算机成绩:90、80第二个学生的英语、计算机成绩:100、60第三个学生的英语、计算机成绩:95、85II、课程设计中期设计题目11. 求解一元二次方程。一元二次方程的定义为: ax2+bx+c=0(1)如果b2 -4ac0,方程有两个不同的实根,分别是: (2)如果b2 -4ac 0,方程没有实根,但有虚根;(3)如果b2 -4ac= 0,方程有一个实根。请你编写一个程序,使其能求出多个二次方程的根。该程序要询问用户是否想继续解下一个方程。用户输入1来继续,输入其它数字,则终止程序。程序要求用户输入a,b和c,然后根据前面的条件计算,并输出答案。要求:使用类实现,(1) a,b,c为该类的私有成员变量;(2) 求根的实现为该类的成员函数,形式为:/函数返回值:实根的个数;/参数:x- 用以返回实根值的数组;long CalResult(float x);(3) 该类还包含有参构造函数、析构函数。(4) 使用MFC工程实现,可酌情加分。 问题分析: 设计一个接一元二次方程的类,私有数据有a、b、c、x2,成员函数包括SetCal()、CalResult(float x)。用while语句实现判断。 算法设计: (1)设计思想: 设计一个接一元二次方程的类,私有数据有a、b、c、x2,其中a、b、c分别为一元二次方程的a、b、c,而x2存放一元二次方程的两个根。成员函数CalResult(float x)计算两个根,并存入x2中,在main()函数中用while语句提示用户判断。(2)设计表示: 一元二次方程类Fxx的定义:class Fxxpublic:Fxx(float aa,float bb,float cc);Fxx();long CalResult(float x);private:float a,b,c;float x2;实现用户判断(1-继续,其他终止)while(i=1)coutabc;Fxx fx(a,b,c);coutfx.CalResult(x)endl; couti;/ 中期设计题目.cpp类Fxx的定义:Fxx()/构造函数CalResult(float x)/计算两个根,并存入x2/ 中期设计题目.cppmain()函数提示用户输入数据,并实现判断/ stdafx.h类Fxx的定义:Fxx()CalResult(float x)a、b、c、x2调试报告: (1)调用CalResult(float x2)函数时,传参为x2错误。故调用函数CalResult(float x2)时,修改为传参为CalResult(x)。 (2)开始用while语句执行判断时不能实现多次判断。修改为,在while语句中再加上cini,实现多次判断。 附录: (1)源程序: / stdafx.h#include#includeusing namespace std;class Fxxpublic:Fxx(float aa,float bb,float cc);Fxx();long CalResult(float x);private:float a,b,c;float x2; / 中期设计题目.cpp : Defines the entry pofloat for the console application./#include stdafx.hint main(float argc, char* argv)float a,b,c;float i;float x2;coutabc;Fxx fx(a,b,c);coutfx.CalResult(x)endl; couti;while(i=1)coutabc;Fxx fx(a,b,c);coutfx.CalResult(x)endl; couti;return 0;Fxx:Fxx(float aa=0,float bb=0,float cc=0)a=aa;b=bb;c=cc;long Fxx:CalResult(float x)if(b*b-4*a*c0)x0=(-b+sqr
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 机器人清洁服务创新创业项目商业计划书
- 输液反应和急救措施
- 知识管理(KM)创新创业项目商业计划书
- 橡胶鞋材生产创新创业项目商业计划书
- 网红短视频内容创作工具创新创业项目商业计划书
- 智能柜台银行服务系统创新创业项目商业计划书
- 电影海报电商创新创业项目商业计划书
- 渔业养殖的气象服务创新创业项目商业计划书
- 水产品品牌国际化战略咨询创新创业项目商业计划书
- 2025年环保产业园区绿色产业集聚与区域产业结构优化报告
- 2025年试题辅警面考试练习题目及答案
- 建筑工程造价课程设计实例
- 幼儿园速叠杯培训
- 初中劳动教育生活技能计划
- 新初中班主任培训
- DB13T 5252-2020 HDPE内衬修复供水管道技术规程
- 2025至2030年中国真空电机行业市场行情监测及前景战略研判报告
- 2025年船舶舾装件项目市场调查研究报告
- DB31/ 741-2020碳酸饮料单位产品能源消耗限额
- 2024生产安全事故应急预案
- 矿用电机车永磁电机驱动及能量回馈系统:技术革新与应用实践
评论
0/150
提交评论