菜单选择趣味程序

合集下载

菜单设计与圈出游戏实验报告

菜单设计与圈出游戏实验报告

C++实验报告
题目:菜单设计与出圈游戏
班级: 1602 学号: 161010113 姓名:龚国煌
一、实验目的与要求:
本课程设计的要求,就是设计这个问题的求解,要求使用不同的存储结构来解决此问题:
1.使用数组
2.使用向量
3.使用链表
并将通过菜单来选择运行相应的程序。

二、实验任务:
假设有人数为m个人的一个小组,他们按照顺时针方式围坐一圈。

一开始任选一个正整数n作为报数的上限,自从第一个人开始,或者从某一个人开始报数,按顺时针方向依次报数,报到n停止报数,报数为n 的人出列,然后从他所在的位置的下一个人,重新从一开始报数,报到n时停止报数,报数为n的人出列,如此下去,直到所有的人全部出来为止。

要求按他们出列的顺序输出他们原来的序号。

三、数据测试和运行结果:
数组
向量
链表
四、实验分析:
这次实验分别用了三种储存结构去实现约瑟夫环,并且添加了菜单选择储存结构。

比较这三种储存结构,各有优缺点,也有各自的特色。

链表的优点是可以随时添加新的元素,方便插入和修改,带所需的储存空间加大。

向量相当于一个动态数组,随机储存方便,但在数据超过默认分配空间后需要重新分配、拷贝释放,比较麻烦。

而数组这个平常用的比较多的储存结构,由于插入操作只需更改节点信息而不用更改地址,相比于链表查询效率要高一些,但其固定结构,不适合动态储存的缺点也是不可忽视的。

经过对这三种储存结构的代码实现和对比,我能更加熟练地运用它们,对这三种结构的操作更加清晰了,各种操作名词的记忆也更加牢固。

第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

设计菜单选择趣味程序

设计菜单选择趣味程序

目录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的值,其他成员函数直接使用这个属性,不必再去计算。

vb趣味程序教案

vb趣味程序教案

教学进度表授课时间2014年9月16日第2周星期2 总第1课时课题QQ登录窗口的制作——初步认识计算机语言课型新授课教学时数1课时教学目标(一)知识与技能:了解计算机语言;熟悉VB开发环境了解VB中的对象、属性、事件学会编写窗体的设计代码,并能运行程序(二)过程与方法:通过QQ登陆窗体的制作了解并掌握程序编写的整个过程(三)情感、态度与价值观:通过制作学生最熟悉的QQ登录界面,使学生对VB程序设计产生浓厚的兴趣。

教材分析重点属性、方法和事件难点VB的集成开发环境教学方法讲授法、演示法、练习法、任务驱动法教学情景设计【学习要点】了解计算机语言;了解VB语言的特点;熟悉VB开发环境【新课讲授】一、了解计算机语言各种软件,包括Windows、Word、PowerPoint、各种游戏等都是计算机语言编写出来的。

(演示)如贪吃蛇游戏、健康指标计算器等等。

常见的高级语言1.BASIC。

入门者首选语言。

指令少,容易上手,易于掌握。

2.PASCAL。

适合科学计算、数据处理,运行编译速度快。

3.C语言。

主要适用于应用软件的开发,计算机专业人员的必修课。

4.JAVA、.Net、PHP、C#、HTML……二、VB语言介绍VB是Visual Basic的简称,它对学习者的要求不高,但本身效率高、功能强大、实用性强。

主要有如下特点:面向对象、事件驱动、软件的集成式开发、结构化。

面向对象和面向过程的区别:例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。

把上面每个步骤用分别的函数来实现,问题就解决了。

而面向对象的设计则是从另外的思路来解决问题。

整个五子棋可以分为:1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。

第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

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语句使用。

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

设计菜单程序(使用加减乘除菜单)
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;

勾选菜单模板

勾选菜单模板

勾选菜单模板篇一:EXCEL2007中如何设置打勾复选框EXCEL2007中如何设置框,然后点击打钩。

利用功能区中的开发工具选项,如下图最后一个工具。

如果没有此工具,则按照以下步骤调出此工具。

点击EXCEL表格左上角中的那个倒三角符号,里面有个其它命令,点击它。

然后就会进入以下对话框,再点击左边的常用选项,然后勾选右边的在“功能区宣示开发工具选项卡”,最后点击确认,就会出现以上图片中的开发工具选项。

现在,我们就可以制作这个可以打勾的方框了。

点击开发工具,显示以下对话框,然后,点击插入那个倒三角符号,进去在表单控件中,点击那个打?的方框,然后,鼠标移到表格中你想要做方框的地方,点击一下,会出现删掉后面不需要的字,留下方框,就可以了。

