设计菜单选择趣味程序

合集下载

C++课程设计的目标、要求及评分标准

C++课程设计的目标、要求及评分标准

C++课程设计的目标、要求及评分标准1.1 目的一般来讲,课程设计比教学实验更复杂一些,涉及的深度更广些,并更加实用。

目的是通过课程设计的综合训练,培养学生实际分析问题、编程和动手能力,最终目标是想通过课程设计的形式,帮助学生系统掌握该门课程的主要内容,更好地完成教学任务。

另外,课程设计中较大的综合设计,可以分成几个小项目供学生分工合作,以培养团队协作精神。

1.2 课程设计结构及要求结构化程序设计使用的是功能化抽象,面向对象程序设计不仅能进行功能抽象,而且能进行数据抽象。

“对象”实际上是功能抽象和数据抽象的统一。

C++语言的“对象”是“类”的实例,课程设计的基础是设计类,所以类的有关概念是重点,尤其要抓住抽象、封装、继承和多态性等要素。

要求学生的课程设计中要涉及类、继承的使用。

类设计的重点是如何选择数据成员和成员函数。

成员函数设计的难点是选择函数类型及其参数传递方式。

数据类型及程序控制方式仍然是C++语言的基础;数组、指针、类和结构的使用方法是编程的核心技术。

学生学习时,常常避开多文件编程和使用文件,但这些要求是程序员必备的知识,因此课程设计中应加强这方面的训练。

本课程设计供选择了6个类型的设计题目,不是用一个独立的例子涵盖这些知识点,而是按层次逐步深入。

为了使学生理解它们之间如何相互配合,设计要求使用接近实际需要的方式编程。

简要说明如下:1.使用类和对象设计计算器和双向链表程序设计类就是根据数据封装的要求,抽象出合适的类。

换言之,就是如何选择数据成员和成员函数。

这部分的任务就是根据测试程序及其输出结果,设计一个满足要求的类。

这各类涉及到类的构造函数和析构函数,并要求使用多种方法实现本课程设计。

2.使用菜单选择趣味程序菜单是应用程序的界面。

控制语句用来改变程序的执行顺序,是实现结构化程序设计的基础。

这部分的任务是设计一个含有多个菜单项并且比较使用的菜单,通过菜单选择不同的功能。

文件操作是非常有用而重要的技术,需要多多练习。

第3章 设计菜单选择趣味程序

第3章 设计菜单选择趣味程序

第3章 设计菜单选择趣味基本作用 提供人机对话, 提供人机对话,以便让使用者选择应用系统 的各种功能; 的各种功能; 管理应用系统,控制各种功能模块的运行。 管理应用系统,控制各种功能模块的运行。
主要属性
1.标题: 1.标题:菜单项的标题 标题 2.编号: 2.编号:菜单项的名称 编号 3.接口: 3.接口:用来选定某菜单项 接口
3.1 设计一个菜单程序
3.1.1 设计要求 1.解一元二次方程 1.解一元二次方程 2.出圈游戏之一 2.出圈游戏之一 3.出圈游戏之二 3.出圈游戏之二 4.退出程序 4.退出程序 选择: 选择:1-4:
3.1.2 设计思想
1.实现循环和功能选择 1.实现循环和功能选择 菜单处理函数: 菜单处理函数:handle_menu(void) 输入选择用变量cn存储,它作为 输入选择用变量cn存储, cn存储 menu_select()函数的返回值提供给 menu_select()函数的返回值提供给 switch语句。 switch语句。 语句 得到cn的合理值 2. 得到 的合理值
设计菜单时要用到控制语句switch 语句来 设计菜单时要用到控制语句switch 语句来 改变程序执行的顺序,是实现结构化程序 改变程序执行的顺序, 设计的基础。 设计的基础。
设计菜单选择趣味程序
步骤: 步骤: 先设计一个含有多个菜单的菜单演示程序。 (1)先设计一个含有多个菜单的菜单演示程序。 为这些菜单项配上相应功能。 (2)为这些菜单项配上相应功能。
atoi函数 atoi函数 语法: 语法: #include <stdlib.h> int atoi( const char *str ); 功能:将字符串str str转换成一个整数并返回结 功能:将字符串str转换成一个整数并返回结 参数str 以数字开头,当函数从str 果。参数str 以数字开头,当函数从str 中读 到非数字字符则结束转换并将结果返回。 到非数字字符则结束转换并将结果返回。 例如: 例如: i = atoi( “512” ); 512” i 的值为 512

