课程设计说明书--1-100以内猜数游戏

萌到你眼炸
855次浏览
2021年01月01日 03:46
最佳经验
本文由作者推荐

dnf镇魂-办护照需要什么手续

2021年1月1日发(作者:栾瑰馥)




计算机与通信学院软件
职业技术学院

课程设计说明书

1-100以内猜数游戏


作 者:
学 号:
专 业: 软件技术
班 级: 软件2班
指导教师:
答辩时间:






1-100以内猜数游戏






刘正翔
11700215








摘要
本设计将一个1-100以内的猜数字游戏作为研 究对象。设计出一个有系统随机选出一个
1-100的数字不显示出来,由玩家猜这个数字,直到猜中为 止,并显示出玩家猜中数字所用
时间和次数对玩家做出评判,并对所涉及的相关技术进行初步的探讨。
程序运行就进入游戏玩家就可以进行数字猜猜看了。


关键字:数字游戏代码 java


目 录

一、设计任务与要求 ............................... 1
1.1课程设计的任务 ............................. 1
1.2课程设计的要求 ............................. 1
二、需求分析 ..................................... 1
2.1 用户需求分析 .............................. 1
三、设计思路 ..................................... 2
3.1 系统总体设计 .............................. 2
3.2 功能模块设计 .............................. 3
四、详细设计 ..................................... 6
4.1 程序流程图 ................................ 6
4.2 关键算法与技术实现 ........................ 7
4.3 类与数据结构实现 ......................... 16
五、运行调试与分析讨论 .......................... 17
5.1 系统测试方案 ............................. 17
5.2 运行结果分析 ............................. 17
六、设计体会与小结 .............................. 21
致 谢 ........................................... 23
七、参考文献 .................................... 24


兰州理工大学课程设计

一、设计任务与要求
1.1课程设计的任务
根据所选题目,完成课程设计的分析、设计和编码,写出课程设计报告。
(1)掌握Java的语言规范,面向对象的核心概念和特性;
(2)掌握Java的编程技术,包括异常处理,图形界面设计,多线程,网络通信程序等;
(3)掌握Java应用软件的开发环境和开发过程;
(4)掌握面向对象的思想和程序设计方法。
1.2课程设计的要求
设计一个猜数 字游戏程序,该游戏可以由程序随机产生整数,玩游戏者通过由用户输入
数字来匹配上面所产生的数字。 用户随机输入数字,当与计算机产生的随机数相符合时,计
算机将提醒用户,游戏成功的信息,当有偏差 时,将会提醒偏差,如偏大或者是偏小。
二、需求分析
2.1 用户需求分析
设计一个猜数字游戏程序,要求具体如下特性:
(1) 趣味性:要求游戏内容丰富多彩,语言风趣幽默。
(2) 大众性:要求游戏界面操作简单,游戏规则简单易懂。
(3) 合理性:游戏设计严谨,有条理,具体需求如下
① 输入任意一个数字。数字的要求是1—100的自然数即可。
② 系统对您输入的数字进行判断。 < br>如果玩家输入的数字与计算机随机生成数相比较,输入的数字比随机生成数小.
系统将提示您,数 字太小请您重新输入。

1


兰州理工大学课程设计
如果玩家输入的数字与计算机随机生成数相比较,如果输入的数字比随机生成数
大。系统将提示您, 数字太大请您重新输入。
如果玩家输入的字符不是合法字符,系统将提示您,您输入的数字不合法,请从
新输入。
③ 游戏开始时,系统自动记录您猜数字的时间,结束后显示游戏共花费的时间。
④ 每猜测一次,系统会记录下来,游戏结束后,显示共猜测多少次。
⑤ 在游戏开始时,自动显示游戏规则。
⑥ 在游戏结束时,可以选择关闭游戏,或者再来一局。
三、设计思路
3.1 系统总体设计
猜数字游戏—游戏随机给出一个1—100 (包括1和100) 之间的数字,然后让你猜是什
么数字。你可以随便猜一个数字,游戏会提示太大还 是太小,从而缩小结果范围。经过几次
猜测与提示后,最终推出答案。(如图1)



游戏界面





游戏开始 游戏说明 重新开始





产生随机
输出字符 记录次数 记录时间




图1系统设计结构图

游戏界面:采用图形界面显示。页面有如下功能:开始,结束,重来。

2
关闭游戏


兰州理工大学课程设计