最后你点击方框,就会出现?,再点击下,就没?了。

篇二:C++菜单选择趣味程序课设设计(模板)1课程设计(论文)任务书院业班课程设计(论文)题目 :学生成绩管理系统设计报告二、课程设计(论文)工作自2015 年 6 月 15 日起至 2015 年 6 月 26 日止三、课程设计(论文) 地点: 创新大楼四、课程设计(论文)内容要求:1. 本课程设计的目的(1)掌握C++语言的程序设计方法;(2)理论联系实际,进一步提高学生的软件开发技术;(3)培养学生分析、解决问题的能力;(4)提高学生实践论文撰写能力。

2. 课程设计的任务及要求1) 基本要求:(1) 对系统所需完成的功能分析;(2) 使用Visual C++编译器进行程序编译;(3) 提出系统的设计方案;(4) 对所设计源程序进行调试。

2) 创新要求在基本要求达到后,可进行创新设计。

3) 课程设计论文编写要求(1)理论设计部分以课程设计论文的形式提交,格式必2须按照课程设计论文标准格式进行书写和装订。

(2)课程设计报告(论文)包括设计任务分析(包括设计任务书、设计运行环境、同组人员及分工等)、系统总框图、每个模块的设计分析、列出所有定义的函数及说明、存在的问题与不足及对策、附上程序源代码。

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

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

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

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

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

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

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

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

基于PBL的教学设计方法在计算机专业方面的实践

基于PBL的教学设计方法在计算机专业方面的实践

基于PBL的教学设计方法在计算机专业方面的实践作者:黄雅琼来源:《电子世界》2013年第09期【摘要】基于问题的学习(Problem-Based-Learning,简称PBL),作为一种教学策略,其特点是以“解决问题为中心”,通过让学生分小组后,以合作的形式共同解决复杂的问题,来学习隐含于问题背后的科学知识,以促进解决问题、自主学习和终身学习能力的发展。

本论文主要探讨了网络环境下的PBL教学设计方法,并将其应用到计算机专业方面的实践上。

【关键词】PBL;网络环境;教学设计;实践应用1.PBL的基本理论1.1 PBL的定义PBL是problem—based Leaning的简称,是指把学习置于复杂的、有意义的问题情境中,通过让学生以小组合作的形式共同解决复杂的、实际的或真实性的问题,来学习隐含于问题背后的科学知识,以促进他们的解决问题、自主学习和终身学习能力的发展。

根据PBL的定义,我们既可以把它看作一种学习模式,亦可以把它看作一种教学策略。

在本文中从教学策略的角度出发。

在PBL中,问题(problem)是整个过程的起点,学生为了解决这个问题,必须运用已学过的知识(当然此知识可能来自一个学科,亦可能打破学科的界限,需要多学科的综合运用才能解决),除此之外,还必须通过自我指导学习和小组合作学习掌握相关的概念和原理,每一个problem都需要较多的学习者共同经过较长时间的努力方能解决。

教师在其中只是扮演着他们在学习过程中的指导者、促进者、监督者、管理者甚至是合作研究者的角色。

1.2 PBL的特征第一,以问题为中心。

PBL的起点是问题,教师首先提出问题,引发学生的兴趣,在解决问题的过程中带出学习的内容,学习是围绕着一个或一系列的问题来展开的。

整个的学习过程实际上就是一个遇到问题,分析问题,解决问题的过程。

第二,以学生为中心。

PBL是一种让学生主动学习的教学模式。

在解决问题的过程中,学生要组成多人的学习小组对问题进行分析,主动应用以前所学习过的知识,搜集一些新的相关概念,甚至是跨学科的交叉信息,来制定解决问题的计划,并且实施此计划。

菜单选择程序

菜单选择程序

