java语言的科学与艺术 第六章 课后编程

来源:互联网 发布:网店美工毕业论文 编辑:程序博客网 时间:2024/06/05 01:14

欢迎大家转载,为保留作者成果,转载请注明出处,http://blog.csdn.net/netluoriver,有些文件在资源中也可以下载!如果你没有积分,可以联系我索要!

1、

package SixthCharter;/** File: Poker.java* ---------------------------* 这是第6章的第一题* Author luoriver*/import acm.program.*;import acm.util.*;public class Poker extends ConsoleProgram {public void run(){println("这个程序是随机显示选择的扑克");while(true){println();int i = readInt();showPoker();if (i==2) break;}}/* * 显示随机的扑克牌 */private void showPoker(){int num = rgen.nextInt(1,13);//rgen.setSeed(2);switch(num){case 1: print("Ace"); break;case 11: print("Jack"); break;case 12:print("Queen"); break;case 13:print("King"); break;default: print(num);}print(" of ");int color = rgen.nextInt(1,4);switch(color){case 1: print ("Spades"); break;case 2: print("Diamonds"); break;case 3:print("Clubs"); break;case 4:print("Hearts"); break;}}/*create an instance variable for the random number generator */private RandomGenerator rgen =RandomGenerator.getInstance();}

2、

package SixthCharter;/** File: TossCoin.java* ---------------------------* 这是第6章的第2题* Author luoriver*/import acm.program.*;import acm.util.*;public class TossCoin extends ConsoleProgram {public void run(){println("这个程序是抛硬币,一直抛到出现3个连续的下面为止,并显示被抛的总次数:");int toss_num = 0;//设置检查点,是否到了连续的次数int n = 0;while(n < CHECK_NUM){tossCoin();toss_num ++;if(tossCoin().equals("Head")){println("Head");n++;}else{println("Tails");n = 0;}}println("一共运行了" + toss_num + "次。");}/** * 这里是进行的投币方法 */private String tossCoin(){int n = rgen.nextInt(1, 2);return returnContent(n);}/** * 这里是显示返回硬币的哪一面 * @Head * @Tails */private String returnContent(int num){if(num == 1){return "Head";  }else{ return "Tails";   }}/*create an instance variable for the random number generator */private RandomGenerator rgen =RandomGenerator.getInstance();private static final int CHECK_NUM = 3;}

3、

package SixthCharter;/** File: ThrowDart.java* ---------------------------* 这是第6章的第3题* Author luoriver*/import acm.program.*;import acm.graphics.*;import acm.util.*;public class ThrowDart extends ConsoleProgram {public void run(){println("这个程序来用投镖来模拟正方形与圆形的面积之比是一个近似的 PI值:");double SquareArea = 4 * (R * R);double CircleArea = PI * (R * R);println("圆形与正方形的面积之比为" + CircleArea / SquareArea);println("投镖时落在圆形与正方形内的次数之比为" + throwDart());//println(3.14/4);//throwDart();}private double throwDart(){double circlenum = 0;double squarenum = 0;while(squarenum < ThrowNum){double rx = rgen.nextDouble(-1.0, 1.0);double ry = rgen.nextDouble(-1.0, 1.0);//rgen.setSeed(2);if(((rx * rx) + (ry * ry)) < 1){circlenum ++;squarenum ++;}else{squarenum ++;}}println();println("投在圆形内的次数为" + circlenum);println("投在正方形内的次数为" +squarenum);return circlenum / squarenum;}/*create an instance variable for the random number generator */private RandomGenerator rgen =RandomGenerator.getInstance();//设置投镖的次数private static final int ThrowNum = 10000;private static final double PI = 3.14;private static final double R= 1; }

4、

package SixthCharter;/** File: Poker.java* ---------------------------* 这是第6章的第一题* Author luoriver*/import acm.program.*;import acm.util.*;public class HalfLife extends ConsoleProgram {public void run(){println("这个程序是模拟原子的半衰期");println("There are " + RADIOACTIVE_ACTOM_NUM + "actom initially");int left_num = RADIOACTIVE_ACTOM_NUM;int year = 0;while(left_num > 0){int new_actom_num = left_halflife_actom_num(left_num);left_num -= new_actom_num;year ++;println("There are " + left_num + " actom at the end of year" + year);new_actom_num = 0;}}//定义衰减原子的数量private int left_halflife_actom_num(int num){int actom_num = 0;for(int i = num; i > 0; i -- ){while(rgen.nextBoolean()){actom_num ++;break;}}return actom_num;}/*create an instance variable for the random number generator */private RandomGenerator rgen =RandomGenerator.getInstance();/** * 定义放射性原子的数量 * @RADIOACTIVE_ACTOM_NUM */private static final int RADIOACTIVE_ACTOM_NUM = 10000;}

5、

package SixthCharter;/* * File: Poker.java * --------------------------- * 这是第6章的第5题 * Author luoriver */import acm.program.*;import java.util.Scanner;import acm.util.*;public class Bingo extends ConsoleProgram {public void run() {/* * 首先询问是否要介绍下赌博规则,这里以后再写 读取文字不会先用数字代替吧,1代表继续,2代表不玩了 */println();int know_rules = readInt("你想了解赌博机的规则吗?1代表为想了解,2代表已经知道规则:");if (know_rules == 1) {println(/*"内容太多,我没有写呢,看看Java语言的科学与艺术第172页吧"*/  RULES);}println("开始玩吧!祝玩的愉快!");start_play();}private void start_play(){int remain_money = CLIENT_INIT_MONEY;print_remain_money(remain_money);while(remain_money > 0){remain_money --;if(remain_money == 0){println("");}String first_show = show_result();//print("111111" + first_show);String second_show = show_result();//println("22222" + first_show);String third_show = show_result();//print("333333333" + first_show);/*Scanner num = new Scanner(System.in);int n = num.nextInt();*/int n = readInt();if(n == 2) break;//print_remain_money(remain_money);if(first_show.equals("BAR") && second_show.equals("BAR") && third_show.equals("BAR")){remain_money += 250;println(first_show + " " + second_show  + " " + third_show +" you win" );print_remain_money(remain_money);}else if(first_show.equals("BELL") && second_show.equals("BELL") && (third_show.equals("BELL") || third_show.equals("BAR"))){remain_money += 20;println(first_show + " " + second_show  + " " + third_show +" you win" );print_remain_money(remain_money);}else if(first_show.equals("PLUM") && second_show.equals("PLUM") && (third_show.equals("PLUM") || third_show.equals("BAR"))){remain_money += 14;println(first_show + " " + second_show  + " " + third_show +" you win" );print_remain_money(remain_money);}else if(first_show.equals("ORANGE") && second_show.equals("ORANGE") && (third_show.equals("ORANGE") || third_show.equals("BAR"))){remain_money += 10;println(first_show + " " + second_show  + " " + third_show +" you win" );print_remain_money(remain_money);}else if(first_show.equals("CHERY") && second_show.equals("CHERY") && third_show.equals("CHERY")){remain_money += 7;println(first_show + " " + second_show  + " " + third_show +" you win" );print_remain_money(remain_money);}else if(first_show.equals("CHERY") && second_show.equals("CHERY")){remain_money += 5;println(first_show + " " + second_show  + " " + third_show +" you win" );print_remain_money(remain_money);}else if(first_show.equals("CHERY")){remain_money += 2;println(first_show + " " + second_show  + " " + third_show +" you win" );print_remain_money(remain_money);}else{println(first_show + " " + second_show  + " " + third_show +" you loss" );print_remain_money(remain_money);}}//print_remain_money(remain_money); }private void print_remain_money(int remain){println("you have $" + remain + " would you like to play?");}private String show_result() {int random_show = rgen.nextInt(1, 6);switch (random_show) {case 1:return "BAR";case 2:return "LEMON";case 3:return "ORANGE";case 4:return "PLUM";case 5:return "BELL";default:return "CHERRY";}}/* * 设定系统给用户初始钱 */private static final int CLIENT_INIT_MONEY = 50;/* * create an instance variable for the random number generator */private RandomGenerator rgen = RandomGenerator.getInstance();private static final String RULES= "典型的赌博机有3个轮子,他们在一个狭窄的窗口后面旋转。每个轮子都标记为CHERRY、LEMON、ORANGE、PLUM、BELL和BAR。然而,窗口每次只允许看到一个轮子的一个符号。"+"下面显示的是典型的获胜模式及其相关回报:"+"BAR      BAR      BAR              -- 支付 $250"+ "BELL    BELL   BELL/BAR         -- 支付 $20"+ "PLUM    PLUM   PLUM/BAR         -- 支付 $14"+ "ORANGE  -  ORANGE  - ORANGE/BAR       -- 支付 $10"+ "CHERRY  -  CHERRY  - CHERRY           -- 支付 $7"+ "CHERRY  -  CHERRY  - --               -- 支付 $5"+ "CHERRY  -  CHERRY  - --               -- 支付 $2";       };

6、7合并了

package SixthCharter;/* * File: Poker.java * --------------------------- * 这是第6章的第5题 * Author luoriver */import acm.program.*;import java.util.Scanner;import acm.util.*;public class Calculate extends ConsoleProgram {public void run() {int first = rgen.nextInt(0, 20);int second = rgen.nextInt(0, 20);sys_question(first, second);}/* * 定义系统提出问题的方法 */private void sys_question(int first, int second) {for (int i = 0; i < PROBLEM_NUM; i++) {first = rgen.nextInt(0, 20);second = rgen.nextInt(0, 20);int sys_answer = first + second;if (sys_answer <= 20) {print(first + " + " + second + " = ");answer(sys_answer);} else {i--;}}}/* * 定义学生回答的方法 */private void answer(int sys_answer) {int student_answer = readInt();if (student_answer == sys_answer) {println(success());} else {for (int i = 0; i < ANSWER_NUM; i++) {println("答案不正确,请再输入一遍");student_answer = readInt();}println("正确答案是" + sys_answer);}}/* * 显示输入正确答案后的鼓励信息 */private String success() {int n = rgen.nextInt(1, 3);switch (n) {case 1:return "You got it";case 2:return "connect";default:return "That's the answer";}}/* * create an instance variable for the random number generator */private RandomGenerator rgen = RandomGenerator.getInstance();/* * 定义出题的个数 */private static final int PROBLEM_NUM = 5;/* * 定义学生错误回答问题的次数 */private static final int ANSWER_NUM = 3;}

8、

package SixthCharter;/** File: Poker.java* ---------------------------* 这是第6章的第9题* Author luoriver*/import acm.program.*;import acm.util.*;public class NewPoker extends ConsoleProgram {public void run(){println("这个程序是随机显示选择的扑克");int level = level();String color = color();Card show = new Card(level, color);println();println("直接显示show类为" + show);println();print(show.toString(level, color));}public class Card{public Card (int level, String color){println("等级是" + level + "花色是" + color);}public String toString(int level, String color){return "toString 方法显示等级为" + level + "花色是" + color;}}public int getLevel(){return level();}public String getColor(){return color();}/* * 显示随机的扑克牌 */private void showPoker(){int num = rgen.nextInt(1,13);//rgen.setSeed(2);switch(num){case 1: print("Ace"); break;case 11: print("Jack"); break;case 12:print("Queen"); break;case 13:print("King"); break;default: print(num);}}private String color(){int color = rgen.nextInt(1,4);switch(color){case 1: //print("Spades");return "Spades";case 2: //print("Diamonds");return "Diamonds";case 3://print("Clubs");return "Clubs";default://print("Hearts");return "Hearts";}}private int level(){int n = rgen.nextInt(1, 4);switch(n){case 1: return LEVEL1;case 2: return LEVEL2;case 3: return LEVEL3;default: return LEVEL4;}/*private void color(){int color = rgen.nextInt(1,4);switch(color){case 1: print("Spades");case 2: print("Diamonds");case 3:print("Clubs");case 4:print("Hearts");}*/}/*create an instance variable for the random number generator */private RandomGenerator rgen =RandomGenerator.getInstance();/* * 定义扑克的花色常量 */private static final String CLUBS = "CLUBS";private static final String DIMONDS = "DIMONDS";private static final String HEARTS = "HEARTS";private static final String SPADES = "SPADES";/* * 定义等级常量的值  */private static final int LEVEL1 = 1;private static final int LEVEL2 = 11;private static final int LEVEL3 = 12;private static final int LEVEL4 = 13;}

9、

package SixthCharter;public class LibaryRecord {public LibaryRecord(String book_name, String author, int catalog_number, String publisher, int public_date, boolean isCurrent){this.book_name = book_name;this.author = author;this.catalog_number = catalog_number;this.publisher = publisher;this.public_date = public_date;this.isCurrent = isCurrent;}public LibaryRecord(String book_name, String author, int catalog_number, String publisher, int public_date){this.book_name = book_name;this.author = author;this.catalog_number = catalog_number;this.publisher = publisher;this.public_date = public_date;isCurrent = true;}public String getBookName(){return book_name;}public String getAuthor(){return author;}public int getCatalogNum(){return catalog_number;}public String getPublisher(){return publisher;}public int getPublic_date(){return public_date;}public boolean getisCurrent(){return isCurrent;}public void setisCurrent(boolean isCurrent){this.isCurrent = isCurrent;}@Overridepublic String toString(){return "Book_name" + book_name + " author: " + author + " 目录号: " + catalog_number + "出版者" + publisher + " 出版年份: "+ public_date + " 当前是否流通: " + isCurrent;}/* * 定义书名 */private String book_name;private String author;private int catalog_number;private String publisher;private int public_date;private boolean isCurrent;}

10、没有做


0 0
原创粉丝点击