游戏开始后,由计算机产 生一个1-100的随机数,不显示在图形界面,但显示在字符界面。
用户只需输入所猜想的数字,打印 在输入框内,按“确定”按钮表示确定,游
戏返回提示语句,按照提示语句操作,直至游戏结束。
同时,计算机开始对游戏进行计时和计数功能。
游戏过程中,如果 不想继续玩了,可以直接退出,想重新开局,按“重新开始”按钮即可。
想控制界面大小只需拖拽图形界 面边框即可。
游戏结束后,可以选择“关闭”游戏,或者是“重新开始”。

3.2 功能模块设计
(如图2)





















3.2.1 功能模块详细设计
1、随机数的获取
功能描述:玩家输入一个数字,数字的范围在1-100之间,系统获取随机数。

3
猜数游戏

随机数
的获取

输入输
出 模

判断模

自动
计数
模块
结果
输出
模块
系统对
玩家给
出的数
进行判
断和输










图2 功能模块图


兰州理工大学课程设计

2 、输入输出模块
功能描述:对玩家输入的数字进行判断和提示。如果玩家输入的不是系统要求的数字,
系统将提示您,您输入的不是数字请重新输入.。如果玩家输入的数字与随机生成数相比较,
比 随机生成数小.系统提示您,数字太小请您重新输入。如果玩家输入的数字与随机生成数相
比较,比随机 生成数大.系统提示您,数字太大请您重新输入。(如图3)

输入输出模块
对玩家输入的数字进
行判断和提示
您输
入的
不是
数字
您输
入的
太小
您输
入的
太大
猜对


图3 输入输出模块图

3 、判断模块
功能描述:算出所用 时间在玩家猜中时给出其所用时间,系统给出对其水平的判断和是
否继续的提示;对玩家要求判断执行。 (如图4)








4


兰州理工大学课程设计

判断模块
时间计
算功

系统对
玩家的
水平做
出 判
提示
玩家
重新
开始

图4 判断模块图

4、 自动计数模块
功能描述:系统根据您猜数字的次数,自动计数. (如图5)


玩家猜数字,若猜错 计数器加1
图5 自动计数模块图



5、 结果输出模块
功能描述:直到用户猜到数字为止,提示信息是否 重新猜数字,如果重新开始将进入下
一次游戏,如果关闭将退出游戏系统。









5


兰州理工大学课程设计

四、详细设计
4.1 程序流程图
(如图6)
开 始
由计算机产生随机
系统开始计时
由用户输入一个数y
x>y
N
输入的大了,再小一点
Y
输入的小了,再大一点
x=y
系统结束计时

系统统计猜数次数

结 束


图6程序流程图

6


兰州理工大学课程设计



