




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.2016-2017学年第2学期经济管理学院实践教学成绩评定表实践教学项目面向对象程序设计专业信息管理与信息系统学生班级**评语成绩日期课程实践任务书学院经济管理学院专业信息管理与信息系统**15040602150406021504060222课程名称面向对象程序设计设计题目学生信息管理系统程序设计设计要求与任务:使用任意一款JAVA开发工具开发一个实用的应用系统,如记事本、计算器、绘图软件、JSP或者MIS。可以采取B/S或者C/S模式。此次设计的具体要求还包括:(1)根据课程设计时间选择适当规模大小的设计题目,分小组进行设计。(2)小组组长为组员分配任务,根据合理的安排,按照软件开发的流程及方法,踏实地开展课程设计活动。(3)课程设计包括开发编码和撰写相关文档。最后提交详细的课程设计报告。(4)开发出可上机运行的JAVA应用,并上机测试。工作计划与进度安排:第1-3天:布置任务、分组、粗略调查、选题、可行性研究、系统规划。第4-6天:深入调研、系统分析、建立数据逻辑模型、系统设计、建立数据物理模型第7-9天:系统实施、程序设计、系统调试。第9-10天:应用测试、整理资料、撰写报告、准备验收指导教师(签字):年月日专业负责人(签字):年月日学院院长(签字):年月日-.z.摘要信息技术的快速发展的同时也带来了社会各个行业的发展。它的发展已经深入到社会的各个角落。作为社会发展的前沿技术,各行各业只要对其合理的进行运用,必将会带来巨大的便捷。成功的运用信息技术将为各类学校学生信息管理带来无限便利。作为计算机应用的一部分,使用学生信息管理系统对学生档案进行管理,有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、性好、寿命长、成本低等,提高学生档案管理的效率。本文介绍了系统开发的全过程。该系统以Windows为操作平台,Java为开发语言,Access为数据库,Eclipse为开发工具,使用JDBC技术进行连接,实现了在可视化的基础上,利用数据库进行后台管理。系统由学生和老师基本信息添加、学生和老师基本信息查询、学生和老师基本信息删除、学生和老师基本信息修改及退出系统等功能模块组成,基本功能较全面。用户界面友好、清晰、操作简便,易学易用;系统可读性好,易于维护、更新,安全性较好。采用传统下拉菜单功能选择,方便、快捷、一目了然,并且在一个窗体中进行操作,可视化强。采用链入数据库进行存储,可动态进行查看、操作,这样的系统可修改性较强。关键字:面向对象;Eclipse;JDBC目录TOC\o"1-3"\h\u1前言21.1课题简介21.2设计目的22需求分析22.1业务需求分析22.2功能需求分析22.2.1学生信息22.2.2教师信息22.2.3成绩管理23数据库设计23.1Java连接数据库23.1.1关系数据库概述23.1.2通过JDBC访问数据库23.2数据库与基本表设计24系统设计与实施24.1EclipseJavaNeon3 24.2结构设计24.3文件组织结构24.4登录模块24.4.1设计构想24.4.2实现登录模块24.5学生信息模块24.5.1设计构想24.5.2实现学生信息模块主界面2添加信息24.5.4删除信息2修改信息24.5.6基本信息查询24.5.7成绩查询24.5.8退出系统24.6教师信息模块2结束语2参考文献2附录A2-.z.1前言1.1课题简介学生信息档案的管理对于学校的管理者来说至关重要,学生信息是高等学校非常重要的一项数据资源,是一个教育单位不可缺少一部分。近几年来,国家政策的调整,我国高等院校大规模扩招,给高等院校的教学管理、学生管理、后勤管理等方面都带来不少的冲击。其包含的数据量大,涉及的人员面广,而且需要及时更新,故较为复杂,难以单纯地依靠人工管理,而且传统的人工管理方式既不易于规化,管理效率也不高。目前我国各类高等院校中还有相当一部分学生档案管理还停留在纸介质的基础上,中、小学对学生档案的管理更是落后,这样的管理机制严重浪费人力和物力,已经不能适应时代发展的要求。计算机应用的普及已进入人类社会生活的各个领域,并发挥着越来越重要的作用。这种传统的手工管理模式必然被以计算机为物质基础的信息管理方法所取代。作为计算机应用的一部分,使用学生信息管理系统对学生档案进行管理,有着手工管理所无法比拟的优点,如:检索迅速、查找方便、可靠性高、存储量大、性好、寿命长、成本低等。这些优点能够极提高学生档案管理的效率,也是学校向科学化、正规化管理发展的必要条件。1.2设计目的对学生信息管理系统,目的是为了对学校的学生信息管理工作进行系统的管理,以提高工作效率。通过程序设计,开发出学生信息管理系统代替相应的手工管理。学生信息管理系统可为用户提供充足的信息和快捷的查询手段,不但可以实现教师、学生的信息录入、修改与删除,而且可以实现学生成绩的信息录入、修改与删除,同时可以对所有的信息进行查询,实现学校的规化管理。-.z.2需求分析2.1业务需求分析开发一个系统前,首先应该对该系统要实现的功能进行整体的分析和规划,确保在开发过程中不会出现重大缺陷和漏洞。因此,在软件开发的过程中应严格按照软件工程的流程进行系统的分析与设计。该系统是学生管理系统,应以学生信息为中心,组织相关程序结构。通过分析可知,学生信息管理系统的主要业务应有:学生基本信息管理、教师基本信息管理、学生成绩管理、用户管理等。2.2功能需求分析通过业务需求分析可知,该系统主要有三类用户:学生,教师和系统管理员。因此,该系统的功能可分为学生信息管理、教师信息管理和成绩管理,具体有以下几个方面:学生:可以对每个学生的信息进行添加、修改、删除和查询。成绩:可以对每个学生所学科目的成绩进行添加、删除、修改和查询。教师:可以对每个教师的信息进行添加、删除、修改和查询。2.2.1学生信息学生信息主要存储了学生的基本情况,包括**、、性别、所在班级、所在学院等信息。一个**可唯一确定一名学生。学生信息集中进行管理,方便进行相关基本信息的查询、修改、删除等活动,大大简化了手续。2.2.2教师信息教师信息主要存储了教师的基本情况,包括教师编号、、性别、职称、所在学院等信息。一个教师编号可唯一确定一名教师。教师信息集中进行管理,方便进行查询、修改、删除和人事变动等活动,大大简化了手续。2.2.3成绩管理成绩管理的对象是学生所学科目的相应成绩,对成绩进行集中管理,方便了学生查询成绩、教师添加、查询和修改成绩,加快了查询速度,提高了准确率,大大简化了手续。学生信息管理系统学生信息管理系统用户及权限管理基本数据管理信息查询系统管理基本信息查询教师信息管理成绩管理学生信息管理管理员权限管理用户权限管理成绩查询图2-1学生信息管理系统功能模块图-.z.3数据库设计3.1Java连接数据库3.1.1关系数据库概述关系数据库,是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据,用二维表格形式来表述实体与实体之间关系。有3种完整性约束:实体完整性、参照完整性和用户自定义完整性,其中实体完整性和参照完整性是关系数据库中必不可少的完整性条件,分别表述为主属性不为空和一表或多表之间具有*种对应关系、相互制约。3.1.2通过JDBC访问数据库JDBC由Java编程语言编写的类和接口组成,是实现Java与各种数据库连接的关键,提供了将Java与数据库连接起来的程序接口,使用户可以以SQL的形式编写访问请求,然后传给数据库,其结果再由这一接口返回,从而实现对数据库中数据操作的目的。3.2数据库与基本表设计由于该系统数据量不大,采用了Access作为数据库,所建的系统数据库名为“student1”。通过需求分析、概念设计与逻辑设计,可知该系统数据库应涉及到以下基本表:班级表、学生表、教师表,具体结构如下:班级表(班级编号,班级名称,所属学院,班级人数)该表用于保存班级信息,其数据字典如表3-1所示:表3-1班级表数据字典字段名称数据类型说明班级编号varchar(20)主键班级名称varchar(20)所属学院varchar(20)班级人数int学生表(**,,性别,出生日期,班级编号)该表用于存储学生的基本信息,其数据字典如表3-2所示:表3-2学生表数据字典字段名称数据类型说明**varchar(20)主键varchar(20)性别varchar(20)属性域为“男”,“女”出生日期data班级编号varchar(20)外键,参照班级表中班级编号教师表(教师编号,,性别,职称,所属学院,出生日期)该表用于存储教师的基本信息,其数据字典如表3-3所示:表3-3教师表数据字典字段名称数据类型说明教师编号varchar(20)主键varchar(20)性别varchar(20)属性域为“男”,“女”出生日期data职称varchar(20)所属学院varchar(20)课程表(课程号,课程名,学分)该表用于存储学生可学课程的基本信息,其数据字典如表3-4所示:表3-4课程表数据字典字段名称数据类型说明课程号varchar(20)主键课程名varchar(20)学分int成绩表(**,课程号,成绩,教师编号)该表用于存储学生可学课程的成绩情况,其数据字典如表3-5所示:表3-5课程表数据字典字段名称数据类型说明**varchar(20)外键,参照学生表中**课程号varchar(20)外键,参照课程表中课程编号成绩int教师编号varchar(20)外键,参照教师表中教师编号-.z.4系统设计与实施4.1EclipseJavaNeon3出于稳定性与便利性的考量,本设计选用了EclipseJavaNeon3作为程序的开发环境,Eclipse是著名的跨平台的自由集成开发环境(IDE),最初由OTI和IBM两家公司的IDE产品开发组创建,它本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。使用时可清楚的发现错误,并能根据相应规则进行修改,大大简化了程序检查工作。由于packagee*plorer的存在,使得随时查找文件变得十分方便。同时又提供有很便利的数据库连接方式。EclipseJavaNeon3具有以下四大优点:(1)从编写、查错、编译、帮助等等各方面为Java语言贴身定做。(2)可无限扩展的强大插件功能。(3)众多公司、厂商、组织支持。(4)开放,自由,免费。4.2结构设计该系统用于对学生的基本信息与学生的成绩进行管理,主要包括添加、修改和删除学生与教师基本信息,录入、修改和删除学生的成绩,查询学生和教师的基本信息,为了方便,全部操作均在界面中完成。由此,将该系统结构设计为登录模块、学生模块、教师模块,对应于学生与教师这两类主要用户。由于涉及界面设计,因此调用了java.awt.*、java.awt.event.*、java*.swing.*、java.util.*、java*.swing.event.*、java.sql.*等包。4.3文件组织结构学生信息管理系统中使用的根目录文件夹是“nnn”,其文件组织结构图如图4-1所示:图4-1项目文件组织结构图4.4登录模块登录模块使进入学生信息管理系统的第一个界面,相当于一个的主页。4.4.1设计构想该系统是学生信息管理系统,用户为三类:学生、教师和系统管理员,可在相应的权限围查询和更新系统数据。因此,不同的用户在登录时需有不同的角色选项,此外,还应有各自的用户名和密码。4.4.2实现登录模块(1)要生成一个界面,可应用AWT知识。设置其名字为学生信息管理系统;设置布局管理器为(null)布局管理器,这样方便往其中放组件;设置窗口大小和位置,还要设置窗口可见性。(2)生成界面后,接下来就需要实现每个功能,在设计构想中提到的第一个功能就是要对操作对象的身份进行选择,这里要用下拉列表的形式进行选择,也可以用单选按钮来完成这个功能。在这项功能中,首先要选择身份,所以要定义一个JLabel来说明,定义完JLabel后,就需要定义一个JoBo*,也就是下拉列表框。(3)输入用户名和密码。需要用两个JLabel来指明需要输入用户名和密码。输入用户名需要定义一个JTe*tField,也就是单文本框。同时输入文本,但输入密码和输入用户名是不一样的,它需要定义成JPasswordField,它的输出结果为“*****”这样的形式。(4)创建两个按钮,一个是登录按钮,另一个是取消登录按钮,用来输入的用户名和密码及选择的身份进行提交。当然要对登录按钮事件进行事件监听,首先要验证用户名和密码是否正确并对上,然后根据选择的身份来选择需要进入那个界面,其代码如下:publicclassInfo_Managee*tendsFrameimplementsActionListener{JLabelJLUserName=newJLabel("用户名");JLabelJLPaw=newJLabel("密码");JLabelJLP=newJLabel("角色");JTe*tFieldJTUserName=newJTe*tField();JPasswordFieldJPsw=newJPasswordField();JTe*tFieldjt=newJTe*tField(10);Stringstr[]={"学生","教师","管理者"};oBo*JCB=newoBo*(str);utton1=newutton("登录");utton2=newutton("取消");publicInfo_Manage(){this.setTitle("学生信息管理系统");this.setLayout(null);JLUserName.setBounds(100,40,100,20);this.add(JLUserName);JTUserName.setBounds(200,40,100,20);this.add(JTUserName);JLPaw.setBounds(100,100,100,20);this.add(JLPaw);JPsw.setBounds(200,100,80,20);this.add(JPsw);JCB.setBounds(200,150,100,20);this.add(JCB);JLP.setBounds(100,150,100,20);this.add(JLP);1.setBounds(100,200,60,20);this.add(1);1.addActionListener(this);2.setBounds(200,200,60,20);this.add(2);2.addActionListener(this);this.setVisible(true);this.setBounds(10,10,400,250);addWindowListener(newWindowAdapter(){publicvoidwindowClosing(WindowEvente){System.e*it(0); } });JCB.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){inth=JCB.getSelectedInde*();if(h==0)student_managesm=newstudent_manage();elseif(h==1)teacher_managetm=newteacher_manage(); } }); }publicvoidactionPerformed(ActionEvente){if(e.getSource()==1){Stringname=JTUserName.getTe*t();Stringpassword=newString(JPsw.getPassword());if((name!=null&&(name.equals("1")))&&(password!=null&&(password.equals("1")))){newstudent_manage();}else{ } } } }其运行结果如图4-2所示:图4-2Info_Manage.java的显示结果4.5学生信息模块当选择“学生”时,单击“登录”按钮就可以进入学生信息管理系统了,其信息量很大,具体如下所述:4.5.1设计构想进入了学生信息管理系统,就可以对摸个学生的信息进行输入、修改和删除,也能对同学的信息进行查询和对程序进行查询。当打算离开时,还要有一个选项用来退出学生信息管理系统。4.5.2实现学生信息模块主界面根据设计构想,首先要搭建一个界面,然后吧学生信息操作的每一部分分为3大块,分别是信息、查询、和其他,并把他们做成菜单形式,最后将对信息的输入,修改和删除做成子菜单添加到信息菜单下;将查询信息和查询成绩添加到查询菜单下;将突出添加到其他菜单下,并把他做成子菜单放在一个菜单下,这样做是为了如果以后需要更多的功能,可以很方便的进行添加。创建菜单需要的定义JMenu,创建子菜单需要定义JMenuItem,并且要指明是添加到哪个菜单下面,下面是学生管理模块主界面的部分代码classstudent_managee*tendsJFrameimplementsActionListener{ JMenuBarjm=newJMenuBar(); JMenujm1=newJMenu("信息"); JMenuItemjmi1=newJMenuItem("增加信息"); JMenuItemjmi2=newJMenuItem("删除信息"); JMenuItemjmi3=newJMenuItem("修改信息"); JMenujm2=newJMenu("查询"); JMenuItemjmi21=newJMenuItem("基本信息查询"); JMenuItemjm22=newJMenuItem("成绩查询"); JMenujm3=newJMenu("其他"); JMenuItemjmi31=newJMenuItem("退出"); //添加组件与设置位置部分代码与Info_Manage.java类似publicvoidactionPerformed(ActionEvente){ if(e.getSource()==jmi1)newAddStudent(); if(e.getSource()==jmi2)newDeleteStudent(); if(e.getSource()==jmi3)newGetStudent(); if(e.getSource()==jmi21)newSetStudent(); if(e.getSource()==jmi31)newUsingE*it().setVisible(true); if(e.getSource()==jm22)newSetGrade(); }}其运行结果如图4-3所示:图4-3student_manage.java的显示结果添加信息每个子菜单都对应着一个操作界面,接下来对每一个子菜单进行讲解。当选择信息菜单下的“增加信息”子菜单时,将弹出如图所示的界面,它调用了AddStudent.java类实现该功能。通过对“增加信息”这一子菜单设置监听,弹出界面。AddStudent.java的代码如下:classAddStudente*tendsJFrameimplementsActionListener{JLabelJL=newJLabel("添加基本信息",JLabel.CENTER);JLabelJLNumber=newJLabel("**");JTe*tFieldJTNumber=newJTe*tField();JLabelJLName=newJLabel("");JTe*tFieldJTName=newJTe*tField();JLabelJLClass=newJLabel("班级");JTe*tFieldJTClass=newJTe*tField();JLabelJLse*=newJLabel("性别");ButtonGroupBG=newButtonGroup();JRadioButtonJRB1=newJRadioButton("男");JRadioButtonJRB2=newJRadioButton("女");JLabelJL1=newJLabel("学院");JTe*tFieldJT1=newJTe*tField();JLabelJL2=newJLabel("生日");JTe*tFieldJT2=newJTe*tField();uttonAdd=newutton("添加");uttonNe*t=newutton("重置");uttonE*it=newutton("退出");Stringsql="";//添加组件与设置位置部分代码与Info_Manage.java类似publicvoidactionPerformed(ActionEvente){ if(e.getSource()==Add){ Stringsnumber=JTNumber.getTe*t(); Stringsname=JTName.getTe*t(); Stringsclass=JTClass.getTe*t(); Stringsse*="女"; if(JRB1.isSelected()) sse*="男"; Stringscollect=JT1.getTe*t(); Stringsbir=JT2.getTe*t(); sql="select*fromstudentwhereid='"+snumber+"'"; try{ Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connectioncot=DriverManager.getConnection( "jdbc:odbc:student1","",""); Statementstm=cot.createStatement(); ResultSetrs=stm.e*ecuteQuery(sql); if(rs.ne*t()) JOptionPane.showMessageDialog(null,"该已存在!"); else{ sql="insertintostudentvalues('"+snumber+"','" +sname+"','"+sclass+"','"+sse*+"','" +scollect+"','"+sbir+"')"; inti=stm.e*ecuteUpdate(sql); if(i>0)JOptionPane.showMessageDialog(null,"添加成功!"); elseJOptionPane.showMessageDialog(null,"删除失败!"); } } catch(E*ceptionee){ } } if(e.getSource()==Ne*t){ JTNumber.setTe*t(null); JTName.setTe*t(null); JTClass.setTe*t(null); JT1.setTe*t(null); JT2.setTe*t(null); } if(e.getSource()==E*it){ setVisible(false); }}}其运行结果如图4-4所示:图4-4AddStudent.java的显示结果4.5.4删除信息当选择信息菜单下的删除信息子菜单是,将弹出图所示的界面,它调用了DeleteStudent.java类实现该功能,其代码如下:classDeleteStudente*tendsJFrameimplementsActionListener{JLabelJL=newJLabel("删除基本信息",JLabel.CENTER);JLabelJLNumber=newJLabel("**");JTe*tFieldJTNumber=newJTe*tField();JLabelJLName=newJLabel("");JTe*tFieldJTName=newJTe*tField();uttonDel=newutton("删除");uttonNe*t=newutton("重置");uttonE*it=newutton("退出");Stringsql="";//添加组件与设置位置部分代码与Info_Manage.java类似publicvoidactionPerfomed(ActionEvente){if(e.getSource()==Del){Stringsnumber=JTNumber.getTe*t();Stringsname=JTName.getTe*t();sql="select*fromstudentwhereId='"+snumber+"'";try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncot=DriverManager.getConnection("jdbc:odbc:student1","","");Statementstm=cot.createStatement();ResultSetrs=stm.e*ecuteQuery(sql);if(rs.ne*t()){sql="delete*fromstudentwhereId='"+snumber+"'";intn=stm.e*ecuteUpdate(sql);if(n>0)JOptionPane.showMessageDialog(null,"删除成功");elseJOptionPane.showMessageDialog(null,"删除失败"); }elseJOptionPane.showMessageDialog(null,"此用户不存在"); }catch(E*ceptioner){ } }if(e.getSource()==Ne*t){JTNumber.setTe*t(null);JTName.setTe*t(null); }if(e.getSource()==E*it)setVisible(false);}}其运行结果如图4-5所示:图4-5DeleteStudent.java的显示结果修改信息当选择“信息”菜单下的“修改信息”子菜单时,将弹出如图所示的界面,他将点用了GetStudent.java类实现该功能。GetStudent.java的代码如下:classGetStudente*tendsJFrameimplementsActionListener{JLabelJL=newJLabel("学生基本信息",JLabel.CENTER);JLabelJLNumber=newJLabel("**");JTe*tFieldJTNumber=newJTe*tField();JLabelJLName=newJLabel("");JTe*tFieldJTName=newJTe*tField();JLabelJLClass=newJLabel("班级");JTe*tFieldJTClass=newJTe*tField();JLabelJLse*=newJLabel("性别");ButtonGroupBG=newButtonGroup();JRadioButtonJRB1=newJRadioButton("男");JRadioButtonJRB2=newJRadioButton("女");JLabelJL1=newJLabel("学院");JTe*tFieldJT1=newJTe*tField();JLabelJL2=newJLabel("生日");JTe*tFieldJT2=newJTe*tField();uttonGet=newutton("修改");uttonNe*t=newutton("取消");uttonE*it=newutton("退出");Stringsql="";//添加组件与设置位置部分代码与Info_Manage.java类似publicvoidactionPerformed(ActionEvente){if(e.getSource()==Get){Stringsnumber=JTNumber.getTe*t();Stringsname=JTName.getTe*t();Stringsclass=JTClass.getTe*t();Stringsse*="女",sql;if(JRB1.isSelected())sse*="男";Stringscollect=JT1.getTe*t();Stringsbir=JT2.getTe*t();sql="select*fromstudentwhereld='"+snumber+"'";try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Connectioncot=DriverManager.getConnection("jdbc:odbc:student1","",""); Statementstm=cot.createStatement(); ResultSetrs=stm.e*ecuteQuery(sql);if(rs.ne*t()){sql="updatestudentsetname='"+sname+"',class='" +sclass+"',se*='"+sse*+"',collect='" +scollect+"',bir='"+sbir+"'whereld='" +snumber+"'";intn=stm.e*ecuteUpdate(sql);if(n>0)JOptionPane.showMessageDialog(null,"修改成功");elseJOptionPane.showMessageDialog(null,"修改失败!"); }elseJOptionPane.showMessageDialog(null,"此用户不存在!"); }catch(E*ceptioner){ } }if(e.getSource()==Ne*t){JTNumber.setTe*t(null);JTName.setTe*t(null);JTClass.setTe*t(null);JT1.setTe*t(null);JT2.setTe*t(null); }if(e.getSource()==E*it){setVisible(false); } }publicstaticvoidmain(Stringargs[]){newGetStudent(); }}其运行结果如图4-6所示:图4-6GetStudent.java的显示结果4.5.6基本信息查询当选择“查询”菜单下的“基本信息查询”子菜单时,将弹出如图所示的界面,它调用了SetStudent.java类实现该功能。SetStudent.java的代码如下:classSetStudente*tendsJFrameimplementsActionListener{JLabelJL=newJLabel("查询基本信息",JLabel.CENTER);JLabelJLNumber=newJLabel("**");JTe*tFieldJTNumber=newJTe*tField();JLabelJLName=newJLabel("");JTe*tFieldJTName=newJTe*tField();JLabelJLClass=newJLabel("班级");JTe*tFieldJTClass=newJTe*tField();JLabelJLse*=newJLabel("性别");ButtonGroupBG=newButtonGroup();JRadioButtonJRB1=newJRadioButton("男");JRadioButtonJRB2=newJRadioButton("女");JLabelJL1=newJLabel("学院");JTe*tFieldJT1=newJTe*tField();JLabelJL2=newJLabel("生日");JTe*tFieldJT2=newJTe*tField();uttonSet=newutton("查询");uttonNe*t=newutton("重置");uttonE*it=newutton("退出");Stringsql="";//添加组件与设置位置部分代码与Info_Manage.java类似publicvoidactionperfoemaed(ActionEvente){if(e.getSource()==Set){Stringsnumber=JTNumber.getTe*t();Stringsname=JTName.getTe*t();Stringsclass=JTClass.getTe*t();Stringsse*="女";if(JRB1.isSelected())sse*="男";Stringscollect=JT1.getTe*t();Stringsbir=JT2.getTe*t();sql="select*fromstudentwhereId='"+snumber+"'";try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncot=DriverManager.getConnection("jdbc.odbc.student1","","");Statementstm=cot.createStatement();ResultSetrs=stm.e*ecuteQuery(sql);if(rs.ne*t()){Stringname=rs.getString(2);JTName.setTe*t(name);Stringclas=rs.getString(3);JTClass.setTe*t(clas);Stringse*=rs.getString(4);JRB1.setTe*t(se*);Stringcollect=rs.getString(5);JT1.setTe*t(collect);Stringbir=rs.getString(6);JT2.setTe*t(bir);intn=stm.e*ecuteUpdate(sql);if(n>0)JOptionPane.showMessageDialog(null,"查询成功");elseJOptionPane.showMessageDialog(null,"查询失败"); }ElseJOptionPane.showMessageDialog(null,"此用户不存在"); }catch(E*ceptionee){ } }if(e.getSource()==Ne*t){JTNumber.setTe*t(null);JTName.setTe*t(null);JTClass.setTe*t(null);JT1.setTe*t(null);JT2.setTe*t(null); }if(e.getSource()==E*it)setVisible(false); }}其运行结果如图4-6所示:图4-7SetStudent.java的显示结果4.5.7成绩查询当选择“查询”菜单下的“成绩查询”子菜单时,调用SetGrade.java类来实现功能。SetGrade.java的代码如下:classSetGradee*tendsJFrameimplementsActionListener{JLabelJL=newJLabel("查询成绩",JLabel.CENTER);JLabelJLNumber=newJLabel("**");JTe*tFieldJTNumber=newJTe*tField();JLabelJLName=newJLabel("");JTe*tFieldJTName=newJTe*tField();JLabelJLClass=newJLabel("大学英语");JTe*tFieldJTClass=newJTe*tField();JLabelJLse*=newJLabel("性别");ButtonGroupBG=newButtonGroup();JRadioButtonJRB1=newJRadioButton("男");JRadioButtonJRB2=newJRadioButton("女");JLabelJL1=newJLabel("高等数学");JTe*tFieldJT1=newJTe*tField();JLabelJL2=newJLabel("班级");JTe*tFieldJT2=newJTe*tField();uttonSet=newutton("查询");uttonNe*t=newutton("重置");uttonE*it=newutton("退出");Stringsql="";//添加组件与设置位置部分代码与Info_Manage.java类似publicvoidactionPerformed(ActionEvente){if(e.getSource()==Set){Stringsnumber=JTNumber.getTe*t();Stringsname=JTName.getTe*t();Stringsclass=JTClass.getTe*t();Stringsse*="女";if(JRB1.isSelected())sse*="男";Stringscollect=JT1.getTe*t();Stringsbir=JT2.getTe*t();sql="select*fromgradewhereld='"+snumber+"'";try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");Connectioncot=DriverManager.getConnection("jdbc:odbc:student1","","");Statementstm=cot.createStatement();ResultSetrs=stm.e*ecuteQuery(sql);if(rs.ne*t()){Stringname=rs.getString(2);JTName.setTe*t(name);Stringclas=rs.getString(3);JTClass.setTe*t(clas);Stringse*=rs.getString(4);JRB1.setTe*t(se*);Stringcollect=rs.getString(5);JT1.setTe*t(collect);Stringbir=rs.getString(6);JT2.setTe*t(bir);intn=stm.e*ecuteUpdate(sql);if(n>0)JOptionPane.showMessageDialog(null,"查询成功!");elseJOptionPane.showMessageDialog(null,"查询失败!"); }elseJOptionPane.showMessageDialog(null,"此用户不存在!"); }catch(E*ceptionee){ } }if(e.getSource()==Ne*t){JTNumber.setTe*t(null);JTName.setTe*t(null);JTClass.setTe*t(null);JT1.setTe*t(null);JT2.setTe*t(null); }if(e.getSource()==E*it)setVisible(false); }}其运行结果如图4-8所示:图4-8SetGrade.java的显示结果4.5.8退出系统当选择“其他”菜单下的“退出”子菜单时将弹出如图所示的界面,它调用了UssingE*it.java类实现该功能。其代码如下:classUsingE*ite*tendsJFrame
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025设备抵押合同范本
- 保险的起源和发展保险源于风险的存在课件
- 标志设计项目式教程课件 项目七标志的基础设计
- 《电力市场分析培训-》课件
- 人教部编版 (五四制)一年级上册6 校园里的号令教案配套
- 人教版初中历史与社会七年级上册 1.2《美丽畲乡我的家》 -走进乡村聚落教学设计教学设计
- 人教部编版六年级语文上册《习作例文》配套教案教学设计公开课
- 武汉科技大学《算法分析与设计基础实验语言》2023-2024学年第二学期期末试卷
- 荆州职业技术学院《工程统计学》2023-2024学年第二学期期末试卷
- 上海市华东师大二附中2025届人教A版高中语文试题高三二轮函数的图象与性质测试含解析
- 2025至2030年中国军用仿真(软件)行业发展战略规划及投资方向研究报告
- 乳业大数据分析与消费者洞察-全面剖析
- 2025年北京石景山区高三一模英语高考模拟试卷(含答案详解)
- 土钉墙、喷锚护坡分包合同
- 军队系统反腐倡廉心得体会
- 应急总医院合同制康复医学科工作人员招考聘用高频重点提升(共500题)附带答案详解
- 《消防器材使用教程》课件
- 《小儿静脉穿刺》课件
- DB11-T 212-2024 园林绿化工程施工及验收规范
- 托盘贸易合作合同范例
- 劳动节安全教育家长会
评论
0/150
提交评论