#include<stdio.h>#include<stdlib.h>#define MAX 100struct addr{ // 地址char name[30]; //名字char street[40]; //住址街道char city[20]; //城市char state[3]; //性别unsigned long int zip;}add_list[MAX];void init_list(void),enter(void);void delete(void),list(void);void load(void),save(void);int menu_select(void),find_free(void);int main(void){char choice;init_list();/*initialize the structure array*/for(;;){ //循环选择进入主菜单choice=menu_select();switch(choice){case 1:enter();break;case 2:delete();break;case 3:list();break;case 4:save();break;case 5:load();break;case 6:exit(0);}}return 0;}/*Initialize the list*/void init_list(void){register int t;for(t=0;t<MAX;++t)add_list[t].name[0]='0';}/*Get a menu selection*/int menu_select(void) //菜单选择{char s[80];int c;printf("1.Enter a name\n");printf("2.Delete a name\n");printf("3.List the file\n");printf("4.Save the file\n");printf("5.Load the file\n");printf("6.Quit\n");do{printf("\nEnter your choice:"); //选择gets(s);c=atoi(s);}while(c<0||c>6); // 循环条件return c;}/*Input addresses into the list*/void enter(void) //进入菜单输入自己的信息{int slot;char s[80];slot=find_free();if(slot==-1){ //当slot为-1时就退出printf("\nList Full");return;}printf("Enter name:");gets(add_list[slot].name);printf("Enter street:");gets(add_list[slot].street);printf("Enter city:");gets(add_list[slot].city);printf("Enter state:");gets(add_list[slot].state);printf("Enter zip:");gets(s);add_list[slot].zip=strtoul(s,'\0',10);}/*Find an unused structure*/int find_free(void){register int t;for(t=0;add_list[t].name[0]&&t<MAX;++t);if(t==MAX)return -1;/*no slots free*/return t;}/*Delete an address*/void delete(void) //删除地址{register int slot;char s[80];printf("enter record # :");gets(s);slot=atoi(s);if(slot>=0&&slot<MAX)add_list[slot].name[0]='\0';}/*Display the list on the screen*/void list(void) //浏览你输入的信息{register int t;for(t=0;t<MAX;++t){if(add_list[t].name[0]){printf("%s\n",add_list[t].name);printf("%s\n",add_list[t].street);printf("%s\n",add_list[t].city);printf("%s\n",add_list[t].state);printf("%s\n",add_list[t].zip);}}printf("\n\n");}/*Save the list*/void save(void) //存储信息{FILE *fp;register int i;if((fp=fopen("maillist","wb"))==NULL)printf("Cannot open file\n");return;for(i=0;i<MAX;i++)if(*add_list[i].name)if(fwrite(&add_list[i],sizeof(struct addr),1,fp)!=1)printf("File write error\n");fclose(fp);}/*Load the file*/void load(void){FILE *fp;register int i;if((fp=fopen("maillist","rb"))==NULL){printf("Cannot open file\n");return;}init_list();for(i=0;i<MAX;i++)if(fread(&add_list[i],sizeof(struct addr),1,fp)!=1){if(feof(fp))break;printf("File read error\n");}fclose(fp);}。

Excel中使用VBA制作一个恶作剧小程序的操作方法

Excel中使用VBA制作一个恶作剧小程序的操作方法

Excel中使用VBA制作一个恶作剧小程序的操作方法excel中使用vba制作一个恶作剧小程序,具体的操作是怎么样进行的?今天,店铺就教大家在Excel中使用VBA制作一个恶作剧小程序的操作方法。

Excel中使用VBA制作一个恶作剧小程序的操作步骤如下:首先我们打开一个工作样表作为例子。

使用alt+f11组合快捷键进入vbe编辑器,插入一个新模块,并在模块中输入以下代码:Option ExplicitSub 恶作剧()Dim Num%Num = InputBox("选择1-5任意一个数字测试你的性格")MsgBox (Choose(Num, "宅", "腐", "妖", "艳", "man"))End Sub我们声明了一个变量Num为整数型,并将其赋值为输入值,并且提示是输入1-5之间任意一个数字。

然后在选取之后,我们使用msgbox将其结果显示出来,这里我们使用choose函数来做选择,并给出对应的1-5的选项。

这里我们没有对输入的数字进行验证,如果输入小于1,或者是大于5的数字,那么choose函数会因为数字下标超出而报错。

6所以我们必须对Num变量的输入值进行一个限制,限制的方法可以使用if函数对Num变量值进行判断,如果出现错误则显示错误并且退出过程。

If Num < 1 Or Num > 5 Then MsgBox ("输入错误")If Num < 1 Or Num > 5 Then Exit SubExcel中使用VBA制作一个恶作剧小程序的操作。

vb趣味程序教案

vb趣味程序教案

