课程设计报告 - -Java实现游戏连连看 - 图文
更新时间:2023-12-27 14:26:01 阅读量: 教育文库 文档下载
- 课程设计报告模板推荐度:
- 相关推荐
课程设计说明书 NO.1
JAVA语言实现连连看游戏 1.课程设计目的 Java语言是当今流行的网络编程语言,它具有面向对象、跨平台、分布应用等特点。面向对象的开发方法是当今世界最流行的开发方法,它不仅具有更贴近自然的语义,而且有利于软件的维护和继承。 学会Java程序开发的环境搭建与配置,并在实际运用中学习和掌握Java程序开发的全过程。进一步熟悉掌握Java程序设计语言的基础内容,如用户图形界面设计、Java多线程编程、Applet程序的设计、文件和网络输入输出流编程、Java数据库编程等。通过亲自动手写程序,一方面拓展知识面,一方面锻炼调试能力 2.设计方案论证 2.1设计思路 2.1.1用户可以通过点击菜单中的“开始游戏”选项,开始新游戏程序。程序会载入图片,并通过特定的算法排列图片,并标记图片,以便判断图片是否相同。记录图片坐标,以方便计算图片是否可以相连。确定图片大小,以确定用户点击的是那张图片。 2.1.2用户选择两张一样的图片,通过鼠标进行选取,如果用户两次点击的图片不相同,那么系统认为用户没有点(鼠标记数归0),以完成用户以后的选取工作。如果用户选择的是相同的图片,那么系统会消除这两张图片,并使鼠标记数为0,并消除这两张图片的标记,使里面的图片被标记在外面。以便用户可以进行以后的选择。 2.1.3用户也可使通过使用“炸弹”功能进行消除图片。方法是点击菜单中的“炸弹”选项使用,点击后如果界面上有两张可以相连的相同图片就随机消除两张可以相连的相同的图片。 2.1.4 炸弹数目是有限的,默认数目为三,每使用一次“炸弹”功能,炸弹数目就会自动减一,当炸弹数目为零时(使用三次“炸弹”功能)。并且用户想再次使用炸弹时,系统会弹出对话框提示用户,并把菜单中“炸弹”选项变为灰色(用户不可使用)。 2.1.5当系统开始游戏后,系统会在后台记录时间,如果在用户还没有消除所有图片时,系统时间到了,那么系统会弹出对话框,提示用户,时间到了,游戏失败。 2.1.6 当用户点击确定后,系统还会弹出对话框询问用户是否重新开始,用户选择“是”时,系统会开始新游戏;当用户选择“否”时,系统会返回开始界面;当用户选择“取 课程设计说明书 NO.2
消”时,系统会返回提示时间到的界面。 2.1.6 如果在时间未到时,用户使所有的图片都消失(两两消除,直到最后一对),系统会提示用户游戏以通过,点“确定”后回到开始界面。 2.2设计方法 在设计连连看小游戏是,需要编写6个Java源文件:MainFrame.java,ChessButton.java,MapUI.java,Settings.java,ArrayPoint.java,Map.java。 2.2.1 MainFrame.java 主窗口部分定义了程序用函数,实现了程序菜单(initMenuBar)的使用。 2.2.2 ChessButton.java 按键部分定义按键的位置,代表的值。 2.2.3 MapUI.java 游戏部分判断点击的图片,判断两图片是否可连,是否相同。判断是否胜利。实现炸弹功能。 2.2.4 Settings.java 数组确定了游戏各种参数属性。 2.2.5 ArrayPoint.java 取值部分定义图片的值。 2.2.6 Map.java 算法部分通过算法确定两张图片是否连通。 2.3功能模块 此设计共有以下几个功能模块。 2.3.1 开始游戏 程序会载入图片,并通过特定的算法排列图片,并标记图片,以便判断图片是否相同。记录图片坐标,以方便计算图片是否可以相连。确定图片大小,以确定用户点击的是那张图片。 2.3.2 使用“炸弹” 用户点击菜单中的“炸弹”选项使用,点击后如果界面上有两张可以相连的相同图片就随机消除两张可以相连的相同的图片。 2.3.3 限制炸弹“数目” 课程设计说明书 NO.3
弹 默认数目为三,每使用一次“炸弹”功能,炸弹数目就会自动减一,当炸弹数目为零时(使用三次“炸弹”功能)。并且用户想再次使用炸弹时,系统会弹出对话框提示用户,并把菜单中“炸弹”选项变为灰色(用户不可使用)。 2.3.4 对用户游戏时的判断 用户选择两张一样的图片,通过鼠标进行选取,如果用户两次点击的图片不相同,那么系统认为用户没有点(鼠标记数归0),以完成用户以后的选取工作。如果用户选择的是相同的图片,那么系统会消除这两张图片,并使鼠标记数为0,并消除这两张图片的标记,使里面的图片被标记在外面。以便用户可以进行以后的选择。 课程设计说明书 NO.4
2.4流程图如下 图2 主函数流程图
课程设计说明书 NO.5
Y 是否使用炸弹 接收用户点击 开始游戏 开始程序 N N 是否二次点击 消除点击计数 Y N 两张图片 消除两张一样的 可以相连的图片 是否相同 Y N Y Y 是否还有图 片未消除 消除点击计数 消除用户点击 的两张图片 两张图片是否可以相连 N 结束 图3 游戏进行流程图
课程设计说明书 NO.6
图4 使用炸弹流程图 图5 计算时间流程图 课程设计说明书 NO.7
2.5类、方法、属性说明 成员变量 成员变量描述 行数 列数 图片后缀名 每局所花时间(秒) 判断的时间间隔 炸弹的使用次数 方法 方法名 MenuBar() Bomb() Point() Chesses() Timer() 功能 实用程序菜单 设置炸弹 定义按键的位置 初步定义游戏界面,功能 时间限制 备注 无备注 无备注 无备注 无备注 无备注 变量类型 int int string int int int 名称 ROWS COLUMNS RELEX PERTIME PER BOMBCOUNT 3.设计结果与分析 用户可以通过点击菜单中的“开始游戏”选项,开始新游戏程序。程序会载入图片,并通过特定的算法排列图片,并标记图片,以便判断图片是否相同。记录图片坐标,以方便计算图片是否可以相连。确定图片大小,以确定用户点击的是那张图片。 课程设计说明书 NO.8
图6 开始游戏后画面 用户选择两张一样的图片,通过鼠标进行选取,如果用户两次点击的图片不相同,那么系统认为用户没有点(鼠标记数归0),以完成用户以后的选取工作。如果用户选择的是相同的图片(如第八行第二列和第八行第三列),那么系统会消除这两张图片,并使鼠标记数为0,并消除这两张图片的标记,使里面的图片被标记在外面。以便用户可以进行以后的选择。 图7 消除三对后画面 课程设计说明书 NO.9
用户也可使通过使用“炸弹”功能进行消除图片。方法是点击菜单中的“炸弹”选项使用,点击后如果界面上有两张可以相连的相同图片就随机消除两张可以相连的相同的图片(如第一行第一列河第一行第四列)。 图8 使用炸弹后画面 炸弹数目是有限的,默认数目为三,每使用一次“炸弹”功能,炸弹数目就会自动减一,当炸弹数目为零时(使用三次“炸弹”功能)。并且用户想再次使用炸弹时,系统会弹出对话框提示用户,并把菜单中“炸弹”选项变为灰色(用户不可使用)。 图9 炸弹使用光后画面 当系统开始游戏后,系统会在后台记录时间,如果在用户还没有消除所有图片时,系统时间到了,那么系统会弹出对话框,提示用户,时间到了,游戏失败。 课程设计说明书 NO.10
图10 时间到时的画面 当用户点击确定后,系统还会弹出对话框询问用户是否重新开始,用户选择“是”时,系统会开始新游戏;当用户选择“否”时,系统会返回开始界面;当用户选择“取消”时,系统会返回提示时间到的界面。 图11 点击确定时的画面 如果在时间未到时,用户使所有的图片都消失(两两消除,直到最后一对),系统会提示用户游戏以通过,点“确定”后回到开始界面。
课程设计说明书 NO.11
图12 通关画面 4.设计体会 通过这次课程设计我学到了不少东西,也发现了大量的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。因而,通过课程设计之后,把以前所学过的知识重新温故。有些在设计过程中已解决,有些还有待今后慢慢学习,只要认真学就会有更多的收获。总之这次课程设计使我更多的掌握了所学的知识,并运用到实践上,了解了java的重要性,对以后的学习起了重要作用。 在设计的过程中我遇到了很到问题,不过在老师和同学们的帮助和自己的思考下还是很好的完成了。这此课程设计还让我懂得了写程序不能闭门造车,要努力拓宽知识面,开阔视野,拓展思维。 5.参考文献 [1] 印旻. Java语言与面向对象程序设计[M],北京: 清华大学出版社,2005.4: 58-72 [2] 朱站立、沈伟. Java程序设计实用教程[M], 北京: 电子工业出版社, 2007.5: 82-95 [3] 朱福喜、尹为民、余振坤等. Java语言与面向对象程序设计[M], 第2版. 武汉: 武汉大学出版社,2006.1:123-130 [4] 艾力江. Java 2 范例入门与提高 [M],北京: 清华大学出版社 课程设计说明书 NO.12
6. 附录 MainFrame.java: import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.SwingUtilities; import javax.swing.Timer; import cn.elva.Settings; import cn.elva.model.Map; public class MainFrame extends JFrame { private static final long serialVersionUID = 1L; private int bombCount = Settings.BOMBCOUNT; private JPanel jContentPane = null; private JMenuBar menuBar = null; private JMenu fileMenu = null; private JMenuItem reloadItem = null; private JMenuItem startItem = null; private JMenuItem bombItem = null; private JMenuItem exitItem = null; private MapUI mapUI = null; private long startTime; private long endTime; private Timer timer = null; private JMenuBar initMenuBar() { if (menuBar == null) { menuBar = new JMenuBar(); fileMenu = new JMenu(\文件\ startItem = new JMenuItem(\开始游戏\ startItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { reload(); 课程设计说明书 NO.13
} }); reloadItem = new JMenuItem(\重来一次\ reloadItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { reload(); } }); exitItem = new JMenuItem(\退出\ exitItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { System.exit(0); } }); fileMenu.add(startItem); fileMenu.add(reloadItem); fileMenu.add( bombItem ); fileMenu.add(exitItem); menuBar.add(fileMenu); } return menuBar; } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { MainFrame thisClass = new MainFrame(); thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); thisClass.setVisible(true); } }); } public MainFrame() { super(); initialize(); } 课程设计说明书 NO.14
private void initialize() { this.setSize(900, 900); this.setTitle(\ this.setJMenuBar(initMenuBar()); // this.setContentPane(getJContentPane()); this.setTitle(\连连看\ } private void reload() { mapUI = new MapUI(); startTime = System.currentTimeMillis() / 1000; endTime = startTime + Settings.PERTIME; jContentPane = new JPanel(); jContentPane.setLayout(new BorderLayout()); jContentPane.add(mapUI); this.setContentPane(jContentPane); this.validate(); Map.LEFTCOUNT = Settings.ROWS * Settings.COLUMNS; initTimer(); bombItem.setEnabled(true); bombCount=Settings.BOMBCOUNT; } private void initTimer() { ActionListener actionListener = new ActionListener() { public void actionPerformed(ActionEvent e) { startTime = System.currentTimeMillis() / 1000; if (startTime == endTime) { JOptionPane.showMessageDialog(MainFrame.this, \时间到了!!\ int result = JOptionPane.showConfirmDialog(MainFrame.this, \重玩一次?\\ if (result == JOptionPane.YES_OPTION) { reload(); } else { jContentPane.setVisible(false); validate(); 课程设计说明书 NO.15
} } } }; timer = new javax.swing.Timer(1000, actionListener); timer.start(); } } ChessButton.java public class ChessButton extends JButton { protected ArrayPoint point = null; public ChessButton(int row, int col, int value) { this(new ArrayPoint(row, col, value)); } public ChessButton(ArrayPoint point) { this.point = point; String name =\ URL url = ChessButton.class.getResource(name); ImageIcon icon = new ImageIcon( url ); this.setIcon(icon); } public ChessButton() { this(new ArrayPoint(0, 0, 0)); } public ArrayPoint getPoint() { return point; } public void setPoint(ArrayPoint point) { this.point = point; } } MapUI.java import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JOptionPane;
课程设计说明书 NO.16
import javax.swing.JPanel; import cn.elva.Settings; import cn.elva.model.ArrayPoint; import cn.elva.model.Map; public class MapUI extends JPanel implements ActionListener { private static final long serialVersionUID = 1L; private ChessButton[] chesses = null; private Map map = new Map(); private boolean two = false; private ArrayPoint priviousPoint; private ArrayPoint currPoint; public MapUI() { super(); initialize(); } private void initialize() { initChesses(); GridLayout gridLayout = new GridLayout(Settings.ROWS + 2,Settings.COLUMNS + 2); gridLayout.setHgap(2); gridLayout.setVgap(2); this.setLayout(gridLayout); this.setSize(300, 200); for (int row = 0; row < Settings.ROWS + 2; row++) { for (int col = 0; col < Settings.COLUMNS + 2; col++) { add(chesses[row * (Settings.COLUMNS + 2) + col]); } } } private void initChesses() { int[][] values = map.getMap(); this.chesses = new ChessButton[(Settings.ROWS + 2)* (Settings.COLUMNS + 2)]; for (int row = 0; row < 10; row++) { for (int col = 0; col < 10; col++) { int index = row * (Settings.COLUMNS + 2) + col; chesses[index] = new ChessButton(row, col, values[row][col]); 课程设计说明书 NO.17
chesses[index].addActionListener(this); if (row == 0 || row == (Settings.ROWS + 2 - 1) || col == 0 || col == (Settings.COLUMNS + 2 - 1)) { chesses[index].setVisible(false); } } } } public void clearCheese(ArrayPoint priviousPoint, ArrayPoint currPoint) { int[][] values = map.getMap(); values[priviousPoint.getI()][priviousPoint.getJ()] = 0; values[currPoint.getI()][currPoint.getJ()] = 0; int index1 = priviousPoint.getI() * (Settings.COLUMNS + 2)+ priviousPoint.getJ(); int index2 = currPoint.getI() * (Settings.COLUMNS + 2)+ currPoint.getJ(); chesses[index1].setVisible(false); chesses[index2].setVisible(false); if (map.LEFTCOUNT == 0) { JOptionPane.showMessageDialog(this, \恭喜您通过!!\ } } public void actionPerformed(ActionEvent e) { ChessButton button = (ChessButton) e.getSource(); ArrayPoint p = button.getPoint(); if (two) { currPoint = p; if( map.match(this.priviousPoint, this.currPoint)) { clearCheese(this.priviousPoint, this.currPoint); } two = false; } else { this.priviousPoint = p; two = true; } } public void bomb() 课程设计说明书 NO.18
{ int[][] values = map.getMap(); ArrayPoint p1 = null; ArrayPoint p2 = null; for (int row = 1; row < Settings.ROWS + 1; row++){ for (int col = 1; col < Settings.COLUMNS + 1; col++) { if (values[row][col] != 0){ p1 = new ArrayPoint(row, col, values[row][col]); for (int i = 1; i < Settings.ROWS + 1; i++) { for (int j = 1; j < Settings.COLUMNS + 1; j++) { if (values[i][j] != 0) { p2 = new ArrayPoint(i, j, values[i][j]); } else { continue; } //System.out.println(p1 + \ if (map.match(p1, p2)) { clearCheese(p1, p2); return; } } } } } } } } Settings.java package cn.elva; public interface Settings { public static final int ROWS = 8; public static final int COLUMNS=8; public static final String RELEX=\ public static final int PERTIME = 600; public static final int PER = 1; public static final int BOMBCOUNT = 3; 课程设计说明书 NO.19
} ArrayPoint.java package cn.elva.model; public class ArrayPoint { protected int i; protected int j; protected int value; public ArrayPoint( int i,int j,int value ) { this.i =i; this.j =j; this.value = value; } public String toString( ) { return i+\ } public int getI() { return i; } public void setI(int i) { this.i = i; } public int getJ() { return j; } public void setJ(int j) { this.j = j; } public int getValue() { return value; } public void setValue(int value) { this.value = value; } } 课程设计说明书 NO.20
Map.java package cn.elva.model; import java.util.Random; import cn.elva.Settings; public class Map { public static int LEFTCOUNT = Settings.ROWS * Settings.COLUMNS; private int[][] map = new int[Settings.ROWS + 2][Settings.COLUMNS + 2]; private int maxKinds = 4; public Map() { init(); } public int[][] getMap() { return map; } private void init() { int[] tempArr = new int[Settings.ROWS * Settings.COLUMNS]; int len = tempArr.length; for (int i = 0; i < len / maxKinds; i++) { tempArr[i * 4] = i + 1; tempArr[i * 4 + 1] = i + 1; tempArr[i * 4 + 2] = i + 1; tempArr[i * 4 + 3] = i + 1; } random(tempArr); for (int i = 1; i < Settings.ROWS + 1; i++) { for (int j = 1; j < Settings.COLUMNS + 1; j++) { this.map[i][j] = tempArr[(i - 1) * Settings.COLUMNS+ (j - 1)]; } } } private void random(int[] array) { Random random = new Random(); int len = array.length; for (int i = len; i > 0; i--) {
课程设计说明书 NO.21
int j = random.nextInt(i); int temp = array[i - 1]; array[i - 1] = array[j]; array[j] = temp; } } public boolean oneLineWithoutValue(ArrayPoint p1, ArrayPoint p2) { if (horizonMatch(p1, p2)) { return true; } else if (verticalMatch(p1, p2)) { return true; } return false; } public boolean oneLine(ArrayPoint p1, ArrayPoint p2) { if (p1.value != p2.value) { return false; } if (oneLineWithoutValue(p1, p2)) { return true; } return false; } public boolean verticalMatch(ArrayPoint p1, ArrayPoint p2) { if (p1.j != p2.j) { return false; } if (p1.i > p2.i) { ArrayPoint temp = null; temp = p1; p1 = p2; p2 = temp; } 课程设计说明书 NO.22
int spaceCount = p2.i - p1.i; if (spaceCount == 1 && p1.value == p2.value) { return true; } for (int i = p1.i + 1; i < p2.i; i++) { ArrayPoint point = new ArrayPoint(i, p1.j, map[i][p1.j]); if (point.value != 0) { return false; } } return true; } public boolean horizonMatch(ArrayPoint p1, ArrayPoint p2) { if (p1.i != p2.i) { return false; } if (p1.j > p2.j) { ArrayPoint temp = null; temp = p1; p1 = p2; p2 = temp; } int spaceCount = p2.j - p1.j; if (spaceCount == 1 && p1.value == p2.value) { return true; } for (int i = p1.j + 1; i < p2.j; i++) { ArrayPoint p = new ArrayPoint(p1.i, i, map[p1.i][i]); if (p.value != 0) { return false; } } return true; } 课程设计说明书 NO.23
private boolean isSameOne(ArrayPoint p1, ArrayPoint p2) { if (p1.i == p2.i && p1.j == p2.j) { return true; } else { return false; } } public boolean oneConnerWithoutValue(ArrayPoint p1, ArrayPoint p2) { ArrayPoint p1H = new ArrayPoint(p1.i, p2.j, map[p1.i][p2.j]); ArrayPoint p1V = new ArrayPoint(p2.i, p1.j, map[p2.i][p1.j]); if (horizonMatch(p1, p1H) && (p1H.value == 0)) { if (this.verticalMatch(p1H, p2)) { return true; } } if (verticalMatch(p1, p1V) && (p1V.value == 0)) { if (horizonMatch(p1V, p2)) { return true; } } return false; } public boolean oneConner(ArrayPoint p1, ArrayPoint p2) { ArrayPoint p1H = new ArrayPoint(p1.i, p2.j, map[p1.i][p2.j]); ArrayPoint p1V = new ArrayPoint(p2.i, p1.j, map[p2.i][p1.j]); if (p1.value != p2.value) { return false; } if (oneConnerWithoutValue(p1, p2)) { return true; } 课程设计说明书 NO.24
return false; } public boolean twoConner(ArrayPoint p1, ArrayPoint p2) { if (p1.value != p2.value) { return false; } int count = 0; ArrayPoint temp = null; for (int col = p1.j - 1; col >= 0; col--) { temp = new ArrayPoint(p1.i, col, map[p1.i][col]); if ((temp.value == 0) && this.oneLineWithoutValue(p1, temp)) { if (this.oneConnerWithoutValue(temp, p2)) { return true; } } else { break; } } count = Settings.COLUMNS + 2 - p1.j; for (int col = p1.j; col < Settings.COLUMNS + 2; col++) { temp = new ArrayPoint(p1.i, col, map[p1.i][col]); if ((temp.value == 0) && oneLineWithoutValue(p1, temp)) { if (oneConnerWithoutValue(temp, p2)) { return true; } } } count = p1.i; for (int row = count - 1; row >= 0; row--) { temp = new ArrayPoint(row, p1.j, map[row][p1.j]); if ((temp.value == 0) && oneLineWithoutValue(p1, temp)) { 课程设计说明书 NO.25
if (oneConnerWithoutValue(temp, p2)) { return true; } } } for (int row = p1.i + 1; row < Settings.ROWS + 2; row++) { temp = new ArrayPoint(row, p1.j, map[row][p1.j]); if ((temp.value == 0) && oneLineWithoutValue(p1, temp)) { if (oneConnerWithoutValue(temp, p2)) { return true; } } } return false; } public boolean match(ArrayPoint p1, ArrayPoint p2) { if (this.isSameOne(p1, p2)) return false; if (oneLine(p1, p2)) { map[p1.i][p1.j] = 0; map[p2.i][p2.j] = 0; LEFTCOUNT -= 2; return true; } if (oneConner(p1, p2)){ map[p1.i][p1.j] = 0; map[p2.i][p2.j] = 0; LEFTCOUNT -= 2; } if (twoConner(p1, p2)){ map[p1.i][p1.j] = 0; map[p2.i][p2.j] = 0; LEFTCOUNT -= 2; return true; } return false; }
正在阅读:
课程设计报告 - -Java实现游戏连连看 - 图文12-27
哲学概论读后感01-16
2016尔雅传统文化与现代经营管理03-14
力控组态软件使用指南09-13
物理化学上册的答案_第五版_周亚平_高等教育出版社04-13
服装网店网络广告提案03-08
超市店电气、空调安装工程施工组织设计方案 - 图文01-21
2015-2020年中国印铁制罐市场深度研究与投资可行性报告 - 图文04-19
AZ91D镁合金表面激光熔覆Al-Si+Al2O3涂层 - 图文10-06
重要的是友谊作文500字06-28
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 连连看
- 课程
- 实现
- 图文
- 报告
- 设计
- 游戏
- Java
- 小学语文人教版《一年级上》《第一组(识字一)》《1. 一去二三里》精品专题课后练习含答案考点
- 职高教师师德师风的学习心得体会
- IPS与IDS在IDC的应用
- 二次函数与等腰三角形、直角三角形的综合
- 排版格式与论文书写要求(黑体二号加粗)
- 中国磷细菌肥料行业市场前景分析预测年度报告(目录) - 图文
- 国网湖北电力2015年-北京电力交易中心-国家电网公司
- 鄂教版小学一年级语文下册教案
- 最新-河南省安阳鹤壁濮阳三市2018高三数学第二次调研考试 文 精品
- 职业学校体育教学创新发展论文
- 大工18秋《电力系统分析》在线作业1(满分题)
- 2018年下半年成都教师招聘考试练习题五
- 钢筋种类区分图解说明
- 现场临时用电施工组织设计
- 读书交流会《查理和巧克力工厂》
- 高考数学二轮复习第二部分专题一函数与导数不等式第4讲导数与函数的单调性极值与最值课时规
- 快乐教育理念下的小学语文课堂教学策略分析-精品教育文档
- 未成年思想道德测评交流发言稿-推荐word版(3页)
- 大学生心理健康论文(两篇)
- 普通话测试朗读作品1号