《Java 程序设计》考试题
考试时间:2017.12.24 8:30-11:30
考试地点:知行南楼408(软件),504(16计算机),506(其它专业)
考试对象:计算机,软件工程及控制等其它专业
题目(100分):
开卷考试,可以查看任何资料包括网络查询。
源代码及备份不要保存在C盘或桌面,以防机器出问题丢失。考试期间注意经常保存、备份代码,最好在U盘中也备份一个。建议尽量使用机房机器,尤其是自己的机器不能保证稳定的话。
注意:手机关机,不能使用任何通讯工具及软件如QQ等,保管好自己的程序代码不得提供给他人,交卷后请删除机器中代码并关机。不能使用自动生成图形界面的插件。
实现具体要求与分值分配:
1 严格按照Java的代码规范编写代码(10分)
例如: 类名、包名、变量及方法名、接口等的命名规范,必要的注释、代码格式规范,创建项目及包等。
注意:项目(project)名称为你的学号,包名为你姓名的拼音,如zhangsan,如果有子包,则为zhangsan.xxx形式。
另外随试题提供了一个 stuInfo.txt 文件,将此文件复制到你的项目目录下供读写使用。
2请选择合适的布局、组件、容器、事件、事件监听器等实现题目要求的功能(30分),
其中:使用Java Swing组件开发一个图形界面,界面布局及控件如下图所示(该界面只是大致描述,可以选择自己认为更合理的组件及布局,当前右侧内容为点击“添加”后的效果):
其中:学院下拉列表中有机信学院、商学院、物理学院等,操作类型有消费、充值与销卡三个选项,
要求实现:用户单击其中不同按钮可以实现相应功能。GUI组件选择与界面实现(20分)
面向对象的结构及代码的一些优化处理(10分),包括:功能优化、异常处理(5分),适当的提示界面(5分)。
3 功能实现部分(60分)
Main方法在界面窗口类中,注意:程序启动时的初始状态为,所有可输入部分为空,单选默认选择为“男”,“保存”按钮为不可用。
(1) (15分):写一个文件读写类 FileIO,实现下列方法:
(a) readAllLines ( String name )方法,参数为读取的文件名,返回一个字符串数组,功能为按行读取文件的全部内容,每行为返回数组中的一项。
(b) writeLine()方法,两个参数分别为文件名与要写入的内容,功能为将内容按追加方式写到文件中。
(2) (15分):写一个 Student类,成员变量包括学号、姓名、性别、学院,要求有构造方法,另外实现下列方法:
(a)静态方法 toString(),能够将一个Student对象按其属性的顺序转为字符串信息,如"201400100001,张文,男,机信学院"。
(b)静态方法 equals(),比较两个对象是否为相同对象。
(3) 功能一(10分):在学号文本行中输入学号后回车,触发事件。根据输入的学号,读取stuInfo.txt 文件学生记录,判断该学生是否已在文件中。
如果不在文件中,弹出提示信息“该学生不存在”,将“保存”按钮变为可用,此时可填写学生信息并保存。
否则,根据学号读取到该学生其余信息(姓名,性别,学院),更新界面相应部分的内容。
提示:读文件应利用FileIO类提供的方法,如果该类没有实现,可直接写读写方法,读取到的内容每行是一个学生的信息(注意分割每一项的逗号是中文的“,”),String类有相应的方法可以分离出具体信息。
(4) 保存(6分):功能一中学生不存在时,需要先创建并保存学生信息,输入或选择姓名,性别,学院后,点击“保存”按钮,将该学生信息按追加方式保存到文件stuInfo.txt中。保存成功后“保存”按钮变为不可用。
(5) 添加(4分)功能一中如果学生存在,选择操作类型并填写金额后,单击“添加”按钮,按界面图所示形式将当前操作记录添加到右侧,可反复添加多条记录。
(4)线程(10分):单击“启动线程”按钮,创建一个线程,使右侧的多行记录按2秒的时间间隔由下到上进行循环滚屏(类似歌曲字幕的滚动),当鼠标指针进入该区域时,停止滚动。
提交说明:
请将项目文件夹(即以你学号建立的项目)、并附带一说明文件“说明.txt”,内容为:您的学号、姓名、联系方式,以及您认为有必要说明的其它问题,全部打包到以自己学号及姓名命名的rar文件中(如:201500800001张三.rar)。上传至服务器中的“作业上传\2016 java考试”中相对应的文件夹中。提交错误的请找我进行更改。
注意:
使用winRar或winZip,不要使用特别的压缩软件,上传前务必检验压缩文件是否能正常打开,内容是否完整,特别是源代码,是否是最终的版本,考试结束后提交错误的一律不能补交。
不要包含考试内容之外的其它代码,否则会扣分