C++第一单元实验一第二题-菜单选择程序

C++第一单元实验一第二题-菜单选择程序

【设计题目】设计菜单选择趣味程序【设计要求】菜单是应用程序的界面,本题的任务是设计一个比较实用的菜单,通过菜单选择不同的功能。

设计分为两步:首先设计一个含有多个菜单项的菜单演示程序,然后再为这些菜单项配上相应的功能。

菜单内容程序运行后,界面给出3个菜单项的内容和输入提示。

1.解一元二次方程2.出圈游戏3.退出程序选择l-3:使用数字1-3来选择菜单项,执行相应的菜单项功能,其他输入则不起作用。

【总体设计】一、菜单驱动程序输入1-3之间的任意一个数字,即可进入相应选择项。

从程序测试结果可知,当选择相应选择项时,其输出信息分别为:解一元二次方程、出圈游戏和退出程序。

1.主程序的设计假设使用文件select.cpp,内容如下:/**********************************select.cpp主程序文件*********************************/#include"cpp2.h"void main(){handle_menu(); //调用菜单处理函数}2.实现循环和功能选择的设计-菜单处理函数/**********************************菜单处理函数*********************************/void handle_menu(void){for(; ;){switch(menu_select())//调用菜单选择函数{case 1:FindIt();//求解一元二次方程break;case 2:game();//出圈游戏break;case 3:cout<<"\t再见!\n";return;}}}这里使用for循环实现重复选择,假设输入选择用变量用cn存储,它作为menu_select()函数的返回值提供给switch语句。

3.得到cn的合理值的设计-菜单选择函数应该设计一个函数用来输出提示信息和处理输入,这个函数应该返回一个数值cn,以便供给switch语句使用。

使用菜单选择趣味程序

使用菜单选择趣味程序

攀枝花学院学生课程设计(论文)题目:使用菜单选择趣味程序学生姓名:张阳学号:201010804052 所在院(系):计算机学院专业:软件工程班级:2010级1班指导教师:何春燕2010年6月20日攀枝花学院本科学生课程设计任务书注:任务书由指导教师填写。

课程设计(论文)指导教师成绩评定表摘要生活在二十一世纪的我们,我们面临着生活的挑战,社会的快速发展,时代的不断更新。

越来越来多的现代科技占有主导地位,特别是科技方面的,尤为是计算机技术,在我们生活的各个领域广泛运用,占有一席之地,所谓的后来者居上。

本次课程设计的内容就是使用菜单选择趣味程序,其主要操作就是通过编写程序来完成菜单选项,然后通过调用函数来完成小程序的编写,还要用到我们学到的选择,嵌套,循环的方法的使用。

该课程主要是将我们的所学C语言运用于实践,在实践中学习,获得成长,锻炼我们的独立思考能力,动手操作能力,完善自己。

我会努力完成此次任务,真正获得知识。

关键词:菜单项,函数,调用目录摘要 (I)1 需求分析 (1)1.1 问题描述 (1)1.2 需求环境 (1)1.3 功能描述 (1)2 概要设计 (2)2.1 程序模块设计 (2)2.2程序流程图 (2)2.3 数据结构的设计 (3)2.3.1 选择结构 (3)2.3.2 调用函数 (3)3 详细设计 (4)3.1程序功能 (4)3.2趣味菜单程序 (4)4 测试与运行程序 (8)5程序运行感言 (10)结束语 (11)参考文献 (12)1 需求分析1.1 问题描述通常程序需要有一个顶级菜单,用户选择对应的菜单进入对应的功能。

程序中不同的功能通常使用不同的函数来实现,在设计这些函数的时候需要考虑函数(功能模块)的输入和输出。

输入数据如果比较简单可以通过函数的参数传递,如果比较多或者比较复杂则可以通过全局变量来传递。

函数的输出如果是一个数则可以通过return 函数带回,如果是多个结果则只能通过全局变量带回。

设计菜单程序(使用加减乘除菜单)