form2.Show
form1.Hide
二、 登录窗体的完成
1. 如果用户在登录窗体输入的账号和密码与注册窗体输入的一致,则显示登录后
的窗口,否则提示“账号或密码错误”。
2. 退出”按钮代码为 End;
3. “登录”按钮代码为:
If user = Text3.Text And pass = Text4.Text Then
常见的高级语言 1.BASIC。 入门者首选语言。指令少,容易上手,易于掌握。 2.PASCAL。适合科学计算、数据处理,运行编译速度快。 3.C 语言。主要适用于应用软件的开发,计算机专业人员的必修课。 4.JAVA、.Net、PHP、C#、HTML…… 二、VB 语言介绍 VB 是 Visual Basic 的简称,它对学习者的要求不高,但本身效率高、功能 强大、实用性强。主要有如下特点:面向对象、事件驱动、软件的集成式开发、 结构化。 面向对象和面向过程的区别: 例如五子棋,面向过程的设计思路就是首先分析问题的步骤: 1、开始游戏, 2、黑子先走, 3、绘制画面, 4、判断输赢, 5、轮到白子, 6、绘制画面, 7、判断输赢,
析 难点 对顺序结构的理解和运用;Label 和 TextBox 的使用 教学方法 自学法、练习法、任务驱动法
教学情景设计
【新课引入】展示本节课任务:完成分数计算器的制作。 【学生练习】 第一个窗体中:长方形计算按钮代码提示: 长方形面积计算代码提示:
教 学 后 记
授课时间
2014 年 11 月 4 日 第 10 周 星期 2
教学进度表
周次
3 4 5 8、9 10 12
时间
9月16日 9月23日 9月28日 10月21日、28日 11月4日 11月18日

VB编写各种趣味小程序(附代码)

VB编写各种趣味小程序(附代码)

VB编写各种趣味小程序(附代码)一、鸟巢绘制二、加密三、解密四、蝴蝶飞舞五、文本编辑六、统计七、小球跳动八、计算器(彩票摇奖)九、学生信息录入十、矩阵转置十一、带有进度条的倒计时程序十二、加减乘除随机数题十三、计算器十四、抽奖一、鸟巢绘制Private Sub Form_Click()ClsDim r, xi, yi, xj, yj, x0, y0, aif As Singler = Form10.ScaleHeight / 2x0 = Form10.ScaleWidth / 2y0 = Form10.ScaleHeight / 2n = 16aif = 3.14159 * 2 / nFor i = 1 To nxi = r * Cos(i * aif) + x0yi = r * Sin(i * aif) + y0For j = i To nxj = r * Cos(j * aif) + x0yj = r * Sin(j * aif) + y0Line (xi, yi)-(xj, yj), QBColor(i - 1)PSet (xi, yi)Print i - 1Next jNext iEnd SubPrivate Sub Form_Load()Print "要求:";Print "1.将圆周等分成16份;"Print "2.每个等分点要标记成0-16的数字;" Print "3.按样本图的图案画图。

