学籍管理系统大学毕设论文.doc

学籍管理系统大学毕设论文.doc

ID:11667004

大小:319.00 KB

页数:23页

时间:2018-07-13

上传者:zhaojunhui
学籍管理系统大学毕设论文.doc_第1页
学籍管理系统大学毕设论文.doc_第2页
学籍管理系统大学毕设论文.doc_第3页
学籍管理系统大学毕设论文.doc_第4页
学籍管理系统大学毕设论文.doc_第5页
资源描述:

《学籍管理系统大学毕设论文.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

毕业论文设计毕业论文设计:学籍管理系统姓名:***     学号:***系别:***   专业班级:***指导老师:***23 毕业论文设计目 录第一章 前言1第二章 开发语言和开发工具的选择2(一)为什么选择Java作为开发语言?2(二)Java的开发环境2(三)一个Java程序的开发过程2(四)Java开发工具——Eclipse简介3第三章 总体设计4(一)类间的关系4(二)学生基本信息4(三)友好界面实现4(四)Swing组件41 与AWT组件的比较42 提供Swing组件的Swing包5(五)数据结构——散列表5第四章 具体分析6(一)主类StudentManager61 成员变量62 方法63 主类分析7(二)学生对象Student71 成员变量72 方法8(三)录入界面StudentSituation81 录入界面效果图82 成员变量93 方法94 界面设计95 录入界面中的事件处理1023 毕业论文设计6 录入界面代码分析10(四)修改界面ModifySituation111 修改界面效果图112 成员变量123 方法124 修改界面中的事件处理125 修改界面代码分析14(五)查询界面Inquest141 查询界面效果图142 成员变量143 方法144 查询界面中的事件处理155 查询界面代码分析15(六)删除界面Delete151 删除界面效果图152 成员变量163 方法164 删除界面中的事件处理165 删除界面代码分析17第五章 结束语18致谢19参考文献1923 毕业论文设计【摘要】随着计算机技术的迅猛发展,计算机在日常管理中应用迅速得到了普及,利用计算机进行学生学籍信息的管理势在必行。本程序采用很优秀的Java语言而开发出基于文件结构的学籍管理系统。此程序采取比较友好地界面,实现了学籍管理系统的基本功能,可以录入、修改、查询、删除学生基本信息。在论文正文中介绍了Java的特点,并将它与其它语言进行比较,Java开发环境,开发工具,重点的说明了设计前的分析和具体地分析编写的代码,利用表格和图形形象地说明了程序中的成员变量、方法和事件处理过程,并对代码作了很详细地分析。【关键词】Java学籍管理系统 事件处理 界面设计23 毕业论文设计第一章前言学籍管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学籍管理系统应该能够为用户提供充足的信息和快捷的查询手段。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学生信息进行管理,有着手工管理所无法比拟的优点,例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学籍管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。23 毕业论文设计第一章开发语言和开发工具的选择(一)为什么选择Java作为开发语言?Java语言是一种很优秀的语言,是目前使用最为广泛的网络编程语言之一。它具有简单、面向对象、稳定、与平台无关、解释型、多线程、动态等。1.简单Java语言的设计原则之一,即是简单易用。它采用与C++相似的语法,去除C++非对象导向的部分,删除C++中许多少使用、不易理解、或易混淆的地方。2.面向对象基于对象的编程更符合人的思维模式,使人们更容易编写程序。3.与平台无关与平台无关是Java语言最大的优势。Java程序设计师发展出来的位码,可在任何有Java虚拟机器的计算机上执行,不需要经过任何的修改。4.解释型Java不像C++,它不针对特定的CPU芯片进行编译,而是把程序编译为称做字节码的一种“中间代码”。字节码是很接近机器码的文件,可以在提供了Java虚拟机的任何系统上被解释执行。5.多线程Java的特点之一就是内置对多线程的支持。C++没有内置的多线程机制,因此必须调用操作系统的多线程功能来进行多线程程序的设计。6.动态Java程序的基本组成单元就是类。有些类是自己编写的,有一些是从类库中引入的,在类又是运行时动态装载的,这就使得Java可以在分布环境中动态地维护程序及类库,而不像C++那样,每当其类库升级之后,相应的程序都必须重新修改、编译。(二)Java的开发环境编写Java需要一个程序开发环境。目前有许多很好的Java程序开发环境可用,但最好选用Sun公司推出的Java语言开发工具(JDK)。可以登录到Sun公司的网站http://java.sun.com,免费下载JDK,再将它安装到自己的目录下。在安装完后,JDK目录的bin文件夹中含有编译器(javac.exe)、解释器(java.exe)和一些其他的可执行文件。安装结束后需配置环境变量,配好环境变量后才可编写Java程序,并进行编译、运行程序了。(三)一个Java程序的开发过程23 毕业论文设计Java程序的开发过程如图2-1所示:图2-11.编写源文件:可以用来编写Java源文件的工具比较多,常用的有:Notepad记事本、JCreator、UltraEdit、JBuilder、Eclipes。我用的是Eclipse。2.编译Java源程序:使用Java编译器(javac.exe)编译源文件,得到字节码文件。3.运行Java程序:Java程序分为两类——Java应用程序和Java小应用程序,Java应用程序必须通过Java解释器(java.exe)来解释执行其字节码文件;Java小应用程序必须通过支持Java标准的浏览器来解释执行。(一)Java开发工具——Eclipse简介Eclipse是一个开放源代码的、与NetBeans、SunONEStudio和BorlandJbuilder类似的一种基于Java的整合型可扩展开发平台,也是目前最著名的开源项目之一。可以到www.eclipse.org去免费下载Eclipse的最新版本。Eclipse本身是用Java语言编写,但下载的压缩包中并不包含Java运行环境,需要用户自己另行安装JRE,并且要在操作系统的环境变量中指明JRE中bin的路径。23 毕业论文设计第一章总体设计(一)类间的关系本学籍管理系统共有6个java源文件。类之间的主要关系如图4-1所示:StudentManager(主类)StudentSituationInquestDeleteModifySituationStudent图3-1StudentManager.java该java文件的类负责创建学籍管理系统的主窗口。该类含有main方法,程序从该类开始执行。Student.java该文件的类负责创建学籍管理系统的学生信息录入界面。ModifySituation.java该文件的类负责创建学籍管理系统的学生信息修改界面。Inquest.java该文件的类负责创建学籍管理系统的学生信息查询界面。Delete.java该文件的类负责创建学籍管理系统的学生信息删除界面。Student.java负责创建存放学生信息的对象。(二)学生基本信息经过分析,学生基本信息包括学号、姓名、系别、专业、年级、出生年月、性别、籍贯、身份证、联系电话。(三)友好界面实现通过使用窗口来提供友好的界面。可以使用Java中的布局设计,如BorderLayout布局、CardLayout布局、BoxLayout布局,使界面变得更友好、更漂亮。(四)Swing组件1.与AWT组件的比较23 毕业论文设计本学籍管理系统中需要用到标签、文本框、单选按钮、按钮等一些组件,在Java的抽象窗口工具包(AWT:AbstracWindowToolkit)中包含了许多类来支持图形用户界面(GUI:GraphicsUserInterface)设计。但是使用AWT进行GUI设计可能会消耗大量的系统资源,这是因为每建立一个AWT组件,就会产生一个对等的同位体组件。而javax.swing包提供的swing组件,其中大部分组件是轻量组件,没有同位体。所以本程序中用到的都是swing组件。1.提供Swing组件的Swing包javax.swing包提供的swing组件,其中大部分组件是轻量组件,没有同位体。Javax.swing包中有4个最重要的类:JApplet、JFrame、JDialog、JComponent。JComponent类的子类都是轻组件,而JFrame、JApplet、JDialog都是重组件,即有同位体的组件,这样,JFrame、JApplet、JDialog可以和操作系统交互信息,轻组件必须在这些重量容器中绘制自己。(一)数据结构——散列表在本学籍管理系统中会处理学生基本信息,会用到数据结构,在Java中提供了实现数据结构的类,常用的有LinkedList(链表)类、Stack(堆栈)类、TreeSet(树集)类、Hashtable(散列表)类、Vector(向量)类。散列表的特点:它使用相关关键字查找被存储的数据项的一种数据结构,关键字不可以发生逻辑冲突,即不要两个数据项使用相同的关键字。在本学籍管理系统中,应该使用散列表,学号作为关键字,因为学号是唯一的。23 毕业论文设计第一章具体分析(一)主类StudentManager学籍管理系统的主窗口如图4-1所示:图4-11.成员变量变量名称变量类型变量描述基本信息录入StudentSituation基本信息录入界面基本信息修改ModifySituation基本信息修改界面基本信息查询Inquest基本信息查询界面基本信息删除Delete基本信息删除界面barJMenuBar菜单条fileMenuJMenu菜单录入,修改,查询,删除,退出JMenuItem菜单选项conContainer主窗口的内容面板基本信息Hashtable存放基本信息的散列表fileFile存入散列表的文件cardCardLayout面板的布局labelJLabel欢迎语标签pCenterJPanel添加到内容面板的面板表4-12.方法23 毕业论文设计名称功能备注StudentManager创建程序主窗口构造方法actionPerformed处理ActionEvent事件接口方法Main程序开始运行表4-21.主类分析主类继承了JFrame类,而javax.swing包中的JFrame类是java.awt包中Frame类的子类。JFrame类除了父类提供的功能外,还具有许多新的特性:(1)不可以把组件直接添加到swing窗体中(2)Swing窗体含有一个称为内容面板的容器,应当把组件添加到内容面板中(3)不能为swing窗体设置布局,而应当为swing窗体的内容面板设置布局。内容面板的默认布局是BorderLayout布局(4)Swing窗体通过调用getContentPane()方法得到它的内容面板主类中调用con.add(pCenter,BorderLayout.CENTER)将面板添加到内容面板的中间区域,再调用pCenter.add()方法将“label”、“基本信息录入”、“基本信息修改”、“基本信息删除”添加到面板中,而面板的布局为卡片式布局,即同一时刻只能显示一个组件。这样我们就能保证当我们点击菜单选项下的菜单项时,只出现相应的窗口。“基本信息查询”窗口是一个独立窗口,以便于用户进行查询。在主类窗口中添加了菜单条、菜单和菜单项,用setJMenuBar(bar)方法向窗口中添加一个菜单条,用bar.add(fileMenu)方法向菜单条中添加一个菜单,名为“菜单选项”,再用fileMenu.add(MenuItemitem)方法向菜单中添加了五个菜单项,分别为“录入学生基本信息”、“修改学生基本信息”、“查询学生基本信息”、“删除学生基本信息”、“退出”。菜单项可以发生ActionEvent事件,所以在主类中实现了ActionListener接口。(一)学生对象Student该类中实现了Serializable接口,classStudentimplementsjava.io.Serializable,因为当我们使用对象流写入或读入对象时,要保证对象是序列化的。这是为了保证能把对象写入到文件,并能再把对象正确读回到程序中的缘故。所以该类创建的对象就是所谓序列化的对象。Serializable接口中没有方法,因此实现该接口的类不需要实现额外的方法。1.成员变量变量名称变量类型变量描述numberString学号nameString姓名departmentString系别disciplingString专业gradeString年级borthString出生年月23 毕业论文设计sexString性别placeString籍贯idcardString身份证phoneString联系电话表4-31.方法名称功能setNumber设置学号getNumber获取学号setName设置姓名getName获取姓名setDepartment设置系别getDepartment获取系别setDiscipling设置专业getDiscipling获取专业setGrade设置年级getGrade获取年级setBorth设置出生年月getBorth获取出生年月setSex设置性别getSex获取性别setPlace设置籍贯getPlace获取籍贯setIdcard设置身份证getIdcard获取身份证setPhone设置联系电话getPhone获取联系电话表4-4(一)录入界面StudentSituation1.录入界面效果图23 毕业论文设计图4-21.成员变量变量名称变量类型变量描述基本信息表Hashtable存放“学生”对象的散列表学号,姓名……联系电话JTextField输入学生基本信息的文本条学生Student存入学生信息的对象表4-52.方法名称功能备注StudentSituation创建学生信息录入界面构造方法actionPerformed处理ActionEvent事件接口方法表4-63.界面设计在录入界面的效果图中,可以看到10个标签,9个文本框,和两个单选按钮。面板中的布局用到了Java中的BoxLayout布局(盒式布局)。BoxLayout在javax.swing.border包中。盒式布局将组件排列在一行或一列,它有行型盒式布局和列型盒式布局这两种。在此界面布局中,用Box类的createVerticalBox()类方法创建了两个列型盒式布局,用Box类的createHorizontalBox()类方法创建了一个行型盒式布局。将10个标签放在一列,将9个文本框和两个单选按钮放在一列,其中两个单选按钮是一个行型盒式布局,再将这两列排在一行,这样看起来就漂亮一些。查询界面、修改界面和删除界面中的布局也是这样的。23 毕业论文设计1.录入界面中的事件处理点击“录入”后,程序的执行过程如下:录入“必须输入学号”是getText()方法获取学号是否为空否“该生基本信息已存在,请到修改页面修改”是散列表中是否有该学号否学生信息没有存到散列表确认对话框否是学生信息被存到散列表图4-3点击“重置”后,文本框中的内容都为空,将重新录入学生基本信息。2.录入界面代码分析此类继承了JPanel类,实现了ActionListener接口。在构造方法StudentSituation(Filefile)中对声明的对象分配内存,对“录入”和“重置”两个按钮添加了监视器,使用validate()方法将添加到类中的组件能显示出来。在接口方法actionPerformed(ActionEvente)中对“录入”和“重置”发生的事件进行了处理,首先,学号文本框使用getText()方法获取文本框中的内容,当学号不为空时,对象输入流inTwo用readObject()方法来读取散列表对象,从而判断散列表中是否有该学号。程序中的ObjectOutputStream和ObjectInputStream分别指向输出流对象和输入流对象,因此当准备将一个对象写入到文件,或准备从文件中读入一个对象到程序中时,首先用FileOutputStream和FileInputStream创建一个文件输出流和文件输入流。程序中的代码为:FileInputStreaminOne=new23 毕业论文设计FileInputStream(file),ObjectInputStreaminTwo=newObjectInputStream(inOne)。判断是否有该学号的代码如下:If(基本信息表.contaninsKey(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){……}散列表对象调用containsKey(number)方法来判断是否有该学号,如果有,就会出现警告对话框,如果不存在该学号的话,就出现了确认对话框,散列表对象调用put(number,学生)将该学号的学生基本信息添加到散列表中,然后对象输出流outTwo使用writeObject()方法将散列表中的数据读到文本文件中。(一)修改界面ModifySituation1.修改界面效果图图4-423 毕业论文设计1.成员变量变量名称变量类型变量描述基本信息表Hashtable存放“学生”对象的散列表学号,姓名……联系电话JTextField输入学生基本信息的文本条表4-72.方法名称功能备注ModifySituation创建学生信息修改界面构造方法actionPerformed处理ActionEvent事件接口方法表4-83.修改界面中的事件处理输入要修改的学号,按“回车键”或点击“开始修改”后,程序的执行过程如下:23 毕业论文设计开始修改getText()方法获取学号是否为空是“必须输入学号”否散列表中是否有该学号否“该学号不存在”是可以开始修改了修改完后,点击“录入修改”“getText()方法获取学号是否为空是“必须输入学号”否散列表中是否有该学号“没有该学号基本信息。不能修改”否是“该生基本信息已存在,您想修改他(她)的基本信息吗?”确认对话框否该生基本信息没有修改是是修改后信息保存到散列表                         图4-523 毕业论文设计点击“重置”后,文本框中的内容都为空,重新输入需要修改的学号再进行修改。1.修改界面代码分析该类继承了JPanel类,实现了ActionListener接口。在构造方法ModifySituation()中对声明的对象分配了内存,对“开始修改”、“录入修改”和“重置”三个按钮添加了监视器。在接口方法actionPerformed(ActionEvente)中对“开始修改”、“录入修改”和“重置”的事件进行了处理。此类中的事件处理所用的方法和录入界面中类似。事件处理流程如图4-5所示。(一)查询界面Inquest1.查询界面效果图图4-62.成员变量变量名称变量类型变量描述基本信息表Hashtable存放“学生”对象的散列表学号,姓名……联系电话JTextField输入学生基本信息的文本条表4-93.方法名称功能备注23 毕业论文设计Inquest创建查询界面构造方法actionPerformed处理ActionEvent事件接口方法表4-101.查询界面中的事件处理输入要查询的学号,按“回车键”或点击“查询”后,程序的执行过程如下:查询“必须输入学号”是getText()方法获取学号是否为空否散列表中是否有该学号否“该学号不存在”是读取散列表中该学号的信息,并显示出来图4-72.查询界面代码分析该类继承了JDialog类,实现了ActionListener接口。JDialog类创建的对象必须依附一个JFrame对象。在此类中,使用构造方法JDialog(JFramef,Strings,Booleanb)创建了一个无模式对话框。在构造方法中,对声明的对象分配了内存,对“查询”按钮添加了监视器。在接口方法actionPerformed(ActionEvente)中对“查询”进行了事件处理,该类中的事件处理比较简单,所用到的语句和录入界面中相同,事件处理流程如图4-7所示。(一)删除界面Delete1.删除界面效果图23 毕业论文设计图4-8图4-91.成员变量变量名称变量类型变量描述基本信息表Hashtable存放“学生”对象的散列表学号,姓名……联系电话JTextField输入学生基本信息的文本条表4-112.方法名称功能备注Delete创建学生信息删除界面构造方法actionPerformed处理ActionEvent事件接口方法表4-123.删除界面中的事件处理输入要删除的学号,按“回车”或点击“删除”,程序的执行过程如下:23 毕业论文设计删除getText()方法获取学号是否为空“必须输入学号”是否散列表中是否有该学号“该学号不存在”否是确认对话框该学号及该生全部信息没有删除否是该学号及该生全部信息被删除图4-101.删除界面代码分析该类继承了JPanel类,实现了ActionListener接口。该类中的成员变量和方法如表4-11和表4-12所示。在构造方法中,对声明的对象分配了内存,对“删除”按钮添加了监视器。在接口方法中,对“删除”事件进行了处理,处理事件所用的语句和方法和录入界面中一样,事件处理流程如图4-10所示。23 毕业论文设计第一章结束语经过这些天的设计和开发,简单的学籍管理系统基本开发完毕。其功能符合实际需求,能够完成学生基本信息的存储、查询、修改和删除,并利用Java中的界面布局设计使用户界面比较美观、友好。在整个开发设计过程中,深深地体会到Java语言的特点和优势,对Java语言有了更深一层的理解,对日后的再学习和使用有了很大的帮助。但是由于毕业设计时间较短,所以该毕业论文存在一些不足,比如没有进行测试工作,可能存在一些Bug。这些都有待进一步改善。23 毕业论文设计参考文献[1]JAVA课程设计——著者:耿祥义,出版地:北京,出版者:清华大学出版社,出版年:2004,起始页码:1[2]JAVA2实用教程——著者:耿祥义 张跃平,书名版次:第2版,出版地:北京,出版者:清华大学出版社,出版年:2004,起始页码:1[3]Java2程序设计基础——著者:陈国君,出版地:北京,出版者:清华大学出版社,出版年:2006,起始页码:1[4]中文JAVA技术网——http://www.cn-java.com/[5]编程中国-中国最大的编程网站——http://www.bc-cn.net/[6]CSDNJava频道——http://java.csdn.net/致谢在本次毕业设计中,我得到了老师和同学的帮助,在此表示衷心地感谢。首先感谢我的指导老师***老师,感谢她悉心地指导和提出宝贵意见,给了我不少帮助,其次感谢我们寝室的好友:**,**,**,我们一起讨论,研究,提出了好的意见,让我能及时地完成此毕业论文。23

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