- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
设计菜单选择趣味程序
目 录
1 题目内容及设计要求 1
2 总体设计 1
2.1 总体功能框图 1
2.2 类的设计说明 1
2.3 主要算法流程图 1
3 程序清单及注释 1
4 运行结果与分析 1
5 总结 2
6 参考文献 2
题目内容及设计要求
题目: 设计菜单选择趣味程序
内容及要求:
设计一个比较使用的菜单,通过菜单选择不同的功能。设计分两步:首先涉及一个含有多个菜单项的菜单演示程序,然后再为这些菜单项配上相应的功能。
出圈游戏一:
设计一个SeqList类。
在头文”head.h”中声明类,并使用默认的内联函数方式定义它们。
使用类的数组来求解。
用Joseph()函数求解出圈,使用函数game1()作为菜单项。
在文件game1.cpp中实现Joseph和game1()函数。
出圈游戏二:
(1) 使用上题中的SqList类.使用向量数组求解。
(2) 重载Joseph()函数来求解出圈,使用函数game2()作为菜单项。
(3) 在文件game2.cpp中实现Joseph()和game2()函数
求解方程:
(1) 设计类FindRoot
将方程系数设计成属性,将方程的根x1,x2。以及用来作为判定条
件的d(d=b*b-4*a*c)
均设计成类的属性
(2) 设计构造函数
(3) 设计求根成员函数Find().
(4) 设计输出结果成员函数Display().
总体设计
一、菜单驱动程序
二、求解一元二次方程
三、设计出圈游戏
2.1 总体功能框图
根据菜单页面提示输入 求解二元一次方程的解 模拟出圈游戏 结束程序
2.2 类的设计说明
类FindRoot的设计
为了方便,除了将方程系数设计为属性之外,还将方程的根x1和x2,以及用来作为判定条件的d(d=b*b-4*a*c)均设计成类的属性。如图1是其类图,图2是对象obj的对象图。
其中,成员函数Find()是用来求方程的根,Display()则用来输出结果。由此可见,它们都需要用到属性d。可在构造函数中求出d的值,其他成员函数直接使用这个属性,不必再去计算。
类SeqList的设计
这里要求使用名字,而在名字的字符串中,可能存在空格。可以为该类设计两个属性,一个是字符串,用来存储名字。另一个是整数,用来表示报数的位置。若使用类的数组,则可以通过数组的下标,将位置和名字对应起来。
在声明的类中,同时定义的成员函数就是默认的内联函数。另外,考虑到使用类的数组,所以不为它定义构造函数,而是用系统提供的默认无参数构造函数
2.3 主要算法流程图
程序清单及注释
#if!defined(CPP1_H)
#define CPP1_H
#includeiostream
#includemath.h
#includestring.h
using namespace std;
class FindRoot
{
};
class SeqList
{
};
void FindIt();
void handle_menu(void);
int menu_select();
void game();
void Joseph(SeqList[],int);
#endif//以上为头文件
#includecpp1.h
using namespace std;
void main()
{cout\t欢迎使用菜单选择趣味小程序endl;
handle_menu(); //调用菜单处理函数
}
void handle_menu(void)
{
for(; ;)
{
switch(menu_select())//调用菜单选择函数
{
case 1:
FindIt();//求解一元二次方程
break;
case 2:
game();
break;
case 3:
cout\t谢谢使用!再见!\n;
return;
}
}
}
int menu_select()
{
char s[2];
int cn;
cout\t1.解一元二次方程\n;
cout\t2.出圈游戏\n;
cout\t3.退出程序\n;
cout\t请选择1-3:;
for(; ;)
{fflush(stdin);//清除缓存
gets(s);
cn=atoi(s); // 是为了使输入的字符串转变为数字
if(cn1||cn3)
printf(\n\t输入错误,重选1-3:)
原创力文档


文档评论(0)