标准化考试系统Java课程设计范文.docx

上传人:b****3 文档编号:3941174 上传时间:2023-05-06 格式:DOCX 页数:28 大小:1.15MB
下载 相关 举报
标准化考试系统Java课程设计范文.docx_第1页
第1页 / 共28页
标准化考试系统Java课程设计范文.docx_第2页
第2页 / 共28页
标准化考试系统Java课程设计范文.docx_第3页
第3页 / 共28页
标准化考试系统Java课程设计范文.docx_第4页
第4页 / 共28页
标准化考试系统Java课程设计范文.docx_第5页
第5页 / 共28页
标准化考试系统Java课程设计范文.docx_第6页
第6页 / 共28页
标准化考试系统Java课程设计范文.docx_第7页
第7页 / 共28页
标准化考试系统Java课程设计范文.docx_第8页
第8页 / 共28页
标准化考试系统Java课程设计范文.docx_第9页
第9页 / 共28页
标准化考试系统Java课程设计范文.docx_第10页
第10页 / 共28页
标准化考试系统Java课程设计范文.docx_第11页
第11页 / 共28页
标准化考试系统Java课程设计范文.docx_第12页
第12页 / 共28页
标准化考试系统Java课程设计范文.docx_第13页
第13页 / 共28页
标准化考试系统Java课程设计范文.docx_第14页
第14页 / 共28页
标准化考试系统Java课程设计范文.docx_第15页
第15页 / 共28页
标准化考试系统Java课程设计范文.docx_第16页
第16页 / 共28页
标准化考试系统Java课程设计范文.docx_第17页
第17页 / 共28页
标准化考试系统Java课程设计范文.docx_第18页
第18页 / 共28页
标准化考试系统Java课程设计范文.docx_第19页
第19页 / 共28页
标准化考试系统Java课程设计范文.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

标准化考试系统Java课程设计范文.docx

《标准化考试系统Java课程设计范文.docx》由会员分享,可在线阅读,更多相关《标准化考试系统Java课程设计范文.docx(28页珍藏版)》请在冰点文库上搜索。

标准化考试系统Java课程设计范文.docx

标准化考试系统Java课程设计范文

贵州航天职业技术学院

Java课程设计报告

 

专业:

班级:

学号:

姓名:

指导老师:

时间:

 

摘要

【摘要】

随着信息技术的飞速发展和日趋激烈的商业竞争,企业已不再满足于独立、零散的办公自动化应用,企业需要的是协同工作、综合、集成化的解决方案。

而网络是解决由于物理距离造成的信息交流不畅、协商沟通不便的办公瓶颈问题的最佳方式。

企业网上办公自动化通过对各办公自动化要素的闭环整合,实现了工作流、信息流、知识流和办公自动化系统的整合管理,提供了一个科学、开放、先进的信息化办公平台,实现办公自动化,并进行远程办公或在家办公。

企业网上办公自动化将人从繁琐、无序、低序、低端的工作中解放出来从事核心事务,整体提高了单位办事效率和对信息的可控性,降低办公成本,提高执行力,使管理趋于完善。

【关键词】办公自动化管理、ADO连接、数据源、办公管理

标准化考试系统

1.设计内容及要求

1。

1标准化考试系统的基本要求

设计C/S模式的标准化考试系统,即客户端和服务器端都是Java应用程序,具体要求如下:

(1)开始运行程序后,出现连接服务器界面,用户输入服务器IP地址,并请求服务器建立套接字连接,程序可以判断用户输入的服务器IP是否正确,并给出连接提示,使客户端与服务器端分离。

(2)正确连接服务器后,有用户登录验证功能,用户可以选择自己的登录身份,是学生还是教师.用户在登录界面输入用户名,密码以及登录身份后,客户端会把用户的相关信息通过套接字发送到服务器端,服务器端根据客户端传来的信息对用户的身份进行验证,并发送相关信息到客户端。

(3)学生正确登录后,进入考试主界面,用户可以选择试题进行考试,点击开始按钮开始考试,考试考试后,有计时功能,考试完成以后用户可以查看自己的分数,可以查看原题目、正确答案以及该道题目的分值,用户还可以查看自己所选的答案,用户考试完成后可以选择退出系统。

(4)教师登录成功后,进入后台管理界面,教师可以对标准化考试系统进行管理,教师有以下管理功能:

1。

可以增加、查询、修改和删除试题;2.可以查看所有考生的考试成绩,而且可以对考生进行排名查看;3。

可以增加、查询、修改和删除学生信息;4。

可以增加、修改、查询和删除教师信息;

(5)试卷名字、学生信息、教师信息、试题全都用SQLServer数据库存储,并且采用JDBC连接数据库。

每一道题都必须提供正确答案以及分值。

1。

2需实现的主要功能

1 C/S模式,即客户端与服务器端都是Java应用程序;

2 输入服务器IP地址,连接服务器功能;

3 登录验证功能;

