版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、java 课程设计 -简单的班级管理系统 二:总体设计 本班级管理系统共有 2个java 源文件。 各个类之间的主要关系如下图所示: studentmanager modiifyactinquesactshowactdeleteactinputactstudentshowstudent各主类的主要作用如下: 1. studentmanager.java studentmanager类该类负责创建班级学生管理系统的主窗口。该类包含 main 方法,程序从该类开始执行。该类嵌套如下类: 1).inputact类该类负责创建班级学生管理系统的学生基本信息录入界面。 2).inquestact类该类负
2、责创建班级学生管理系统的学生基本信息查询界面。 3).modifyact类该类负责创建班级学生管理系统的学生基本信息修改界面。 4).deleteact类该类负责创建班级学生管理系统的学生基本信息删除界面。5).showact类该类负责创建班级学生管理系统的学生基本信息显示界面。2.student.java 负责创建存放学生信息的对象。三:详细设计 1. studentmanager.java studentmanager类 1).成员变量 主要成员变量 成员变量描述变量类型变量名称显示注释的标签jlabellb显示欢迎进入的标签jlabel欢迎设定字体属性fontfont1输入学生基本信息的
3、文本jtextfield学号,姓名,专业,年级,出生,电话,住址性别选择jradiobutton男,女进行相应操作的按钮jbutton录入,查询,删除,修改,显示,进入,确定,退出调整布局的通道jpanelp01,p02,p03,p04,p1,p2,p3,p4,p5,p6,p7,p8,p9,pv,ph,plb系统框架界面jframewelcome,operation存放学生基本信息的对象student学生学生信息的散列表hashtable基本信息存放散列表的文件filefile2) . 方法主要方法名称功能备注studentmanager创建程序主窗口构造方法main程序开始运行3) .内部类
4、名称功能inputact学生信息录入界面inquestact学生信息查询界面modifyact学生信息修改界面deleteact学生信息删除界面showact学生信息显示界面4) . 代码 studentmanager.javaimport java.awt.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import java.util.*;public class studentmanager extends jframe jlabel lb=new jlabel(注:录入请先输入记录,查询、删除请先输入学号,
5、修改是对查询 +内容改后的保存!); jlabel 欢迎; font font1=new font(黑体,font.bold,24); jtextfield 学号,姓名,专业,年级,出生,电话,住址; jradiobutton 男,女; buttongroup group=null; jbutton 录入,查询,删除,修改,显示,进入,确定,退出; jpanel p01,p02,p03,p04,p1,p2,p3,p4,p5,p6,p7,p8,p9,pv,ph,plb; student 学生=null; hashtable 学生散列表=null; file file=null; fileinpu
6、tstream inone=null; objectinputstream intwo=null; fileoutputstream outone=null; objectoutputstream outtwo=null; public studentmanager() final jframe welcome = new jframe(); final jframe operation = new jframe(); p01=new jpanel(); 欢迎=new jlabel(欢迎进入班级管理系统!); 欢迎.setfont(font1); 进入=new jbutton(进入); 退出=
7、new jbutton(退出); welcome.setlayout(new gridlayout(3,1,5,5); p01.add(欢迎); p02.add(进入); welcome.add(p03); welcome.add(p01); welcome.add(p02); welcome.settitle(班级管理系统); welcome.setsize(500,300); welcome.setvisible(true); 进入.addactionlistener(new actionlistener() public void actionperformed(actionevent
8、e) welcome.setvisible(false); operation.setvisible(true); ); 退出.addactionlistener(new actionlistener() public void actionperformed(actionevent e) system.exit(0); ); operation.settitle(班级管理系统); 学号=new jtextfield(10); group=new buttongroup(); 男=new jradiobutton(男,true); 女=new jradiobutton(女,false); gr
9、oup.add(男); group.add(女); 录入=new jbutton(录入); 录入.addactionlistener(new inputact(); 修改.setenabled(false); 确定.setvisible(false); 确定.addactionlistener(new actionlistener() public void actionperformed(actionevent e) 姓名.setenabled(true); 男.setenabled(true); 女.setenabled(true); 确定.setvisible(false); ); p1
10、=new jpanel(); p1.add(new jlabel(学 号:,jlabel.center); p1.add(学号); p9=new jpanel(); p9.add(确定); pv=new jpanel(); pv.setlayout(new gridlayout(10,1); pv.add(p04); pv.add(p1); pv.add(p9); ph=new jpanel(); ph.add(录入); ph.add(退出); plb=new jpanel(); plb.add(lb); file=new file(学生信息.txt); 学生散列表=new hashtable
11、(); if(!file.exists() try fileoutputstream out=new fileoutputstream(file); objectoutputstream objectout=new objectoutputstream(out); objectout.writeobject(学生散列表); objectout.close(); out.close(); catch(ioexception e) operation.setlayout(new borderlayout(); operation.add(ph, borderlayout.north); opera
12、tion.add(pv, borderlayout.center); operation.add(plb, borderlayout.south); operation.setdefaultcloseoperation(exit_on_close); operation.setsize(700,500); operation.setvisible(false);(1).录入界面 inputact类1). 成员变量主要成员变量描述变量类型变量名称获取输入的学号,姓名,专业,年级,出生,住址,电话stringnumber,name,specialty,grade,borth,address,pho
13、nenumber,sex2) . 方法主要方法名称功能备注actionperformed处理actionevent事件接口方法3) . 代码class inputact implements actionlistener public void actionperformed(actionevent e) 修改.setenabled(false); string number=; number=学号.gettext(); if(number.length()0) try inone=new fileinputstream(file); intwo=new objectinputstream(i
14、none); 学生散列表=(hashtable)intwo.readobject(); inone.close(); intwo.close(); catch(exception ee)system.out.println(创建散列表出现问题!); if(学生散列表.containskey(number) string warning=该生信息已存在,请到修改页面修改!; joptionpane.showmessagedialog(null,warning,警告, joptionpane.warning_message); else string m=该生信息将被录入!; int ok=jop
15、tionpane.showconfirmdialog(null,m,确认, joptionpane.yes_no_option,joptionpane.information_message); if(ok=joptionpane.yes_option) string name=姓名.gettext(); string specialty=专业.gettext(); string grade=年级.gettext(); string borth=出生.gettext(); string address=住址.gettext(); string phonenumber=电话.gettext();
16、 string sex=null; if(男.isselected()sex=男.gettext(); elsesex=女.gettext(); 学生=new student(); 学生.setnumber(number); 学生.setname(name); 学生.setspecialty(specialty); 学生.setgrade(grade); 学生.setborth(borth); 学生.setsex(sex); try outone=new fileoutputstream(file); outtwo=new objectoutputstream(outone); 学生散列表.p
17、ut(number,学生); outtwo.writeobject(学生散列表); outtwo.close(); outone.close(); catch(exception ee)system.out.println(输出散列表出现问题!); 学号.settext(null); 姓名.settext(null); 专业.settext(null); 年级.settext(null); 出生.settext(null); else string warning=必须输入学号!; joptionpane.showmessagedialog(null,warning, 警告,joptionpa
18、ne.warning_message); (2).查询界面 inquestact类1) . 成员变量主要成员变量描述变量属性变量名称获取输入的学号stringnumber2). 方法 主要方法名称功能备注actionperformed处理actionevent事件接口方法3).代码class inquestact implements actionlistener public void actionperformed(actionevent e) string number=; number=学号.gettext(); if(number.length()0) try inone=new f
19、ileinputstream(file); intwo=new objectinputstream(inone); 学生散列表=(hashtable)intwo.readobject(); inone.close(); intwo.close(); catch(exception ee)system.out.println(散列表有问题!); if(学生散列表.containskey(number) 修改.setenabled(true); student stu=(student)学生散列表.get(number); 姓名.settext(stu.getname(); 专业.settext(
20、stu.getspecialty(); 年级.settext(stu.getgrade(); 出生.settext(stu.getborth(); if(stu.getsex().equals(男)男.setselected(true); else女.setselected(true); else 修改.setenabled(false); string warning=该学号不存在!; joptionpane.showmessagedialog(null,warning, 警告,joptionpane.warning_message); else 修改.setenabled(false);
21、string warning=必须输入学号!; joptionpane.showmessagedialog(null,warning, 警告,joptionpane.warning_message); 姓名.setenabled(false); 男.setenabled(false); 女.setenabled(false); 专业.setenabled(false); 年级.setenabled(false); 出生.setenabled(false); 电话.setenabled(false); 住址.setenabled(false); 确定.setvisible(true); 录入.s
22、etenabled(false); 修改.setenabled(false); 删除.setenabled(false); 显示.setenabled(false); (3).修改界面 modifyact类1). 成员变量主要成员变量描述变量类型变量名称获取修改的学号,姓名,专业,年级,出生,住址,电话stringnumber,name,specialty,grade,borth,address,phonenumber,sex 2). 方法 主要方法名称功能备注actionperformed处理actionevent事件接口方法3). 代码class modifyact implements
23、actionlistener public void actionperformed(actionevent e) string number=学号.gettext(); string name=姓名.gettext(); string specialty=专业.gettext(); string grade=年级.gettext(); string borth=出生.gettext(); string phonenumber=电话.gettext(); string address=住址.gettext(); string sex=null; if(男.isselected()sex=男.g
24、ettext(); elsesex=女.gettext(); string m=确定要保存修改该学生的记录吗?; int ok=joptionpane.showconfirmdialog(null,m,确认, joptionpane.yes_no_option,joptionpane.question_message); if(ok=joptionpane.yes_option) student 学生=new student(); 学生.setnumber(number); 学生.setname(name); 学生.setspecialty(specialty); 学生.setgrade(gr
25、ade); 学生.setborth(borth); 学生.setsex(sex); 学生.setaddress(address); 学生.setphonenumber(phonenumber); try outone=new fileoutputstream(file); outtwo=new objectoutputstream(outone); 学生散列表.put(number, 学生); outtwo.writeobject(学生散列表); outtwo.close(); outone.close(); 学号.settext(null); 姓名.settext(null); 专业.set
26、text(null); 年级.settext(null); 出生.settext(null); 电话.settext(null); 住址.settext(null); catch(exception ee) system.out.println(录入修改出现异常!); 修改.setenabled(false); (4).删除界面deleteact类 1). 成员变量主要成员变量描述变量属性变量名称获取输入的学号stringnumber2). 方法 主要方法名称功能备注actionperformed处理actionevent事件接口方法3).代码class deleteact implement
27、s actionlistener public void actionperformed(actionevent e) 修改.setenabled(false); string number=学号.gettext(); if(number.length()0) try inone=new fileinputstream(file); intwo=new objectinputstream(inone); 学生散列表=(hashtable)intwo.readobject(); inone.close(); intwo.close(); catch(exception ee) if(学生散列表.
28、containskey(number) student stu=(student)学生散列表.get(number); 姓名.settext(stu.getname(); 专业.settext(stu.getspecialty(); 年级.settext(stu.getgrade(); 出生.settext(stu.getborth(); 电话.settext(stu.getphonenumber(); 住址.settext(stu.getaddress(); if(stu.getsex().equals(男)男.setselected(true); else女.setselected(tru
29、e); string m=确定要删除该学生的记录吗?; int ok=joptionpane.showconfirmdialog(null,m,确认, joptionpane.yes_no_option,joptionpane.question_message); if(ok=joptionpane.yes_option) 学生散列表.remove(number); try outone=new fileoutputstream(file); outtwo=new objectoutputstream(outone); outtwo.writeobject(学生散列表); outtwo.clo
30、se(); outone.close(); 学号.settext(null); 姓名.settext(null); 专业.settext(null); 年级.settext(null); 出生.settext(null); 电话.settext(null); 住址.settext(null); catch(exception ee)system.out.println(ee); else if(ok=joptionpane.no_option) 学号.settext(null); 姓名.settext(null); 专业.settext(null); 年级.settext(null); 出生.
31、settext(null); 电话.settext(null); 住址.settext(null); else string warning=该学号不存在!; joptionpane.showmessagedialog(null,warning, 警告,joptionpane.warning_message); else string warning=必须输入学号!; joptionpane.showmessagedialog(null,warning, 警告,joptionpane.warning_message); (5).显示界面 showact类 1). 成员变量主要成员变量属性描述变
32、量属性变量名称存放“学生”对象的散列表hashtable基本信息表显示学生基本信息的文本条jtextfield学号,姓名,专业,年级,出生,住址,电话 2). 方法 主要方法名称功能备注showact创建学生信息显示界面构造方法actionperformed处理actionevent事件接口方法3). 代码class showact implements actionlistener public void actionperformed(actionevent e) new studentshow(file); public class studentshow extends jdialog
33、 hashtable 学生散列表= null; jtextarea 显示=null; fileinputstream inone=null; objectinputstream intwo=null; file file=null; public studentshow(file file) super(new jframe(),显示对话框); this.file=file; 显示=new jtextarea(16,30); try inone=new fileinputstream(file); intwo=new objectinputstream(inone); 学生散列表=(hasht
34、able)intwo.readobject(); inone.close(); intwo.close(); catch(exception ee) if(学生散列表.isempty()显示.append(目前还没有学生的信息记录!n); else 显示.settext(学号 姓名 性别 专业 年级 出生 电话 住址n); for(enumeration enm=学生散列表.elements();enm.hasmoreelements();) student stu=(student)enm.nextelement(); string sex=; if(stu.getsex().equals(
35、男)sex=男; else sex=女; string str=stu.getnumber()+,+stu.getname()+,+sex+, +stu.getspecialty()+,+stu.getgrade()+,+stu.getborth()+,+stu.getphonenumber()+,+stu.getaddress()+n; 显示.append(str); jscrollpane scroll=new jscrollpane(显示); container con=getcontentpane(); con.add(center,scroll); con.validate(); s
36、etvisible(true); setbounds(200,200,400,300); addwindowlistener(new windowadapter() public void windowclosing(windowevent e)setvisible(false); ); 2.student.java 1). 成员变量主要成员变量描述变量属性变量名称学号stringnumber姓名stringname性别stringsex专业stringspecialty年级stringgrade出生stringborth住址stringaddress电话stringphonenumber 2). 方法 主要方法名称功能setnumber设置学号getnumber获取学号setname设置姓名getname
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论