设计菜单程序(使用加减乘除菜单)
else cout<<"Once Error!!!!\n";
}
}
cout<<"You Score is "<<(100.0*number)/len<<endl;
}
void Div()
{ srand(time(0));
int x,y,answer,reslut,number,s, len, a;
a=rand()%4+1;
if(answer!=reslut)
{cout<<"Once again!\n";
cout<<endl;
cout<<x<<"/"<<y<<"=";
cin>>answer;
if(answer==reslut) {cout<<"Correct!\n"; number++;}
else cout<<"Once Error!!!!\n";
if(a==1) len=10;
else if(a==2) len=20;
else if(a==3) len=50;
else len=100;
//len=10;//test,测试程序时,可以使用10次的测试。
number=0;
for(int k=0;k<len;k++)
{
x=rand()%10; y=rand()%100;
default: break;
}
cout<<endl;

活动六 易语言 制作趣味小程序

活动六  易语言 制作趣味小程序

活动六 制作趣味小程序任务了解单选框组件和外形框组件的作用,进一步熟悉编辑框、按钮、时钟等的使用,学会利用易语言制作一些趣味性的小程序。

读一读单选框是一种专门用来进行单项选择的控件,一般在程序中勾选单选框后会触发程序中的某个事件。

外形框是一种专门用来绘制几何图形的控件,通过它系统会快速地绘制出矩形、正方形、圆、椭圆、圆角矩形、圆角正方形、横向线、纵向线七种几何图形。

试一试制作滚动公告1.新建一个空白的Windows 窗口程序,在设计窗口中放一个编辑框,在属性面板中将“是否允许多行”设为真,如图6-1,单击“内容”属性后的,在弹出的“请输入文本”对话框中输入文字,如图6-2。

图6-1 图6-2图6-32.在编辑框下面放两个单选框,分别将标题设为“横向移动”、“纵向移动”,在属性面板中将“横向移动”单选框的“选中”属性改为真;放入两个按钮,分别将标题设为“开始”、“停止”,放入一个时钟,最终界面效果如如图6-3。

图6-4图6-55.运行程序,会看到整个编辑框都向左或向上移动,但“停止”按钮不发挥作用,如图6-6。

图6-66.单击“启动窗口”按钮,回到设计窗口,双击“停止”按钮,进入代码编写界面,在“_按钮2_被单击”子程序中输入代码“ 时钟1.时钟周期 = 0”,用来让滚动公告停止运动。

试一试模拟红绿灯装换图6-73.双击“开始”按钮,进入代码编写界面,在“_按钮1_被单击”子程序中输入代码,如图6-4。

4.执行“插入”→“子程序”插入“_时钟1_周期事件”子程序,在该子程序中输入代码,如图6-5。

1.在新建的Windows 窗口程序中进行界面设计,从组件箱中拖三个外形框组件到设计窗口,在属性面板中将三个外形框组件的“外形”属性都改为“圆”如图6-7。

2.然后在三个外形框下面放三个标签、两个编辑框、两个按钮和一个时钟组件,调整大小和位置,并在属性面板中修改相应的属性,最终界面效果如图6-8。

图6-83.在“窗口程序集1”下添加变量“当前灯”,类型设为文本型,在“_按钮1_被单击”子程序中添加代码“时钟1.时钟周期=1000 子程序红灯()”。

c++课程设计之菜单选择

c++课程设计之菜单选择

c++课程设计之菜单选择a) 从键盘输⼊n个数,选择升序还是降序输出b)创新了⽇历c) 添加了射箭游戏d)还加⼊了好玩的24点游戏学⽣签名: 年⽉⽇课程设计(论⽂)评阅意见等 级项⽬课程设计态度评价出勤情况评价设计中创新性评价论⽂书写规范化评价综合评定等级优秀好好6补充好良好好好4补充好中等好好2补充好及格好好⽆补充好不及格不好不好⽆补充不好评阅⼈王更⽣职称教授2017年 6⽉ 16 ⽇⽬ 录⼀、设计思路⼆、功能实现详细设计三、测试结果分析四、⽤户⼿册五、设计体会⼀、设计思路⾸先,(说明⼀下,⼀直觉得那些做游戏开发的⼈⾮常厉害,于是,我就选了我们课设⾥⾯的射箭游戏来做)在做这个程序之前,⾃⼰特意去玩了⼀些射箭游戏qaq,虽然这个射箭游戏玩起来简单,但是要⾃⼰来做的话,就很难了。

(对于我来说的话)⼀开始,我在想那个射箭的箭要怎么来写,肯定是要⽤字符来做那个箭头的,这就需要很多个for循环来实现了,然后百度上找代码,发现百度上没有qaq(也许是⾃⼰⽐较笨吧,找不到),然后就想起了⽼师的那个菜单的设计,⾥⾯有那个射箭游戏的代码,然后我就拿来了。

(说实话,代码看了⼏天⾃⼰才看懂啊,感觉⾃⼰真的好笨)。

