Java实训报告册.doc_第1页
Java实训报告册.doc_第2页
Java实训报告册.doc_第3页
Java实训报告册.doc_第4页
Java实训报告册.doc_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

java程序设计实训报告册实 训 报 告 册实训课程: java程序设计项目题目:学生考试登录系统 项目小组:周夜葵 杨君超 和泽慧指导老师:田海燕 实训时间:2010年6月28-2010年7月3日计算机网络08 1班 目录一工具选择,jdk的安装和netbeans的调试(1) 安装jdk6.0和netbeans3(2) 环境变量的配置 4(3) 使用netbeans创建登录窗口5二 用户登录功能模块开发(1) 登陆模块的思路6(2) 用户登录的功能实现 6(3)用户登录核心代码7(4)运行结果9三 用户注册功能模块开发(1) 思路9(2)用户注册实现9(3)用户注册核心代码14(4)用户注册运行结果13四 用户考试功能模块开发(1) 思路15(2) 具体实现15(3) 核心代码15(1.1)运行结果26五 实训总结(1)实训心得27工具选择,jdk的安装和netbeans的调试1 工具的选择 在题目的选择上我们选择了学生考试系统的开发,开发环境是sun公司的netbeans,netbeans是一个全功能的开放源码java ide,可以帮助开发人员编写、编译、调试和部署java应用,并将版本控制和xml编辑融入其众多功能之中。netbeans 可支持java 2平台标准版(j2se)应用的创建、采用jsp和servlet的2层web应用的创建,以及用于2层web应用的api及软件的核心组的创建。此外,netbeans 最新牒还预装了两个web服务器,即tomcat和glassfish,从而免除了繁琐的配置和安装过程。所有这些都为java开发人员创造了一个可扩展的开放源多平台的java ide,以支持他们在各自所选择的环境中从事开发工作,如solaris、linux、windows或macintosh。 netbeans是一个为软件开发者而设计的自由、开放的ide(集成开发环境),你可以在这里获得许多需要的工具,包括建立桌面应用、企业级应用、web开发和java移动应用程序开发、c/c+,甚至ruby。netbeans可以非常方便的安装于多种操作系统平台,包括windows,linux,mac os和solaris等操作系统 netbeans ide6.1版本提供了几种新功能和一些功能的增强。提供了强大的javascript编辑功能,支持使用spring的web框架,并加强了与mysql的整合,使netbeans比较方便的使用mysql数据库,netbeans 6.1增强了性能,启动速度提升40%。在建立一个大工程时,有较低的内存消耗和更快的响应速度!2. jdk的安装和netbeans的调试要安装netbeans6.8必须安装jdk5.0或者jdk6.0的版本,因为netbeans是基于jdk的开发工具,jdk属于支持netbeans的环境。 安装好后,配置环境变量,path和classpa,path目录指向:c:program filesjavajdk1.6.0_18bin就是安装jdk所在的目录。classpath指向:c:program filesjavajdk1.6.0_18lib;.并在后面加上“.”结束。 安装netbeans6.8,安装步骤省略,首先得注意的时候一定要记得配置环境变量,包括path和classpath一个也不能少否则安装程序检测不到jdk的存在。成功安装如图:界面截图:3使用netbeans创建登录窗口打开netbeans,点击左边窗格上的新建文件,选择swing gui或者awt gui,选择好存放项目的位置就可以进入图形界面的开发环境进行设计。 首先要添加面板到设计面板上,如图:,然后再工具栏拖动相应的按钮和文本框到底层面板上,布局好相应的按钮后,进行txt属性的修改,再属性栏找到txt属性,修改按钮和标签的文本属性。对于按钮上的事件,则可以双击该按钮进入到代码的编写界面。 由于首次接触netbeans对其强大的功能和良好的交互性不够了解,许多可用的功能没有得到实现。正在进一步的学习和研究中。用户登录功能模块开发1 登录模块的思路首先我们的思路是,在登录的窗体上输入用户名和密码之后,把用户名和密码与注册界面注册生成的txt文本中的内容进行对比,若一致则登录成功,否则不成功。但是现在的问题是在进行对比的时候由于代码复杂,没有实现这个功能,只好把判断的代码加上注释进行傻瓜式的判断。然后跳转到考试的界面。2 用户登录的功能实现登录窗口作为注册窗口和考试界面的主窗体,在点击注册按钮时调用注册窗体并将父窗体隐藏,可以实现注册界面的调用,注册完后点击“确定”可返回登录界面,在登录窗体上正确填写相关资料后点击登录按钮,可进入考试界面,进行考试。3 用户登录的核心代码loginpanel-登录界面的类名窗体界面设计的主要思路是:在主界面中添加面板,并在面板中添加相关组件。面板的布局为: borderlayoutimport java.awt.*;import java.awt.event.*;import javax.swing.*;/完成登录界面的设计class loginpanel extends jpanel implements actionlistenerjbutton loginbtn,registerbtn,cancelbtn;jlabel titlelabel,namelabel,pwdlabel;jtextfield namefield;jpasswordfield pwdfield;jpanel panel1,panel2,panel3,panel21,panel22;jframe iframe;public static void main(string args)new loginpanel();public loginpanel()iframe=new jframe();jlabel titlelabel=new jlabel(欢迎使用考试系统);titlelabel.setfont(new font(隶书,font.bold,24);jlabel namelabel=new jlabel(用户名:);jlabel pwdlabel=new jlabel(密 码:);jtextfield namefield=new jtextfield(16);jpasswordfield pwdfield=new jpasswordfield(16);pwdfield.setechochar(*);jbutton loginbtn=new jbutton(登录);jbutton registerbtn=new jbutton(注册);jbutton cancelbtn=new jbutton(取消);/装入监听器loginbtn.addactionlistener(this); registerbtn.addactionlistener(this); cancelbtn.addactionlistener(this); panel1 = new jpanel();panel2 = new jpanel();panel3 = new jpanel();panel21 = new jpanel();panel22 = new jpanel();borderlayout b1=new borderlayout();setlayout(b1);panel1.add(titlelabel);panel21.add(namelabel);panel21.add(namefield);panel22.add(pwdlabel);panel22.add(pwdfield);panel2.add(panel21,borderlayout.north);panel2.add(panel22,borderlayout.south);panel3.add(loginbtn);panel3.add(registerbtn);panel3.add(cancelbtn);iframe.add(panel1,borderlayout.north);iframe.add(panel2,borderlayout.center);iframe.add(panel3,borderlayout.south);iframe.setdefaultcloseoperation(jframe.exit_on_close);iframe.setsize(300,250);iframe.settitle(登录系统);iframe.setvisible(true);/实现三个按钮事件功能public void actionperformed(actionevent e)if(e.getactioncommand()=登录) /登录按钮的相关事件/if(namefield.gettext().trim().equals()/joptionpane.showmessagedialog(null,t请输入用户名!,用户名空提示,joptionpane.ok_option);/else/if(new string(pwdfield.getpassword().equals()joptionpane.showmessagedialog(null,t请输入密码!,密码空提示,joptionpane.ok_option);/else/if(namefield.gettext().trim().equals(zyk)&(new string(pwdfield.getpassword().equals(123456)/new test_gui(zyk); /实现与考试模块界面的连接iframe.dispose();if(e.getactioncommand()=注册) /注册按钮的相关事件new register_gui(); /实现与注册界面的连接iframe.dispose();if(e.getactioncommand()=取消) /取消按钮的相关事件system.exit(0);4 运行结果用户注册功能模块开发1思路简单的注册界面,有登陆提示信息,注册提示信息,简约的界面,通过用户的注册可以授权合法的用户登陆考试,可以进行界面的跳转功能,主要正对完成注册的跳转,在注册界面通过,获取用户名和密码以及相关的信息后将信息提交到本地txt文本中(模拟数据库)。以便后期登录时从txt中取得相应合法用户的账户和密码。2.用户注册的实现注册窗口作为登陆窗口的子窗体,在点击注册的时候调用子窗体并将父窗体隐藏,就可以实现注册界面的调用。3.用户注册的核心代码register_gui-注册界面的类名窗体界面的布局分别为:gridbaglayout、boxlayoutimport java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.border.border;import java.util.*;public class register_guiregister_gui()registerframe rf=new registerframe();rf.setdefaultcloseoperation(jframe.exit_on_close);rf.setvisible(true);public static void main(string args)new register_gui();/完成注册界面的设计class registerframe extends jframetoolkit tool;public registerframe()settitle(用户注册);tool=toolkit.getdefaulttoolkit();dimension ds=tool.getscreensize();int w=ds.width;int h=ds.height;setbounds(w-300)/2,(h-300)/2,300,300);setresizable(false);registerpanel rp=new registerpanel(this);add(rp);class registerpanel extends jpanel implements actionlistenerjlabel titlelabel,namelabel,pwdlabel1,pwdlabel2,sexlabel,agelabel,classlabel;jtextfield namefield,agefield;jpasswordfield pwdfield1,pwdfield2;jbutton commitbtn,resetbtn,cancelbtn;jradiobutton rbtn1,rbtn2;jcombobox combo;vectorv;gridbaglayout gbl;gridbagconstraints gbc;jpanel panel;box box;component c;jframe iframe;public registerpanel(jframe frame)iframe=new jframe();titlelabel=new jlabel(用户注册);titlelabel.setfont(new font(隶书,font.bold,24);namelabel=new jlabel(用户名:);pwdlabel1=new jlabel(密 码:);pwdlabel2=new jlabel(确认密码:);sexlabel=new jlabel(性 别:);agelabel=new jlabel(年 龄:);classlabel=new jlabel(所属班级:);namefield=new jtextfield(16);pwdfield1=new jpasswordfield(16);pwdfield1.setechochar(*);pwdfield2=new jpasswordfield(16);pwdfield2.setechochar(*);agefield=new jtextfield(16);rbtn1=new jradiobutton(男);rbtn2=new jradiobutton(女);rbtn2.setselected(true);buttongroup bg=new buttongroup();bg.add(rbtn1);bg.add(rbtn2);v=new vector();v.add(计算机网络08);v.add(图文图形设计08);v.add(水利水电08);v.add(会计08);v.add(自动化08);combo=new jcombobox(v);commitbtn=new jbutton(注册);resetbtn=new jbutton(重置);cancelbtn=new jbutton(取消);/装入监听器commitbtn.addactionlistener(this); resetbtn.addactionlistener(this); cancelbtn.addactionlistener(this); panel=new jpanel();panel.add(rbtn1);panel.add(rbtn2);border border=borderfactory.createtitledborder();panel.setborder(border); box = box.createhorizontalbox();box.add(commitbtn);box.add(box.createhorizontalstrut(30);box.add(resetbtn);box.add(box.createhorizontalstrut(30);box.add(cancelbtn);gbl=new gridbaglayout();setlayout(gbl);gbc=new gridbagconstraints();addcompnent(titlelabel,0,0,4,1);add(box.createverticalstrut(20);gbc.anchor=gridbagconstraints.center;gbc.fill=gridbagconstraints.horizontal;gbc.weightx=0;gbc.weighty=100;addcompnent(namelabel,0,1,1,1);addcompnent(namefield,1,1,4,1);addcompnent(pwdlabel1,0,2,1,1);addcompnent(pwdfield1,1,2,4,1); addcompnent(pwdlabel2,0,3,1,1);addcompnent(pwdfield2,1,3,4,1);addcompnent(sexlabel,0,4,1,1);addcompnent(panel,1,4,1,1);gbc.anchor=gridbagconstraints.east;gbc.fill=gridbagconstraints.none;addcompnent(agelabel,2,4,1,1);gbc.fill=gridbagconstraints.horizontal;addcompnent(agefield,3,4,2,1);addcompnent(classlabel,0,5,1,1);addcompnent(combo,1,5,4,1);gbc.anchor=gridbagconstraints.center;gbc.fill=gridbagconstraints.none;addcompnent(box,0,6,4,1);public void addcompnent(component c,int x,int y,int w,int h)gbc.gridx=x;gbc.gridy=y;gbc.gridwidth=w;gbc.gridheight=h;gbc.gridx=x;add(c,gbc);/实现三个按钮事件功能public void actionperformed(actionevent e)if(e.getsource()=commitbtn) /注册按钮的相关事件register rinfo=new register();=namefield.gettext().trim();rinfo.password=new string(pwdfield1.getpassword();rinfo.sex=rbtn2.isselected()?男:女;rinfo.age=agefield.gettext().trim();rinfo.nclass=combo.getselecteditem().tostring();if(.length()=0)joptionpane.showmessagedialog(null,t用户名不能为空);return;if(rinfo.password.length()=0)joptionpane.showmessagedialog(null,t密码不能为空);return;if(!rinfo.password.equals(new string(pwdfield2.getpassword()joptionpane.showmessagedialog(null,密码两次输入不一致,请重新输);return;if(rinfo.age .length()=0)joptionpane.showmessagedialog(null,t年龄不能为空);return;int age=integer.parseint(rinfo.age);if(age100)joptionpane.showmessagedialog(null,t年龄输入不合法);return;joptionpane.showmessagedialog(null,t注册成功);new loginpanel().setvisible(true); /实现与登录界面的连接iframe.dispose();if(e.getsource()=resetbtn) /重置按钮的相关事件namefield.settext();pwdfield1.settext();pwdfield2.settext();rbtn2.isselected();agefield.settext();combo.setselectedindex(0);if(e.getsource()=cancelbtn) /退出按钮的相关事件system.exit(0); class registerstring name;string password;string sex;string age;string nclass;4用户注册运行结果考试模块功能1.思路首先在同一个目录下新建一个test.txt文件,加入试题,再把试题加载到考试界面模块中;其次在其中添加倒计时模块,实现时间的提醒功能,;再次,实现“开始考试”按钮的功能,当点击“开始考试”按钮时,跳出试题,可对试题进行答案的选择;最后,实现“提交试题”按钮的功能,点击“提交试题”按钮后,跳出得分情况。 2.具体实现 考试模块作为登陆窗口的子窗体,在正确填写相关资料后,点击登录按钮后调用子窗体并将父窗体隐藏,就可以实现考试模块界面的调用。3.核心代码testgui-考试模块的类名窗体界面的主要布局为: borderlayout、boxlayout以继承线程类的方法实现考试时间倒计时import java.awt.*;import java.awt.event.*;import java.io.*;import java.text.numberformat;import java.util.vector;import javax.swing.*;import javax.swing.border.border;public class test_gui public static void main(string args) new test_gui(zyk);public test_gui(string name)testframe tf = new testframe(name);tf.setdefaultcloseoperation(jframe.exit_on_close);tf.setvisible(true);/框架类class testframe extends jframe private toolkit tool;private jmenubar mb;private jmenu menutool,menuhelp,menuexit;private jmenuitem edition,about;private jdialog help; public testframe(string name)settitle(学生在线考试系统);tool = toolkit.getdefaulttoolkit();dimension ds = tool.getscreensize();int w = ds.width;int h = ds.height;setbounds(w-500)/2,(h-430)/2, 500, 450);/设置窗体图标 image image = tool.getimage(hu.jpg);seticonimage(image);setresizable(false);/-菜单条的设置-mb = new jmenubar();setjmenubar(mb);menutool = new jmenu(工具(t);menuhelp = new jmenu(帮助(h);menuexit = new jmenu(退出(e);/设置助记符menutool.setmnemonic(t);menuhelp.setmnemonic(h);menuexit.setmnemonic(e);mb.add(menutool);mb.add(menuhelp);mb.add(menuexit);edition = new jmenuitem(版本(e),e);about = new jmenuitem(关于(a),h);menuhelp.add(edition);/添加分隔线menuhelp.addseparator();menuhelp.add(about);/设置快捷键edition.setaccelerator(keystroke.getkeystroke(keyevent.vk_e,inputevent.ctrl_mask);about.setaccelerator(keystroke.getkeystroke(keyevent.vk_a,inputevent.ctrl_mask);borderlayout bl =new borderlayout();setlayout(bl);testpanel tp = new testpanel(name);add(tp,borderlayout.center); /匿名内部类添加事件 edition.addactionlistener(new actionlistener()public void actionperformed(actionevent arg0) joptionpane.showmessagedialog(null, 单机版 exam_system v1.1,版本信息,joptionpane.plain_message);); about.addactionlistener(new actionlistener()public void actionperformed(actionevent arg0) help = new jdialog(new jframe();jpanel panel = new jpanel();jtextarea helparea = new jtextarea(14,25);helparea.settext(本书以一个在线考试系统的开发贯穿全书+n系统的开发分为三个版本:+n 1.单机版 stand-alone_exam system v1.1+n 2.c/s版 c/s_exam system v1.2+n 3.数据库版 data_exam system v1.3);helparea.seteditable(false);jscrollpane sp = new jscrollpane(helparea);panel.add(sp);help.settitle(帮助信息);help.add(panel,center);help.setbounds(350,200,300,300);help.setvisible(true); ); menuexit.addmouselistener(new mouselistener() public void mouseclicked(mouseevent arg0) int temp = joptionpane.showconfirmdialog(null, 您确认要退出系统吗?, 确认对话框,joptionpane.yes_no_option);if (temp = joptionpane.yes_option) system.exit(0); else if (temp = joptionpane.no_option) return;public void mouseentered(mouseevent arg0) public void mouseexited(mouseevent arg0) public void mousepressed(mouseevent arg0) public void mousereleased(mouseevent arg0) );/容器类class testpanel extends jpanel implements actionlistenerprivatejlabel totaltime,lifttime,ttimeshow,ltimeshow,textinfo,userinfo;private jlabel copyright; /版权信息标签private jbutton starttest,back,next,commit;private jtextarea area;private jradiobutton rbtna,rbtnb,rbtnc,rbtnd;private string totaltimer = ,lifttimer=,username=;private int i = 0,n = 0; private box box,box1,box2,box3,box4,box5; private question question; private clockdisplay clock; private int index = 0; private int time=0; public testpanel(string name)username = name;totaltimer = 00:0:00;lifttimer = 00:00:00;totaltime = new jlabel(总的考试时间是:);lifttime = new jlabel(剩余考试时间是:);ttimeshow = new jlabel(totaltimer);ttimeshow.setforeground(color.red);ltimeshow = new jlabel(lifttimer);ltimeshow.setforeground(color.red);textinfo = new jlabel(第+i+题+,共+n+题);userinfo = new jlabel(考生: +username);copyright = new jlabel();copyright.sethorizontalalignment(jlabel.right);copyright.setfont(new font(宋体,font.plain,14);copyright.setforeground(color.gray);copyright.settext(杨君超、周夜葵、和泽慧);starttest = new jbutton(开始考试);back = new jbutton(上一题);back.setenabled(false);next = new jbutton(下一题);next.setenabled(false);commit = new jbutton(提交试卷);commit.setenabled(false);area = new jtextarea(10,10);area.settext(考场规则:n + 一、考试前15分钟,凭准考证和身份证进入考场,对号入座,将准考证和身份证放在桌面右上角,便于监考人员检查。n +二、笔译考试开考三十分钟后不得入场,答题结束后提交试卷后可以申请离场。n +三、考生要爱惜考场的机器和相关设备,严格按照规定的操作说明进行操作,如有人为损坏,照价赔偿。);jscrollpane sp = new jscrollpane(area);area.seteditable(false);rbtna = new jradiobutton(a);rbtnb = new jradiobutton(b);rbtnc = new jradiobutton(c);rbtnd = new jradiobutton(d);rbtna.setenabled(false);rbtnb.setenabled(false);rbtnc.setenabled(false);rbtnd.setenabled(false);buttongroup bg = new buttongroup();bg.add(rbtna);bg.add(rbtnb);bg.add(rbtnc);bg.add(rbtnd);border border=borderfactory.createtitledborder(选项);jpanel panel = new jpanel();panel.add(rbtna);panel.add(rbtnb);panel.add(rbtnc);panel.add(rbtnd);panel.setborder(border);box = box.createverticalbox();box1 = box.createhorizontalbox();box2 = box.createhorizontalbox();box3 = box.createhorizontalbox();box4 = box.createhorizontalbox();box5 = box.createhorizontalbox();new jdialog(new jframe(); /注册监听事件starttest.addactionlistener(this);back.addactionlistener(this);next.addactionlistener(this);commit.addactionlistener(this);/添加组件,采用箱式布局 box1.add(totaltime); box1.add(box.createhorizontalstrut(5); box1.add(ttimeshow); box1.add(box.createhorizontalstrut(15); box1.add(lifttime); box1.add(box.createhorizontalstrut(5); box1.add(ltimeshow); box1.add(box.createhorizontalstrut(15); box1.add(starttest); box2.add(textinfo); box2.add(box.createhorizontalstrut(30); box2.add(userinfo); box3.add(sp, borderlayout.center); box4.add(panel); box4.add(box.createhorizontalstrut(5); box4.add(back); box4.add(box.createhorizontalstrut(5); box4.add(next); box4.add(box.createhorizontalstrut(5); box4.add(commit); box5.add(box.createhorizontalstrut(250); box5.add(copyright); box.add(box1); box.add(box.createverticalstrut(10); box.add(box2); box.add(box.createvertica

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论