




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Java课程设计简单的班级管理系统学院:船山学院班级:计算机029班姓名:陈强学号:2004-12-20:需求分析1.功能需求1) .能够实现对班级学生基本资料的录入,包括学生的学号,姓名,性别,所学专业,家庭住址以及出生年月等。2) .能够实现对学生基本资料的修改。3) .根据学号对学生资料进行查询。4) .能够删除某些学生的资料。二:总体设计本班级管理系统共有 6个java源文件。类之间的主要关系如下图所示:各主类的主要作用如下:1) .该java文件的类负责创建班级学生管理系统的主窗口。该类包含main方法,程序从该类开始执行。2) .该文件的类负责创建班级学生管理系统的学生信息录入界面
2、。3) .该文件的类负责创建班级学生管理系统的学生基本信息修改界面。该文件的类负责创建班级学生管理系统的学生基本信息查询界面。5) .该文件的类负责创建班级学生管理系统的学生信息删除界面。6) .负责创建存放学生信息的对象。三:详细设计1).成员变量主要成员变量成员变量描述变量类型变量名称基本信息录入界面Stude ntSituati on基本信息录入基本信息修改界面ModifySituatio n基本信息修改基本信息查询界面In quest基本信息查询基本信息删除界面Delete基本信息删除菜单选项JMe nultem录入,修改,查询,删除存基本信息的冃攵列表Hashtable基本信息存放散
3、列表的文件Filefile2).方法主要方法名称功能备注Stude ntMa nager创建程序主窗口构造方法actio nP erformed处理ActionEvent事件接口方法mai n程序开始运行3).代码import .*;import .*;import .*;importclassStudentManager extends JFrame implementsActionListenerStudentSituation基本信息录入=null;ModifySituation基本信息修改=null;Inquest基本信息查询=null;Delete基本信息删除=null;JMenuB
4、ar bar;JMenu fileMenu;JMenuItem 录入 , 修改 , 查询 , 删除 , 退出 ;Container con=null;Hashtable 基本信息 =null;File file=null;CardLayout card=null;JLabel label;JPanel pCenter;public StudentManager()setTitle("欢迎进入班级管理系统 ");录入 =new JMenuItem("录入学生基本信息");修改 =new JMenuItem("修改学生基本信息");查询
5、=new JMenuItem("查询学生基本信息");删除 =new JMenuItem("删除学生基本信息");退出 =new JMenuItem(" 退出本系统 ");退出 .addActionListener(new ActionListener()public void actionPerformed(ActionEvent event)(0););bar=new JMenuBar();fileMenu=new JMenu(" 菜单选项 ");录入 );();修改);();查询 );();删除);();()
6、;退出);(fileMenu);setJMenuBar(bar);label=new JLabel("欢迎进入班级管理系统 !",;(new Font(" 隶书 ",30);基本信息 =new Hashtable();录入 .addActionListener(this);修改 .addActionListener(this);查询 .addActionListener(this);删除 .addActionListener(this);card=new CardLayout();con=getContentPane();pCenter=new JPan
7、el();(card);file=new File("学生基本信息 .txt");if(!()tryFileOutputStream out=new FileOutputStream(file);ObjectOutputStreamobjectOut=newObjectOutputStream(out);基本信息 );();();基本信息录入基本信息修改catch(IOException e)=new StudentSituation(file);=new ModifySituation(file);基本信息查询=new Inquest(this,file);基本信息删除=
8、new Delete(file);("欢迎语界面 ",label);("录入界面 ", 基本信息录入);("修改界面 ", 基本信息修改);("删除界面 ", 基本信息删除);(pCenter,;();addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e)(0););setVisible(true);setBounds(100,50,420,380);validate();public void actionPer
9、formed(ActionEvent e)if()=录入 )else if()=查询)(pCenter,"录入界面 ");else if()=修改)(pCenter,"修改界面 ");基本信息查询.setVisible(true);else if()=删除)(p Ce nter,"删除界面");p ublic static void main( Stri ng args)new Stude ntMa nager();2.录入界面1).成员变量主要成员变量属性描述变量类型变量名称存放“学生”对象的散列表Hashtable基本信息表输入学
10、生基本信息的文本JTextField学号,姓名,所学专业,家庭存放学生信息的对象Stude nt住址,出生学生2).方法主要方法名称功能备注Stude ntSituati on创建学生信息录入界面构造方法actio nP erformed处理ActionEvent 事件接口方法3).代码 import .*;import .*;import .*;import .*;p ublic class Stude ntSituati on exte nds JPanel imp leme nts Acti on Liste nerHashtable基本信息表=n ull;JTextField 学号,姓
11、名,所学专业,家庭住址,出生;JRadioButton男,女;Stude nt学生=n ull;Butt onGroup group=n ull;JButton 录入,重置;FileI np utStream inOne=n ull;Object Inpu tStream in Two=n ull;FileOut putStream out One=n ull;ObjectOut pu tStream outTwo=nu II;File file=nu II;public Stude ntSituatio n(File file)=file;学号=new JTextField(10);姓名=n
12、ew JTextField(10);所学专业=new JTextField(10);家庭住址 =new JTextField(10);出生 =new JTextField(10);group=new ButtonGroup();男=new JRadioButto n(" 男 ”,true);女 =new JRadioButton(" 女 ",false);( 男);( 女 );录入 =new JButton(" 录入 ");重置 =new JButton(" 重置 ");录入 .addActionListener(this)
13、;重置 .addActionListener(this);Box box1=();(new JLabel("学号:",);( 学号 );Box box2=();(new JLabel("姓名:",);( 姓名 );Box box3=();(new JLabel("性别:",);( 男);( 女 );Box box4=();(new JLabel("所学专业 :",);( 所学专业 );Box box5=();(new JLabel("家庭住址 :",);( 家庭住址 );Box box6=();
14、(new JLabel(" 出生 :",);( 出生 );Box boxH=();(box1);(box2);(box3);(box4);(box5);(box6);();JPanel pCenter=new JPanel();(boxH);setLayout(new BorderLayout();add(pCenter,;JPanel pSouth=new JPanel();( 录入 );( 重置 );add(pSouth,;validate();public void actionPerformed(ActionEvent e)if()= 录入 )String numb
15、er=""number= 学号 .getText();if()>0)try inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表 =(Hashtable)();();();catch(Exception ee)if(基本信息表.containsKey(number)String warning="该生基本信息已存在 , 请到修改页面修改 !"(this,warning,Ak H .警告 ",;elseString m="基本信息将被录入
16、!"intok=(this,m,"确认 ",;if(ok=String name=姓名 .getText();String discipling=所学专业 .getText();String grade=家庭住址 .getText();String borth=出生 .getText();String sex=null;if(男.isSelectedO)sex=男 .getText();elsesex=女 .getText();学生=n ew Stude nt();学生 .setNumber(number);学生 .setName(name);学生 .setDis
17、cipling(discipling);学生 .setGrade(grade);学生 .setBorth(borth);学生 .setSex(sex);tryoutOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);基本信息表 .put(number, 学生 );基本信息表 );();();学号 .setText(null);姓名 .setText(null);所学专业 .setText(null);家庭住址 .setText(null);出生 .setText(null);catch(Exception e
18、e)elseString warning="必须要输入学号 !"(this,warning,"警告",;if()=重置 )学号 .setText(null);姓名 .setText(null);所学专业 .setText(null);家庭住址 .setText(null);出生 .setText(null);3. 查询界面1).成员变量主要成员变量属性描述变量类型变量名称存放“学生”对象的散表Hashtable基本信息表显示学生基本信息的文本JTextField学号,姓名,所学专业,家庭住址,出生2).方法主要方法名称功能备注In quest创建杳询界面
19、构造方法actio nP erformed处理ActionEvent事件接口方法3).代码import .*;import .*;import .*;import .*;p ublic class Inq uest exte nds JDialog impi eme nts Action Liste nerHashtable基本信息表=n ull;JTextField 学号,姓名,所学专业,家庭住址,出生;JRadioButton男,女;JButton 查询;Butt onGroup group=n ull;FileI np utStream inOne=n ull;ObjecHnpufSfr
20、eam inTWOHnu-rF=e fi-eunu-rpub=c -nquesf(JFrame fFi-e fi-e)super(fj 陽违錄蹦十H -fa一se=<4 Hnew JTexfFie_duo=陽违Jew JBUHOn(= 陽违£代血-addACHOnLisfenerahis)-陽违-addACHOnLisfenerahis)八辱役 Hnew JTexfFie一duo).辱役.sefEdifab-eua-se)-Kfe- Hnew JTexfFie_duo=.sefEdifab-eua-se)-淞H审卑"new JTexfFie一duo).淞闹审卑.sef
21、Edifab-eua-se)-圧并 Hnew JTexfFie一duo).圧舟.sefEdifab一e(fa一se=迪"new JRadioBu存on(=迪=Ja-se=HHnew JRadioBu存on(= H- Ja一se=groupunew BUHOnGroupo八Box boxluo-(強血).Box box2=();(new JLabel("姓名:",);( 姓名 );Box box3=();(new JLabel("性别:",);( 男 );( 女 );Box box4=();(new JLabel("所学专业 :&quo
22、t;,);( 所学专业 );Box box5=();(new JLabel("家庭住址 :",);( 家庭住址 );Box box6=();(new JLabel("出生:",);( 出生 );Box boxH=();(box1);(box2);(box3);(box4);(box5);(box6);();JPanel pCenter=new JPanel();(boxH);Container con=getContentPane();(pCenter,;();setVisible(false);setBounds(100,200,360,270);ad
23、dWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e)setVisible(false););public void actionPerformed(ActionEvent e)姓名 .setText(null);所学专业 .setText(null);家庭住址 .setText(null);出生 .setText(null);if()= 查询 |()= 学号 )String number=""number= 学号 .getText();if()>0)try inOne=
24、new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表 =(Hashtable)();();();catch(Exception ee)if(基本信息表 .containsKey(number)Student stu=(Student)基本信息表 .get(number);姓名 .setText();所学专业 .setText();家庭住址 .setText();男")出生 .setText();if().equals("男.setSelected(true);else女.setSelected(
25、true);elseString warning=" 该学号不存在 !"Ak H .警告 ",;(this,warning,"elseString warnin g="必须要输入学号!";(this,warni ng,"Ak H . 警告 ,;3.修改界面1).成员变量主要成员变量描述变量类型变量名称存放“学生”对象的散列表Hashtabel基本信息表输入学生基本信息的文本条JTextField学号,姓名,所学专业,家庭住址,出生2).方法主要方法名称功能备注ModifySituatio n创建学生信息修改界面构造方法act
26、io nP erform处理ActionEvent事件接口方法3).代码import .*;import .*;import .*;import .*;public class ModifySituation extends JPanel implements ActionListenerHashtable 基本信息表 =null;JTextField 学号,姓名,所学专业 ,家庭住址,出生;JRadioButton 男 , 女 ;ButtonGroup group=null;JButton 开始修改 , 录入修改 , 重置 ;FileInputStream inOne=null;Object
27、InputStream inTwo=null;FileOutputStream outOne=null;ObjectOutputStream outTwo=null;File file=null;public ModifySituation(File file)=file;学号 =new JTextField(10);姓名 =new JTextField(10);所学专业 =new JTextField(10);家庭住址 =new JTextField(10);出生 =new JTextField(10);group=new ButtonGroup();男=new JRadioButto n(
28、" 男 ”,true);女 =new JRadioButton(" 女 ",false);( 男);( 女 );开始修改=new JButton(" 开始修改 ");录入修改=new JButton(" 录入修改 ");录入修改.setEnabled(false);重置 =new JButton(" 重置 ");学号 .addActionListener(this);开始修改 .addActionListener(this);录入修改 .addActionListener(this);重置 .addAct
29、ionListener(this);Box box1=();(new JLabel("输入要修改信息的学号 :",);( 学号 );( 开始修改 );Box box2=();(new JLabel("(新) 姓名 :",);( 姓名 );Box box3=();(new JLabel("(新) 性别 :",);( 男 );( 女 );Box box4=();(new JLabel("(新) 所学专业 :",);( 所学专业 );Box box5=();(new JLabel("(新) 家庭住址 :&quo
30、t;,);( 家庭住址 );Box box6=();( 出生 );Box boxH=();(box1);(box2);(box3);(box4);(box5);(box6);();JPanel pCenter=new JPanel();(boxH);setLayout(new BorderLayout();add(pCenter,;JPanel pSouth=new JPanel();( 录入修改 );( 重置 );add(pSouth,;validate();public void actionPerformed(ActionEvent e)if()= 开始修改 |()= 学号 )Strin
31、g number=""number= 学号 .getText();if()>0)try inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表 =(Hashtable)();();();catch(Exception ee)if(基本信息表 .containsKey(number)录入修改 .setEnabled(true);Student stu=(Student)基本信息表 .get(number);姓名 .setText();所学专业 .setText();家庭住址 .se
32、tText();男")出生 .setText();if().equals("男.setSelected(true);else女.setSelected(true);e-se知>克齊.sefEnab一ed(fa一se=Siring warningH-(fhisywarninF<4 .sefreximu辱役.sefrexfmu淳強绷W .sefrexanM-)八淞H审卑.sefrexanu圧舟.sefreximlj-)八e-se知>克齊.sefEnab一ed(fa一se=Siring warningH(fhis-warningj強血sefrexf(nu_)-辱
33、食.Sefreximu-D-淳強绷W .sefreximlj-)-淞H审卑.sefreximlj-)八else if()= 录入修改 )String number=""number= 学号 .getText();if()>0)try inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表 =(Hashtable)();();();catch(Exception ee)if(基本信息表 .containsKey(number)String question="该生基本信息
34、已存在 , 您想修改他 ( 她) 的基本信息吗H.(this,question," 警告 ",;String m=" 基本信息将被修改 !"int ok=(this,m," 确认",;if(ok=String name=姓名 .getText();String discipling=所学专业 .getText();String grade=家庭住址 .getText();String borth=出生 .getText();String sex=null;if(男.isSelectedO)sex=男 .getText();elsese
35、x=女 .getText();Student学生 =new Student();学生 .setNumber(number);学生 .setName(name);学生 .setDiscipling(discipling);学生 .setGrade(grade);学生 .setBorth(borth);学生 .setSex(sex);tryoutOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);基本信息表 .put(number, 学生 );基本信息表 );();();学号 .setText(null);姓名
36、.setText(null);所学专业 .setText(null);家庭住址 .setText(null);出生 .setText(null);catch(Exception ee)录入修改.setEnabled(false);else if(ok=录入修改.setEnabled(true);elseString warning="该学号没有基本信息 ,不能修改 !"警告 ",;(this,warning,"录入修改 .setEnabled(false);elseString warning=" 必须要输入学号 !"(this,wa
37、rning,"警告",;录入修改 .setEnabled(false);if()= 重置)学号.setText( null);姓名.setText(nuII);所学专业.setText(null);家庭住址.setText(null);出生.setText(null);4.删除界面1).成员变量主要成员变量描述变量类型变量名称存放“学生”对象的散列表Hashtable基本信息表显示学生基本信息的文本条JTextField学号,姓名,所学专业,家庭住址,出生2).方法主要方法名称功能备注Delete创建学生信息删除界面构造方法actio nP erformed处理 Actio
38、nEvent接口方法3).代码import .*;import .*;import .*;import .*;public class Delete extends JPanel implements ActionListenerHashtable 基本信息表 =null;JTextField学号 ,姓名 ,所学专业 ,家庭住址 ,出生;JRadioButton男, 女;JButton 删除 ;ButtonGroup group=null;FileInputStream inOne=null;ObjectInputStream inTwo=null;FileOutputStream outOn
39、e=null;ObjectOutputStream outTwo=null;File file=null;public Delete(File file)=file;学号 =new JTextField(10);删除 =new JButton(" 删除");学号 .addActionListener(this);删除 .addActionListener(this);姓名 =new JTextField(10);姓名 .setEditable(false);所学专业 =new JTextField(10);所学专业 .setEditable(false);家庭住址 =new
40、 JTextField(10);家庭住址 .setEditable(false);出生 =new JTextField(10);出生 .setEditable(false);男 =new JRadioButton(" 男 ",false);女 =new JRadioButton(" 女 ",false);group=new ButtonGroup();( 男 );( 女 );Box box1=();(new JLabel("出生:",);(new JLabel("输入要删除的学号 :",);( 删除 );Box b
41、ox2=();(new JLabel("姓名:",);( 姓名 );Box box3=();(new JLabel("性别:",);( 男 );( 女 );Box box4=();(new JLabel("所学专业 :",);( 所学专业 );Box box5=();(new JLabel("家庭住址 :",);( 家庭住址 );Box box6=();( 出生 );Box boxH=();(box1);(box2);(box3);(box4);(box5);(box6);();JPanel pCenter=new
42、 JPanel();(boxH);setLayout(new BorderLayout();add(pCenter,;validate();public void actionPerformed(ActionEvent e)if()= 删除 |()= 学号 )String number=""number= 学号 .getText();if()>0)try inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);基本信息表 =(Hashtable)();();();catch(Exceptio
43、n ee)if(基本信息表 .containsKey(number)Student stu=(Student)基本信息表 .get(number);姓名 .setText();所学专业 .setText();家庭住址 .setText();男")出生 .setText();if().equals("男.setSelected(true);else女.setSelected(true);String m="确定要删除该学号及全部信息吗 "int ok=(this,m,"确认 ",if(ok=基本信息表 .remove(number);t
44、ryoutOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);();();基本信息表 );学号 .setText(null);姓名 .setText(null);所学专业 .setText(null);家庭住址 .setText(null);出生 .setText(null);catch(Exception ee)else if(ok=学号 .setText(null);姓名 .setText(null);所学专业 .setText(null);家庭住址 .setText(null);出生 .setText(null);elseString warnin g="该学号不存在!";Ak H . 警告 ,;(this,warni ng,"elseString warnin g="必须要输入学号!";(this,warni ng,"Ak H . 警告 ,;5.学生对象 1).成员变量主要成员变量描述变量类型变量名称学号Stri ngNumber姓名Stri ngName所学专业Stri ngDisci pli ng家庭住址Stri ngGrade出生Stri ngBorth性别
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中介合伙协议书
- 公司景泰蓝点蓝工岗位工艺技术规程
- 锚链热处理工问题分析深度考核试卷及答案
- 飞机电缆盘箱工文档修订及时性考核试卷及答案
- 飞机数字化装配工工作交接完整性考核试卷及答案
- 2025合同范本租赁合同(标准文本5)模板
- 江苏南通启东市南苑中学2026届数学七上期末质量检测模拟试题含解析
- 2025:试用期未签订劳动合同辞职时遭遇纠纷
- 2026届江苏省江阴市第二中学数学七上期末复习检测模拟试题含解析
- 山东省济南市长清五中学2026届数学七上期末质量跟踪监视试题含解析
- 2024-2025学年广东省深圳市九年级上学期期中数学试题及答案
- 高三物理一轮复习-受力分析、共点力平衡练习(附答案)
- 《疯狂的头发》幼儿园大班艺术课件
- 小阿力的大学校(绘本)
- 高标准农田晒场工程施工方案与技术措施
- 中考语文名著总复习-三年中考真题《红星照耀中国》(教师版)
- 《张仲景活血通络法研究》
- 工程造价预算及成本控制手册
- 《人工智能基础》课件-AI的前世今生:她从哪里来
- 颈动脉疾病超声检查-课件
- DL∕T 5285-2018 输变电工程架空导线(800mm以下)及地线液压压接工艺规程
评论
0/150
提交评论