COMP5214_Java_2012 Semester 2_Tutorial2_
- 格式:pdf
- 大小:81.21 KB
- 文档页数:3
一、问答题1.面向对象语言有哪三个特性?继承,封装,多态2.类名应当遵守怎样的编程风格?当类名由几个单词复合而成时,每个单词的首字母使用大写。
3.变量和方法的名字应当遵守怎样的编程风格?名字的首单词的首字母使用小写,如果变量的名字由多个单词组成,从第2个单词开始的其他单词的首字母使用大写。
4.类体内容中声明成员变量是为了体现对象的属性还是行为?属性5.类体内容中定义的非构造方法是为了体现对象的属性还是行为?行为6.什么时候使用构造方法?构造方法有类型吗?用类创建对象时,没有类型。
7.类中的实例变量在什么时候会被分配内存空间?用类创建对象时。
8.什么叫方法的重载?构造方法可以重载吗?一个类中有多个方法具有相同的名字,但是方法的参数的个数不同,或者是参数的类型不同。
可以。
9.类中的实例方法可以操作类变量(static变量)吗?类方法(static 方法)可以操作实例变量吗?可以。
不可以。
10.类中的实例方法可以用类名直接调用吗?不可以。
11.简述类变量和实例变量的区别。
一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间。
所有对象的类变量都分配给相同的一处内存,对象共享类变量。
12.this关键字代表什么?this可以出现在类方法中吗?代表调用当前方法的对象。
不可以。
二、选择题1.下列哪个叙述是正确的? BJava应用程序由若干个类所构成,这些类必须在一个源文件中。
Java应用程序由若干个类所构成,这些类可以在一个源文件中,也可以分布在若干个源文件中,其中必须有一个源文件含有主类。
Java源文件必须含有主类。
Java源文件如果含有主类,主类必须是public类。
2.下列哪个叙述是正确的? D成员变量的名字不可以和局部变量的相同。
方法的参数的名字可以和方法中声明的局部变量的名字相同。
成员变量没有默认值。
局部变量没有默认值。
3.对于下列Hello类,哪个叙述是正确的? DHello类有2个构造方法。
疯狂JAVA讲义⽬录第1章 Java概述 11.1 Java语⾔的发展简史 21.2 Java的竞争对⼿及各⾃优势 41.2.1 C#简介和优势 41.2.2 Ruby简介和优势 41.2.3 Python的简介和优势 51.3 Java程序运⾏机制 51.3.1 ⾼级语⾔的运⾏机制 61.3.2 Java程序的运⾏机制和JVM 61.4 开发Java的准备 71.4.1 安装JDK 8学⽣提问:不是说JVM是运⾏Java程序的虚拟机吗?那JRE和JVM的关系是怎样的呢? 8学⽣提问:为什么不安装公共JRE系统呢? 91.4.2 设置PATH环境变量 10学⽣提问:为什么选择设置⽤户变量,⽤户变量和系统变量有什么区别呢? 111.5 第⼀个Java程序 121.5.1 编辑Java源代码 121.5.2 编译Java程序 13学⽣提问:当我们使⽤编译C程序时,不仅需要指定存放⽬标⽂件的位置,也需要指定⽬标⽂件的⽂件名,这⾥使⽤javac编译Java程序时怎么不需要指定⽬标⽂件的⽂件名呢? 131.5.3 运⾏Java程序 141.5.4 根据CLASSPATH环境变量定位类 151.6 Java程序的基本规则 161.6.1 Java程序的组织形式 161.6.2 Java源⽂件的命名规则 171.6.3 初学者容易犯的错误 181.7 垃圾回收机制 201.8 何时开始使⽤IDE⼯具 21学⽣提问:⽼师,我想学习Java编程,到底是学习Eclipse好呢,还是学习JBuilder好呢? 211.9 本章⼩结 22本章练习 22第2章理解⾯向对象 232.1 ⾯向对象 242.1.1 结构化程序设计简介 242.1.2 程序的三种基本结构 252.1.3 ⾯向对象程序设计简介 272.1.4 ⾯向对象的基本特征 282.2 UML(统⼀建模语⾔)介绍 292.2.1 ⽤例图 302.2.2 类图 312.2.3 组件图 332.2.4 部署图 332.2.5 顺序图 342.2.6 活动图 342.2.7 状态机图 362.3 Java的⾯向对象特征 362.3.1 ⼀切都是对象 372.3.2 类和对象 372.4 本章⼩结 37第3章数据类型和运算符 383.1 注释 393.1.1 单⾏注释和多⾏注释 393.1.2 ⽂档注释 40学⽣提问:API⽂档是什么? 40学⽣提问:为什么要掌握查看API⽂档的⽅法? 423.2 标识符和关键字 453.2.1 分隔符 453.2.2 标识符规则 473.2.3 Java关键字 473.3 数据类型分类 483.4 基本数据类型 483.4.1 整型 493.4.2 字符型 493.4.3 浮点型 513.4.4 布尔型 523.5 基本类型的类型转换 533.5.1 ⾃动类型转换 533.5.2 强制类型转化 543.5.3 表达式类型的⾃动提升 563.6 直接量 573.6.1 直接量的类型 573.6.2 直接量的赋值 583.7 运算符 583.7.1 算术运算符 583.7.2 赋值运算符 613.7.3 位运算符 623.7.4 扩展后的赋值运算符 643.7.5 ⽐较运算符 65学⽣提问:Java为什么要对这些数据进⾏缓存呢? 673.7.6 逻辑运算符 673.7.7 三⽬运算符 683.7.8 运算符的结合性和优先级 693.8 本章⼩结 70本章练习 70第4章流程控制和数组 714.1 顺序结构 724.2 分⽀结构 724.2.1 if条件语句 724.2.2 switch分⽀语句 764.3 循环结构 784.3.1 while循环语句 784.3.2 do while循环语句 794.3.3 for循环 804.3.4 嵌套循环 834.4 控制循环结构 844.4.1 使⽤break结束循环 844.4.2 使⽤continue结束本次循环 864.4.3 使⽤return结束⽅法 874.5 数组类型 874.5.1 理解数组:数组也是⼀种类型 88学⽣提问:int[]是⼀种类型吗?怎么使⽤这种类型呢? 884.5.2 定义数组 884.5.3 数组的初始化 89学⽣提问:能不能只分配内存空间,不赋初始值呢?894.5.4 使⽤数组 90学⽣提问:为什么要我记住这些异常信息? 914.5.5 JDK1.5提供了foreach循环 914.6 深⼊数组 934.6.1 内存中的数组 93学⽣提问:为什么有栈内存和堆内存之分? 934.6.2 基本类型数组的初始化 954.6.3 引⽤类型数组的初始化 964.6.4 没有多维数组 99学⽣提问:我是否可以让图4.13中灰⾊覆盖的数组元素再次指向另⼀个数组?这样不可以扩展成三维数组吗?甚⾄扩展到更多维的数组?1014.6.5 操作数组的⼯具类 1024.6.6 数组的应⽤举例 1034.7 本章⼩结 106本章练习 106第5章⾯向对象(上) 1075.1 类和对象 1085.1.1 定义类 108学⽣提问:构造器不是没有返回值吗?为什么不能⽤void修饰呢? 1105.1.2 对象的产⽣和使⽤ 1105.1.3 对象、引⽤和指针 1115.1.4 对象的this引⽤ 1125.2 ⽅法详解 1165.2.1 ⽅法的所属性 1165.2.2 ⽅法的参数传递机制 1165.2.3 形参长度可变的⽅法 1205.2.4 递归⽅法 1215.2.5 ⽅法重载 123学⽣提问:为什么⽅法的返回值类型不能⽤于区分重载的⽅法? 1245.3 成员变量和局部变量 1245.3.1 成员变量和局部变量 1255.3.2 成员变量的初始化和内存中的运⾏机制 1285.3.3 局部变量的初始化和内存中的运⾏机制 1305.3.4 变量的使⽤规则 1305.4 隐藏和封装 1325.4.1 理解封装 1325.4.2 使⽤访问控制符 1325.4.3 package和import 1355.4.4 Java的常⽤包 1405.5 深⼊构造器 1405.5.1 使⽤构造器执⾏初始化 141学⽣提问:构造器是创建Java对象的途径,是不是说构造器完全负责创建Java对象? 1415.5.2 构造器的重载 142学⽣提问:为什么要⽤this来调⽤另⼀个重载的构造器?我把另⼀个构造器⾥的代码复制、粘贴到这个构造器⾥不就可以了吗? 143 5.6 类的继承 1445.6.1 继承的特点 1445.6.2 重写⽗类的⽅法 1455.6.3 ⽗类实例的super引⽤ 146学⽣提问:我们只是创建了⼀个Ostrich对象时,哪来的Bird对象? 1475.6.4 调⽤⽗类构造器 148学⽣提问:为什么我创建Java对象时从未感觉到ng.Object的构造器被调⽤过? 1505.7 多态 1515.7.1 多态性 1515.7.2 引⽤变量的强制类型转换 1525.7.3 instanceof运算符 1545.8 继承与组合 1545.8.1 使⽤继承的注意点 1555.8.2 利⽤组合实现复⽤ 156学⽣提问:使⽤组合关系来实现复⽤时,需要创建两个Animal对象,是不是意味着使⽤组合关系时系统开销更⼤? 1595.9 初始化块 1595.9.1 使⽤初始化块 1605.9.2 初始化块和构造器 1615.9.3 静态初始化块 1625.10 本章⼩结 165本章练习 165第6章⾯向对象(下) 1666.1 基本数据类型的包装类 1676.2 处理对象 1706.2.1 打印对象和toString⽅法 1706.2.2 ==和equals⽐较运算符 1726.3 类成员 1756.3.1 理解类成员 1756.3.2 单例(Singleton)类 1766.4 final修饰符 1776.4.1 final变量 1776.4.2 final⽅法 1816.4.3 final类 1826.4.4 不可变类 1826.4.5 缓存实例的不可变类 1866.5 抽象类 1886.5.1 抽象⽅法和抽象类 1886.5.2 抽象类的作⽤ 1916.6 更彻底的抽象:接⼝ 1926.6.1 接⼝的概念 1926.6.2 接⼝的定义 1936.6.3 接⼝的继承 1956.6.4 使⽤接⼝ 1956.6.5 接⼝和抽象类 1976.6.6 ⾯向接⼝编程 1986.7 内部类 2026.7.1 ⾮静态内部类 202学⽣提问:⾮静态内部类对象和外部类对象的关系是怎样的? 2066.7.2 静态内部类 207学⽣提问:为什么静态内部类实例⽅法也不能访问外部类的实例属性呢? 207学⽣提问:接⼝⾥是否能定义内部接⼝? 2086.7.3 使⽤内部类 208学⽣提问:既然内部类是外部类的成员,是否可以为外部类定义⼦类,在⼦类中再定义⼀个内部类来重写其⽗类中的内部类? 211 6.7.4 局部内部类 2116.7.5 匿名内部类 2126.7.6 闭包(Closure)和回调 2156.8 枚举类 2176.8.1 ⼿动实现枚举类 2176.8.2 枚举类⼊门 2196.8.3 枚举类的属性、⽅法和构造器 2206.8.4 实现接⼝的枚举类 2236.8.5 包含抽象⽅法的枚举类 2246.9 对象与垃圾回收 2256.9.1 对象在内存中的状态 2266.9.2 强制垃圾回收 2276.9.3 finalize⽅法 2286.9.4 对象的软、弱和虚引⽤ 2306.10 修饰符的适⽤范围 2336.11使⽤JAR⽂件 2346.11.1 jar命令详解 2356.11.2 创建可执⾏的JAR包 2376.11.3 关于JAR包的技巧 2386.12 本章⼩结 239本章练习 239第7章 Java集合 2407.1 Java集合概述 2417.2 Collection和Iterator接⼝ 2437.2.1 使⽤Iterator接⼝遍历集合元素 2447.2.2 使⽤foreach循环遍历集合元素 2467.3 Set接⼝ 2477.3.1 HashSet类 247学⽣提问:hashCode⽅法对于HashSet的作⽤是什么? 2497.3.2 TreeSet类 2527.3.3 EnumSet类 2597.4 List接⼝ 2617.4.1 List接⼝和ListIterator接⼝ 2617.4.2 ArrayList和Vector实现类 2647.4.3 固定长度的List 2667.5 Queue接⼝ 2667.5.1 LinkedList实现类 2667.5.2 PriorityQueue实现类 2697.6 Map 2707.6.1 HashMap和Hashtable实现类 2717.6.2 SortedMap接⼝和TreeMap实现类 2767.6.3 WeakHashMap实现类 2797.6.4 IdentityHashMap实现类 2807.6.5 EnumMap实现类 2817.7 HashSet和HashMap的性能选项 2827.8 操作集合的⼯具类:Collections 2837.8.1 排序操作 2837.8.2 查找,替换操作 2877.8.3 同步控制 2887.8.4 设置不可变集合 2887.9 烦琐的接⼝:Enumeration 2897.10 本章⼩结 290本章练习 290第8章泛型 2918.1 泛型⼊门 2928.1.1 编译时不检查类型的异常 2928.1.2 ⼿动实现编译时检查类型 2938.1.3 使⽤泛型 2948.2 深⼊泛型 2948.2.1 定义泛型接⼝、类 2958.2.2 从泛型类派⽣⼦类 2968.2.3 并不存在泛型类 2988.3 类型通配符 2988.3.1 使⽤类型通配符 3008.3.2 设定类型通配符的上限 3008.3.3 设定类型形参的上限 3028.4 泛型⽅法 3038.4.1 定义泛型⽅法 3038.4.2 泛型⽅法和类型通配符的区别 3068.4.3 设定通配符的下限 3078.4.4 泛型⽅法与⽅法重载 3098.5 擦除和转换 3108.6泛型与数组 3118.7 本章⼩结 313第9章与运⾏环境交互 3149.1 与⽤户互动 3159.1.1 运⾏Java程序的参数 3159.1.2 使⽤Scanner获取键盘输⼊ 3169.1.3 使⽤BufferedReader获取键盘输⼊ 3189.2 系统相关 3199.2.1 System类 3199.2.2 Runtime类 3219.3 常⽤类 3229.3.1 Object类 3229.3.2 String、StringBuffer和StringBuilder类 3229.3.3 Math类 3279.3.4 Random类 3289.3.5 BigDecimal类 3309.4 处理⽇期的类 3339.4.1 Date类 3339.4.2 Calendar类 3349.4.3 TimeZone类 3379.5 正则表达式 3389.5.1 创建正则表达式 3389.5.2 使⽤正则表达式 3419.6 程序国际化 3459.6.1 Java国际化的思路 3469.6.2 Java⽀持的语⾔和国家 3469.6.3 完成程序国际化 3479.6.4 使⽤MessageFormat处理包含占位符的字符串 349 9.6.5 使⽤类⽂件代替资源⽂件 3509.6.6 使⽤NumberFormat格式化数字 3509.6.7 使⽤DateFormat格式化⽇期 3529.7 本章⼩结 355本章练习 355第10章异常处理 35610.1 异常概述 35710.2 异常处理机制 35810.2.1 使⽤try...catch捕获异常 35910.2.2 异常类的继承体系 36010.2.3 访问异常信息 36310.2.4 使⽤finally回收资源 36410.2.5 异常处理的嵌套 36710.3 Checked异常和Runtime异常体系 36710.3.1 使⽤throws声明抛出异常 36710.4 使⽤throw抛出异常 36910.4.1 抛出异常 36910.4.2 ⾃定义异常类 37110.4.3 catch和throw同时使⽤ 37110.4.4 异常链 37310.5 Java的异常跟踪栈 37410.6 异常处理规则 37610.6.1 不要过度使⽤异常 37710.6.2 不要使⽤过于庞⼤的try块 37810.6.3 避免使⽤Catch All语句 37810.6.4 不要忽略捕获到的异常 37910.7 本章⼩结 379本章练习 379第11章 AWT编程 38011.1 GUI(图形⽤户界⾯)和AWT 38111.2 AWT容器 38211.3 布局管理器 38511.3.1 FlowLayout布局管理器 38611.3.2 BorderLayout布局管理器 387学⽣提问:BorderLayout最多只能放置5个组件吗?那它还有什么作⽤? 38811.3.3 GridLayout布局管理器 38911.3.4 GridBagLayout布局管理器 39011.3.5 CardLayout布局管理器 39311.3.6 绝对定位 39511.3.7 BoxLayout布局管理器 396学⽣提问:图11.15和图11.16显⽰的所有按钮都紧挨在⼀起,如果希望像FlowLayout、GridLayout等布局管理器指定组件的间距该怎么办?39711.4 AWT 常⽤组件 39811.4.1 基本组件 39811.4.2 对话框 40011.5 事件处理 40311.5.1 Java事件模型的流程 40311.5.2 事件和事件监听器 40511.5.3 事件适配器 40911.5.4 事件监听器的实现形式 41111.6 AWT的菜单 41311.6.1 菜单条、菜单和菜单项 41411.6.2 右键菜单 416学⽣提问:为什么即使我没有给多⾏⽂本域编写右键菜单,但当我在多⾏⽂本域上单击右键时⼀样会弹出右键菜单? 41811.7 在AWT中绘图 41811.7.1 画图的实现原理 41811.7.2 使⽤Graphics类 41911.8 处理位图 42511.8.1 Image抽象类和BufferedImage实现类 42511.8.2 使⽤ImageIO输⼊/输出位图 42711.9 剪贴板 43211.9.1 数据传递的类和接⼝ 43211.9.2 传递⽂本 43311.9.3 使⽤系统剪贴板传递图像 43511.9.4 使⽤本地剪贴板来传递对象引⽤ 43911.9.5 通过系统剪贴板传递Java对象 44211.10 本章⼩结 445本章练习 445第12章 Swing编程 44612.1 Swing概述 44712.2 Swing基本组件的⽤法 44812.2.1 Swing组件层次 44812.2.2 AWT组件的Swing实现 449学⽣提问:为什么单击Swing多⾏⽂本域时不是弹出像AWT多⾏⽂本域中的右键菜单? 45512.2.3 使⽤JToolBar创建⼯具条 45812.2.4 使⽤JColorChooser和JFileChooser 46112.2.5 使⽤JOptionPane 46912.3 Swing中的特殊容器 47512.3.1 使⽤JSplitPane 47512.3.2 使⽤JTabbedPane 47712.3.3 使⽤JLayeredPane、JDesktopPane和JInternalFrame 48112.4 Swing拖放功能 49012.4.1 拖放⽬标 49112.4.2 拖放源 49412.4.3 简化的拖放操作 49512.5 Applet和JApplet 49712.5.1 Applet简介及其安全性 49812.5.2 开发Applet类 49812.5.3 使⽤HTML页⾯装载Applet 50012.5.4 appletviewer简介 50212.5.5 Applet的⽣命周期和动画机制 503学⽣提问:程序中重写paint⽅法时绘制了⼀个字符串,但图12.28上则绘制出了如此之多的字符串,这是为什么呢? 50512.5.6 使⽤Applet创建⾳乐播放器 50512.6 使⽤JProgressBar、ProgressMonitor和BoundedRangeModel创建进度条 50812.6.1 创建进度条 50812.6.2 创建进度对话框 51212.7 使⽤JSlider和BoundedRangeModel创建滑动条 51312.8 使⽤JSpinner和SpinnerModel创建微调控制器 51712.9 使⽤JList、JComboBox创建列表框 52012.9.1 简单列表框 52012.9.2 不强制存储列表项的ListModel和ComboBoxModel 52412.9.3 强制存储列表项的DefaultListModel和DefaultComboBoxModel 528学⽣提问:为什么JComboBox提供了添加、删除列表项⽬的⽅法?⽽JList没有提供添加、删除列表项的⽅法呢? 53012.9.4 使⽤ListCellRenderer改变列表项外观 53012.10 使⽤JTree和TreeModel创建树 53212.10.1 创建树 53312.10.2 拖动、编辑树节点 53612.10.3 监听节点事件 54012.10.4 使⽤TreeCellRendering改变节点外观 54212.11 使⽤JTable和TableModel创建表格 54912.11.1 创建JTable 549学⽣提问:我们指定的表格数据、表格列标题都是Object类型的数组,JTable如何显⽰这些Object对象?55012.11.2 TableModel和监听器 55512.11.3 TableColumnModel和监听器 56112.11.4 实现排序 56412.11.5 绘制单元格内容 56712.11.6 编辑单元格内容 57012.12 使⽤JFormattedTextField和JTextPane创建格式⽂本 57612.12.1 监听Document的改变 57612.12.2 使⽤JPasswordField 57812.12.3 使⽤JFormattedTextField 57912.12.4 使⽤JEditorPane 58812.12.5 使⽤JTextPane 58812.13 本章⼩结 595本章练习 595第13章 JDBC编程 59613.1 JDBC基础 59713.1.1 JDBC简介 59713.1.2 JDBC驱动程序类型 59813.2 SQL语法介绍 59913.2.1 安装数据库 59913.2.2 关系数据库基本概念和MySQL基本命令 60113.2.3 SQL语句基础 60313.2.4 DDL语句 60413.2.5 DML语句语法 61813.2.6 select语句和SQL函数 62013.2.7 分组和组函数 62713.2.8 多表连接查询和⼦查询 62913.3 JDBC的典型⽤法 63513.3.1 JDBC常⽤接⼝和类简介 63513.3.2 JDBC编程步骤 637学⽣提问:前⾯给出的仅是MySQL和Oracle两种数据库的驱动,我看不出驱动类字符串有什么规律啊。
大二java课程设计题目和代码简单投票管理系统、小学生数学练习题目自动生成系统、华容道-一个传统的智利游戏、用图形界面实现P208页,过桥问题、编写一个记事本程序、电子英汉词典、加密与解密、标准化考试系统、排球比赛计分系统、Hannoi塔、学籍管理系统、制作一个图形编辑系统、图书信息管理系统、ATM柜员机模拟系统、学生成绩管理信息系统、聊天**、记忆测试系统、超市收银系统、算法演示程序、网络聊天程序。
1、华容道-一个传统的智利游戏编写一个按钮的子类,使用该子类创建的对象代表华容道中的人物。
通过焦点事件控制人物颜色,当人物获得焦点时颜色为蓝色,当失去焦点时颜色为灰色。
通过键盘事件和鼠标事件来实现曹操、关羽等人物的移动。
当人物上发生鼠标事件或键盘事件时,如果鼠标指针的位置是在人物的下方(也就是组件的下半部分)或按下键盘的“↓“键,该人物向下移动。
向左、向右和向上的移动原理类似。
学习要点本程序主要练习使用布局管理器设计一个华容道游戏界面,并练习使用事件监听器(鼠标事件、键盘事件和焦点事件)实现按钮的移动。
设计思路首先是界面设计,该界面主要包括十个人物按钮(马、曹操、关羽等)以及旁边的四个边框按钮和重新开始按钮。
对于人物按钮,我们可以创建Button按钮的子类,在该类中定义按钮的一些新的属性和焦点事件监听器,如:按钮的标签名、按钮的颜色、按钮的排号(如这里有十个人物按钮,从1排到十,在程序中可以依靠这个属性区分人物按钮)、按钮颜色、按钮获得或失去焦点事件。
同时在设计该界面时要考虑到各个按钮的位置、大小等情况。
在这给出了各按钮的位置和大小参数:(其中Person为继承Button按钮的人物按钮类)String name[]={"曹操","关羽","张","刘","马","许","兵","兵","兵","兵"}; for(int i=0;i<name.length;i++) {undefined person[i]=new Person(i,name[i]); person[i].addKeyListener(this);person[i].addMouseListener(this); // person[i].addFocusListener(new Person) add(person[i]); } person.setBounds(104,54,100,100);person.setBounds(104,154,100,50); person.setBounds(54,154,50,100);person.setBounds(204,154,50,100); person.setBounds(54,54,50,100);person.setBounds(204,54,50,100); person.setBounds(54,254,50,50);person.setBounds(204,254,50,50); person.setBounds(104,204,50,50);person.setBounds(154,204,50,50); 四个边框按钮的位置和大小参数为:left.setBounds(49,49,5,260); right.setBounds(254,49,5,260);above.setBounds(49,49,210,5); below.setBounds(49,304,210,5); 其次我们是对界面上的各人物按钮添加相应的相应事件(鼠标事件、键盘事件),通过这两种事件去完成界面上各人物按钮的移动。
一. java课程设计目的和要求本课程设计是重要的实践性环节之一,是在学生学习完《面向对象程序设计语言》课程后进行的一次全面的综合练习。
本课程设计的目的和任务:1. 巩固和加深学生对java语言课程的基本知识的理解和掌握2. 掌握java语言编程和程序调试的基本技能3. 利用java语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用java语言解决实际问题的能力课程设计要求1. 分析课程设计题目的要求2. 写出详细设计说明3. 编写程序代码,调试程序使其能正确运行4. 设计完成的软件要便于操作和使用4. 设计完成后提交课程设计报告二.Java语言课程设计第一阶段题目题目一:学生成绩管理系统要求:1)具备对学生基础数据的维护功能(添加、删除、修改)2)具备对课程基础数据的维护功能(添加、删除、修改)3)具备对学生成绩数据的维护功能(添加、删除、修改)4)具备对成绩的查询功能(按学号、姓名、或课程名查询成绩,排序等)5)具备对成绩的统计功能(最高分,最低分,平均分,及格率等)实现提示:采用图形用户界面实现;使用JDBC连接数据库,哪种数据库不限题目二:图书馆管理系统要求:1)具备对书籍信息的维护功能(添加、删除、修改)2)具备对借阅人信息的维护功能(添加、删除、修改)3)具备对借阅管理的维护功能(添加、删除、修改)4)具备对图书的查询功能(按书号、书名、或借书时间、借书人等查询)5)具备对相关信息的统计功能(借阅人次,个人借阅统计,最受欢迎的书,借阅最少的书等)实现提示:采用图形用户界面实现;使用JDBC连接数据库,哪种数据库不限题目三:聊天室小程序要求: 能实现一个界面良好、操作方便、支持多台计算机同时在线聊天的聊天室。
注意应有私聊功能。
提示:使用socket通信、多线程、图形用户界面技术实现,应注意对使用者的注册登录管理。
题目四:小游戏设计(俄罗斯方块、贪食蛇、苹果棋、扫雷等)要求: 用图形界面方式实现用键盘鼠标操作的各种游戏,应有界面良好、操作方便等特点。
Java-2实⽤教程习题解答习题解答习题1(第1章)⼀、问答题1.Java语⾔的主要贡献者是谁?2.开发Java应⽤程序需要经过哪些主要步骤?3.Java源⽂件是由什么组成的?⼀个源⽂件中必须要有public类吗?4.如果JDK的安装⽬录为D:\jdk,应当怎样设置path和classpath的值?5.Java源⽂件的扩展名是什么?Java字节码的扩展名是什么?6.如果Java应⽤程序主类的名字是Bird,编译之后,应当怎样运⾏该程序?7.有哪两种编程风格,在格式上各有怎样的特点?1.James Gosling2.需3个步骤:1)⽤⽂本编辑器编写源⽂件。
2)使⽤javac编译源⽂件,得到字节码⽂件。
3)使⽤解释器运⾏程序。
3.源⽂件由若⼲个类所构成。
对于应⽤程序,必须有⼀个类含有public static void main(String args[])的⽅法,含有该⽅法的类称为应⽤程序的主类。
不⼀定,但⾄多有⼀个public类。
4.set classpath=D:\jdk\jre\lib\;.;5. java和class6. java Bird7.独⾏风格(⼤括号独占⾏)和⾏尾风格(左⼤扩号在上⼀⾏⾏尾,右⼤括号独占⾏)⼆、选择题1.B。
2.D。
1.下列哪个是JDK提供的编译器?A)B)C)D)2.下列哪个是Java应⽤程序主类中正确的main⽅法?A) public void main (String args[ ])B) static void main (String args[ ])C) public static void Main (String args[])D) public static void main (String args[ ])三、阅读程序阅读下列Java源⽂件,并回答问题。
public class Person {void speakHello() {"您好,很⾼兴认识您");" nice to meet you");}}class Xiti {public static void main(String args[]) {Person zhang = new Person();();}}(a)上述源⽂件的名字是什么?(b)编译上述源⽂件将⽣成⼏个字节码⽂件?这些字节码⽂件的名字都是什么?(c)在命令⾏执⾏java Person得到怎样的错误提⽰?执⾏java xiti得到怎样的错误提⽰?执⾏java 得到怎样的错误提⽰?执⾏java Xiti得到怎样的输出结果?1.(a)。
Java核心技术·卷I 基础知识第12版中文是一本经典的Java编程语言教程,由Cay S. Horstmann和Gary Cornell合著。
本书深入浅出地介绍了Java语言的基本知识和核心技术,是学习和掌握Java编程语言的重要参考书籍。
本书的主要内容包括Java语言的基本概念、面向对象编程、控制流程、数组、字符串和输入输出等方面的内容。
通过系统而深入的讲解,读者可以逐步掌握Java语言的核心技术,从而成为有经验的Java程序员。
以下是本书内容的主要特点:1.全面系统的介绍了Java编程语言的基本知识和核心技术,包括控制语句、数组、字符串、面向对象编程、异常处理、输入输出等方面的内容。
2.采用了清晰易懂的语言和大量的实例,帮助读者深入理解Java编程语言的各种知识点。
3.提供了丰富的编程实例和练习题,让读者可以通过实际操作巩固所学知识,提升编程能力。
4.涵盖了Java SE 8中新增的特性和改进,使得本书的内容更加贴近当今的Java编程实践。
5.针对初学者的特点,本书在讲解难点的地方进行了重点详细的讲解,在基础内容上有很好的拓展。
通过学习Java核心技术·卷I 基础知识第12版中文,读者可以系统全面地掌握Java编程语言的核心技术,为进一步深入学习和应用Java 语言打下坚实的基础。
本书适合Java初学者和有一定基础的Java程序员阅读,也可以作为Java编程语言的教学参考书。
Java核心技术·卷I 基础知识第12版中文是一本经典的Java编程语言教程,内容丰富全面,深入浅出,适合广大Java学习者阅读。
如果你想系统地学习和掌握Java编程语言的核心技术,那么这本书绝对是你的不二选择!由于Java核心技术·卷I 基础知识第12版中文始终保持着在计算机编程界的经典地位,本书不仅仅是一本教程,更是一部深入探究Java编程核心的著作。
在新的1500字的部分,我们将进一步探讨本书的内容特点和对读者的学习帮助,以及本书面向的读者裙体和实际应用。
COMP5214 Software Development in JavaTutorial and Lab 02CONDITIONALS & LOOPSThe key topic for this week includes: 1. Conditional structures that select different paths through the program depending on particular conditions, such as the value of a variable. 2. Iteration structures that repeat segments of code to complete a task that has an iterative step or that inherently requires repetition; TASK 1. Learn how to use control structures and loops 2. Carry out tracing with pencil and paper the steps that a computer goes through when executing a simple program TUTORIAL EXERCISES1. Assume there is an int variable called classSize. Write a code fragment that prints “This class is small” if the number is less than 150 or “This class is large” if the number is greater than or equal to 150. A soft drink vending machine has control software that uses a switch statement to decide what drink to give to the buyer. Write the switch fragment to represent this (the drinks can be served by just printing their names). a. If button 1 is pressed, cola is served. b. If button 2 is pressed, lemonade is served. c. If button 3 is pressed, orange is served. d. Button 6 serves both cola and lemonade while all other buttons serve no drinks. 3. Trace the code below and figure out what will be printed for the case where: a=1 and b=-8int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); int c; if (a>0) { if (a<b) c=b-a; else c=a-b; } else c=0; c=c*c; System.out.print(c);2.4.Write the following for loops: a. b. c. prints on a separate line every number from 15 to 2 (both inclusive) prints on a separate line every number from 15 to 2 (both exclusive) prints on a separate line every even number between 2 to 20 (both inclusive)5.Trace the following code for the situations: a. b. int x = 3; int x = 7;1COMP5214 Software Development in JavaTutorial and Lab 02for (int i = 0; i < 5; i++) { int j = x - i; if (j % 3 == 0) { System.out.println(“i: “ + i + “, j: “ + j); } else { i++; }}LABORATORY EXERCISES NOTE on Eclipse When there are multiple classes in a project, you may follow the procedure to execute a specific Java class which required input argument(s): 1. Locate the “Package Explor…” tab on the left. 2. Highlight the class name to choose the class to be run. 3. Click Run−>Run… and a dialog named “Run” will pop up. 4. In the “Main” tab, click button “Search…”. A dialog will pop up. Choose the class name to be run, and click “OK”. 5. In the “Arguments” tab; inside the “Program arguments” box, type the command line argument(s); finally, press the “Run” button on the bottom right corner of the dialog. Exercise 1. Even or Odd? Write code that reads in a single number from the command-line argument and prints whether the number is even or odd. Exercise 2. Grade classification by if-else Write a program to read the student’s mark (in range of 0 to 100) from the command-line argument. Use if-else structure to convert the mark to the corresponding grade, and print out the grade. For instance, 85—100: HD, 75—84: D, …… Exercise 3. Body Mass Index (BMI) by if-else Body Mass Index (BMI) is used to estimate the risk of weight-related problems and it is calculated as: BMI = mass / height2; where mass in kilograms, and height in meters. Health assessment can be estimated according to: BMI < 18.5 Underweight 18.5 ≤ BMI < 25 Normal weight 25 ≤ BMI < 30 Overweight 30 ≤ BMI Obese Write a program to read body weight and height, calculate BMI and then print health assessment. HOMEWORK EXERCISES Exercise 1. Converting student’s grade to mark range by switch Input the student’s grade: H, D, C, P, or F (case insensitive), output the corresponding mark range for the grade. (Use charAt(int index) method in String class, which returns the character at the specified index.) Exercise 2. Factorial (n!=1*2*3*…*n) Write a program that takes a single command-line argument, and calculates the factorial of that number. Exercise 3. Triangle Write a program that takes a single command-line argument, which is a number between 1 and 9, and prints a triangle such that the base of the triangle has all numbers from 1 to that number with spaces between numbers. An example of the system in operation is:> java Triangle 42COMP5214 Software Development in Java1 1 2 1 2 3 1 2 3 4Tutorial and Lab 02Exercise 4: Scissor-Rock-Paper Game The rule for this popular game is: the scissor cuts the paper; the rock knocks the scissor; and the paper wraps the rock. Write a program to simulate the game. Your program: (1) randomly generates a number (0, 1, or 2) to represent scissor, rock, or paper; (2) prompts the user to enter “scissor”, “rock”, or “paper”; (3) and displays the computer or the user wins, loses, or draws. Exercise 5: Pyramid Write a program that takes in an odd positive integer n from the command line and draw a pyramid on the screen, with the highest level having 1 block, the 2nd 3 blocks, …, and the last n blocks. An example in operation: > java Pyramid 7 * *** ***** *******3。