4.2 关键算法与技术实现
4.2.1源程序
* 程序运行时自动产生1-100的随机数
* 接受用户键盘输入数据并给出指示信息
* 直至猜对,游戏者猜对后,显示猜对次数
* 并且供计时功能
*
import Event;
import Listener;
import pter;
import nt;
import
import .*;
public class GuessNum extends {

{
Set Look & Feel
try { 设置窗口外观为windows外观
kAndFeel
(
} catch(Exception e) {
tackTrace();
}
}

private JLabel jLabel1;
private JTextField jTextField1;
private JButton jButton1;
private JButton jButton2;
private int number=0;
private int counter=0;
long startTime = tTimeMillis();
long endTime;
**
* Auto-generated main method to display this JFrame

7


兰州理工大学课程设计

*
public static void main(String[] args) {
GuessNum inst = new GuessNum();
ible(true); 显示窗口
}

**
*新建一个随机数产生器,然后生成一个1到100之间的整数
*
public GuessNum() {
super();
initGUI();
Random random = new Random();
number = t(100); 产生一个1-100间的随机数
}

**
*初始化窗口组件
*
private void initGUI() {
try {
setDefaultCloseOperation(E_ON_CLOSE);窗口关闭时销毁窗口
getContentPane().setLayout(null);设置窗口布局为绝对布局
{
jLabel1 = new JLabel();
getContentPane().add(jLabel1);
t(欢迎进入有趣的猜数字游戏;



1到100之间的整数,你猜是什么?快来猜猜看(^.^)



请输入你想猜的数:
nds(45, 0, 420, 150);设置标签位置
}
{
jTextField1 = new JTextField();
getContentPane().add(jTextField1);
nds(42, 168, 112, 28);输入窗口大小
Listener(new KeyAdapter(){文本框添加键盘按键监听-监听回车键
public void keyPressed(KeyEvent evt) {
jTextField1KeyPressed(evt);
}
});
}
{

8


兰州理工大学课程设计

jButton1 = new JButton();
getContentPane().add(jButton1);
t(确定
nds(182, 168, 77, 28);确定按钮
ionListener(new ActionListener(){按钮添加监听
public void actionPerformed(ActionEvent evt) {
jButton1ActionPerformed(evt);按钮被点击时 执行该方法
}
});
}
{
jButton2 = new JButton();
getContentPane().add(jButton2);
t(重新开始
nds(280, 168, 91, 28);设置重新开始按钮
ionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
jButton2ActionPerformed(evt);
}
});
}
pack();
e(450, 280); 设置窗口大小
setLocationRelativeTo(null); 设置窗口在显示器居中显示
} catch (Exception e) {
tackTrace();
}
}

**
* “确定”按钮事件监听
* @param evt
*
private void jButton1ActionPerformed(ActionEvent evt) {
int guess=0; 记录玩家所猜测的数字
counter++; 计数器增加一

try,catch的异常管理。
try {

获取玩家的输入
guess=nt(t());

9


兰州理工大学课程设计

} catch (Exception e) {

如果玩家不是输入一个合法的整数,则让他重新输入。
ssageDialog(null, 数字不合法,请输入一个1-100之间的整数!显
示一
个对话框
t(清空文本框内容
tFocus();文本框获取输入焦点
return
}

对玩家的输入进行判断。
if (guess > number){
ssageDialog(null, 猜的有点大了⊙﹏⊙!,再小一点吧!
t(
tFocus();
return
}
if (guess < number){
ssageDialog(null, 猜的一有点小了⊙﹏⊙!,再大一点吧!
t(
tFocus();
return
}
if (guess == number) {
endTime=tTimeMillis();

判断成绩。
switch (counter) {
case 1: ssageDialog(null,好厉害,真棒!! ?(′▽`)
break;
case 2:
case 3:
case 4:
case 5:
case 6:
case 7: ssageDialog(null,这么快就猜对了,好厉害哦! ↖(^ω^)↗
break;
default:ssageDialog(null,猜了半天才猜出来,小同志,尚须努力啊!
╮(╯_╰)╭
break;
}

10


兰州理工大学课程设计

ssageDialog(null,您总共猜了次 共花了
startTime)1000+秒的时间答对正确答案!
}
t(
tFocus();
}

private void jButton2ActionPerformed(ActionEvent evt) { 重新开始
Random random = new Random(); 重新生成随机数
number = t(100); 产生一个1-100间的随机数
counter=0; 记录玩家猜测的次数
t(
startTime = tTimeMillis();
}

private void jTextField1KeyPressed(KeyEvent evt) {
监听文本框回车
if (Code()==_ENTER) {
k(); 文本框按回车键 执行“确定”按钮的事件
}
}
}


4.2.2关键算法
(1)记录猜测次数模块
记录玩家猜测的次数
counter = 0;

计数器增加一
counter++;

首先定义了一个counter变量来记录玩家猜测的次数,并直接初始化为0。在打印一行 游
戏提示以后,便开始一个do-while语句。
在do-while语句中,首先用异常 处理语句获取玩家的输入,如果玩家输入不合法,提示
以后用continue语句从头重新执行循环语 句,等待玩家的输入。从而,guess变量一定包含
一个合法的整数。之后要对玩家的输入进行判断。

11


兰州理工大学课程设计

如果玩家的猜测太大或者太小,都做出提示。接着把计数器增加1,表示玩家做过一次猜
测。
最后便是do-while语句的判断:当玩家猜测的数字和随机产生的答案不同,则再次进入
循环,否则便结束循环,执行下面的代码。 (用Eclipse的Alt+快捷键帮助编写do- while
语句。)

(2)输入输出模块
获取玩家的输入
guess=nt(t());

如果玩家不是输入一个合法的整数,则让他重新输入
ssageDialog(null, 数字不合法,请输入一个1-100之间的整数!
t(
tFocus();
return
}

对玩家的输入进行判断。
if (guess > number){
ssageDialog(null, 猜的有点大了⊙﹏⊙!,再小一点吧!
t(
tFocus();
return
}
if (guess < number){
ssageDialog(null, 猜的一有点小了⊙﹏⊙!,再大一点吧!
t(
tFocus();
return
}

12


兰州理工大学课程设计

if (guess == number) {
endTime=tTimeMillis();

(3)判定成绩模块
判断成绩。
switch (counter) {
case 1: ssageDialog(null,好厉害,真棒!! (′▽`)
break;
case 2:
case 3:
case 4:
case 5:
case 6:
case 7: ssageDialog(null,这么快就猜对了,好厉害哦! ↖(^ω^)↗
break;
default:ssageDialog(null,猜了半天才猜出来,小同志,尚须努力啊!
╮(╯_╰)╭
break;
}
ssageDialog(null,您总共猜了次 共花了
startTime)1000+秒的时间答对正确答案!
}
t(
tFocus();
}

switch语句 是基于整型表达式的条件判断语句,猜数字用它来进行成绩判断。可以看出,
switch语句是和若干 case语句和一个default语句搭配使用的。代码中的switch语句用
counter变量 的值进行判断。
当counter的值为1时,便执行case 1里面的语句,即打印“好厉害,真 棒!!”的字
样,随后的break语句表示整个switch语句执行到这里结束了。

13


兰州理工大学课程设计

当counter的值为2时,便执行case 2里面的语句。可以发现case 2到case 6 都没有break
语句,这表示依次执行下面的语句,从而counter的值为2至7时,都打印“这 么快就猜对
了,好厉害哦!”字样。
当counter的值不是1至7时,便执行defau lt语句,打印“猜了半天才猜出来,小同
志,尚须努力啊!”的字样。

(4)计时模块
计时模块的代码分别写在游戏的开始和游戏的结束,取得时间差,以毫秒为单位。
long startTime = tTimeMillis();
long endTime = tTimeMillis();

(5)异常处理
Java语言提供了异常(Ex ception)处理机制帮助程序员发现并处理异常。所谓异常,就是在
程序执行过程中能干扰程序正 常流程的事件。导致异常的原因很多,比如文件找不到、数组
越界、除以零等。当异常出现时,一个异常 对象将被自动生成并传递给Java“运行时环
境”(runtime system),说得专业一点 ,就是抛出一个异常。异常对象包含了异常类型、程
序运行状态等信息。“运行时环境”得到异常对象后 便打断程序的正常流程,自动寻找一个
专门处理该异常的代码块来解决问题。这样的代码块称作异常句柄 (Exception Handler)。你
可以在异常句柄中尝试修复错误、重试或者报错,或者实 在无法进行下去的时候来个自我了
断。如果“运行时环境”找不到异常句柄,Java程序便会自行中断 。
一个典型的异常处理如下:
try {
statement(s);
} catch (exceptiontype1 name) {
statement(s);
} catch (exceptiontype2 name) {
statement(s);
} finally {

14


兰州理工大学课程设计

statement(s);
}
其中:
try语句括起来的语句可能抛出异常。try语句至少要搭 配一个catch语句或finally语
句,不能单独使用。
catch语句必须和一个try语句配套使用,根据异常类型(exception type)分别处理不< br>同的异常。也就是说,Java有许多预先定义的异常,你可以通过多个catch语句对它们分门
别类地处理。你还可以自己定义异常类型。如果try语句块中没有抛出异常,这里自然不会
被执行。
finally语句也必须和一个try语句配套使用,与catch语句不同,无论try语句块 中
是否抛出异常,finally所包括的语句块都会被执行
我设计的猜数字游戏需要从控制台获取玩家输入的数字,有多个异常处理
可以编写如下代码:
{
Set Look & Feel
try {

kAndFeel(
el
} catch(Exception e) {
tackTrace();
}
}

try,catch的异常管理。
try {
guess=nt(t());
} catch (Exception e) {
使用异常机制的诸多好处:
使得程序更健壮,界面更友善。
把程序的业务逻辑与错误处理分开,代码更合理,更美观。

15


兰州理工大学课程设计

异常可以分层次处理,使得代码更简洁。
同类的异常可以归到一类一起处理,处理更方便。
4.3 类与数据结构实现
首先搭建Ja va程序框架。打开Eclipse,新建名为GuessNumGame的项目,然后新建名
为Gue ssNum的Java类。GuessNum加上合适的javadoc。
(1)随机数的产生
我们可以借助Java API提供的Random类来产生一个随机数。
首先在main函数中加入以下三行代码:
新建一个随机数产生器,然后生成一个1到100之间的整数。
Random random = new Random();
int num = t(100);
第一句定义了一个类型 是Random类的变量random(Java语言区分大小写,所以Random
和random是 不同意思),并且用new操作符生成一个Random类的实例赋给random变量。random
变量实际上是一个参照,指向内存中用new操作符新建的Random类的实大多数情况下可以把
ra ndom直接看做是一个Random类的实例,可以通过“random”加上“.操作符”来调用
R andom类的方法,用t(100)来获取一个1至100之间的随机数。
第二句语句定义一个整型 变量number来保存随机产生的整数,并且用直接初始化的方法
把random产生的随机数赋给n umber变量。
(2)输入输出界面
标准输入输出(Standard IO)是指可以被应用程序使用的信息流。比如,应用程序可以
从标准输入(Standard input)读取数据,向标准输出(Standard output)写数据,把出错信息
发送到标准错误(Standard error)。猜数字游戏主 要用到标准输入,即控制台输入。用
n进行控制台输出,用进行控制台输入。它是一个纯粹的输入
流,而猜数字游戏主要是通过控制台获取玩家的字符输入,则需要把它包装成一个
BufferedR eader实例来使用

16


兰州理工大学课程设计

BufferedReader input = new BufferedReader(
new InputStreamReader());
这时,input就是一个能处理来 自控制台输入的、支持Unicode的、可以整行读取的一个
BufferedReader实例,比 如能通过ne()方法获取玩家在控制台整整一行的输
入。
五、运行调试与分析讨论
5.1 系统测试方案
点击运行程序后,显示出图形界面。
系统自动获取到一个随机数。
玩家输入一个数,点击“确定”按钮。如果玩家输入的数比系统 给出的随机数小,系统
会提示“您猜的太小了,请继续猜!”。如果玩家输入的数比系统给出的随机数大 ,系统提示
“您猜的太大了,请继续猜!”。
如果玩家猜对了数,但是所用时间大于七次,系 统会提示“猜了半天才猜出来,小同志,
尚须努力啊!”,并且会计算出玩家所用的时间和所猜的次数。 如果玩家猜对了数,而且所用
时间小于七次,系统会提示“这么快就猜对了,好厉害哦!”,并且会计算 出玩家所用的时间
和所猜的次数。
如果玩家想重新再玩一次,点击“重新开始”按钮即可继续玩下一轮游戏。


5.2 运

界面的


17
行结果分析
始运行程序时图形
显示(如图7)


兰州理工大学课程设计










图7 图形显示界面

玩家输入一个数“25”后,点击“确定”,系统提示“猜的 有点小了,再大一点!”。
(如图8)








图8系统提示图a

玩家再次输入一个数“70” 后,点击“确定”,系统提示您“猜的有点大了,再小一点!”。
(如图9)



18


兰州理工大学课程设计







图9系统提示图b


玩家再 次输入一个数“32”,点击“确定”,系统提示“猜了半天才猜出来,小同志,尚
须努力”,单击确定 显示“您总共猜了8次,您猜数字总共花了33秒”。(如图10 11)









图10 图形界面结果输出图a







19


兰州理工大学课程设计





图11 图形界面结果输出图b


玩家再重新玩一次,获取随机数后,玩 家输入一个随机数“90”,点击“确定”,系统提
示“正确”!您总共猜了2次,您猜数字总共花了1 4秒”。(如图12)

图12图形界面结果输出图c





如果玩家输入数字不再1到100以内数字系统提示错误!(如图13)

20


兰州理工大学课程设计











图13图形界面提示输入错误










六、设计体会与小结
经过这几天努力终于完成了这份课设,虽然在操作的过程中我都遇到了许 多的困难,但
是却使我得到了许多的意外收获。

21


兰州理工大学课程设计

在选题初期时,我很拿不定主意,不知道选什 么题比较好,后来衡量了一下自己在学习
过程中的强势和劣势,最终敲定的题目是猜数字游戏。平时学习 的时候总觉得内容挺多的,
可是当我自己为了完成要完成一个JAVA小游戏而在网上查阅资料时候才发 现自己所学的只
是皮毛,所以我决定以后一定要好好学习。
Java是一种简单的,面向对象 的,分布式的,解释型的,健壮安全的,结构中立的,可
移植的,性能优异、多线程的动态语言。老师刚 把题目公布的时候,看到这些题目确实感到
有些得陌生,于是我便到图书馆收集有关的书籍,在书中我了 解到了相关的知识,便按着书
上的内容进行编写相关的代码。在写代码的过程中我们也遇到了一些的困难 ,就是对一些有
关Java语言的不理解,我便又到课本中去查找。一个项目的成败关键不全在于技术。 要想在
一个愉快的氛围里边以轻松的心情来完成紧张的工作,严谨的态度和工作的热情都是必不可
少的。在我制作的过程中,我在教室里用NetBeans里编写相关的代码,并运行出来,在其中
我 也犯了一些常见的毛病,比如public static void main(String[] args) 中的大小写问
题,还有计时模块的编写,总是找不到好的方法,最后在我的努力下,终于找 到一个简便的
方法显示游戏用时,还有很多问题就不一一列举了,但在eclipse下划红线的帮助下 ,终于
将困难迎刃而解,于是我便将运行出来的结果截图,安排在报告中。以前上课时有许多的问
题并没有真正的认识到,但通过这次试验的制作,使我掌握了许多更重要的知识点。
在本次试验中, 给我印象最为深刻的是程序的编译过程中,从中我学到了许多以前学有
学会和没有学到的函数。比如do -while语句的判断,控制台输入的概念和方法。除此之个还
不其它一些函数也得到了巩固。以前总 是模模糊糊的,现在心里十分清楚了。平时的学习自
身只注意到了书本上面的知识,对一些类及方法的运 用显得只能,这次的学习让我从纸上谈
兵逐渐的过渡到实践出真知。老师先是要我们找可以运行的小游戏 的代码,才可以做模板,
就这样我找了许多次,最后终于找到了一个,程序就将是我成功的关键。 最后我的课程设计结束了,但是它留给我的印象是不可磨灭的。以前感觉学的都用不到,
现在才知以 前学的用途真大,想学编程是少不了的。以前感觉,编程是多么的神秘,现在通
过自己实践,才知道,编 程也没那么神秘,但却很有乐趣的。那种看到自己亲手编的程序运
行出结果的感觉是无法用言语表达的。



22


兰州理工大学课程设计


















致 谢
这次的程序实设计实验是对我们本学期学习java程序设计语言结果的一次大检验。自己
动手,自 己发现和解决问题。发现了自己的许多不足。平时没有掌握好的知识在这次实验中

23


兰州理工大学课程设计

彻底暴露出来,经过不断思考,不断查阅资料 和上机运行,解决其中大部分问题,当然还存
在一些问题没有解决。我相信在以后的学习能够解决好它们 。
通过本课题程序的设计、调试以及论文的编写,我不仅提高了利用java语言编程及识错
能力和撰写论文的能力,而且它使我更加深入的了解到了java这门课在现实生活中的重要
性。 在这次课程设计过程中遇到过一些问题,但经过不懈努力,解决了部分,还有的现在不
能解决,留待 日后思考和解决。
在编写之前,做整体规划和详细设计很重要。只有思路清晰,设计合理可行 ,编码才有
可能有的放矢,才能更加有效的完成任务。
本次课程设计,对我来说可以算是一次 挑战,因为在理论学习中没有好好的掌握,现在
要独立完成一个较复杂的程序编写,确实有一点困难。但 我对于难度一向是以积极迎战的态
度来面对,认真积极努力完成这次课程设计的任务。对我来说这是一次 很好的机会,同时我
也很好的把握了这次机会,认真的完成了此次的任务,对自己今后在程序编写方面以 及文档
撰写方面相信会有很大的帮助,在此也对学校安排这样一次学习表示感谢,对高老师知道表
示感谢,最后希望自己在java、数据结构以及计算机的其他学习方面能够得到很好的提高。







参考文献
[1]丁振凡.《Java语言实用教程》北京邮电大学出版社.
[2]耿祥义.《Java2实用教程》清华大学出版社.
[3]赵付青.《Java面向对象程序设计》国防工业出版社.
[4]耿祥义.《Java课程设计》清华大学出版社.


24

短剧剧本-英语自我介绍演讲稿


搞笑的帮派名字-三年级下册语文教学计划


九寨沟英文简介-关于近视的调查报告


饮食健康-镜神寂


曲奇的做法-关于冰心的资料


6个字的网名-团员个人小结


班主任研修日志-促织翻译


实变函数-个人委托书模板