⼀开始,觉的这个射箭游戏的内容也太简单了吧,于是,我起初的思路是这样的,(原先的代码运⾏是只要箭头⼀碰到那个墙壁的话游戏就结束了)我想那个能不能碰到箭头后可以选择,如果你没选择结束游戏的话,碰到墙壁的话,箭头就转向,再继续⾛(会转弯的箭诶,哈哈)我想了⼀天之后,发现代码还是实现不了(我真的好笨呐),然后,我就换了⼀种休⼲的⽅法,写⼀个递归函数吧那个游戏弄成⼀个循环的了(貌似看起来更⾼级了⼀点吧),然后你要选择特定的指令这个游戏才会结束,退出程序。

于是就写了⼏个函数最后还补充了⼀个24点游戏和⼀个⽇历。

1,实现循环和功能选择:编写⼀个菜单函数menu(),⽤while循环控制菜单的重复选择,⽤switch 选择结构对⽤户的选择,并且实现相应的功能。

python经典趣味24点游戏程序设计

python经典趣味24点游戏程序设计

python经典趣味24点游戏程序设计⼀、游戏玩法介绍:24点游戏是⼉时玩的主要益智类游戏之⼀,玩法为:从⼀副扑克中抽取4张牌,对4张牌使⽤加减乘除中的任何⽅法,使计算结果为24。

例如,2,3,4,6,通过( ( ( 4 + 6 ) - 2 ) * 3 ) = 24,最快算出24者剩。

⼆、设计思路:由于设计到了表达式,很⾃然的想到了是否可以使⽤表达式树来设计程序。

本程序的确使⽤了表达式树,也是程序最关键的环节。

简要概括为:先列出所有表达式的可能性,然后运⽤表达式树计算表达式的值。

程序中⼤量的运⽤了递归,各个递归式不是很复杂,⼤家耐⼼看看,应该是能看懂的表达式树:表达式树的所有叶⼦节点均为操作数(operand),其他节点为运算符(operator)。

由于本例中都是⼆元运算,所以表达式树是⼆叉树。

下图就是⼀个表达式树具体步骤:1、遍历所有表达式的可能情况遍历分为两部分,⼀部分遍历出操作数的所有可能,然后是运算符的所有可能。

全排列的计算采⽤了递归的思想#返回⼀个列表的全排列的列表集合def list_result(l):if len(l) == 1:return [l]all_result = []for index,item in enumerate(l):r = list_result(l[0:index] + l[index+1:])map(lambda x : x.append(item),r)all_result.extend(r)return all_result2、根据传⼊的表达式的值,构造表达式树由于表达式树的特点,所有操作数均为叶⼦节点,操作符为⾮叶⼦节点,⽽⼀个表达式(例如( ( ( 6 + 4 ) - 2 ) * 3 ) = 24) 只有3个运算符,即⼀颗表达式树只有3个⾮叶⼦节点。