"End Sub附图:二、加密Function code(ByVal s$, ByVal key%) Dim c As String * 1, iAsc%code = ""For i = 1 To Len(s)c = Mid$(s, i, 1)Select Case cCase "A" To "Z"iAsc = Asc(c) + keyIf iAsc > Asc("Z") Then iAsc = iAsc - 26 code = code + Chr(iAsc)Case "a" To "z"iAsc = Asc(c) + keyIf iAsc > Asc("z") Then iAsc = iAsc - 26 code = code + Chr(iAsc)Case Elsecode = code + cEnd SelectNext iEnd FunctionPrivate Sub close_Click()Form11.HideForm1.ShowEnd SubPrivate Sub Jiami_Click()Text2 = code(Text1, 2)End SubPrivate Sub open_Click()CommonDialog1.Action = 1Text1.Text = ""Open CommonDialog1.FileName For Input As #1Dim counter As IntegerDim workarea(25000) As StringProgressBar1.min = LBound(workarea)ProgressBar1.max = UBound(workarea)ProgressBar1.Visible = TrueProgressBar1.Value = ProgressBar1.minFor counter = LBound(workarea) To UBound(workarea) workarea(counter) = "initial value " & counter ProgressBar1.Value = counterNext counterDo While Not EOF(1)Line Input #1, inputdataText1.Text = Text1.Text + inputdata + vbCrLfLoopClose #1End SubPrivate Sub save_Click()CommonDialog1.FileName = "a1.txt"CommonDialog1.DefaultExt = "txt"CommonDialog1.Action = 2Open CommonDialog1.FileName For Output As #1Print #1, Text2.TextClose #1End Sub三、解密Function UnCode(ByVal s$, ByVal key%)Dim c As String * 1, iAsc%UnCode = ""For i = 1 To Len(s)c = Mid$(s, i, 1)Select Case cCase "A" To "Z"iAsc = Asc("c") - keyIf iAsc < Asc("A") Then iAsc = iAsc + 26UnCode = UnCode + Chr(iAsc)Case "a" To "z"iAsc = Asc(c) - keyIf iAsc < Asc("a") Then iAsc = iAsc + 26UnCode = UnCode + Chr(iAsc)Case ElseUnCode = UnCode + cEnd SelectNext iEnd FunctionPrivate Sub close_Click()Form2.HideForm1.ShowEnd SubPrivate Sub Jiemi_Click()Text2 = UnCode(Text1, 2)End SubPrivate Sub open_Click()CommonDialog1.Action = 1Text1.Text = ""Open CommonDialog1.FileName For Input As #1Dim counter As IntegerDim workarea(25000) As StringProgressBar1.min = LBound(workarea) ProgressBar1.max = UBound(workarea) ProgressBar1.Visible = TrueProgressBar1.Value = ProgressBar1.minFor counter = LBound(workarea) To UBound(workarea) workarea(counter) = "initial value " & counter ProgressBar1.Value = counterNext counterDo While Not EOF(1)Line Input #1, inputdataText1.Text = Text1.Text + inputdata + vbCrLfLoopClose #1End SubPrivate Sub save_Click()CommonDialog1.FileName = "a.txt" CommonDialog1.DefaultExt = "txt" CommonDialog1.Action = 2Open CommonDialog1.FileName For Output As #1 Print #1, Text2.TextClose #1End Sub四、蝴蝶飞舞Private Sub Form_Load()Print "蝴蝶飞出窗体后重新定位到左下方再向右上方飞" End SubPrivate Sub Timer1_Timer()Static PickBmp As IntegerIf PickBmp = 0 ThenImage1.Picture = Image2.PicturePickBmp = 1ElseImage1.Picture = Image3.PicturePickBmp = 0End IfCall mymoveEnd SubSub mymove()Image1.Move Image1.Left + 40, Image1.Top - 25If Image1.Top <= 0 ThenImage1.Left = 0Image1.Top = 2325End IfEnd Sub图:五、文本编辑Private Sub Copy_Click()Clipboard.ClearClipboard.SetText RichTextBox1.SelTextEnd SubPrivate Sub Cut_Click()Clipboard.ClearClipboard.SetText RichTextBox1.SelTextRichTextBox1.SelText = ""End SubPrivate Sub Exit_Click()Form3.HideForm1.ShowEnd SubPrivate Sub Font_Click()CommonDialog1.Flags = cdlCFBoth Or cdlCFEffects CommonDialog1.Action = 4RichTextBox1.FontName = CommonDialog1.FontName RichTextBox1.FontSize = CommonDialog1.FontSize RichTextBox1.FontBold = CommonDialog1.FontBold RichTextBox1.FontItalic = CommonDialog1.FontItalic RichTextBox1.FontStrikethru = CommonDialog1.FontStrikethru RichTextBox1.FontUnderline = CommonDialog1.FontUnderline RichTextBox1.ForeColor = CommonDialog1.ColorEnd SubPrivate Sub Form_Load()Print "注:"Print "1.'打开'对话框的初始文件夹应是所要打开文件所在的" Print "文件夹,将提供的xz.txt文件打开;"Print "2.要实现将选定的内容格式化,必须在工具箱中添加" Print "RichTextBox控件(Microsoft Rich Textbox Comtrol 6.0)" Print "并在帮助菜单中查阅其字体设置的相关属性。

设计菜单选择趣味程序

设计菜单选择趣味程序
#en dif//以上为头文件
#i nclude"cpp1.h"
using n amespace std;
void mai n()
{coutvv"\t欢迎使用菜单选择趣味小程序"<<endl; ha ndle_me nu();//调用菜单处理函数
}
void han dle_me nu( void)
{
cout<<"\t1.解一元二次方程\n";
cout«"\t2.出圈游戏\n";
cout«"\t3.退出程序\n";
cout<<"\t请选择1-3:";
for(;;)
{fflush(stdin);//清除缓存
gets(s);
cn
if(c n<1||c n>3)
printf("\n\t输入错误,重选1-3:");
for(k=0;k<n;k++)〃多次循环n次,最后输出结果
{
for(i=0;i< n;i++)
{
if(c[i].GetNum()!=O)〃每次退出的,num值都将赋值为0,下次扫描时,
将跳过。
{ j++;
if(j==length)//输出退出的数组C[i]中的字符串,并且相应的num值赋
值为
{ c[i].DispName();cout<<"”;j=0;c[i].SetNum(0);}
#i ncludevstri ng.h>
using n amespace std;

菜单选择应用程序

菜单选择应用程序

课程设计(论文)任务书信息学院专业计算机班级2013-1-09一、课程设计(论文)题目菜单选择应用程序设计二、课程设计(论文)工作:自2014年6月16 日起至2014年6月27 日止。

三、课程设计(论文)的内容要求:1、主界面2、基本要求a)从键盘输入n个数,并按从小到大输出。

b)并且可以多次进行。

3、补充自己的设计内容a) 排序中增加字符类的排序功能b) 排序中增加数字与字符混合排序的功能c) 排序中可以随时读取文件数据并进行排序d) 排序中可以将已排序好的数据经行文件保存e) 增加求两个整数最小公倍数功能f) 增加求两个整数最大公约数功能g) 求公倍数和公约数时候可以随时读取或写入文件h) 当文件数据为多组时,求完公倍数或公约数可以对结果经行排序,并且可以随时对排序后的结果进行文件保存i) N皇后游戏功能j) 可多次求解一元二次方程组的根k) 采用多屏幕交接方式使界面更为直观l) 各颜色字体的使用使界面更加精美m) 程序经过多次排Bug 判断系统相对完善。

