大学生档案管理系统java编写.docx
《大学生档案管理系统java编写.docx》由会员分享,可在线阅读,更多相关《大学生档案管理系统java编写.docx(30页珍藏版)》请在冰豆网上搜索。
大学生档案管理系统java编写
一.需求分析1
(1)概述1
(2)课题分析1
(3)实现功能步骤1
(4)承担模块工作详解2
(5)外部界面需求2
(6)运行环境2
二.概要设计3
(1)系统流程图3
(2)功能模块图4
(3)新建档案模块4
(4)查询模块4
(5)修改模板5
(6)删除模块5
三.详细设计5
(1)界面类MyPanel.java5
(2)获取界面信息类Massage.java12
(3)文件操作类Myfile.java13
(4)查找类Serch.java14
(5)主界面类Main_face.java18
(6)系统界面21
四.调试分析26
(1)调试过程中所遇到的问题及解决方法26
(2)经验与体会26
五.用户使用说明27
六.测试结果27
七.参考文献27
八.附录27
一.需求分析
(1)概述
Java是目前使用最为广泛的编程语言之一,它具有简单、面向对象、与平台无关、解释型、多线程、安全、动态等特点;
J2SE称为Java标准版或者java标准平台利用该平台可以开发java左面应用程序和
低端的服务器应用程序,也可以开发JavaApplet。
(2)课题分析
从这个题目来分析,要做的主要有四大功能。
第一就是要新建档案功能:
档案内容包括有姓名,性别,出生年月等信息,并且有保存按钮,单击按钮就能实现保存,并弹出保存成功的提示框。
第二点是查询功能:
可以有三种查找方式,分别是按名字,省份证号,档案编号查找。
用户只需输入上述一项档案属性即可以按查询按钮进行查询,随后系统进入到另一个信息显示界面,该界面显示查询到的信息,并且有返回按钮能返回到上一个界面。
第三点是修改功能:
此功能是建立在查询功能基础上的,要先查询到,然后在信息显示界面进行修改,并按保存按钮进行保存修改。
此外该功能要达到两个效果,一个是修改档案的全部内容,另一个就是修改其中的某一项,例如状态栏的内容,当修改状态栏的时候,其他属性如姓名,性别等是无法改变的。
第四是删除功能:
此功能同样是建立在查询功能基础上的,要先查询到,然后单机删除按钮进行删除操作
(3)实现功能步骤
功能的实现步骤主要是:
新建档案功能:
单击文件菜单栏选中新建档案即可,在界面中填写信息,并按保存按钮即可。
查询功能:
单击查询菜单栏,在界面中输入姓名,身份证号,档案编号中的一项单击查询按钮即可完成查询。
修改功能:
单击修改修改菜单栏,选中修改档案和修改状态中的一项,然后在在界面中输入姓名,身份证号,档案编号中的一项修改按钮,并在新界面输入相应的更改信息,随后按保存按钮即可完成修改。
删除功能:
单击删除菜单栏选中删除档案,在界面中输入档案编号后单击删除
按钮即可完成档案的删除操作。
(4)承担模块工作详解
通过这个分析,我主要做的就是多个界面以及各个见面之间的来回切换;还有就是实现对文件的操作(增删改查),这里的采用文本文档的存储方式,以简历的编号为文本的名称,再从新建界面上获取输入的信息并逐行存储到文本中;查询时这逐行读取对应文本中的信息,并将信息放到相应的文本框中,修改则是利用查询功能先找到文档后修改相应的属性内容;删除则是用户输入一个档案编号,系统将名为这个编号的档案删除即可;
(5)外部界面需求
本次程序需要建立新建档案、删除、查询、修改等面板,还需要保存,删除、修改等操作成功是的提示对话框。
(6)运行环境
系统软件:
Window2000以上系统
所需文件:
Call.java(主类代码),Massage.java,MyPanel.java,Myfile.java,Serch.java
Main_panel.java
语言选择:
java
工具软件:
MyEclipse
二.概要设计
(1)系统流程图
结束
图2.1系统流程图
(2)功能模块图
图2.2功能模块图
(3)新建档案模块
在这个模块中主要实现的功能是建立一份档案所需的界面,并将用户输入到界面上
的信息保存在文本文档中。
在保存时,要先提取档案的编号作为文本的名称,这样做有利于后续的查找。
因为
档案的说有属性中编号是唯一的,不会发生冲突;获取到档案的每项属性是先放进一个
字符串数组中,然后将这个字符串的每个元素分别输入当文本中,且各占一行。
(4)查询模块
在这一模块中主要实现的功能是对已有档案的查询功能。
有三种查询方式,分别是按名字、身份证号、档案编号进行查找。
其中按编号查找是只需要直接把名和编号相同的文档打开并逐行读取后放入一个字符串数组中,然后将该数组中的每个元素显示在相应的界面上即可;按身份证号和编号查找是则需要先遍历文档,找到也输入的名字或身份证号也文本中的数据相同的文本,之后逐行读取后放入一个字符串数组中,然后将该数组中的每个元素显示在相应的界面上即可
(5)修改模板
这一模块主要实现的功能是对以后文档内容的修改。
这一功能是建立在查询的基础之上,也就是说要先利用上述功能找到要修改的文档,在去修改文档中的内容,之后将修改后的档案保存;
(6)删除模块
这一模块主要实现的功能是删除系统中的某一份档案。
这一功能的实现同样是建立在查询的基础之上,也就是说要先利用上述功能找到要修改的文档,获取文档名称再进行删除;
三.详细设计
(1)界面类MyPanel.java
该类主要是负责实现该系统除刚进入系统时的界面外的所有界面;它是继承Panel的子类,因此它的对象可以给看作是容器添加在Frame中;它有newface,serchface,
serchshowface,deleteface,changeface六个方法,分别是用来建立新建文档界面,查找询问界面,查找结果显示界面,删除档案界面,修改档案界面;
新建档案方法newface():
setLayout(null);//设置成空布局
name1=newLabel("姓名:
");
name1.setBounds(10,30,40,20);
add(name1);
name2=newTextField();
name2.setBounds(50,30,100,20);
add(name2);
sex1=newLabel("性别:
");
sex1.setBounds(250,30,40,20);
add(sex1);
sex2=newTextField();
sex2.setBounds(290,30,100,20);add(sex2);
birth1=newLabel("出生年月:
");birth1.setBounds(10,60,60,20);add(birth1);
birth2=newTextField();
birth2.setBounds(70,60,100,20);
add(birth2);number1=newLabel("身份证号:
");number1.setBounds(250,60,60,20);
add(number1);
number2=newTextField();number2.setBounds(310,60,100,20);
add(number2);
school1=newLabel("学院:
");school1.setBounds(10,90,40,20);add(school1);
school2=newTextField();
school2.setBounds(50,90,100,20);add(school2);
subject1=newLabel("专业:
");subject1.setBounds(250,90,40,20);add(subject1);
subject2=newTextField();
subject2.setBounds(290,90,100,20);add(subject2);
indata1=newLabel("入学年月:
");indata1.setBounds(10,120,60,20);add(indata1);
indata2=newTextField();
indata2.setBounds(70,120,100,20);add(indata2);
snumber1=newLabel("学号:
");snumber1.setBounds(250,120,40,20);add(snumber1);snumber2=newTextField();snumber2.setBounds(290,120,100,20);
add(snumber2);
reward1=newLabel("在校期间所获奖励:
");
reward1.setBounds(10,150,150,20);
add(reward1);
reward2=newTextArea();
reward2.setBounds(10,180,600,300);add(reward2);
zhuangtai1=newLabel("状态:
");
zhuangtai1.setBounds(10,500,60,20);
add(zhuangtai1);
zhuangtai2=newTextField();
zhuangtai2.setBounds(70,500,80,20);
add(zhuangtai2);
bianhao1=newLabel("档案编号");
bianhao1.setBounds(200,500,60,20);
add(bianhao1);
bianhao2=newTextField();
bianhao2.setBounds(260,500,80,20);
add(bianhao2);
save=newButton("保存");
save.addActionListener(this);
save.setBackground(Color.RED);
save.setBounds(550,500,50,50);
add(save);setVisible(true);
查找询问界面方法serchface():
publicvoidserchface(){setLayout(null);
card=newCardLayout();//将面板设置成CardLayout布局
mainpanel1=newPanel();
mainpanel2=newPanel();
serchpanel=newPanel();
serchpanel.setBounds(0,0,600,400);
mainpanel1.setBounds(0,0,600,400);
mainpanel2.setBounds(0,0,400,400);serchpanel.setLayout(card);
serchpanel.add("查询询问",mainpanel1);//将两个面板添加到CardLayout
serchpanel.add("查询结果",mainpanel2);//中实现两个面板间来回切换
add(serchpanel);mainpanel1.setLayout(null);name3=newLabel("姓名:
");name3.setBounds(200,100,40,20);mainpanel1.add(name3);name4=newTextField();name4.setBounds(240,100,100,20);mainpanel1.add(name4);bianhao3=newLabel("档案编号:
");bianhao3.setBounds(200,200,60,20);mainpanel1.add(bianhao3);bianhao4=newTextField();bianhao4.setBounds(260,200,100,20);mainpanel1.add(bianhao4);serch=newButton("查找");serch.setBounds(500,230,60,60);serch.setBackground(Color.blue);serch.addActionListener(this);mainpanel1.add(serch);back=newButton("返回");back.addActionListener(this);back.setBounds(330,350,30,30);mainpanel2.add(back);
serchshowface();//查询到档案后的信息显示界面setVisible(true);
}查询到档案后的信息显示界面方法serchshowface():
publicvoidserchshowface(){
mainpanel2.setLayout(null);name1=newLabel("姓名:
");name1.setBounds(10,30,40,20);mainpanel2.add(name1);
name2=newTextField();name2setBounds(50,30,100,20);
mainpanel2.add(name2);sexi=newLabel("性别:
”);sex1.setBounds(250,30,40,20);
mainpanel2.add(sexi);
sex2=newTextField();
sex2.setBounds(290,30,100,20);mainpanel2.add(sex2);
birthi=newLabel("出生年月:
”);birthi.setBounds(10,60,60,20);mainpanel2.add(birthi);
birth2=newTextField();
birth2.setBounds(70,60,100,20);mainpanel2.add(birth2);
numberi=newLabel("身份证号:
");numberi.setBounds(250,60,60,20);mainpanel2.add(numberi);
number2=newTextField();mainpanel2.add(number2);
schooli=newLabel("学院:
”);schooli.setBounds(i0,90,40,20);mainpanel2.add(schooli);
school2=newTextField();
school2.setBounds(50,90,i00,20);mainpanel2.add(school2);
subjecti=newLabel("专业:
");subjecti.setBounds(250,90,40,20);mainpanel2.add(subjecti);
subject2=newTextField();
subject2.setBounds(290,90,i00,20);mainpanel2.add(subject2);
indatai=newLabel("入学年月:
”);indatai.setBounds(i0,i20,60,20);mainpanel2.add(indatai);
indata2=newTextField();
indata2.setBounds(70,i20,i00,20);mainpanel2.add(indata2);
snumber1=newLabel("学号:
");snumber1.setBounds(250,120,40,20);mainpanel2.add(snumber1);
snumber2=newTextField();snumber2.setBounds(290,120,100,20);mainpanel2.add(snumber2);
reward1=newLabel("在校期间所获奖励:
");reward1.setBounds(10,150,150,20);mainpanel2.add(reward1);
reward2=newTextArea();
reward2.setBounds(10,180,500,150);mainpanel2.add(reward2);
zhuangtai1=newLabel("状态:
");zhuangtai1.setBounds(10,350,60,20);mainpanel2.add(zhuangtai1);
zhuangtai2=newTextField();
zhuangtai2.setBounds(70,350,80,20);mainpanel2.add(zhuangtai2);
bianhao1=newLabel("档案编号");bianhao1.setBounds(200,350,60,20);mainpanel2.add(bianhao1);
bianhao2=newTextField();
bianhao2.setBounds(260,350,60,20);mainpanel2.add(bianhao2);
setVisible(true);
}
修改档案界面方法changeface():
publicvoidchangface(){serchface();//使用查询是的界面serch.setName("开始修改");//将查询按钮改成修改按钮save=newButton("保存");
save.setBounds(400,350,30,30);
mainpanel2.add(save);//在信息显示界面添加保存按钮save.addActionListener(this);//添加监听器
}
删除档案界面方法deleteface():
publicvoiddeleteface(){
setLayout(null);
bianhao1=newLabel("档案编号");//档案编号作为删除档案时的查询条件bianhao1.setBounds(200,200,60,20);
add(bianhao1);
bianhao2=newTextField();
bianhao2.setBounds(260,200,80,20);
add(bianhao2);
delete=newButton("删除");
delete.addActionListener(this);//给按钮添加监听器
delete.setBackground(Color.RED);
delete.setBounds(250,250,50,50);
add(delete);//添加删除按钮
}
按钮的事件的实现:
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==serch){//查找按钮,打击后开始查找
Stringtemp[]={"",""name=name4.getText();//
IlliIlliIlliIlliIlliIlliIlliIlliIlliIlli
JJJJJJJJJ
获取查询询问界面上的信息
Illi
};
获取档案编号
实例化查询类如果用户输入了编号
bianhao=bianhao4.getText();//Serchexample=newSerch();//if(bianhao.length()!
=0){//
temp=example.serchBianhao(bianhao)//进行按编号查找}
elseif(name.length()!
=0){//如果用户输入了名字
temp=example.serchName(name);//进行按名字查找
if(temp!
=null){//如果查询到的结果不是空的则将结果显示到界面
card.show(serchpanel,"查询结果");name2.setText(temp[0]);
sex2.setText(temp[1]);birth2.setText(temp[2]);number2.setText(temp[3]);school2.setText(temp[4]);subject2.setText(temp[5]);indata2.setText(temp[6]);snumber2.setText(temp[7]);reward2.setText(temp[8]);
zhuangtai2.setText(temp[9]);bianhao2.setText(temp[10]);
}
}
elseif(e.getSource()==back){//返回按钮事件的实现bianhao4.setText("");name2.setText("");
number2.setText("");
card.show(serchpanel,"查询询问");//单击后返回查询询问界面
}
elseif(e.getSource()==save){//保存按钮事件的实现
MyFileexample=newMyFile();//实例化一个文件操作类的
对象
Massagemassage=newMassage(this);example.save(massage);//调用该文件操作类对象的保存文件方法
JOptionPane.showMessageDialog(this