版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录1项目背景12用例图13类图54界面设计64.1系统界面64.2功能界面65数据库设计96源程序106.1student类106.2studentjframe类126.3addjframe类156.4 queryjframe类216.5canceljframe类256.6modifyjframe类286.7daofactory类356.8studentdao类366.9 studentdaojdbcimpl类366.10mssqlhelper类397总结401项目背景本设计的目的是综合面向对象程序设计课程中所学到的知识来开发一个小型的java应用程序选修课管理系统。本项目是选修课管理系统
2、的一个子模块,主要功能是对学生的信息进行管理,如:插入一条学生的信息、删除学生信息、修改学生信息、查询学生信息。本项目使用java swing技术,数据库采用sqlserver 2000,本项目的开发和测试都是在windows平台下进行的,但由于java的跨平台性,本系的移植性很强,也适用于其它主流的操作系统。本项目的开发工具是my eclipse,连接数据库sqlserver2000来完成一个小的学生选修课管理系统中的学生信息管理模块。2用例图图2.1用例图功能级用例描述添加学生信息描述项说明用例名称添加学生信息用例简述管理员添加学生的基本信息用例图前置条件管理员已成功登入后置条件学生信息被
3、添加基本操作流程1输入“学生姓名”,“学生学号”,“学生年龄”,选择“学生性别”2点击“提交”按钮3 “成功添加”点击“确定”或关闭窗口则返回主页面 替代流程无功能级用例描述查询学生信息描述项说明用例名称查询学生信息用例简述管理员查询学生的基本信息用例图前置条件管理员已成功添加学生信息并成功登入查询页面后置条件学生信息被查询基本操作流程1输入需查找的“学生学号” 2点击“确定”按钮3 点击“返回”或关闭窗口则返回主页面 替代流程无功能级用例描述修改学生信息描述项说明用例名称修改学生信息用例简述管理员修改学生的基本信息用例图前置条件管理员已成功查询所需修改学生信息后置条件学生信息被修改基本操作流
4、程1输入需修改的“学生学号” 2点击“修改”按钮3 点击“返回”或关闭窗口则返回主页面替代流程无功能级用例描述删除学生信息描述项说明用例名称删除学生信息用例简述管理员删除学生的基本信息用例图前置条件管理员已成功查询所需修改学生信息后置条件学生信息被删除基本操作流程1输入需删除的“学生学号” 2点击“删除”按钮3 “删除成功”点击“确定”或关闭窗口则返回主页面替代流程无3类图图3.1类图4界面设计4.1系统界面进入学生信息管理系统,将会看到以下的窗口,如4.1所示:图4.1主界面4.2功能界面在学生信息管理系统里面可以实现插入一条学生的信息、删除学生信息、修改学生信息、查询学生信息的功能。插入功
5、能,能新插入一条学生信息,包括学生的学号和姓名,性别和年龄,如下图4.2图4.2插入一条学生信息修改功能:能修改一个学生的姓名。如下图4.3图4.3修改一个学生信息删除功能:能根据一个学生的学号来删除一个学生的信息。如下图4.6图4.4删除一个学生信息查询功能:能通过一个学生的学号来查询某一个学生,如下图4.5图4.5查询一个学生信息删除学生信息后的数据库的一个截图如下4.6:图4.6 数据库5数据库设计6源程序6.1student类/信管071郑胜楠2007021236package domain;public class student /student类用五个实例变量来描述private
6、 integer studentid;private intege studentno;private string studentname;private string studentsex;private int studentage;/建立构造器, 因需studentid自动生成,所以写三个构造器public student() super();public student(integer studentid, intege studentno, string studentname,string studentsex ,int studentage) super(); this.stu
7、dentid = studentid;this.studentno = studentno;this.studentname = studentname;this.studentsex = studentsex;this.studentage = studentage; public student(intege studentno, string studentname, string studentsex,int studentage) super();this.studentno = studentno;this.studentname = studentname;this.studen
8、tsex = studentsex;this.studentage = studentage;public string getstudentsex() return studentsex;public void setstudentsex(string studentsex) this.studentsex = studentsex;public integer getstudentid() return studentid;public void setstudentid(integer studentid) this.studentid = studentid;public string
9、 getstudentno() return studentno;public void setstudentno(intege studentno) this.studentno = studentno;public string getstudentname() return studentname;public void setstudentname(string studentname) this.studentname = studentname;public int getstudentage() return studentage;public void setstudentag
10、e(int studentage) this.studentage = studentage;overridepublic string tostring() / todo auto-generated method stubreturn "" + this.studentid + "," + this.studentno + ","+ this.studentname + "," + this.studentsex+","+this.studentage + ""6.2 s
11、tudentjframe类第一个界面(主界面)的建立/信管071郑胜楠2007021236package jframe;import java.awt.borderlayout;import java.awt.event.actionevent;import java.awt.event.actionlistener;import java.awt.event.windowadapter;import javax.swing.jbutton;import javax.swing.jlabel;import javax.swing.jpanel;import javax.swing.window
12、constants;import javax.swing.swingutilities;public class studentjframe extends javax.swing.jframe private jpanel titlepanel;private jlabel titlelabel;private jbutton jbutton1;private jbutton jbutton4;private jbutton jbutton3;private jbutton jbutton2;private jpanel mainpanel;public static void main(s
13、tring args) swingutilities.invokelater(new runnable() public void run() studentjframe inst = new studentjframe();inst.setlocationrelativeto(null);inst.setvisible(true););public studentjframe() super("学生选修课管理系统");initgui();private void initgui() try setdefaultcloseoperation(windowconstants.
14、dispose_on_close);getcontentpane().setforeground(new java.awt.color(0,0,255);/标题paneltitlepanel = new jpanel();getcontentpane().add(titlepanel, borderlayout.north);titlepanel.setpreferredsize(new java.awt.dimension(384, 91);titlelabel = new jlabel();titlepanel.add(titlelabel);titlelabel.settext(&quo
15、t;u6b22u8fceu8fdbu5165u5b66u751fu9009u4feeu8bfeu7ba1u7406u7cfbu7edf");titlelabel.setpreferredsize(new java.awt.dimension(279, 68);titlelabel.setfont(new java.awt.font("微软雅黑",1,18);titlelabel.setforeground(new java.awt.color(0,0,255);/选择panelmainpanel = new jpanel();getcontentpane().ad
16、d(mainpanel, borderlayout.center);mainpanel.setpreferredsize(new java.awt.dimension(384, 173);/“添加”按钮jbutton1 = new jbutton();mainpanel.add(jbutton1);jbutton1.settext("u6dfbu52a0");jbutton1.setpreferredsize(new java.awt.dimension(83, 36);jbutton1.setfont(new java.awt.font("微软雅黑",
17、1,14);jbutton1.setforeground(new java.awt.color(0,255,0);jbutton1.setbackground(new java.awt.color(0,128,128);/注册“添加”按钮的监听器,进行两个界面间的转换jbutton1.addactionlistener(new java.awt.event.actionlistener() public void actionperformed(java.awt.event.actionevent evt) system.out.println("jbutton1.actionper
18、formed, event="+evt);/todo add your code for jbutton1.actionperformed addjframe add=new addjframe();studentjframe.this.setvisible(false););/“查找”按钮jbutton2 = new jbutton();mainpanel.add(jbutton2);jbutton2.settext("u67e5u627e");jbutton2.setbackground(new java.awt.color(0,128,128);jbutto
19、n2.setfont(new java.awt.font("微软雅黑",1,14);jbutton2.setforeground(new java.awt.color(0,255,0);jbutton2.setpreferredsize(new java.awt.dimension(83, 37);/注册“查询”按钮的监听器jbutton2.addactionlistener(new actionlistener() public void actionperformed(actionevent evt) system.out.println("jbutton2.
20、actionperformed, event="+evt);/todo add your code for jbutton2.actionperformedqueryjframe query=new queryjframe();studentjframe.this.setvisible(false););/“修改”按钮jbutton3 = new jbutton();mainpanel.add(jbutton3);jbutton3.settext("u4feeu6539");jbutton3.setbackground(new java.awt.color(0,1
21、28,128);jbutton3.setfont(new java.awt.font("微软雅黑",1,14);jbutton3.setforeground(new java.awt.color(255,255,0);jbutton3.setpreferredsize(new java.awt.dimension(83, 36);jbutton3.addactionlistener(new actionlistener() public void actionperformed(actionevent evt) system.out.println("jbutto
22、n2.actionperformed, event="+evt);/todo add your code for jbutton2.actionperformedmodifyjframe mj=new modifyjframe();mj.setvisible(true);studentjframe.this.setvisible(false););/“删除”按钮jbutton4 = new jbutton();mainpanel.add(jbutton4);jbutton4.settext("u5220u9664");jbutton4.setbackground(
23、new java.awt.color(0,128,128);jbutton4.setfont(new java.awt.font("微软雅黑",1,14);jbutton4.setforeground(new java.awt.color(255,255,0);jbutton4.setpreferredsize(new java.awt.dimension(83, 37);jbutton4.addactionlistener(new actionlistener() public void actionperformed(actionevent evt) system.ou
24、t.println("jbutton4.actionperformed, event="+evt);/todo add your code for jbutton4.actionperformedcanceljframe cjf=new canceljframe();studentjframe.this.setvisible(false);cjf.setvisible(true););pack();setsize(400, 300); catch (exception e) e.printstacktrace();6.3 addjframe类用于添加学生/信管071郑胜楠2
25、007021236package jframe;import java.awt.borderlayout;import java.awt.event.actionevent;import java.awt.event.actionlistener;import java.awt.event.itemevent;import java.awt.event.itemlistener;import javax.swing.buttongroup;import javax.swing.defaultcomboboxmodel;import javax.swing.jbutton;import java
26、x.swing.jlabel;import javax.swing.jlist;import javax.swing.joptionpane;import javax.swing.jpanel;import javax.swing.jradiobutton;import javax.swing.jspinner;import javax.swing.jtextfield;import javax.swing.listmodel;import javax.swing.spinnerlistmodel;import javax.swing.windowconstants;import javax.
27、swing.swingutilities;import dao.daofactory;import domain.student;public class addjframe extends javax.swing.jframe implements itemlistener private jpanel titlepanel1;private jlabel jlabel2;private jbutton fqbutton1;private jbutton tjbutton1;private jlabel titlelabel1;private jtextfield jtextfield1;p
28、rivate jlabel sexlabel1;private jlabel nolabel1;private jtextfield notextfield1;private jtextfield nametextfield1;private jlabel namelabel1;private jpanel southpanel1;private jpanel mainpanel1;private jpanel eastpanel1;private jpanel westpanel1;private jradiobutton manradiobutton1;private jradiobutt
29、on womenradiobutton1;private jlabel konglabel3;private string sex;public static void main(string args) swingutilities.invokelater(new runnable() public void run() addjframe inst = new addjframe();inst.setlocationrelativeto(null);inst.setvisible(true););public addjframe() super("添加学生信息");in
30、itgui();this.setvisible(true);private void initgui() try setdefaultcloseoperation(windowconstants.dispose_on_close);titlepanel1 = new jpanel();getcontentpane().add(titlepanel1, borderlayout.north);titlepanel1.setpreferredsize(new java.awt.dimension(384, 65);titlelabel1 = new jlabel();titlepanel1.add
31、(titlelabel1);titlelabel1.settext("u8bf7u8f93u5165u5b66u751fu4fe1u606f");titlelabel1.setpreferredsize(new java.awt.dimension(124, 34);titlelabel1.setfont(new java.awt.font("微软雅黑",0,16);/东,西两块空panel,美观作用westpanel1 = new jpanel();getcontentpane().add(westpanel1, borderlayout.west);
32、westpanel1.setpreferredsize(new java.awt.dimension(72, 211);eastpanel1 = new jpanel();getcontentpane().add(eastpanel1, borderlayout.east);eastpanel1.setpreferredsize(new java.awt.dimension(89, 169);southpanel1 = new jpanel();getcontentpane().add(southpanel1, borderlayout.south);southpanel1.setprefer
33、redsize(new java.awt.dimension(384, 70);/提交按钮tjbutton1 = new jbutton();southpanel1.add(tjbutton1);tjbutton1.settext("u63d0u4ea4");tjbutton1.setpreferredsize(new java.awt.dimension(76, 27);tjbutton1.setfont(new java.awt.font("微软雅黑",1,14);/注册“提交”按钮监听器tjbutton1.addactionlistener(new
34、 actionlistener() public void actionperformed(actionevent evt) system.out.println("tjbutton1.actionperformed, event="+evt);/todo add your code for tjbutton1.actionperformed/把添加的信息传给daofactory中getstudentdao里的addstudent方法中的相应参数student student = new student();student.setstudentname(nametextfi
35、eld1.gettext(); student.setstudentno(integer.parseint(notextfield1.gettext();student.setstudentsex(sex);student.setstudentage(integer.parseint(jtextfield1.gettext(); system.out.println("*"+nametextfield1.gettext(); /起测试作用try daofactory.getinstance().getstudentdao().addstudent(student); cat
36、ch (exception e) e.printstacktrace();/成功添加提示joptionpane.showmessagedialog(null, "成功添加","",joptionpane.information_message););/空label用来调提交和放弃按钮的距离,美观作用konglabel3 = new jlabel();southpanel1.add(konglabel3);konglabel3.setpreferredsize(new java.awt.dimension(22, 9);/放弃按钮fqbutton1 = n
37、ew jbutton();southpanel1.add(fqbutton1);fqbutton1.settext("u653eu5f03");fqbutton1.setfont(new java.awt.font("微软雅黑",1,14);fqbutton1.setpreferredsize(new java.awt.dimension(75, 27);/注册“放弃”按钮的监听器,重回主界面fqbutton1.addactionlistener(new actionlistener() public void actionperformed(actio
38、nevent evt) system.out.println("fqbutton1.actionperformed, event="+evt);/todo add your code for fqbutton1.actionperformedstudentjframe sjf=new studentjframe();sjf.setvisible(true);addjframe.this.setvisible(false););mainpanel1 = new jpanel();getcontentpane().add(mainpanel1, borderlayout.cen
39、ter);buttongroup bgp=new buttongroup();mainpanel1.setpreferredsize(new java.awt.dimension(235, 170);/姓名标签和文本框namelabel1 = new jlabel();mainpanel1.add(namelabel1);namelabel1.settext("u59d3u540d");namelabel1.setpreferredsize(new java.awt.dimension(46, 38);namelabel1.setfont(new java.awt.font
40、("微软雅黑",0,14);nametextfield1 = new jtextfield();mainpanel1.add(nametextfield1);nametextfield1.setpreferredsize(new java.awt.dimension(132, 34);/学号标签和文本框nolabel1 = new jlabel();mainpanel1.add(nolabel1);nolabel1.settext("u5b66u53f7");nolabel1.setfont(new java.awt.font("微软雅黑&qu
41、ot;,0,14);nolabel1.setpreferredsize(new java.awt.dimension(46, 19);notextfield1 = new jtextfield();mainpanel1.add(notextfield1);notextfield1.setpreferredsize(new java.awt.dimension(132, 31);/ 性别标签sexlabel1 = new jlabel();mainpanel1.add(sexlabel1);sexlabel1.settext("u6027u522b");sexlabel1.s
42、etfont(new java.awt.font("微软雅黑",0,14);sexlabel1.setpreferredsize(new java.awt.dimension(50, 22);/”男“,”女“单选框的设置manradiobutton1 = new jradiobutton();mainpanel1.add(manradiobutton1);bgp.add(manradiobutton1); /把单选框加到buttongroup中manradiobutton1.settext("u7537");manradiobutton1.setpref
43、erredsize(new java.awt.dimension(57, 23);manradiobutton1.additemlistener(this);womenradiobutton1 = new jradiobutton();mainpanel1.add(womenradiobutton1);bgp.add(womenradiobutton1); /把单选框加到buttongroup中womenradiobutton1.settext("u5973"); womenradiobutton1.setpreferredsize(new java.awt.dimensi
44、on(68, 22);womenradiobutton1.additemlistener(this);/年龄标签和文本框jlabel2 = new jlabel();mainpanel1.add(jlabel2);jlabel2.settext("u5e74u9f84");jlabel2.setfont(new java.awt.font("微软雅黑",0,14);jlabel2.setpreferredsize(new java.awt.dimension(46, 22);jtextfield1 = new jtextfield();mainpanel
45、1.add(jtextfield1);jtextfield1.setpreferredsize(new java.awt.dimension(132, 31);pack();pack(); catch (exception e) e.printstacktrace(); /设置单选框所选内容以备“性别”的监听器把内容返回给数据库public void itemstatechanged(itemevent e) / todo auto-generated method stubif(manradiobutton1.isselected()sex="男" if(womenrad
46、iobutton1.isselected()sex="女" 6.4 queryjframe 类用于查询学生package jframe;import java.awt.borderlayout;import java.awt.event.actionevent;import java.awt.event.actionlistener;import javax.swing.jbutton;import javax.swing.jlabel;import javax.swing.jpanel;import javax.swing.jspinner;import javax.sw
47、ing.jtextfield;import javax.swing.spinnerlistmodel;import javax.swing.windowconstants;import javax.swing.swingutilities;import dao.daofactory;import domain.student;public class queryjframe extends javax.swing.jframe private jpanel titlepanel2;private jbutton qdbutton2;private jtextfield notextfield2
48、;private jlabel agelabel2;private jtextfield agetextfield2;private jtextfield sextextfield2;private jbutton bacdbutton2;private jpanel backpanel2;private jlabel sexlabel2;private jtextfield nametextfield2;private jlabel namelabel2;private jlabel querylabel2;private jpanel mainpanel2;private jlabel q
49、uerylabel;/* auto-generated main method to display this jframe*/public static void main(string args) swingutilities.invokelater(new runnable() public void run() queryjframe inst = new queryjframe();inst.setlocationrelativeto(null);inst.setvisible(true););public queryjframe() super("查找");initgui();this.setvisible(true);private void initgui() try setdefaultcloseoperation(windowconstants.dispose_on_close);/标题块,提示titlepanel2 = new jpanel();getcontentpane().add(titlepanel2, borderlayout.north);titlepanel2.setpreferredsize(n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 市场分析行业趋势模板工具
- 违约和合同解除模板范文(3篇)
- 2025年生物科技行业生物科技研发创新与医药健康产业发展研究报告及未来发展趋势预测
- 电工考试题库及答案
- 母鸡孵小鸡测试题及答案
- 2025年文化创意产业创新模式与发展策略研究报告及未来发展趋势预测
- 2025年网络安全行业区块链安全技术研究报告及未来发展趋势预测
- 2025年网络安全行业网络攻防与数据保护研究报告及未来发展趋势预测
- 襄阳2ol9年安全员考试题库及答案解析
- 放射从业资格证考试试题及答案解析
- 品管圈PDCA获奖案例提高糖尿病患者胰岛素注射规范率
- 2024年度高铁站防水防潮防分包合同2篇
- 荷花课件英文
- 浙江省温州环大罗山联盟2024-2025学年高一上学期期中考试化学试题
- 超市收银员培训资料
- 《电力数据通信网络工程设计规程》
- 电动车消防安全预防电动车火灾培训课件
- 应急管理法律法规课件
- 无人机植保技术课件:无人机植保现状
- 代开发票合作合同
- 09J801民用建筑工程建筑施工图设计深度图样
评论
0/150
提交评论