设计菜单选择趣味程序_第1页
设计菜单选择趣味程序_第2页
设计菜单选择趣味程序_第3页
设计菜单选择趣味程序_第4页
设计菜单选择趣味程序_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1题目内容及设计要求12总体设计22.1总体功能框图22.2类的设计说明32.3主要算法流程图33程序清单及注释54运行结果与分析135总结176参考文献171题目内容及设计要求题目:设计菜单选择趣味程序 内容及要求:设计一个比较使用的菜单,通过菜单选择不同的功能。设计分两步:首先涉及一个含有多个菜单项的菜单演示程序,然后再为这些菜单项配 上相应的功能。出圈游戏一:(1) 设计一个seqlist类。(2) 在头文”head.h”中声明类,并使用默认的内联函数方式定义它们。(3)使用类的数组来求解。(4)用josephq函数求解出圏,使用函数gamel()作为菜单项。(5)在文件gamel.cp

2、p中实现joseph和gamel()函数。游戏二:(1) 使用上题中的sqlist类使用向量数组求解。重载joseph()函数来求解出,使用函数game2()作为菜单在文件game2.cpp中实现josephq和game2()函数求解方程:(1) 设计类 findroot将方程系数设计成属性,将方程的根xl,x2o以及用来作为判定条件的 d(d=b*b-4*a*c)均设计成类的属性(2) 设计构造函数(3) 设计求根成员函数find().(4) 设计输出结果成员函数displ町()2总体设计一、菜单驱动程序二、求解一元二次方程三、设计出圈游戏32. 1总体功能框图2.2类的设计说明类findr

3、oot的设计为了方便,除了将方程系数设计为属性之外,还将方程的根xl和x2, 以及用来作为判定条件的d(d=b*b-4*a*c)均设计成类的属性。如图1是 其类图,图2是对象obj的对象图。其中,成员函数findo是用来求方程的根,display ()则用来输出结果。由此可见,它们都需要用到属性do可在构造函数中求出d的值, 其他成员函数直接使用这个属性,不必再去计算。类seqlist的设计这里要求使用名字,而在名字的字符串中,可能存在空格。可以为该 类设计两个属性,一个是字符串,用来存储名字。另一个是整数,用来 表示报数的位置。若使用类的数组,则可以通过数组的下标,将位置和 名字对应起来。在

4、声明的类中,同时定义的成员函数就是默认的内联函数。另外, 考虑到使用类的数组,所以不为它定义构造函数,而是用系统提供的默 认无参数构造函数2.3主要算法流程图3程序清单及注释#if!defined(cppl_h) #define cpp1_h # include<iostream> #include<math.h>#include<string.h>using namespace std;class findroot;class seqlist;void findlt();void handle_menu(void);int menu_select();vo

5、id game();void joseph(seqlist,int);#endif/以上为头文件#mcludehcppl>hn using namespace std;void main()cout«nt欢迎使用菜单选择趣味小程序n«endl;handle_menu();调用菜单处理函数void handle_menu(void)for(;)switch(menu_select()/调用菜单选择函数 case 1:findlt();求解一元二次方程break;case 2:game();case 3:cout«ht谢谢使用!再见!n”;return;int

6、menu_select()char s2;int cn;cout«ntl.解一元二次方程 n”;cout«' ft2.出圈游戏 n1'cout« *弋3 退出程序n *1;cout«nt 请选择 l-3:n;for(;;)fflush(stdin);/清除缓存gets(s);cn=atoi(s); /是为了使输入的字符串转变为数字if(cn<l|cn>3)printf(nnt 输入错误,重选 1-3:");elsereturn cn;#include<iostream>using namespace st

7、d;class seqlistint num;char name10;public:int getnum()return num;void dispname() cout«name;void setnum(int a)num=a;void setname(char b)strcpy(name,b);;void joseph(seqlist c20,int length9int n) 使用数组作为参数,同时需要将人数传给它int ij=0,b=0,r,k;for(k=0;k<n;k+)/多次循环n次,最后输出结果for(i=0;i<n;i+)if(ci.getnum()!=

8、o)/ 每次退出的,num值都将赋值为0,下次扫描时,将跳过。j+;num值赋ifo=length)输出退出的数组ci中的字符串,并且相应的值为0,为下次循环不在被扫描 ci.dispname();cout«h m;j=0;ci.setnum(0); void game()cout«ht 出圈小游戏n«endl;int mj9n;cout«nt#输入玩游戏的人数:”cin»n;cout«"请输入报到什么数字出圈:cin»m;seqlist c20;char f10;for(i=0;i<n;i+)ci.setn