几乎零Bug学生签名:赵宇2014年6月27 日课程设计(论文)评阅意见评阅人王更生职称教授2014年6月27 日目录一、设计思路二、功能实现详细设计三、测试结果分析四、用户手册五、设计体会一、设计思路1.登入界面用不同颜色的字体设置登陆界面,并且介绍作者信息2.主菜单通过while语句与swich…case以及if条件语句实现菜单的循环功能和不同选项的功能实现3.多功能排序运用vector向量容器储存数据,实现字符类或数的排序。

运用冒泡排序算法。

并且程序多数操作只用到N与回车键,操作简便。

程序判断系统相对完善,Bug较少。

可以通过文件读取数据,也可以将排序好的数据经行文件保存。

4.求两整数公约数与公倍数运用vector向量容器储存数据,可以通过文件读取,也可讲数据写入文件。

并且多组数据处理后可以排序,并且可以选择是否保持文件。

5.文件操作实现文件的读取与写入6.N皇后的游戏在N X N格的国际象棋上摆放N个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。

VFP趣味程序设计

VFP趣味程序设计

5.舍罕王的失算set talk offinput[请输入n:]to nt=1s=1for i=2 to nt=t*2s=s+tendforv=s/1.42e8h=(9/3.14159*v)^(1/3)?"总麦粒数约为:"+str(s,10,3)+"粒."?"折合体积约为:"+ltrim(str(v,15))+"立方米" ?"堆成正圆锥高约为:"+str(h,5)+"米"return程序运行结果与说明请输入n:64总麦粒数约为:1.845e+019折合体积约为129906648406立方米堆成正圆维高约为7193米5-1失算的另一名题:买马灯input"请输入n:" to nt=1s=1for i=2 to nt=t*2s=s+tendfor?"共需花费"+ltrim(str(s,16))+"个包卢斯卡." ?"合约"+str(s/400,10,4)+"卢卡."return程序运行结果与点评请输入n:24共需花费1677215个外包卢斯卡合约41943.0375卢布6分数不等式?"求n<1+1/2+1/3+1/4+...+1/m<n+1的正整数m" set talk offset deci to 14input "请输入n:"to ni=0s=0do while s<ni=i+1s=s+1/ienddoc=ido while s<n+1i=i+1s=s+1/ienddod=i-1?"满足不等式的m为:"+ltrim(str(c,10))+"<m<"+ltrim(str(d,10)) return程序运行结果:求n<1+1/2+1/3+1/4….+1/m<n+1的正整数m请输入n:10满足不等式的m为:12367<m<33616请输入n:15满足不等式的m为:1835421<m<49891907阶乘与阶乘和数set talk off?"三位阶乘和数有:"for m=100 to 999a=int(m/100)b=mod(int(m/10),10)c=mod(m,10)if m=jc(a)+jc(b)+jc(c) ??mendifendforreturnfunc jcpara xp=1for i=1 to xp=p*iendforreturn p程序运行结果:三位阶乘和数有:145可见145是唯一的三位阶乘和数8综合高精度计算cleardime a(500)a=0?" 1:计算阶乘n!"?" 2:计算乘方m^n"?" 3:计算排列数A(n,m)"input "选择(1-3): "to zinput " 请输入正整数n:" to nif z#1input" 请输入正整数m (m<=n):" to m endifd=500t=1if z=3t=n-m+1endifa(1)=1for i=t to nif z=2b=melseb=iendiff=0for j=1 to dx=a(j)*b+ff=int(x/10)a(j)=x%10 endforendforj=ddo while a(j)=0 j=j-1enddof=jdo casecase z=1? str(n,8)+"!="case z=2? str(m,6)+"^"+ltrim(str(n))+"="case z=3? "A("+ltrim(str(n))+","+ltrim(str(m))+")="endcased=0for j=f to 1 step -1d=d+1?? str(a(j),1)if d%50=0?space(10)endifendfor?" 所得结果共"+ltrim(str(f))+"位"return运行程序,选择3,输入n=100,m=90,得A(100,90)=25718203109552511210785724993459738891841922471445552653382099838849 647264448279213222405196251245118566385009463028434334174412800000000000000000 0000000所得结果共152位。

菜单程序设计

菜单程序设计