4 学生可以选择所要做的试题;

5 开始考试后,有计时功能,当时间结束时考试结束;

6 完成考试后,学生可以查看自己的分数、试题、正确答案、分值以及自己所选择的答案;

7 教师可以增加、修改、查询、删除试题;

8 教师可以查看所有考生的成绩,并且可以按成绩降序查看成绩;

9 教师可以增加、修改、查询、删除学生信息;

10 教师可以增加、修改、查询、删除教师信息;

2.需求分析

根据标准化考试系统的设计要求和所要实现的功能,对标准化考试系统的需求分析如下:

2.1数据库设计

此标准化考试系统采用的是数据库来存储试题的,而不是采用文件最主要的一个原因是数据库的读取速度比文件读取速度快。

该系统采用的是SQLServer2005数据库,SQLServer数据库是一个非常强大的数据库,在各方面应用比较广泛,是一些中小型项目开发首选数据库.该标准化考试系统需要创建kaoshi数据库文件,在该数据库中需要创建student、teachter、shijuan和Test1四个表。

Student数据表是用来存储学生信息;teachter数据表用来存储教师信息;shijuan数据表用来存储试卷名字;Test1用来存储试题.

2.2服务器端和客户端的数据传输方式

服务器端和客户端的数据时用套接字来传输的。

IP地址表示Internet上的计算机,端口号标识正在计算机运行的进程.端口号与IP地址的组合得出一个网络套接字.客户端使用Socket类建立到服务器的套接字连接,具体实现:

try{

Socketsock=newSocket(Stringhost,intport);

}catch(IOExceptione){}

当套接字连接sock建立后,sock使用getInputStream()方法获得一个输入流,然后把获得的输入流接到另一个数据流上,然后就可以从这个数据流读取服务器来的信息,同样sock使用getOutputStream()方法获得一个输出流,然后把获得的输出流接到另一个DataOutputStram()数据流上,然后向这个数据流写入信息,发送给服务器.客户负责建立客户端到服务器的套接字连接,即客户端负责呼叫,因此服务器必须建立一个等待接收客户的套接字的ServerSocket对象,具体实现:

try{

ServerSocketserver_socket=newServerSocket(intport);

}catch(IOExceptione){}

当服务器的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()创建一个套接字对象,该对象需调用publicvoidconnect(SocketAddressendpoint)throwsIOException,请求和参数SocketServer指定的套接字建立连接。

为了使用connect方法,可以使用SocketAddress的子类InetSocketAddress创建一个对象,InetSocketAddress的构造方法如下:

publicInetSocketAddress(InetAddressaddr,intport)。

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-1kaoshi数据库

逻辑名称

文件类型

文件组

初始大小

自动增长

路径

文件名

kaoshi

数据

PRIMARY

3MB

不限制

D:

\。

..

Kaoshi_log

日志

不适用

1MB

不限制

D:

\。

.

student数据表是用来保存学生信息,该数据表包含用户名,密码,性别,年龄,班级和分数六个字段,具体设计如表3—2所示:

表3—2student数据表

列名

数据类型

允许空

用户名

varchar(50)

密码

varchar(50)

性别

varchar(50)

年龄

varchar(50)

班级

varchar(50)

分数

int

teachter数据表是用来存储教师信息,该数据表包含教工ID,教工姓名,教工密码,教工性别和教工职称5个字段,具体设计如表3—3所示:

表3—3teachter数据表

列名

数据类型

允许空

教工ID

varchar(50)

教工姓名

varchar(50)

教工密码

varchar(50)

教工性别

varchar(50)

教工职称

varchar(50)

Test1数据表是用来存储试题信息的,该数据表包含题目编号,内容,A选项,B选项,C选项,D选项,正确答案和分值8个字段,具体设计如表3—4所示:

 

表3-4Test1数据表

列名

数据类型

允许空

题目编号

varchar(50)

内容

varchar(500)

A选项

varchar(100)

B选项

varchar(100)

C选项

varchar(100)

D选项

varchar(100)

正确答案

varchar(50)

分值

varchar(50)

4.2JAVA数据库的连接

该系统是用JDBC连接数据库.首先必须加载JDBC驱动,然后利用DriverManager.getConnection()连接服务器和数据库。

具体实现如下:

StringdriverName="com。

microsoft.sqlserver。

jdbc.SQLServerDriver";//加载JDBC驱动

StringdbURL=”jdbc:

sqlserver:

//localhost:

1433;DatabaseName=kaoshi";

//连接服务器和数据库kaoshi

StringuserName="sa”;//默认用户名

StringuserPwd="123";//密码

