Java实验贪心猪小游戏输入输出流图形化界面图书管理系统.docx
- 文档编号:4540032
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:25
- 大小:525.82KB
Java实验贪心猪小游戏输入输出流图形化界面图书管理系统.docx
《Java实验贪心猪小游戏输入输出流图形化界面图书管理系统.docx》由会员分享,可在线阅读,更多相关《Java实验贪心猪小游戏输入输出流图形化界面图书管理系统.docx(25页珍藏版)》请在冰豆网上搜索。
Java实验贪心猪小游戏输入输出流图形化界面图书管理系统
配置Java编程环境、随机数、输入输出流、图型用户界面、图书管理系统
实验报告内容:
一、实验目的
(1)培养学生网络应用程序的编程能力,在学生具有一定的计算机和网络知识的基础上开设Java程序设计课程,使学生能够运用Java语言作为完成应用程序设计的基本工具。
(2)熟悉Java语言在eclipse开发平台上创建新的工程、创建新的类,以及源代码完成后的编译、运行、调试过程;
(3)掌握Java的控制流和随机数的方法;
(4)熟悉Java语言中创建新的类对象的声明、静态类成员的定义以及使用过程。
二、实验性质
设计性
三、实验内容
1、配置JDK环境、包括ClassPath和path的编辑
2.编写Java程序,贪心猪游戏,一个简单的两人掷色子游戏,先达到或者超过100分的玩家获胜。
玩家轮流进行游戏,每次掷出一个六面色字。
如果玩家掷出1,不得分并换人。
如果玩家掷出2-6,就可以选择:
再掷一次,或保留得分。
这样的话会吧所有得分计入该玩家的成绩并换人。
请编写人家对贪心猪游戏程序。
轮到玩家时,程序会显示双方成绩和之前的点数。
玩家可以输入“r”重掷色子,或者输入“h”保留得分。
计算机程序会根据以下规则进行游戏:
轮到计算机游戏时候,持续掷色子,直到达到或者超过20分才予以保留。
如果计算机获胜或掷出1,则本轮立即结束。
玩家先掷色子。
四、实验环境
1.计算机一台;
2.中文Windows操作系统;安装JDK1.6以上版本,安装EclipseIDE软件。
五、实验主要步骤
1.问题分解,(画出程序流程图)
图1.1实验一流程图
2.给出程序源码
见附录
3.程序运行结果
见附录
六.实验小结
本次实验使我对类的概念有了进一步的了解,学会用类来实现一些基本的程序设计;本次实验使我懂得了在内部类的声明时加上static使其成为静态内部类来避免资源的浪费、保持封装的完整性;本次实验使我认识到在玩家1、玩家2和电脑循环过程可以不必用一个额外的整数n来判断下一轮到谁玩,而可以直接在定义其掷色子的过程中,在点数为1时,下一步执行下一位玩家的行为。
实验报告内容:
一、实验目的
(1)掌握输入流和输出流类在进行文件读写时的一般方法和具体步骤;
(2)掌握对从文本文件中读出的字符串进行处理的常用方法和具体步骤;
(3)掌握文件处理过程中异常处理的方法。
二、实验性质
设计性
三、实验内容
编写Java程序,建立一个包含“Ihateprogramming!
”的文本文件。
编写一个程序,让它从文本文件读取这行文字,并将文字中第一次出现“hate”改成“love”。
在这个编程项目中,程序将输出“Iloveprogramming!
”到另外一个文本文件里面。
四、实验环境
1.计算机一台;
2.中文Windows操作系统;安装JDK1.6以上版本,安装EclipseIDE软件。
五、实验主要步骤
1问题分解,(画出程序流程图)
图2.1实验二流程图
2.给出程序源码
见附录
3.给出程序运行结果
见附录
六、实验小结
本次实验使我对文件输入输出的概念有了进一步的了解,学会用创建新的文本文件、编程读取文本中的内容以及将所得内容输出到相应的文本文件中的方法;本次实验使我认识到在文件相应的操作进行完之后,要注意将相应的文件进行关闭。
实验报告内容:
一、实验目的
(1)掌握Swing包中常用的组件使用方法;
(2)掌握使用Swing包中常用组件实现简单的图形化输出过程中对各组件的添加步骤以及添加方法;
(3)熟悉布局管理器的适用场合,掌握事件处理机制;
(4)掌握事件监听器的使用。
二、实验性质
设计性
三、实验内容
编写一个对输入的英文单词按照字典排序的程序,界面如图,当在一个文本域输入若干个英文字单词,单击字典排序按钮,另一个文本域对输入的英文单词进行排序;当按清空按钮,另一个文本区域的内容同时清空。
要求通过Swing组件完成本程序的编写。
四、实验环境
1.计算机一台;
2.中文Windows操作系统;安装JDK1.6以上版本,安装EclipseIDE软件。
五、实验主要步骤
1.问题分解,(画出程序类图)
图3.1实验三流程图
2.给出程序源码
见附录
3.给出程序运行结果
见附录
六、实验小结
本次实验使我对图形化界面的概念有了进一步的了解,学会用已知组建创建窗口、文本域、按钮、分隔框以及将它们合并加入到一个窗口中的方法;本次实验使我了解到应用事件监听器对按钮点击后所进行的事件进行控制的方法;本次实验还让我懂得了在程序运行中可能出现异常,以及常见异常的处理方法。
实验报告内容:
一、实验目的
(1)掌握面向对象的程序设计与开发;
(2)掌握封装,多态,继承,异常处理,上转型技术,泛型。
二、实验性质
综合性
三、实验内容
要求完成一个图书馆管理系统,该系统允许用户借阅图书馆拥有的各种项目。
您将被要求创建一个library类,library中保存了一个项目列表的引用。
该列表(称为itemList)的类型是ArrayList,它包含了图书馆中的所有项目。
这些项目包括:
书籍,杂志,DVD(电影),Blurays(电影),MusicCD。
这些项目中的每一个物品都需要存储在列表(itemList)中。
要求你使用继承技术创建一个管理此系统的库类。
允许除了添加或删除项目,还要实现允许用户借用一件物品并能将其归还。
您编写测试程序以确保您的图书馆系统的能够正常运行。
。
四、实验环境
1.计算机一台;
2.中文Windows操作系统;安装JDK1.6以上版本,安装EclipseIDE软件。
五、实验主要步骤
1.问题分解,(画出程序类图)
图4.1实验四流程图
2.给出程序源码
见附录
3..给出程序运行结果
见附录
六、实验小结
本次实验使我对类的封装、继承、多态、异常处理上转型技术、泛型等概念有了进一步的了解,学会子类继承父类的方法;本次实验使我了解到可以通过使用泛型类来避免很多源代码需要的类型转换以及提高类型安全。
附录:
实验一代码
importjava.util.*;
classGreed_pig{
//创建两个玩家
privatestaticPlayerplayer1=newPlayer();
privatestaticPlayerplayer2=newPlayer();
privatestaticComputercomputer=newComputer();
publicstaticvoidmain(String[]args){
//玩家1现在的分数
intsum1=player1.getSum();
//玩家2现在的分数
intsum2=player2.getSum();
//电脑现在的分数
intsum3=computer.getSum();
//游戏开始
while(sum1<100&&sum2<100&&sum3<100){
play1();
play2();
play3();
}
}
//静态内部类
privatestaticclassPlayer{
//玩家分数
intsum;
//getterandsetter是用来封装数据的
publicintgetSum(){
returnsum;
}
publicvoidsetSum(intsum){
this.sum=sum;
}
//掷骰子的方法
publicintplay(){
//产生随机数1-6
intnum=(int)Math.ceil(Math.random()*6);
if(num==1){
//代表结束,之后应该执行切换逻辑
System.out.println("thisroundscore:
"+num);
System.out.println("nextplayerhaha~~");
//TODO切换
return1;
}else{
Scannerscanner=newScanner(System.in);
System.out.println("thisroundscore:
"+num);
System.out.println("pleaseinput'r'toreplayor'h'tosaveyouscore:
");
Stringinput=scanner.next();
if("r".equals(input)){
replay();
}elseif("h".equals(input)){
this.sum=this.sum+num;
System.out.println("savesuccess!
");
//TODO切换
return1;
}else{
soutError();
}
}
return1;
}
privatevoidsoutError(){
System.out.println("youinputisERRORpleaserestartthisgame!
thanks~~");
System.exit(0);
}
privatevoidreplay(){
this.play();
}
}
privatestaticclassComputer{
intsum;
intcursum=0;
publicintgetSum(){
returnsum;
}
publicvoidsetSum(ints){
this.sum=sum+s;
}
publicintcplay(){
intnum=(int)Math.ceil(Math.random()*6);
if(num==1){
System.out.println("thisroundscore:
"+num);
System.out.println("nextplayerhah~~");
return1;
}else{
Scannerscanner=newScanner(System.in);
System.out.println("thisroundscore:
"+num);
this.cursum=this.cursum+num;
creplay();
}
return1;
}
privatevoidcreplay(){
this.cplay();
}
}
privatestaticvoidplay1(){
//玩家1的切换标识
intstate1;
System.out.println("player1score:
"+player1.sum+""+"player2score:
"+
player2.sum+""+"computerscore:
"+computer.sum);
System.out.print("player1isplaying");
state1=player1.play();
if(state1==1){
if(player1.sum<100&&player2.sum<100&&computer.sum<100)
play2();
else
System.out.println("player1iswinner");
System.exit(0);
}
}
privatestaticvoidplay2(){
//玩家2的切换标识
intstate2;
System.out.println("player1score:
"+player1.sum+""+"player2score:
"+
player2.sum+""+"computerscore:
"+computer.sum);
System.out.print("player2isplaying");
state2=player2.play();
if(state2==1){
if(player1.sum<100&&player2.sum<100&&computer.sum<100)
play3();
else
System.out.println("player2iswinner");
System.exit(0);
}
}
privatestaticvoidplay3(){
intstate3;
System.out.println("player1score:
"+player1.sum+""+"player2score:
"+
player2.sum+""+"computerscore:
"+computer.sum);
System.out.println("computerisplaying");
state3=computer.cplay();
if(state3==1){
if(computer.cursum>=20){
computer.setSum(computer.cursum);
}
computer.cursum=0;
if(player1.sum<100&&player2.sum<100&&computer.sum<100)
play1();
else
System.out.println("thecomputeriswinner");
System.exit(0);
}
}
}
实验一运行结果图
图1.2程序运行结果图
实验二代码
importjava.io.*;
publicclasshate{
publicstaticvoidmain(String[]args){
try{
Stringroot=System.getProperty("user.dir");
StringfilePath1=root+File.separator+"file1.txt";
StringfilePath2=root+File.separator+"file2.txt";
BufferedReaderreader=newBufferedReader(newFileReader
(filePath1));
Filefile=newFile
(filePath2);
BufferedWriterwriter=newBufferedWriter(newFileWriter(file));
Stringin=reader.readLine();
String[]strings=in.split("");
for(inti=0;i if("hate".equals(strings[i])){ strings[i]="love"; } } for(Stringstring: strings){ writer.write(string); writer.write(""); System.out.print(string); System.out.print(""); } writer.flush(); reader.close(); writer.close(); }catch(IOExceptione){ e.printStackTrace(); } } } 实验二运行结果图 图2.2实验二程序运行前文件夹截图 图2.3实验二程序运行后文件夹截图 实验三代码 importjavax.swing.*; importjava.awt.*; importjava.awt.event.*; importjava.util.*; publicclassalphabet{ publicstaticvoidmain(String[]args){ Winwin=newWin(); } } classWinextendsJFrameimplementsActionListener{ JTextAreainputText,showText; JSplitPanesplitPane; JButtonbLeft,bRight; JTextFieldinputRowsNumber; JPanelpSouth; Win(){ inputText=newJTextArea(5,40); showText=newJTextArea(5,40); splitPane=newJSplitPane(JSplitPane.HORIZONTAL_SPLIT,inputText,showText); splitPane.setDividerLocation(130); add(splitPane,BorderLayout.CENTER); bLeft=newJButton("字典排序"); bRight=newJButton("清空"); inputRowsNumber=newJTextField(20); bLeft.addActionListener(this); bRight.addActionListener(this); inputRowsNumber.addActionListener(this); pSouth=newJPanel(); pSouth.add(bLeft); pSouth.add(bRight); add(pSouth,BorderLayout.SOUTH); setBounds(100,100,300,300); setVisible(true); validate(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); } publicvoidactionPerformed(ActionEvente){ if(e.getSource()==bRight){ inputText.setText(null); showText.setText(null); } if(e.getSource()==bLeft){ try{ Stringstring1=newString(); string1=inputText.getText(); if(string1==null){ Myexceptionex=newMyexception(); throw(ex); } StringTokenizerre=newStringTokenizer(string1); for(inti=0;re.hasMoreTokens();i++){ Strings=re.nextToken(); if(s==null){ Myexceptionex=newMyexception(); throw(ex); } intj=0; Stringa[]=null; if(a[j++]==null){ Myexceptionex=newMyexception(); throw(ex); } a[j++]=s; for(intp=0;p for(intq=0;q if(a[q].compareTo(a[q+1])>0){ Stringt; t=a[q]; a[q]=a[q+1]; a[q+1]=t; } } } Stringstring2=null; for(intz=0;z string2=a[z]; string2+="%n"; } showText.setText(string2); } }catch(Myexceptionex){ System.out.println("程序出现异常"); System.exit(0); } } } } classMyexceptionextendsException{ } 实验三运行结果图 图3.2实验三运行结果图 实验四代码 publicclassBluraysextendsProject{ publicBlurays(Stringname){ super(name); this.setType("blurays"); } } publicclassBookextendsProject{ publicBook(Stringname){ super(name); this.setType("book"); } } publicclassDVDextendsProject{ publicDVD(Stringname){ super(name); this.setType("DVD"); } } importjava.util.ArrayList; importjava.util.List; publicclassLibrary{ List List
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 实验 贪心 小游戏 输入输出 图形 界面 图书 管理 系统