JAVA课程设计学籍管理系统Word文档下载推荐.docx
- 文档编号:5100059
- 上传时间:2023-05-04
- 格式:DOCX
- 页数:42
- 大小:43.46KB
JAVA课程设计学籍管理系统Word文档下载推荐.docx
《JAVA课程设计学籍管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《JAVA课程设计学籍管理系统Word文档下载推荐.docx(42页珍藏版)》请在冰点文库上搜索。
出版单位
1<
Java程序设计>
高晓黎,刘博主编,清华大学出版社
2《Java编程思想》
3《Java核心技术》
4《深入简出java》
本学籍管理系统共有6个java源文件。
类之间的主要关系如图所示。
StudentManager(主类)
StudentSituation
Inquest
Delete
ModifySituation
Student
StudentManager.java
该java文件的类负责创建学籍管理系统主窗口。
该类含有main方法,程序从该类开始执行。
StudentSituation.java
该文件的类负责创建学籍管理系统的学生信息录入界面。
ModifySituation.java
该文件的类负责创建学籍管理系统的学生信息修改界面。
Inquest.java
该文件的类负责创建学籍管理系统的学生信息查询界面。
Delete.java
该文件的类负责创建学籍管理系统的学生信息删除界面。
Student.java
负责创建存放学生信息的对象。
1.具体设计
1.1主类StudentManager
1.成员变量(见下表)
主要成员变量(属性)
成员变量描述
变量类型
名称
基本信息录入界面
基本信息录入
基本信息修改界面
基本信息修改
基本信息查询界面
基本信息查询
基本信息删除界面
基本信息删除
菜单选项
JmenuItem
录入,修改,查询,删除
存放基本信息的散列表
Hashtable
基本信息
存放散列表的文件
File
file
2.方法(见下表)
主要方法
功能
StudentManager
创建程序主窗口
构造方法
actionPerformed
处理ActionEvent事件
接口方法
main
程序开始运行
3.代码
importjava.awt.*;
importjavax.swing.*;
importjava.io.*;
publicclassStudentManagerextendsJFrameimplementsActionListener
{
StudentSituation基本信息录入=null;
//创建基本信息录入界面
ModifySituation基本信息修改=null;
//创建基本信息修改界面
Inquest基本信息查询=null;
Delete基本信息删除=null;
JMenuBarbar;
JMenufileMenu;
JMenuItem录入,修改,查询,删除;
Containercon=null;
Hashtable基本信息=null;
//存放基本信息的散列表
Filefile=null;
//存放散列表的文件
CardLayoutcard=null;
//卡片式布局
JLabellabel=null;
//欢迎语标签
JPanelpCenter;
publicStudentManager()
{
录入=newJMenuItem("
录入学生基本信息"
);
修改=newJMenuItem("
修改学生基本信息"
查询=newJMenuItem("
查询学生基本信息"
删除=newJMenuItem("
删除学生基本信息"
bar=newJMenuBar();
fileMenu=newJMenu("
菜单选项"
fileMenu.add(录入);
fileMenu.add(修改);
fileMenu.add(查询);
fileMenu.add(删除);
bar.add(fileMenu);
setJMenuBar(bar);
label=newJLabel("
欢迎使用学生基本信息管理系统"
JLabel.CENTER);
label.setFont(newFont("
TimesRoman"
Font.BOLD,24));
label.setForeground(Color.red);
基本信息=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)
System.exit(0);
}
});
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();
}
1.2录入界面StudentSituation
主要成员变量(属性)
描述
存放“学生”对象的散列表
基本信息表
输入学生基本信息的文本条
JtextField
学号,姓名,专业,年级,出生
存放学生信息的对象
学生
创建学生录入界面
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();
//创建6个水平Box容器
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(出生);
//创建一个垂直Box容器,其中从上向下排列6个水平Box容器
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());
//垂直Box容器内的组件靠上对齐
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();
//首先到文件中读取Hashtable
//对象
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();
else
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);
{//弹出警告对话框
必须要输入学号!
JOptionPane.showMessageDialog(this,warning,"
if(e.getSource()==重置)
1.3查询界面Inquest
year
显示学生基本信息的文本条
JTextField
创建查询界面
publicclassInquestextendsJDialogimplementsActionListener
//显示学生基本信息的文本条
JButton查询;
publicInquest(JFramef,Filefile)
super(f,"
查询对话框"
//创建无模式对话框
查询=newJButton("
查询"
学号.addActionListener(this);
姓名.setEditable(false);
专业.setEditable(false);
年级.setEditable(false);
出生.setEditable(false);
//创建6个水平Box容器,容器内从左向右排列组件
输入要查询的学号:
box1.add(查询);
//创建一个垂直Box容器,在其中自上向下排列6个水平Box容器
//使垂直Box容器内的组件靠上对齐
Containercon=getContentPane();
con.add(pCenter,BorderLayout.CEN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA 课程设计 学籍 管理 系统