try{

Class。

forName(driverName);

dbConn=DriverManager。

getConnection(dbURL,userName,userPwd);

System.out。

println(”ConnectionSuccessful!

");//如果连接成功控制台输出ConnectionSuccessful!

}

catch(Exceptione){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服务器端效果图

7.总结与说明

该标准化考试系统采用的是C/S模式,客户端和服务器端都是应用程序。

客户端与服务器端是用Socket和ServerSocket进行通信,服务器端根据客户端传来的信息来进行相应的操作,客户端根据服务器传来的信息把信息显示给用户.该系统有学生考试功能和教师管理功能,两个功能都是在客户端,数据库存放在服务器端。

本系统有3个特点:

1 本系统采用的全都是null布局.空布局容器可以准确地定位组件在容器中的位置和大小,setBounds(inta,intb,intwidth,intheight)方法是所有组件都拥有的一个方法,组件调用该方法可以设置本身的大小和在容器中的位置。

2 本系统用了大量的图片。

这些图片作为窗口的背景和按钮的背景,加入背景图片必须采用null布局,这些图片不是用drawImage()方法绘制的,而是用把背景图片加到JLabel,然后在容器中加入其它组件并设置这些组件的大小和位置,最后在该容器中加入JLabel组件,把JLabel组件的大小设置成窗口一样大,这样就实现了背景图片的加入。

因为本系统采用了大量的图片,所以界面不会很难看。

有人说用java做出来的界面很难看,我看不一定,java不是提供了图片功能吗,只要应用好java的这个特性就行。

所以不管那一种编程语言,只要它提供了图片功能,那么用它编写的界面就不会很难看。

3 本系统采用SQLServer存储数据,并且用JDBC连接数据库。

用JDBC连接SQLServer数据库首先必须加载JDBC驱动,然后利用DriverManager。

getConnection()连接服务器和数据库。

附录标准化考试系统部分源代码

ClientTestArea.java

importjava。

awt.*;

importjavax。

swing。

*;

importjava.awt。

event。

*;

importjava.io。

*;

import。

*;

importjava。

util.StringTokenizer;

publicclassClientTestAreaextendsJFrameimplementsActionListener,ItemListener,Runnable

Socketsock=null;

DataInputStreamin=null;

DataOutputStreamout=null;

Threadthread1=null;

JButtonshiti;

JComboBoxli;

JLabellabel1;

JTextFieldfenshu;

JButtonchakan;

JLabeltm;

JTextFieldtimeShow;

JCheckBoxbox[];

JPanelpanel1,panel2,panel3,panel4;

longtime1=0;

TimerT;

JButtonduqu,tijiao;

JScrollPanepanel5;

JTextAreatext;

JSplitPanesp1,sp2,sp3,sp4;

JLabelbeijing;

Toolkittool;

Imageimg,img1,img2,img3;

Dimensiondim;

boolean完成考试=false;

booleansuccess=false;

//booleanisSelected=true;

JButtonkaishi,chengji,tuichu;

ChaChengjicj;

Stringslb="",szx="”,slz=”";

ClientTestArea()

super(”学生考试主界面");

setLayout(null);

tool=getToolkit();

img=tool。

getImage("images/zhu.png");

img1=tool。

getImage("images/kaishi1。

png");

img2=tool.getImage(”images/chengji1。

png");

img3=tool。

getImage("images/tuichu1。

png");

dim=tool。

getScreenSize();

//加入三个按钮

kaishi=newJButton(newImageIcon(img1));

chengji=newJButton(newImageIcon(img2));

tuichu=newJButton(newImageIcon(img3));

kaishi.addActionListener(this);

chengji。

addActionListener(this);

tuichu.addActionListener(this);

kaishi.addMouseListener(newMouseAdapter()

{

publicvoidmouseEntered(MouseEvente)

{

kaishi.setIcon(newImageIcon(tool.getImage(”images/kaishi.png")));

publicvoidmouseExited(MouseEvente)

kaishi.setIcon(newImageIcon(img1));

}

});

chengji.addMouseListener(newMouseAdapter()

{

publicvoidmouseEntered(MouseEvente)

chengji.setIcon(newImageIcon(tool。

getImage(”images/chengji。

png")));

}

publicvoidmouseExited(MouseEvente)

{chengji.setIcon(newImageIcon(img2));}});

tuichu.addMouseListener(newMouseAdapter()

{publicvoidmouseEntered(MouseEvente)

{tuichu。

setIcon(newImageIcon(tool.getImage("images/tuichu.png")));}

publicvoidmouseExited(MouseEvente)

{tuichu。

setIcon(newImageIcon(img3));}});

add(kaishi);

add(chengji);

add(tuichu);

kaishi。

setBounds(151,70,80,30);

chengji。

setBounds(285,40,80,30);

tuichu.setBounds(407,60,80,30);

//试卷选择区

shiti=newJButton(”加入试题到列表”);

shiti.addActionListener(this);

li=newJComboBox();

li.addItemListener(this);

panel1=newJPanel();

panel1。

setLayout(null);

panel1。

add(shiti);

panel1.add(li);

shiti.setBounds(30,20,130,30);

li.setBounds(40,60,100,25);

panel1.setBorder(BorderF

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2