资源描述
甘肃政法学院计算机科学学院Java程序设计课程设计题 目 标准化考试系统计算机科学学院计算科学与技术专业11级专升本班学 号:201181210115姓 名: 刘昆明 指导教师: 李 瑞 生 成 绩:_完成时间:2011年 11月目 录1设计内容及要求- 1 -1.1 标准化考试系统的基本要求- 1 -1.2 需实现的主要功能- 1 -2需求分析- 2 -2.1数据库设计- 2 -2.2服务器端和客户端的数据传输方式- 2 -2.3 服务器端功能设计- 3 -2.4客户端功能设计- 4 -3总体设计- 4 -3.1 总体功能图- 4 -3.2 总体流程图- 5 -4数据库设计- 7 -4.1 数据库及表结构的建立- 7 -4.2 JAVA 数据库的连接- 8 -5. 主要功能设计流程- 8 -5.1服务器端设计流程图- 8 -5.2客户端设计流程图- 9 -6代码实现- 10 -6.1类之间关系图- 10 -6.2 运行效果图- 11 -6.3 程序打包发布过程- 17 -7. 总结与说明- 18 - 8. 参考文献.- 19 -标准化考试系统设计与实现【摘 要】:在现今知识爆炸的年代里,教学的质量和怎样提高教师的工作效率成了各大院校的首要任务。找题、选题和出卷就成为一项非常重要的工作。每学期教师都要为各类考试付出大量的精力和工作,尤其是一位教师教授多门学科的时候,工作量将成倍增加。因此开发此考试系统,对各专业课程的问卷进行整理入库,以便在需要的时候能够及时、方便、快速的对学生进行各级测试,从而使考试过程趋于简单化,减少教师在这方面的工作负担。因此,使用现在的新技术,开发出适应新的需求的新系统刻不容缓。 四年的大学生活转瞬既逝,在这四年中,我系统的学习了计算机科学与技术专业的所有课程。深入的学习了各个科目的理论知识,对专业知识有了整体的掌握。在即将毕业之际,为了理论联系实际,检验自己的学习成果,我选择了这个题目作为课程设计。在此毕业设计的完成过程中,我严格遵循软件开发的过程,将理论知识与具体问题相结合。在应用程序开发中我一方面学习了软件编程思想,另一方面具体的运用了JAVA语言。体会了他的诸多功能和特色。熟悉了数据库应用程序的开发原理。确实达到了学校和辅导教师对我们应届毕业生的各种要求。【关键词】:J2ME;标准化考试;设计与实现11设计内容及要求1.1 标准化考试系统的基本要求 设计C/S模式的标准化考试系统,即客户端和服务器端都是Java应用程序,具体要求如下:(1) 开始运行程序后,出现连接服务器界面,用户输入服务器IP地址,并请求服务器建立套接字连接,程序可以判断用户输入的服务器IP是否正确,并给出连接提示,使客户端与服务器端分离。(2) 正确连接服务器后,有用户登录验证功能,用户可以选择自己的登录身份,是学生还是教师。用户在登录界面输入用户名,密码以及登录身份后,客户端会把用户的相关信息通过套接字发送到服务器端,服务器端根据客户端传来的信息对用户的身份进行验证,并发送相关信息到客户端。(3) 学生正确登录后,进入考试主界面,用户可以选择试题进行考试,点击开始按钮开始考试,考试考试后,有计时功能,考试完成以后用户可以查看自己的分数,可以查看原题目、正确答案以及该道题目的分值,用户还可以查看自己所选的答案,用户考试完成后可以选择退出系统。(4) 教师登录成功后,进入后台管理界面,教师可以对标准化考试系统进行管理,教师有以下管理功能:1.可以增加、查询、修改和删除试题;2.可以查看所有考生的考试成绩,而且可以对考生进行排名查看;3.可以增加、查询、修改和删除学生信息;4.可以增加、修改、查询和删除教师信息;(5) 试卷名字、学生信息、教师信息、试题全都用SQL Server数据库存储,并且采用JDBC连接数据库。每一道题都必须提供正确答案以及分值。1.2 需实现的主要功能1 C/S模式,即客户端与服务器端都是Java应用程序;2 输入服务器IP地址,连接服务器功能;3 登录验证功能;4 学生可以选择所要做的试题;5 开始考试后,有计时功能,当时间结束时考试结束;6 完成考试后,学生可以查看自己的分数、试题、正确答案、分值以及自己所选择的答案;7 教师可以增加、修改、查询、删除试题;8 教师可以查看所有考生的成绩,并且可以按成绩降序查看成绩;9 教师可以增加、修改、查询、删除学生信息;10 教师可以增加、修改、查询、删除教师信息;2需求分析 根据标准化考试系统的设计要求和所要实现的功能,对标准化考试系统的需求分析如下:2.1数据库设计 此标准化考试系统采用的是数据库来存储试题的,而不是采用文件最主要的一个原因是数据库的读取速度比文件读取速度快。该系统采用的是SQL Server 2005数据库,SQL Server数据库是一个非常强大的数据库,在各方面应用比较广泛,是一些中小型项目开发首选数据库。该标准化考试系统需要创建kaoshi数据库文件,在该数据库中需要创建student、teachter、shijuan和Test1四个表。Student数据表是用来存储学生信息;teachter数据表用来存储教师信息;shijuan数据表用来存储试卷名字;Test1用来存储试题。2.2服务器端和客户端的数据传输方式服务器端和客户端的数据时用套接字来传输的。IP地址表示Internet上的计算机,端口号标识正在计算机运行的进程。端口号与IP地址的组合得出一个网络套接字。客户端使用Socket类建立到服务器的套接字连接,具体实现:try Socket sock=new Socket(String host,int port);catch(IOException e)当套接字连接sock建立后,sock使用getInputStream()方法获得一个输入流,然后把获得的输入流接到另一个数据流上,然后就可以从这个数据流读取服务器来的信息,同样sock使用getOutputStream()方法获得一个输出流,然后把获得的输出流接到另一个DataOutputStram()数据流上,然后向这个数据流写入信息,发送给服务器。客户负责建立客户端到服务器的套接字连接,即客户端负责呼叫,因此服务器必须建立一个等待接收客户的套接字的ServerSocket对象,具体实现:try ServerSocket server_socket=new ServerSocket(int port);catch(IOException e)当服务器的ServerSocket对象建立后,就可以使用accept()方法接收客户的套接字。2.3 服务器端功能设计服务器端是接受客户端传来的信息,并作出相应的处理。标准化考试系统服务器端最主要是实现试题的读取。为了完成这个标准化考试系统还需要服务器有一些其他的功能,比如:计算学生考试分数,用户登录验证,教师对系统管理的实现等。2.3.1试题读取功能本系统是采用数据库来存储试题的,所以要读取试题必须首先建立与Test1数据表的连接,然后利用ResultSet的对象rs的getString()方法得到试题的内容,然后把试题内容发给客户端。2.3.2 用户登录验证功能当用户登录时,客户端会获取用户输入的用户名和密码,并且会把信息发送给服务器,服务器会根据客户端发来的信息对用户的身份进行验证。kaoshi数据库有两个数据表是用来存储用户信息的,student数据表存储学生信息,teachter数据表存储教师信息,当用户以学生身份登录系统时,服务器会在student数据表中查询有没有这个用户,并根据查询的信息判断学生是否成功登陆,把信息发送给客户端,当用户以教师身份登录系统时,服务器会在student数据表中查询有没有这个用户,并根据查询的信息判断教师是否成功登陆,把信息发送给客户端。2.4客户端功能设计客户端是提供学生进行考试和教师对系统进行管理,由于该系统是C/S模式,所以客户端必须有连接服务器功能,连接服务器后有用户登录功能,用户正确登录后,学生用户进入考试界面,所以客户端必须有考试功能,教师用户正确登录后进入教室管理界面,客户端必须有试题管理功能,查询学生成绩功能,学生信息管理功能,教师信息管理功能。2.4.1连接服务器功能客户端与服务器端连接时通过套接字实现的,本系统采用的是把套接字放在一个线程中,就是使用Socket类不带参数的构造方法Socket()创建一个套接字对象,该对象需调用public void connect(SocketAddress endpoint) throws IOException ,请求和参数SocketServer指定的套接字建立连接。为了使用connect方法,可以使用SocketAddress的子类InetSocketAddress创建一个对象, InetSocketAddress的构造方法如下:public InetSocketAddress(InetAddress addr,int port)。2.4.2用户登录功能用户在进入系统前必须经过用户登录,用户登录功能是为了保护系统的安全,当用户写入用户名和密码,并且选择了登陆身份后,客户端会获取用户的信息发送给服务器端,让服务器度昂对用户的身份进行验证,并传来登录是否成功的信息,客户端根据服务器端传来的信息进行判断,如果登录成功,弹出对话框显示用户登录成功,学生进入考试界面,教师进入后台管理界面;如果登录失败,弹出对话框显示用户名或密码错误或者显示你已经登录了。2.4.3考试功能学生正确登录后就进入考试界面,学生进入考试界面后,必须选择试卷,客户端会通知服务器端列出所有的试卷名称,在客户端的下拉列表中会显示所有试卷的名字,用户选择了试卷后,客户端会通知服务器端学生所选的试卷名称,学生点击开始考试按钮就可以开始考试了,同时计时器开始计时,当用户完成考试或者时间用完了考试结束,考试结束后用户可以点击查询成绩按钮,用户可以看到题目,答案以及自己所选的答案,还有你的成绩,查询成绩是用对话框实现,玩了后用户可以退出系统。2.4.4后台管理功能 后台管理功能就是对试题进行管理,查询学生成绩,对学生信息进行管理,对教师信息进行管理,试题管理有对尸体进行增加,删除,查询,修改,当用户在客户端输入试题信息后,点击这些按钮,客户端就会发送信息给服务器,服务器来查询或者修改数据库,其他的也一样,总是通过服务器端对数据库进行数据库操作3总体设计3.1 总体功能图根据分析,标准化考试系统必须实现以下功能:1.连接服务器功能;2.用户登录功能;3.考试功能;4.管理功能;根据系统需求,标准化考试系统的总体功能图如图3-1所示: 图3-1总体功能图3.2 总体流程图 图3-2 总体流程图4数据库设计4.1 数据库及表结构的建立 该标准化考试系统共创建了一个kaoshi数据库,该数据库中创建了student、teachter、shijuan和Test1四个表。表3-1 kaoshi数据库逻辑名称文件类型文件组初始大小自动增长路径文件名kaoshi数据PRIMARY3MB不限制D:.Kaoshi_log日志不适用1MB不限制D:.student数据表是用来保存学生信息,该数据表包含用户名,密码,性别,年龄,班级和分数六个字段,具体设计如表3-2所示:表3-2 student数据表列名数据类型允许空用户名varchar(50)否密码varchar(50)否性别varchar(50) 否年龄varchar(50)否班级varchar(50)否分数int 是 teachter数据表是用来存储教师信息,该数据表包含教工ID,教工姓名,教工密码,教工性别和教工职称5个字段,具体设计如表3-3所示:表3-3 teachter数据表列名数据类型允许空教工IDvarchar(50)否教工姓名varchar(50)否教工密码varchar(50) 否教工性别varchar(50)否教工职称varchar(50)否 Test1数据表是用来存储试题信息的,该数据表包含题目编号,内容,A选项,B选项,C选项,D选项,正确答案和分值8个字段,具体设计如表3-4所示:表3-4 Test1数据表列名数据类型允许空题目编号varchar(50)否内容varchar(500)否A选项varchar(100) 否B选项varchar(100)否C选项varchar(100)否D选项varchar(100)否正确答案varchar(50)否分值varchar(50)否 4.2 JAVA 数据库的连接该系统是用JDBC连接数据库。首先必须加载JDBC驱动,然后利用DriverManager.getConnection()连接服务器和数据库。具体实现如下:String driverName = com.microsoft.sqlserver.jdbc.SQLServerDriver; /加载JDBC驱动String dbURL = jdbc:sqlserver:/localhost:1433; DatabaseName=kaoshi;/连接服务器和数据库kaoshiString userName = sa; /默认用户名String userPwd = 123; /密码try Class.forName(driverName); dbConn = DriverManager.getConnection(dbURL, userName, userPwd); System.out.println(Connection Successful!); /如果连接成功 控制台输出Connection Successful! catch (Exception e) e.printStackTrace(); 5. 主要功能设计流程5.1服务器端设计流程图根据对服务器端功能的分析,得到服务器设计流程图如图3-3所示: 图3-3 服务器端设计流程图5.2客户端设计流程图根据客户端功能分析,得到客户端设计流程图如图3-4所示: 图3-4 客户端设计流程图 6代码实现6.1类之间关系图在编写标准化考试系统时,编写了8个java源文件:Main.Java,ChaChengji.Java,ClientTestArea.Java,DengluPanel.Java,Guanli.Java,Lianjie.Java,ChatServer.Java,ReadTestquestion.Java其中ChatServer.Java,ReadTestquestion.Java为服务器端java程序编译产生所需要的类;Main.Java,ChaChengji.Java,ClientTestArea.Java,DengluPanel.Java,Guanli.Java,Lianjie.Java为客户端java程序编译产生所需要的类。标准化考试系统除了需要编写的8个java源文件所编译产生的类外,还需要java系统提供的一些重要的类。如ServerSocket,Socket,JTabbedPane等类。标准化考试系统所用到的一些重要的类以及它们之间的关系如图3-5和图3-6所示。 图3-5 服务器端类之间的关系图 图3-6 客户端类之间的关系图6.2 运行效果图连接服务器界面: 图3-7 连接服务器界面学生登录界面: 图3-8 学生登录界面考试主界面: 图3-9 考试主界面开始考试后界面: 图3-10 开始考试后界面成绩查询界面: 图3-11 成绩查询界面教师登录界面: 图3-12 教师登录界面试题管理界面: 图3-13 试题管理界面查看学生成绩界面: 图3-14 查看学生成绩界面学生信息管理界面: 图3-15 学生信息管理界面教师信息管理界面: 图3-16 教师信息管理界面服务器端效果图: 图3-17 服务器端效果图 6.3 程序打包发布过程1. 服务器端 服务器端程序在命令行窗口运行,不需要打包。2.客户端 可以使用jar.Exe命令制作JAR文件来发布编写的客户端软件(1) 首先用文本编辑器,比如Windows下的记事本,编写一个清单文件:mymoon.Mf Manifest-Version: 1.0 Main-Class: Main Created-By: 1.5(Sun Microsystems Inc.)将mymoon.Mf保存到D:标准化考试系统客户端中,即和应用程序所用的字节码保存在相同的目录中。注意:清单文件中的“Manifest-Version:”和1.0之间,“Main-Class:”和主类Main之间以及“Created-By:”和1.5之间必须有且只有一个空格(2) 生成JAR文件 D:标准化考试系统客户端jar cfm kaoshi.jar mymoon.mf *.class 其中参数c表示要生成的一个新的JAR文件,f表示要生成的JAR文件的名字,m表示清单文件的名字。现在就可以将kaoshi.Jar分值到任何一个安装了java运行环境的计算机上,用户双击该文件的图标就可以运行客户端软件。 7. 总结与说明该标准化考试系统采用的是C/S模式,客户端和服务器端都是应用程序。客户端与服务器端是用Socket和ServerSocket进行通信,服务器端根据客户端传来的信息来进行相应的操作,客户端根据服务器传来的信息把信息显示给用户。该系统有学生考试功能和教师管理功能,两个功能都是在客户端,数据库存放在服务器端。本系统有3个特点:1 本系统采用的全都是null布局。空布局容器可以准确地定位组件在容器中的位置和大小,setBounds(int a,int b,int width,int height)方法是所有组件都拥有的一个方法,组件调用该方法可以设置本身的大小和在容器中的位置。2 本系统用了大量的图片。这些图片作为窗口的背景和按钮的背景,加入背景图片必须采用null布局,这些图片不是用drawImage()方法绘制的,而是用把背景图片加到JLabel,然后在容器中加入其它组件并设置这些组件的大小和位置,最后在该容器中加入JLabel组件,把JLabel组件的大小设置成窗口一样大,这样就实现了背景图片的加入。因为本系统采用了大量的图片,所以界面不会很难看。有人说用java做出来的界面很难看,我看不一定,java不是提供了图片功能吗,只要应用好java的这个特性就行。所以不管那一种编程语言,只要它提供了图片功能,那么用它编写的界面就不会很难看。3 本系统采用SQL Server存储数据,并且用JDBC连接数据库。用JDBC连接SQL Server数据库首先必须加载JDBC驱动,然后利用DriverManager.getConnection()连接服务器和数据库。 8参考文献JAVA2 实用教程 作者:耿祥义 出版社:清华大学出版社JAVA 实用教程 作者:郑阿奇 出版社:电子工业出版社
展开阅读全文