




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 成 绩 评 定 表学生姓名范亚飞班级学号1209010314专 业信息与计算科学课程设计题目余弦曲线 掷筛子评语组长签字:成绩日期 2014 年 1 月 7日12课程设计任务书学 院理学院专 业信息与计算科学学生姓名范亚飞班级学号1209010314课程设计题目余弦曲线 掷骰子实践教学要求与任务:1、 进一步培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解;2、 针对java语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。工作计划与进度安排:第一天:确定题目,查找相关资料第二天:程序设计第三、四天:程序调试、测试第五天:答
2、辩指导教师: 2014 年 1月7日专业负责人:2014年 1 月 7日学院教学副院长:2014年 1 月 7日摘 要java语言是在国内外广泛使用的一种计算机语言,它具有高级语言的特点,有具有汇编语言的特点。它是由SUN公司开发的一种面向对象的程序设计语言,平台无关性是java的一大特点。随着软件开发技术的不断进步,从面向结构的程序设计思想,到面向对象的程序设计思想,为了适应软件开发的需要,java作为一个面向对象程序设计语言的使用越来越广泛。java的学习主要体现在应用,本课程设计介绍了java的两个应用,即 “余弦函数”和“掷骰子”游戏,“余弦函数”是java程序设计在数学三角函数辅助教
3、学中的应用;而“掷骰子”这个小游戏制作所需要注意的两个地方分别是:一、骰子的定义:骰子有6个面,分别表示1、2、3、4、5、6六个点。二、游戏的判断:即如何为获胜,如何为失败。沈阳理工大学课程设计专用纸目录摘 要程序一:余弦曲线11.1设计要求11.2程序设计11.3程序代码21.4运行结果41.5参考文献4程序二:掷骰子52.1设计要求52.2程序设计52.3程序代码82.4运行结果122.5参考文献12程序一:余弦曲线 1.1设计要求在屏幕上画出余弦函数cos(x)曲线。这条余弦曲线有两个周期,可以把x坐标控制在0720。 1.2程序设计(1) 确定程序框架这里以Applet形式输出。代码
4、如下:public class Ch1_3_2 extends Applet int x, y; public void start() / 画画之前,必须选取的画笔Graphics g = getGraphics();(2) 画x轴把坐标原点设定为(360,200),x轴就是从左到右的很多点组成,通过循环语句很容易实现,代码如下:for (x = 0; x <= 750; x += 1) g.drawString("", x, 200);if (x <= 385)g.drawString("", 360, x);(3) 画y轴参考上面x轴的
5、绘制,横容易画出y轴,代码如下:for (x = 360; x <= 370; x += 1) g.drawString("", x - 10, 375 - x);g.drawString("", x, x - 355);(4) 画cos(x)曲线图形的主体cos(x)曲线,把x坐标控制在0720,cos(x)返回结果小于1,须要进行放大处理这里放大80倍,同时把图形向下平移200个像素。代码如下:for (x = 0; x <= 720; x += 1) double a = Math.cos(x * Math.PI / 180 + Mat
6、h.PI);y = (int) (200 + 80 * a); / 放大80倍并向下平移200个像素g.drawString("", x, y); 1.3程序代码import java.applet.*;import java.awt.*;public class Ch1_3_2 extends Applet int x, y; public void start() / 画画之前,必须选取的画笔Graphics g = getGraphics();/ 画x轴、y轴for (x = 0; x <= 750; x += 1) g.drawString("
7、83;", x, 200);if (x <= 385)g.drawString("·", 360, x);g.drawString("Y", 330, 20);g.drawString("【学号】:1 2 0 9 0 1 0 3 1 4 ", 600, 30);g.drawString("【姓名】:范亚飞", 600, 60); / 画y箭头for (x = 360; x <= 370; x += 1) g.drawString("·", x - 10,
8、 375 - x);g.drawString("·", x, x - 355);/ 画x箭头g.drawString("X", 735, 230);for (x = 740; x <= 750; x += 1) g.drawString("·", x , x - 550);g.drawString("·", x, 950 - x);/ 画cos()曲线for (x = 0; x <= 720; x += 1) double a = Math.cos(x * Math.PI
9、/ 90 + Math.PI);y = (int) (200 + 80 * a); / 放大80倍并向下平移200个像素g.drawString("·", x, y); 1.4运行结果 1.5参考文献Java趣味编程100例。程序二:掷骰子 2.1设计要求一个简单的游戏,规则如下:玩家掷两个骰子,点数为16,如果第一次点数之和为7或11,这玩家胜;如果点数和为2、3或12,这玩家输;如果和为其他点数,这记录第一次点数和,然后继续掷骰,直至点数和等于第一次的点数和,这玩家胜;如果在这之前掷出点数和为7,这玩家输。请编程实现。 2.2程序设计(1) 确定程序框架首先开
10、始游戏,然后询问是否继续,如果继续。接着掷骰子,否则,最后把结果打印出来。程序框架如下:public class Ch10_1 public static void main(String args) String answer;Ch10_1 game = new Ch10_1();dogame.play();System.out.println("继续游戏吗(y/n)?");Scanner input = new Scanner(System.in);answer = input.next();while("Y".equalsIgnoreCase(an
11、swer); game.print();(2) 开始游戏在开始游戏之前,为方便处理,先做一些准备工作,把游戏规则的信息储存下来。然后随机生成两个数,根据游戏规则决定下一步如何处理,最后把当前结果打印出来。程序代码如下:public static enum Status CONTINUE, WON, LOST;public static Random random = new Random();private final static int SNAKE_EYES = 2;private final static int TREY = 3;private final static int BOX
12、_CARS = 12;private final static int YO_LEVEN = 11;private final static int SEVEN = 7;private List<String> results;private int w;private int l;public Ch10_1() results = new ArrayList<String>();w = 0;l = 0;public void play() int myPoint = 0;Status gameStatus = Status.CONTINUE;int sumOfDice
13、 = rollDice();switch(sumOfDice)case SEVEN:case YO_LEVEN:gameStatus = Status.WON;break;case SNAKE_EYES:case TREY:case BOX_CARS:gameStatus = Status.LOST;break;if(gameStatus = Status.CONTINUE)myPoint = sumOfDice;System.out.printf("点数是 %dn",myPoint);while(gameStatus = Status.CONTINUE)sumOfDice
14、 = rollDice();if(sumOfDice = myPoint) gameStatus = Status.WON;else if(sumOfDice = SEVEN)gameStatus = Status.LOST;if(gameStatus = Status.WON)System.out.println("玩家赢");results.add("赢");w+;elseSystem.out.println("玩家输");results.add("输");l+;(3) 掷骰子。调用系统提供的随机生成方法生成两
15、个点数,注意要把点数的值控制在16,并打印出来,最后返回点数之和。程序代码如下:private int rollDice() int die1 = 1 + random.nextInt(6);int die2 = 1 + random.nextInt(6);int sum = die1 + die2;System.out.printf("玩家掷的点数 %d+%d=%dn",die1,die2,sum);return sum;(4) 打印最终结果。最终结果储存在一个List列表中,通过循环打印即可。程序代码如下:public void print()System.out.pr
16、intln("游戏结果统计:");System.out.println("赢的次数:"+w);System.out.println("输的次数:"+l);int i = 0;for(String rs:results)System.out.println("第"+(+i)+"次:"+rs); 2.3程序代码import java.util.ArrayList;import java.util.List;import java.util.Random;import java.util.Scanne
17、r;public class Ch10_1 public static enum Status CONTINUE, WON, LOST;public static Random random = new Random();private final static int SNAKE_EYES = 2;private final static int TREY = 3;private final static int BOX_CARS = 12;private final static int YO_LEVEN = 11;private final static int SEVEN = 7;pr
18、ivate List<String> results;private int w;private int l;public Ch10_1() results = new ArrayList<String>();w = 0;l = 0;public void play() int myPoint = 0;Status gameStatus = Status.CONTINUE;int sumOfDice = rollDice();switch(sumOfDice)case SEVEN:case YO_LEVEN:gameStatus = Status.WON;break;c
19、ase SNAKE_EYES:case TREY:case BOX_CARS:gameStatus = Status.LOST;break;if(gameStatus = Status.CONTINUE)myPoint = sumOfDice;System.out.printf("点数是 %dn",myPoint);while(gameStatus = Status.CONTINUE)sumOfDice = rollDice();if(sumOfDice = myPoint) gameStatus = Status.WON;else if(sumOfDice = SEVEN
20、)gameStatus = Status.LOST;if(gameStatus = Status.WON)System.out.println("玩家赢");results.add("赢");w+;elseSystem.out.println("玩家输");results.add("输");l+;private int rollDice() int die1 = 1 + random.nextInt(6);int die2 = 1 + random.nextInt(6);int sum = die1 + die2;System.out.printf("玩家掷的点数 %d+%d=%dn&
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供配电基础知识培训课件
- 福建省厦门市外国语学校2025年高三第二次模拟考试化学试卷含解析
- 浙江省杭州地区重点中学2025年高三一诊考试化学试卷含解析
- 快速提升CPMM试题及答案
- CPMM历年真题分析及试题及答案
- 精心设计:CPMM试题与答案全景
- 细胞分化的基础知识试题及答案
- 2025届云南省保山市一中高考化学全真模拟密押卷含解析
- 材料供应与物流配合试题及答案
- 2025届江西省赣州市厚德外国语学校高三最后一卷化学试卷含解析
- 2025年湖北省七市州高三年级3月联合统一调研测试 生物试卷(含答案解析)
- 新型电力系统广义充裕性评估及规划方法研究
- T-GRM 102-2024 深色有隔内生真菌胞外代谢物应用技术规程
- 山东省济宁市2025年高考模拟考试(一模)思想政治试题(含答案)
- 2025年池州职业技术学院单招职业适应性测试题库有答案
- 2025河北张家口崇礼区人民陪审员选任40人历年高频重点模拟试卷提升(共500题附带答案详解)
- 老年人安全与环境护理
- 天车安全操作规程课件
- 华北理工牙体牙髓病学教案
- 现代企业组织架构的动态调整策略
- 第十八届“地球小博士”全国地理知识科普竞赛题库(附答案)
评论
0/150
提交评论