java课程设计方案班级管理系统9Word文档格式.docx
《java课程设计方案班级管理系统9Word文档格式.docx》由会员分享,可在线阅读,更多相关《java课程设计方案班级管理系统9Word文档格式.docx(39页珍藏版)》请在冰豆网上搜索。
负责创建存放学生信息的对象。
三:
详细设计
1.主类StudentManager.java
1).成员变量
主要成员变量
成员变量描述
变量类型
变量名称
基本信息录入界面
基本信息修改界面
基本信息查询界面
基本信息删除界面
菜单选项
存基本信息的散列表
存放散列表的文件
StudentSituation
ModifySituation
Inquest
Delete
JMenuItem
Hashtable
File
基本信息录入
基本信息修改
基本信息查询
基本信息删除
录入,修改,查询,删除
基本信息
file
2).方法
主要方法
名称
功能
备注
StudentManager
actionPerformed
main
创建程序主窗口
处理ActionEvent事件
程序开始运行
构造方法
接口方法
3).代码
StudentManager.java
importjava.awt.*。
importjava.awt.event.*。
importjavax.swing.*。
importjava.io.*。
importjava.util.Hashtable。
publicclassStudentManagerextendsJFrameimplementsActionListener
{
StudentSituation基本信息录入=null。
ModifySituation基本信息修改=null。
Inquest基本信息查询=null。
Delete基本信息删除=null。
JMenuBarbar。
JMenufileMenu。
JMenuItem录入,修改,查询,删除,退出。
Containercon=null。
Hashtable基本信息=null。
Filefile=null。
CardLayoutcard=null。
JLabellabel。
JPanelpCenter。
publicStudentManager()
{
setTitle("
欢迎进入班级管理系统"
)。
录入=newJMenuItem("
录入学生基本信息"
修改=newJMenuItem("
修改学生基本信息"
查询=newJMenuItem("
查询学生基本信息"
删除=newJMenuItem("
删除学生基本信息"
退出=newJMenuItem("
退出本系统"
退出.addActionListener(newActionListener()
publicvoidactionPerformed(ActionEventevent)
System.exit(0)。
}
})。
bar=newJMenuBar()。
fileMenu=newJMenu("
菜单选项"
fileMenu.add(录入)。
fileMenu.addSeparator()。
fileMenu.add(修改)。
fileMenu.add(查询)。
fileMenu.add(删除)。
fileMenu.add(退出)。
bar.add(fileMenu)。
setJMenuBar(bar)。
label=newJLabel("
欢迎进入班级管理系统!
"
label.CENTER)。
label.setFont(newFont("
隶书"
Font.BOLD,30))。
label.setForeground(Color.blue)。
基本信息=newHashtable()。
录入.addActionListener(this)。
修改.addActionListener(this)。
查询.addActionListener(this)。
删除.addActionListener(this)。
card=newCardLayout()。
con=getContentPane()。
pCenter=newJPanel()。
pCenter.setLayout(card)。
file=newFile("
学生基本信息.txt"
if(!
file.exists())
try{
FileOutputStreamout=newFileOutputStream(file)。
ObjectOutputStreamobjectOut=newObjectOutputStream(out)。
objectOut.writeObject(基本信息)。
objectOut.close()。
out.close()。
catch(IOExceptione)
}
基本信息录入=newStudentSituation(file)。
基本信息修改=newModifySituation(file)。
基本信息查询=newInquest(this,file)。
基本信息删除=newDelete(file)。
pCenter.add("
欢迎语界面"
label)。
录入界面"
基本信息录入)。
修改界面"
基本信息修改)。
删除界面"
基本信息删除)。
con.add(pCenter,BorderLayout.CENTER)。
con.validate()。
addWindowListener(newWindowAdapter()
{publicvoidwindowClosing(WindowEvente)
}
setVisible(true)。
setBounds(100,50,420,380)。
validate()。
publicvoidactionPerformed(ActionEvente)
if(e.getSource()==录入)
card.show(pCenter,"
elseif(e.getSource()==修改)
elseif(e.getSource()==查询)
基本信息查询.setVisible(true)。
elseif(e.getSource()==删除)
publicstaticvoidmain(Stringargs[])
newStudentManager()。
}
2.录入界面
主要成员变量属性
描述
存放“学生”对象的散列表
输入学生基本信息的文本
存放学生信息的对象
JTextField
Student
基本信息表
学号,姓名,所学专业,家庭住址,出生
学生
创建学生信息录入界面
处理ActionEvent事件
StudentSituation.java
importjava.util.*。
publicclassStudentSituationextendsJPanelimplementsActionListener
{
Hashtable基本信息表=null。
JTextField学号,姓名,所学专业,家庭住址,出生。
JRadioButton男,女。
Student学生=null。
ButtonGroupgroup=null。
JButton录入,重置。
FileInputStreaminOne=null。
ObjectInputStreaminTwo=null。
FileOutputStreamoutOne=null。
ObjectOutputStreamoutTwo=null。
publicStudentSituation(Filefile)
{
this.file=file。
学号=newJTextField(10)。
姓名=newJTextField(10)。
所学专业=newJTextField(10)。
家庭住址=newJTextField(10)。
出生=newJTextField(10)。
group=newButtonGroup()。
男=newJRadioButton("
男"
true)。
女=newJRadioButton("
女"
false)。
group.add(男)。
group.add(女)。
录入=newJButton("
录入"
重置=newJButton("
重置"
重置.addActionListener(this)。
Boxbox1=Box.createHorizontalBox()。
box1.add(newJLabel("
学号:
JLabel.CENTER))。
box1.add(学号)。
Boxbox2=Box.createHorizontalBox()。
box2.add(newJLabel("
姓名:
box2.add(姓名)。
Boxbox3=Box.createHorizontalBox()。
box3.add(newJLabel("
性别:
box3.add(男)。
box3.add(女)。
Boxbox4=Box.createHorizontalBox()。
box4.add(newJLabel("
所学专业:
box4.add(所学专业)。
Boxbox5=Box.createHorizontalBox()。
box5.add(newJLabel("
家庭住址:
box5.add(家庭住址)。
Boxbox6=Box.createHorizontalBox()。
box6.add(newJLabel("
出生:
box6.add(出生)。
BoxboxH=Box.createVerticalBox()。
boxH.add(box1)。
boxH.add(box2)。
boxH.add(box3)。
boxH.add(box4)。
boxH.add(box5)。
boxH.add(box6)。
boxH.add(Box.createVerticalGlue())。
JPanelpCenter=newJPanel()。
pCenter.add(boxH)。
setLayout(newBorderLayout())。
add(pCenter,BorderLayout.CENTER)。
JPanelpSouth=newJPanel()。
pSouth.add(录入)。
pSouth.add(重置)。
add(pSouth,BorderLayout.SOUTH)。
Stringnumber="
。
number=学号.getText()。
if(number.length()>
0)
try{
inOne=newFileInputStream(file)。
inTwo=newObjectInputStream(inOne)。
基本信息表=(Hashtable)inTwo.readObject()。
inOne.close()。
inTwo.close()。
catch(Exceptionee)
if(基本信息表.containsKey(number))
Stringwarning="
该生基本信息已存在,请到修改页面修改!
JOptionPane.showMessageDialog(this,warning,警告"
JOptionPane.WARNING_MESSAGE)。
else
Stringm="
基本信息将被录入!
intok=JOptionPane.showConfirmDialog(this,m,"
确认"
JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE)。
if(ok==JOptionPane.YES_OPTION)
Stringname=姓名.getText()。
Stringdiscipling=所学专业.getText()。
Stringgrade=家庭住址.getText()。
Stringborth=出生.getText()。
Stringsex=null。
if(男.isSelected())
sex=男.getText()。
sex=女.getText()。
学生=newStudent()。
学生.setNumber(number)。
学生.setName(name)。
学生.setDiscipling(discipling)。
学生.setGrade(grade)。
学生.setBorth(borth)。
学生.setSex(sex)。
outOne=newFileOutputStream(file)。
outTwo=newObjectOutputStream(outOne)。
基本信息表.put(number,学生)。
outTwo.writeObject(基本信息表)。
outTwo.close()。
outOne.close()。
学号.setText(null)。
姓名.setText(null)。
所学专业.setText(null)。
家庭住址.setText(null)。
出生.setText(null)。
System.out.println(ee)。
必须要输入学号!
JOptionPane.showMessageDialog(this,warning,"
警告"
if(e.getSource()==重置)
3.查询界面
存放“学生”对象的散表
显示学生基本信息的文本
创建查询界面
Inquest.java
publicclassInquestextendsJDialogimplementsActionListener
JButton查询。
publicInquest(JFramef,Filefile)
super(f,"
查询对话框"
查询=newJButton("
查询"
学号.addActionListener(this)。
姓名.setEditable(false)。
所学专业.setEditable(false)。
家庭住址.setEditable(false)。
出生.setEditable(false)。
输入要查询的学号:
box1.add(查询)。
Containercon=getContentPane()。
setVisible(false)。
setBounds(100,200,360,270)。