菜单程序设计菜单程序设计2010年12月05日星期日下午09:52菜单程序设计一、菜单菜单的基本作用:菜单的基本类型:几个常用术语:--菜单条出现在窗体标题的下面,包含每个菜单的标题。

--菜单包含命令列表或子菜单名。

--菜单中列出的每一项。

--从某个菜单项分支出来的另外的一个菜单。

具有子菜单的菜单项右边带有一个三角符号标志。

--分隔条是在菜单项之间的一条水平直线,用于修饰菜单。

--弹出式菜单是另一种形式的菜单,在按下鼠标右键时出现,它是一个上下文相关的菜单。

使用菜单编辑器可以为应用程序创建自定义菜单并定义其属性,利用这个编辑器,可以建立下拉式菜单,最多可达6层。

启动菜单编辑器的方法有4种(先选中一个窗体,使之为活动窗体):使用菜单"工具"/"菜单编辑器";启动后,弹出菜单设计窗口。

菜单编辑器窗口分为三个部分:数据区、编辑区和菜单项显示区。

1、数据区用来输入或修改菜单项、设置属性。

其中:隔线。

可在该文本框中输入数值,这个值用来在帮助文件(用HelpFile属性设置)中查找相应的帮助主题。

用来确定菜单或菜单项是否出现或在什么位置出现。

该列表有4个选项:0-None菜单项不显示2、编辑区共有7个按钮。

3、菜单项显示区(菜单列表)位于菜单设计窗口的下部,输入的菜单项在这里显示出来,并通过内缩符号(…)表明菜单项的层次。

条形光标所在的菜单项是"当前菜单项"。

说明:菜单项是一个总的名称,包括4个方面的内容:菜单名(菜单标题)、菜单命令、分隔线和子菜单。

内缩符号由4个点组成,它表明菜单项所在的层次,一个内缩符号(4个点)表示一层,两个内缩符号(8个点)表示两层…最多20个点,即5个内缩符号,它后面的菜单项为第六层。

如果一个菜单项前面没有内缩符号,则该菜单为菜单名,即菜单的第一层。

隔线。

下面通过一个简单的例子说明菜单程序设计的基本方法和步骤。

例1根据题意,可以将菜单分为3个主菜单项,分别为"计算加、减"、"计算乘、除"和"清除与退出",它们各有两个子菜单,即:"计算加、减"的子菜单项:加、减"计算乘、除"的子菜单项:乘、除"清除与退出"的子菜单项:清除、退出另外,为了输入和显示,再建立两个文本框(输入数据)和四个标签。

课程设计趣味菜单

课程设计趣味菜单

用一个简单的菜单提供上述操作。

菜单信息为: 1.FindNum 2.FindRoot 3.Detective 4.Bear 5. 99 Multiplication Table 6.Goodbye Input 1-6:
使用菜单选择趣 味程序
课程设计
课程设计的目的

掌握利用菜单作为应用程序的界面,并控制 程序的执行顺序,通过对顺序结构,选择结 构及循环结构实现结构化程序设计
课程设计的内容和要求


用C实现如下功能要求: (1)编写一函数实现确定一数字,使等式: 3□*6237=□3*3564成立。 (2)编写一函数实现求ax2+bx+c=0的根,其a,b,c 的值从键盘上输入。 (3)编写一函数实现求一肇事车辆牌照号码的推 论:一辆汽车撞人后逃逸,4个目击者提供如下线 索:甲:牌照3,4位相同;乙:牌号为31****;丙: 牌照5,6位相同;丁:3-6位是一个整数的平方。


(4)编写一个函数,实现下列笑话的计算:有一只狗熊到 玉米地里掰玉米,一边掰一边吃。第一天吃了一半,又拿圤 一个回去喂小狗熊。第二天又去吃了剩下的一半,走时仍然 带一个回去喂小狗熊。以后每天都吃前一天剩下的一半,拿 走一个。到第十天时,地里只剩下一个玉米了。求地里一共 有多少玉米。 (5)编写一函数实现九九乘法表的打印输出。 (6)编写一函数实现退出整个程序。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

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

菜单内容程序运行后,界面给出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语句使用。