9、um(i+l);cout«n 第” vvi+lvv” 的名字为:n;cin»f;ci.setname(f);joseph(c,m,n);cout«endl;#include<iostream> #include<math.h> using namespace std; class findroot float a,b,c,d,xl,x2,x;public:findroot(float x,float y,float z)a=x;b=y;c=z;d=b*b-4*a*c;void find()if(d>0)d>0时,算出两个不同的根

10、xl=(-b+sqrt(d)/(2*a);x2=(-b-sqrt(d)/(2*a);if(d=o)d=0时,算出两个相同的根xl=x2=(-b)/(2*a);if(d<0) /dvo时,算出复数根xl=(-b)/(2*a);x=-b; void displayo 调用此函数时,通过findroot ()函数算出d的取值,输 出相对应的根。cout«nxl=n«xl«endl; cout«nx2=n«x2«endl;if(d=o)cout«nxl=x2=n«xl«endl; if(d<0)cou

11、t«nxl=n«xl«n+n«-d«hin«endl;cout«nx2=n«xl«n-h«-d«nin«endl;void findltqfloat a,b,c;cout«n此程序求解二元一次方程ax2+bx+c=0的两个根xl,x2h«endl;coutvv"请输入方程系数a,b,ch«endl;cin»a»b»c;findroot jiu(a,b,c);jiu.findq;jiu.displayo; c

12、out«endl;4运行结果与分析1 解方程运行结果如下:1. 解一元二次方程2. 出圈游戏3. 退出程序选择1-3: 1图4一1运行结果图bgw13lcl =-1 +8 ix2=-l-8i程ax 方 程 次 1方c 二養3:次m 元霉1-一a, _圈出择元数选二系 2.3.请矍序入1此主冃c:usersadminist3tordesktop 菜单成至idebug菜单选扌三趣味程序.exe"欢迎使用菜单选择趣味小程序1 解一兀二茨方*呈3 覆出*呈岸 请选挂1-3:1解二元次方程ax2 +bx+c =0的两个根xi., x2純系薮4b,ci. w-7cri次方程询辫3 退王

13、厅请起择1-3:结果分析:选择菜单上的3后,通过调用解方程的函数,提示输入二元一次方程的系数,运行最后显示方程的根。2.出运行结果如下:1. 解一元二次方程2. 出圈游戏3. 退出程序选择1-3: 2图4-2运行结果图ec:usersadministratordesktop 菜单成品de bug'荒呈选扌圣趣味程序.exe” - 一 曰味趣 举程选方8 :菜二養3:戏聲 肖 用元游程1-游人数=四明红鸣j兀游程1-使一圈岀择小的么王李王泰鸣-圈岀择 迎體退选圈戏什加机聖加选与琴名名名名王咫刖日日白白白月12 3 4 5 0-k 请请第第第第第王3罰:5岀红程t2.3.请半:结果分析:选

14、择菜单上的2后,主程序调用出圈游戏的函数,根据提示输入玩游戏的人数和报到什么树的人出圈,然后输入玩游戏人的姓名,最后运行依人的姓名。次显示先出3 退出运行结果如下:1解一元二次方程2. 出圈游戏3. 退出程序选择1-3: 3谢谢使用!再见!图4-3运行结果图"c:usersadministratorde5ktop 单成品debug菜呈选扌圣趣味程序.exe”青输入方程系数r2xl=x2=l次方程2:5岀k囿:2宇程赵方见:3再: 3i c 元霉1-游人数明红宇鸣林丿兀霉1-3ffl?t0 -圈岀择小的么王李赵雷王明一圈岀幕y 选圈戏什无加无王选谢ke#= 沢逼忒豊or1工 m"*njsttkrtrrr tjtjsttff日12 3名名名名雷 、v-lvi 504 12 3 4 5 幺 k 请请第第第wwan结果分析:选择菜单上的3后,显示谢谢使用!再见!结束程序运行。5总结这次课设首次接触编排工程类的程序,首先对文件的组建很不是熟悉, 再加上对题目的些许不了解,导致编程工作缓慢。后来请教老师后,老 师耐心的讲解工程类的文件的组装和头文件的设计,使我让我马上加快 了编程的速度。期间,也遇到些程序运行无法实现最终结果

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论