java课程设计学生学籍管理系统.docx
《java课程设计学生学籍管理系统.docx》由会员分享,可在线阅读,更多相关《java课程设计学生学籍管理系统.docx(25页珍藏版)》请在冰豆网上搜索。
java课程设计学生学籍管理系统
Documentserialnumber【UU89WT-UU98YT-UU8CB-UUUT-UUT108】
java课程设计学生学籍管理系统
课程设计(论文)任务书
学院
理学院
专业
信息与计算科学
学生姓名
孙康
班级学号
24
课程名称
Java程序设计课程设计
课程设计(论文)题目
学生学籍管理系统
设计题目:
学生学籍管理系统,用java语言编程知识和Eclipse软件实现学生学籍管理系统程序。
设计目的:
1)复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;
2)课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。
提高学生适应实际,实践编程的能力;
3)培养学生在项目开发中的团队合作精神、创新意识及能力。
计划与进度安排:
成绩:
指导教师(签字):
2010年7月8日
专业负责人(签字):
2010年7月18日
主管院长(签字):
2010年7月19日
摘要
Java语言是当前最为流行的程序设计语言之一,诸多优秀的的特性使其成为被业界广泛认可和采用的工具。
本设计可以帮助同学掌握和应运所学的面向对象程序设计学生学籍信息管理系统的编程内容,培养同学们建立对象模型,处理对象和对象集关系和对图形用回界面设计编程以及文件和流的编程问题的能力,训练同学为解决实际问题而创建较完整的简单面向对象和管理系统编程应运程序的独立编程能力.本设计是一个常见的学生学籍管理系统应运程序.
系统实现的功能:
界面操作实现学生学籍信息的添加、删除、查询、修改功能,在文本文件中的的信息的动态处理。
关键词:
学生学籍管理系统;图形用户界面设计;文件和流;java
一设计目的………………………………………………………………………1
二设计问题………………………………………………………………………1
三概要设计………………………………………………………………………1
主程序面板设计………………………………………………………………2
功能组件的功能实现…………………………………………………………3
3.添加学生信息…………………………………………………………3
查询学生信息…………………………………………………………4
修改学生信息…………………………………………………………4
删除学生信息…………………………………………………………5
重置学生信息…………………………………………………………5
四详细设计………………………………………………………………………5
图形用户界面设计……………………………………………………………5
添加功能的实现………………………………………………………………9
重置功能的实现………………………………………………………………10
查询功能的实现………………………………………………………………10
删除功能的实现………………………………………………………………12
修改功能的实现………………………………………………………………15
系统的运行……………………………………………………………………18
五设计总结………………………………………………………………………18
参考文献……………………………………………………………………………19
致谢…………………………………………………………………………………19
学生学籍管理系统
一、设计目的
随着现代社会的快速发展,我们已进入信息化时代,管理系统在人们的生活中的应用越来越广泛,它已深入到我们工作、学习、生活的各个方面。
为了适应时代的发展,本次课程设计的主要任务是设计一个学生学籍管理系统并完成一些基本操作。
其目的是:
(1)运用已学的java知识编一些简单使用的程序,通过本课程设计使我们加深理解、巩固课堂理论知识和实验知识;
(2)使我们初步具备综合运用所学Java语言基础知识,面向对象程序设计的基本思想、方法与技术,用户界面设计编程和文件编程技术等开发简单应用系统的基本能力;
(3)使理论和实际相结合,真正做到学以致用,并适应时代发展的潮流。
二、设计问题
学生学籍管理系统
要求完成:
(1)学生学籍信息的添加、删除、查询、修改功能
(2)使用界面操作
(3)使用文件完成
首先设计面板,然后往面板里添加组件,点击各个组件来实现要求的对学生学籍信息的添加、删除、查询、修改功能。
三、概要设计
学生信息管理系统的程序文件为,在包含名为AddStudent的类。
其主要功能为构成学生信息管理系统的主体框架,实现框架上各个组件的事件侦听。
主要包括2个模块:
图形用户界面的构建:
组件监听事件的实现。
用例图1表示如下
例图1
、主程序面板设计:
设计主面板如图所示,主面板分为学籍信息输入区、功能操作区和学籍信息显示区。
在学生信息输入区里分别有学号、姓名、性别、班级、系别等信息的输入文本框,其数据类型均置为String类型。
在功能操作区里有五个按钮分别为:
添加、修改、重置、删除、查询。
分别实现对文本文件中的的学生信息数据进行添加、修改、删除、查询。
其中重置功能按钮为对主程序界面中的信息输入区和信息显示区的文本框中的内容进行清除操作。
在学籍信息显示区里使用
DefaultTableModeltableModel=newDefaultTableModel();
String[]titles={"学号","姓名","性别","班级","系别"};
定义五个titles用来学籍信息的显示。
主程序面板如例图2所示。
例图2
、功能组件的功能实现:
添加学生信息
在文本框中输入学生信息包括学号、姓名、性别、班级、系别,点击添加按钮弹出对话框如图。
该学生信息已成功添加至文件。
如例图3,4
例图3
例图4
查询学生信息
在学号文本框里输入想要查询的学号04,在学生信息显示栏显示信息。
如例图5:
例图5
修改学生信息
在学生信息输入区输入完整的学生信息,点击修改按钮弹出如下对话框,点击是(Y)按钮,程序自动修改文本文件中的学生信息,如例图6,7。
例图6
例图7
打开文件,查找所修改内容,成功修改内容,再查询学号为08090104的学生信息为如例图8
例图8
说明信息修改成功。
删除学生信息
只需在信息输入区输入所要删除的学生信息的学号,点击删除按钮弹出如下对话框
例图9
点击是(Y)按钮,程序进行执行删除功能,并弹出如下对话框,如例图10
例图10
重置信息
点击重置按钮,学籍信息输入区和学籍信息显示区的文本框中的内容都设置为空。
四、详细设计
图形用户界面设计
定义AddStudent类继承JFrame类使用ActionListener,ItemListener接口实现对事件的监听。
以下为用户界面的程序代码及分析:
定义String类型的num,name,grade,sex,xibie,oldStr六个变量;在本系统中默认学籍信息中的学号为学生信息的唯一可区分标识。
删除、查询和修改时均以学号来进行信息的检索和匹配检测。
使用JLabel标签类定义lbl_titlelbl_numlbl_namelbl_sexlbl_classlbl_department;
使用JTextField类创建文本框用以学籍信息的输入和显示。
使用JButton类创建btn_repbtn_xgbtn_cxbtn_shbtn_add功能按钮。
使用addItemListener()和addActionListener()方法功能按钮事件进行监听。
使用JRadioButton类创建rb_manrb_woman用以学生学籍信息性别的选择。
使用DefaultTableModel类定义五个titles用来学籍信息的显示。
使用Container容器类,并使用add()方法添加组件到容器中。
使用setBounds()方法对每个组件进行位置的设置,并使界面达到最优化。
使用setVisible(true)使界面显示各个组件。
classAddStudentextendsJFrameimplementsActionListener,ItemListener{
publicStringnum,name,grade,sex,xibie,oldStr;
JLabellbl_title=newJLabel("学生信息");
JLabellbl_num=newJLabel("学号:
");
JLabellbl_name=newJLabel("姓名:
");
JLabellbl_sex=newJLabel("性别:
");
JLabellbl_class=newJLabel("班级:
");
JLabellbl_department=newJLabel("系别:
");
JTextFieldtxt_num=newJTextField();
JTextFieldsfzText1=newJTextField();
JTextFieldbnameText1=newJTextField();
JTextFieldxbText1=newJTextField();
JTextFielddateText1=newJTextField();
JTextFieldxb=newJTextField();
JTextFieldtxt_name=newJTextField(11);
JTextFieldtxt_class=newJTextField(11);
JTextFieldtxt_department=newJTextField();
JButtonbtn_rep=newJButton("重置");
JButtonbtn_xg=newJButton("修改");
JButtonbtn_cx=newJButton("查询");
JButtonbtn_sh=newJButton("删除");
JButtonbtn_add=newJButton("添加");
JRadioButtonrb_man=newJRadioButton("男");
JRadioButtonrb_woman=newJRadioButton("女");
DefaultTableModeltableModel=newDefaultTableModel();
String[]titles={"学号","姓名","性别","班级","系别"};
Stringa,b,c,d,f;
privateJLabelinfoLab=newJLabel("学生信息管理");
ButtonGroupbg=newButtonGroup();
AddStudent(Strings){
super(s);
(500,50,390,600);
Containercon=();
(null);
(lbl_title);
(lbl_num);
(lbl_name);
(lbl_sex);
(lbl_class);
(lbl_department);
(txt_num);
(txt_name);
(txt_class);
(txt_department);
(btn_rep);
(btn_xg);
(btn_cx);
(btn_sh);
(btn_add);
(rb_man);
(rb_woman);
(rb_man);
(rb_woman);
(infoLab);
(sfzText1);
(bnameText1);
(xbText1);
(dateText1);
(xb);
(150,50,100,25);
(100,100,50,25);
(100,150,50,25);
(100,200,50,25);
(100,250,50,25);
(100,300,50,25);
(20,350,60,25);
(230,350,60,25);
(90,350,60,25);
(300,350,60,25);
(160,350,60,25);
(150,100,110,25);
(150,150,110,25);
(150,250,110,25);
(150,300,110,25);
(150,200,50,25);
(220,200,50,25);
(0,410,100,25);
(0,450,80,20);
(80,450,80,20);
(160,450,80,20);
(240,450,80,20);
(320,450,80,20);
(titles);
JTabletable=newJTable(tableModel);
JScrollPanescr=newJScrollPane(table);
(scr);
(0,430,400,300);
(this);
(this);
(this);
(this);
(this);
(this);
(this);
setVisible(true);
添加功能的实现
定义addDate()方法实现学籍信息的添加,使用getText()方法获取文本框中的学生学籍信息,并使用PrintWriter(newFileWriter(newFile(""),true))类下的println()方法将信息写入文件。
其中每个学籍信息之间用|隔开,并换行保存以方便信息的的读取和查询。
添加成功之后执行setText()方法使各个文本框中的信息为空以方便其他功能的实现。
以下为具体的代码:
publicvoidaddDate(){
Stringsex=null;
if()){
sex=();}
else{
sex=();
}
(null,"学号:
"+()+"\n姓名:
"+()+"\n性别"+sex+"\n班级:
"+()+"\n系别:
"+());
PrintWritermm=null;
Stringfs=()+"|"+()+"|"+sex+"|"+()+"|"+();
try{
mm=newPrintWriter(newFileWriter(newFile(""),true));
(fs);
}catch(IOExceptione1){
();
}
();
(null,"添加成功","温馨提示",;
(null);
(null);
(null);
(null);
(rb_man);
(rb_woman);
(false);
(false);
}
重置功能的实现
使用setText()方法使各个文本框中的信息为空,使用JRadioButton类下的remove()和setSelected(flase)方法使性别单选按钮置为未被选定状态。
publicvoidrepDate(){
(null);
(null);
(null);
(null);
(rb_man);
(rb_woman);
(false);
(false);
(rb_man);
(rb_woman);
("");
("");
("");
("");
("");
("学生信息");
}
查询功能的实现
定义查询方法实现查询功能,首先使用equals方法进行判别学号输入区文本框中的内容是否为空,为空的时候则提示用回输入学号进行查询,不为空使用类BufferedReader下的readLine()方法正行读取文件中的内容,使用类StringTokenizer对读取的整行数据以“|“进行分割,每个分割点的内容赋值给String类型的num,name,sex,grade,xibie。
再次使用equal方法判断学号输入文本框中的内容是否和num相同,若相同则依次使用setText()方法将学籍信息显示区的文本框内容设置为所查找的文件数据。
其中包括文件的异常处理。
以下为具体代码:
publicvoidCheckDate(){
if().toString().equals("")){
(null,"请输入学号","温馨提示",;}
try{
BufferedReaderin=newBufferedReader(newFileReader(""));
Strings;
while((s=())!
=null)
{
StringTokenizert=newStringTokenizer(s,"|");
num=();
name=();
sex=();
grade=();
xibie=();
if())){
(num);
(name);
(xibie);
(sex);
(grade);
("查询成功!
");}
}
}catch(IOExceptione){
();
}
}
删除功能的实现
删除学籍信息时用户只需输入学生的学号即可删除文本文件中的该生的学籍信息,其实现是基于查询功能,首先是查询文本文件中的数据,如果输入的学号和查询到的信息相同时,提示用户是否要删除该生学籍信息,如果选择是(Y),则删除该学生的所有信息。
在实现删除功能时,本系统采用缓冲流StringBuffer
buf的相关特性,在信息匹配成功之后,使用readLine()方法自动查找到该学籍信息在文本文件中所在的行,将该行之前的内容使用append()方法追加到缓冲流buf中,而该行数据则设置为空追加至buf中,该行之后的内容则正常追加至buf中,然后再写入文本文件中,其中也包括对文件读取写入的异常的处理,从而实现了信息的删除。
以下为具体代码:
publicvoiddeleteDate(){
if()){
sex=();}
else{
sex=();
}
Stringm="确定要删除该学生的记录吗\n请检查文本文件中的数据格式确保每行数据之间和文本最后无空行";
intok=(null,m,"确认",,;
if(ok=={
try{
BufferedReaderin=newBufferedReader(newFileReader(""));
Strings;
while((s=())!
=null)
{
StringTokenizert=newStringTokenizer(s,"|");
num=();
name=();
sex=();
grade=();
xibie=();
if())){
oldStr=num+"|"+name+"|"+sex+"|"+grade+"|"+xibie;}
}
}catch(IOExceptione){
}
try{
Filefile=newFile("");
BufferedReaderst=newBufferedReader(newInputStreamReader(newFileInputStream(file)));
StringBufferbuf=newStringBuffer();
Strings=null;
for(intj=1;(s=())!
=null&&!
(oldStr);j++){
buf=(s);
buf=("\n");
}
while((s=())!
=null){
buf=(s);
buf=("\n");
}
("");
();
PrintWriterpw=newPrintWriter(newFileOutputStream(file));
().toCharArray());
();
();
}
catch(IOExceptione){
();
}
(null,"删除成功","温馨提示",;
(null);
(null);
(null);
(null);
(rb_man);
(rb_woman);
(false);
(false);
}
elseif(ok=={
}
}
修改功能的实现
修改学籍信息和删除功能实现方法类似,只是在修改的具体过程有些差异,修改学籍信息时需要用户输入完整的学籍信息,点击修改按钮,系统弹出对话框提示是否要删除学生学籍信息,点击是(Y)进行修改学籍信息,首先也是对文本文件的读取和信息匹配检测,以学号为标识进行匹配检测。
若学号相同,使用readLine()方法自动查找到该学籍信息在文本文件中所在的行,将该行之前的内容使用append()方法追加到缓冲流buf中,而该行数据则设置为从文本框中获取的内容追加至buf中,该行之后的内容则正常追加至buf中,然后再写入文本文件中,其中也包括对文件读取写入的异常的处理,从而实现了信息的修改。
以下为具体代码:
publicvoideditData(){
if()){
sex=();}
else{
sex=();
}
Stringm="确定要修改该学生的记录吗";
intok=(null,m,"确认",,;
if(ok=={
try{
BufferedReaderin=newBufferedReader(newFileReader(""));
Strings;
while((s=())!
=null)