所以树的形状只有两种可能,就直接写死了#树节点class Node:def __init__(self, val):self.val = valself.left = Noneself.right = Nonedef one_expression_tree(operators, operands):root_node = Node(operators[0])operator1 = Node(operators[1])operator2 = Node(operators[2])operand0 = Node(operands[0])operand1 = Node(operands[1])operand2 = Node(operands[2])operand3 = Node(operands[3])root_node.left = operator1root_node.right =operand0operator1.left = operator2operator1.right = operand1operator2.left = operand2operator2.right = operand3return root_nodedef two_expression_tree(operators, operands):root_node = Node(operators[0])operator1 = Node(operators[1])operator2 = Node(operators[2])operand0 = Node(operands[0])operand1 = Node(operands[1])operand2 = Node(operands[2])operand3 = Node(operands[3])root_node.left = operator1root_node.right =operator2operator1.left = operand0operator1.right = operand1operator2.left = operand2operator2.right = operand3return root_node3、计算表达式树的值也运⽤了递归#根据两个数和⼀个符号,计算值def cal(a, b, operator):return operator == '+' and float(a) + float(b) or operator == '-' and float(a) - float(b) or operator == '*' and float(a) * float(b) or operator == '÷' and float(a)/float(b) def cal_tree(node):if node.left is None:return node.valreturn cal(cal_tree(node.left), cal_tree(node.right), node.val)4、输出所有可能的表达式还是运⽤了递归def print_expression_tree(root):print_node(root)print ' = 24'def print_node(node):if node is None :returnif node.left is None and node.right is None:print node.val,else:print '(',print_node(node.left)print node.val,print_node(node.right)print ')',#print ' ( %s %s %s ) ' % (print_node(node.left), node.val, print_node(node.right)),5、输出结果三、所有源码#coding:utf-8from __future__ import divisionfrom Node import Nodedef calculate(nums):nums_possible = list_result(nums)operators_possible = list_result(['+','-','*','÷'])goods_noods = []for nums in nums_possible:for op in operators_possible:node = one_expression_tree(op, nums)if cal_tree(node) == 24:goods_noods.append(node)node = two_expression_tree(op, nums)if cal_tree(node) == 24:goods_noods.append(node)map(lambda node: print_expression_tree(node), goods_noods)def cal_tree(node):if node.left is None:return node.valreturn cal(cal_tree(node.left), cal_tree(node.right), node.val)#根据两个数和⼀个符号,计算值def cal(a, b, operator):return operator == '+' and float(a) + float(b) or operator == '-' and float(a) - float(b) or operator == '*' and float(a) * float(b) or operator == '÷' and float(a)/float(b) def one_expression_tree(operators, operands):root_node = Node(operators[0])operator1 = Node(operators[1])operator2 = Node(operators[2])operand0 = Node(operands[0])operand1 = Node(operands[1])operand2 = Node(operands[2])operand3 = Node(operands[3])root_node.left = operator1root_node.right =operand0operator1.left = operator2operator1.right = operand1operator2.left = operand2operator2.right = operand3return root_nodedef two_expression_tree(operators, operands):root_node = Node(operators[0])operator1 = Node(operators[1])operator2 = Node(operators[2])operand0 = Node(operands[0])operand1 = Node(operands[1])operand2 = Node(operands[2])operand3 = Node(operands[3])root_node.left = operator1root_node.right =operator2operator1.left = operand0operator1.right = operand1operator2.left = operand2operator2.right = operand3return root_node#返回⼀个列表的全排列的列表集合def list_result(l):if len(l) == 1:return [l]all_result = []for index,item in enumerate(l):r = list_result(l[0:index] + l[index+1:])map(lambda x : x.append(item),r)all_result.extend(r)return all_resultdef print_expression_tree(root):print_node(root)print ' = 24'def print_node(node):if node is None :returnif node.left is None and node.right is None:print node.val,else:print '(',print_node(node.left)print node.val,print_node(node.right)print ')',if __name__ == '__main__':calculate([2,3,4,6])以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录1 题目内容及设计要求 (1)2 总体设计 (2)2.1 总体功能框图 (2)2.2 类的设计说明 (3)2.3 主要算法流程图 (3)3 程序清单及注释 (5)4 运行结果与分析 (13)5 总结 (17)6 参考文献 (17)1题目内容及设计要求题目: 设计菜单选择趣味程序内容及要求:设计一个比较使用的菜单,通过菜单选择不同的功能。

设计分两步:首先涉及一个含有多个菜单项的菜单演示程序,然后再为这些菜单项配上相应的功能。

出圈游戏一:(1)设计一个SeqList类。

(2)在头文”head.h”中声明类,并使用默认的内联函数方式定义它们。

(3)使用类的数组来求解。

(4)用Joseph()函数求解出圈,使用函数game1()作为菜单项。

(5)在文件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总体设计一、菜单驱动程序二、求解一元二次方程三、设计出圈游戏32.1 总体功能框图2.2 类的设计说明类FindRoot的设计为了方便,除了将方程系数设计为属性之外,还将方程的根x1和x2,以及用来作为判定条件的d(d=b*b-4*a*c)均设计成类的属性。

如图1是其类图,图2是对象obj的对象图。

其中,成员函数Find()是用来求方程的根,Display()则用来输出结果。

由此可见,它们都需要用到属性d。

可在构造函数中求出d的值,其他成员函数直接使用这个属性,不必再去计算。

类SeqList的设计这里要求使用名字,而在名字的字符串中,可能存在空格。

可以为该类设计两个属性,一个是字符串,用来存储名字。

另一个是整数,用来表示报数的位置。

若使用类的数组,则可以通过数组的下标,将位置和名字对应起来。

在声明的类中,同时定义的成员函数就是默认的内联函数。