/**********************************菜单选择函数**********************************/int menu_select(){char s[2];int cn;cout<<"\t1.解一元二次方程\n";cout<<"\t2.出圈游戏\n";cout<<"\t3.退出程序\n";cout<<"\t选择1-3:";for(; ;){gets(s);cn=atoi(s); // 是为了使输入的字符串转变为数字if(cn<1||cn>3)printf("\n\t输入错误,重选1-3:");elsebreak;}return cn;}二、求解一元二次方程1.设计要求这里要求编制一个求方程aX2+bx+c=0的根的程序。

一般将系数设成float型,可以把求根变量设成double型,使用库函数sqrt()求平方根,sqrt()在头文件math.h中定义。

假设:d=b*b-4*a-c可以根据d>0、=0或<0来决定求解方法。

if(d>0){//有两个不相等的实数解}else if(d==0){//有两个相等的实数解}else{//有两个不相等的虚数解}2.设计方法(1)设计一个FindRoot类表示这个方程。

(2)在头文件cpp2.h中声明类,在FindRoot.cpp文件中定义成员函数。

(3)使用函数Findlt()作为菜单项。

3.类FindRoot的设计为了方便,除了将方程系数设计为属性之外,还将方程的根x1和x2,以及用来作为判定条件的d(d=b*b-4*a*c)均设计成类的属性。

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

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

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

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

图1 类图图2obj对象图①.设计构造函数FindRoot::FindRoot(float x,float y,float z){a=x;b=y;c=z;d=b*b-4*a*c;}②设计求根成员函数Find()void FindRoot::Find(){if ( d>0){x1=(-b+sqrt(d))/(2*a);x2=(-b-sqrt(d))/(2*a);return;}else if(d==0){x1=x2=(-b)/(2*a);return;}else{x1=(-b)/(2*a);x2=sqrt(-d)/(2*a);}}③设计输出结果的成员函数Display()void FindRoot::Display(){if(d>0){cout<<"x1="<<x1<<"\nx2="<<x2<<endl;return;}else if(d==0){cout<<"xl=x2="<<x1<<endl;return;}else{cout<<"Xl="<<x1<<"+"<<x2<<"i"<<endl;cout<<"X2="<<x1<<"-"<<x2<<"i"<<endl;}}4.设计菜单函数FindIt()为了循环求解,使用for循环语句。

退出时,希望只接收一个字符。

最简单的是输入一个0作为a的值。

/*************************************************菜单项函数***************************************************/void FindIt(){float a,b,c;cout<<"这是一个求方程ax2+bx+c=0的根的程序。

"<<endl;cout<<"把变量设为double型,使用库函数math进行计算."<<endl;for(; ;){cout<<"输入方程系数a:";cin>>a;if(a==0) //a为0,结束运行,因为“回车”被atoi()函数作为“0”值赋给cn {getchar();//为消除回车的影响return;}cout<<"输入方程系数b:";cin>>b;cout<<"输入方程系数c:";cin>>c;FindRoot obj(a,b,c);obj.Find();obj.Display();}}三、设计出圈游戏1.设计要求这里假设有人数为n个人的一个小组,他们按顺时针方向围坐一圈。

一开始任选一个正整数作为报数上限值m,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数。

报数m的人出列,然后从他原来所在的、顺时针方向的下一个人开始重新从1报数,报到m时停止报数并出列。

如此下去,直至所有人全部出列为止。

要求按他们出列的顺序输出他们的名字。

2.设计方法求解出圈顺序的方法很多,这里我采用的是利用类和数组来求解出圈顺序,仅供大家参考。

(1)设计一个SeqList类。

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

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

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

(5)在文件gamel.cpp中实现Joseph()和game()函数。

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

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

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

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

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

另外,考虑到使用类的数组,所以不为它定义构造函数,而是用系统提供的默认无参数构造函数。

/**************************************************声明SeqList类 **使用内联函数定义类 *****************************************************/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);}};按照要求,不需要为类设计求解出圈的成员函数。

4.求解出圈的函数Joseph()使用类的数组,其实就是利用顺序存储结构来求解。

在数组初始化后,调用函数Joseph() 寻找出列人员。

假设建立类的数组c,这时只能为数组c假设一个长度,实际的有效长度只有在给定人数之后才能知道。

它的算法思想如下:void Joseph(SeqList c[],int length) //使用数组作为参数,同时需要将人数传给它。

{BEGIN初始化人数Length参加游戏的人的名字计数器初值k从1开始循环length次j计数器清零j循环(j<间隔次数m)计数i如果i数到尾部,则返回第一个位置,即重置i等于0如果该位置上的人仍然在圈中,则j计数加1endj //结束循环j如果是最后一个,结束循环,作特殊处理不是最后一个,输出出圈人的信息标识该人员已出圈,开始新一轮循环endk最后一个结束循环,输出它的信息。

END}判断是利用数据成员的值,已经出圈的将其标志为0。

下次数到他时,作为无效数据处理。

输出使用数据成员name。

5.菜单项函数game()位置编号num应该从1开始,但C++的数组是从O开始,所以num的值比其所在数组的下标的值多1,这样做是为了直观。

数组的大小一旦定义,就不能改变。

相关文档
最新文档