另外,考虑到使用类的数组,所以不为它定义构造函数,而是用系统提供的默认无参数构造函数2.3 主要算法流程图3程序清单及注释#if!defined(CPP1_H)#define CPP1_H#include<iostream>#include<math.h>#include<string.h>using namespace std; class FindRoot{};class SeqList{};void FindIt();void handle_menu(void); int menu_select();void game();void Joseph(SeqList[],int);#endif//以上为头文件#include"cpp1.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(cn<1||cn>3)printf("\n\t输入错误,重选1-3:");elsebreak;}return cn;}#include<iostream>using namespace std;class SeqList{int num;char name[10]; 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 c[20],int length,int n) //使用数组作为参数,同时需要将人数传给它{int i,j=0,b=0,r,k;for(k=0;k<n;k++)//多次循环n次,最后输出结果{for(i=0;i<n;i++){if(c[i].GetNum()!=0)//每次退出的,num值都将赋值为0,下次扫描时,将跳过。

{ j++;if(j==length)//输出退出的数组C[i]中的字符串,并且相应的num值赋值为0,为下次循环不在被扫描{ c[i].DispName();cout<<" ";j=0;c[i].SetNum(0);}}}}}void game(){cout<<"\t出圈小游戏"<<endl;int m,i,n;cout<<"请输入玩游戏的人数:";cin>>n;cout<<"请输入报到什么数字出圈:";cin>>m;SeqList c[20];char f[10];for(i=0;i<n;i++){c[i].SetNum(i+1);cout<<"第"<<i+1<<"的名字为:"; cin>>f;c[i].SetName(f);}Joseph(c,m,n);cout<<endl;}#include<iostream>#include<math.h>using namespace std;class FindRoot{float a,b,c,d,x1,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时,算出两个不同的根{x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);}if(d==0) //d==0.时,算出两个相同的根{x1=x2=(-b)/(2*a);}if(d<0) //d<0时,算出复数根{x1=(-b)/(2*a);x=-b;}}void DisPlay() //调用此函数时,通过FindRoot()函数算出d的取值,输出相对应的根。

{if(d>0){cout<<"x1="<<x1<<endl; cout<<"x2="<<x2<<endl;}if(d==0){cout<<"x1=x2="<<x1<<endl; }if(d<0){cout<<"x1="<<x1<<"+"<<-d<<"i"<<endl;cout<<"x2="<<x1<<"-"<<-d<<"i"<<endl;}}};void FindIt(){float a,b,c;cout<<"此程序求解二元一次方程aX2+bx+c=0的两个根X1,X2"<<endl;cout<<"请输入方程系数a,b,c"<<endl;cin>>a>>b>>c;FindRoot jiu(a,b,c);jiu.Find();jiu.DisPlay();cout<<endl;}4运行结果与分析1.解方程运行结果如下:1.解一元二次方程2.出圈游戏3.退出程序选择1-3:1图4-1 运行结果图结果分析:选择菜单上的3后,通过调用解方程的函数,提示输入二元一次方程的系数,运行最后显示方程的根。

2.出圈运行结果如下:1.解一元二次方程2.出圈游戏3.退出程序选择1-3:2图4-2 运行结果图结果分析:选择菜单上的2后,主程序调用出圈游戏的函数,根据提示输入玩游戏的人数和报到什么树的人出圈,然后输入玩游戏人的姓名,最后运行依次显示先出圈人的姓名。

3.退出运行结果如下:1.解一元二次方程2.出圈游戏3.退出程序选择1-3:3谢谢使用!再见!图4-3 运行结果图结果分析:选择菜单上的3后,显示谢谢使用!再见!结束程序运行。

5总结这次课设首次接触编排工程类的程序,首先对文件的组建很不是熟悉,再加上对题目的些许不了解,导致编程工作缓慢。

后来请教老师后,老师耐心的讲解工程类的文件的组装和头文件的设计,使我让我马上加快了编程的速度。

期间,也遇到些程序运行无法实现最终结果的情况,经过和同学的讨论和分析最终解决了问题。

在这次课设中,我感到自己还有许多知识掌握的不是很透彻,还应更加深入的去研究问题,解决问题才能提高。

而且,也感觉到了同学间互相献智力量。

也意识到,面对一直无法突破的困难时,应积极求助周围,寻求帮助,争取多赢!6参考文献[1]李爱华,程磊著. 面向对象程序设计(C++语言).北京:清华大学出版社,2010[2]刘振安,刘燕君著. C++程序设计课程设计. 北京: 机械工业出版社,2004[3]谭浩强著. C++程序设计实践指导. 北京:清华大学出版社,2005。

相关文档
最新文档