java课程设计-学籍管理系统.doc

上传人:good****022 文档编号:116398555 上传时间:2022-07-05 格式:DOC 页数:24 大小:551.03KB
返回 下载 相关 举报
java课程设计-学籍管理系统.doc_第1页
第1页 / 共24页
java课程设计-学籍管理系统.doc_第2页
第2页 / 共24页
java课程设计-学籍管理系统.doc_第3页
第3页 / 共24页
点击查看更多>>
资源描述
课程设计报告课程设计(论文)任务书 学院 专业 班一、课程设计(论文)题目 学籍管理系统 二、课程设计(论文)工作自 2010 年 12 月 20 日起至 2010 年 12 月 24 日止。三、课程设计(论文) 地点: 软 件 学 院 实 训 中 心 四、课程设计(论文)内容要求:1本课程设计的目的(1)掌握Java语言的程序设计方法; (2)理论联系实际,进一步提高学生的软件开发技术;(3)培养学生分析、解决问题的能力;(4)提高学生实践论文撰写能力。2课程设计的任务及要求1)课程设计任务:设计基于数据库的学籍管理系统设计要求:(1)录入学生基本信息的功能;(2)删除学生基本信息的功能;(3)查询学生基本信息的功能;(4)删除学生基本信息的功能。2)创新要求:(1)增加查询全部学生信息的功能;(2)增加提示信息窗口的功能。3)课程设计论文编写要求(1)课程设计任务及要求(2)设计思路-工作原理、功能规划(3)详细设计-数据分析、算法思路、类设计、功能实现(含程序流程图、主要代码及注释)、界面等。(4)运行调试与分析讨论-给出运行屏幕截图,分析运行结果,有何改进想法等。(5)设计体会与小结-设计遇到的问题及解决办法,通过设计学到了哪些新知识,巩固了哪些知识,有哪些提高。(6)参考文献(必须按标准格式列出,可参考教材后面的参考文献格式)(7)报告按规定排版打印,要求装订平整,否则要求返工;(8)课设报告的装订顺序如下:封面-任务书-中文摘要-目录-正文-附录(代码及相关图片)(9)严禁抄袭,如有发现,按不及格处理。4)课程设计评分标准: (1)学习态度:10分;(2)系统设计:20分;(3)编程调试:20分;(4)回答问题:20分;(5)论文撰写:30分。5)参考文献:(1)丁振凡. Java语言实用教程(第2版)M. 北京邮电大学出版社. 2008.1 (2)丁振凡. Java语言实用教程实验指导(第2版)M. 北京邮电大学出版社. 2008.1(3)杨树林等. Java语言最新实用案例教程(第2版)M. 清华大学出版社. 2010.76)课程设计进度安排1准备阶段(4学时):选择设计题目、了解设计目的要求、查阅相关资料2程序模块设计分析阶段(4学时):程序总体设计、详细设计3代码编写调试阶段(8学时):程序模块代码编写、调试、测试4撰写论文阶段(4学时):总结课程设计任务和设计内容,撰写课程设计论文学生签名: 2010 年 12 月 20 日课程设计(论文)评审意见(1)学习态度(10分):优()、良()、中()、一般()、差(); (2)系统设计(20分):优( )、良()、中()、一般()、差(); (3)编程调试(20分):优()、良()、中()、一般()、差();(4)回答问题(20分):优()、良()、中()、一般()、差();(5)论文撰写(30分):优()、良()、中()、一般()、差(); 评阅人: 职称: 讲师 2010 年 12 月 25 日摘 要随着我国教育体制改革的深入进行,教育系统得到了前所未有的发展。学生管理正在逐步迈向管理信息现代化。但是我国的学生管理信息化水平还处在初级阶段,主要表现在对学生的交费管理、学生的档案管理还是采用原有的人工管理方式。学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。由于大学生类别和专业的设置的多样化,大学生的学籍管理历来是非常繁琐和复杂的的工作。面对庞大的信息量, 这时的人工管理几乎无法实现,在这种情况下用数据库进行管理变的尤为必要,这可以发挥计算机的优势,就需要有学生信息管理系统来提高学生管理工作的效率.通过这样的系统,可以做到信息的规范管理,科学统计和快速的查询,从而减少管理方面的工作量和减少人为的错误。本学生学籍管理系统的开发与运行环境如下:开发环境:Windows XP数据库管理系统:Access 2007运行环境:Windows XP目录一课程设计任务及要求11.课设题目12.设计任务13.设计要求14.扩展功能1二需求分析21.功能需求分析2三设计思路41.工作原理42.功能规划4四详细设计51.系统设计52.数据库设计63.界面设计74.系统实现8五运行调试与分析讨论131.运行调试132.分析讨论17六设计体会与小结19七参考文献20一课程设计任务及要求1. 课设题目课设题目:学籍管理系统2. 设计任务完成设计基于数据库的学籍管理系统,通过JAVA图形界面的设计,使用户可以加入学生的基本信息,并可对加入的信息进行修改、查询和删除,设计GUI界面使操作更加方便、清晰、条理化、自动化。在上机实践的同时,去培养自己的实际分析问题、编程和动手能力,提高自己的综合素质。激发自己的学习兴趣,正确理解和接受需要重点掌握的知识点,使自己更加进一步了解JAVA的各个方面的知识。3. 设计要求 主窗体的设计(学籍管理系统窗体) 录入学生基本信息的(录入学生信息窗体) 修改学生基本信息的功能(修改学生信息窗体) 查询学生基本信息的功能(按学号查询学生信息窗体) 删除学生基本信息的功能(删除学生信息窗体) 菜单设计 事件响应的处理 Access数据库的连接,创建数据表,在表中插入信息,并对其修改,查询以及删除表中信息的具体实现4. 扩展功能在主窗体中的菜单选项中,增加一个退出的菜单子项,使退出窗体更加地人性化、方便快捷。在查询窗体中增加查询全部学生信息按钮,当按下时,显示出一个包含所有学生学生基本信息的窗体。当按下录入、修改、查询、删除等按钮时,显示出来一个提示信息窗口,询问用户是否继续进行操作等。 二需求分析1. 功能需求分析本系统是设计基于数据库的学生信息管理,系统进行数据库设计首先必须准确了解也分析用户需求(包括数据和处理)。目的是为学籍管理数据库系统的设计打下牢牢的基础,是数据库开发的重要文件依据,主要为数据库设计人员使用,是用户和系统分析员的项目依据文件。系统分析的主要任务是从用户角度出发,用户是指系统管理员。而系统的主要功能是:建立一个主窗体,带有录入、修改、查询、删除学生信息的功能,并成功的连接数据库,将录入的信息保存在所建的表中,通过所建表的访问,对其内容进行修改,查询,删除。主要的功能描述如下:1) 学籍管理系统窗体 建立一个“菜单选项”的菜单项,通过对其菜单子项的访问,分别进入录入学生信息、修改学生信息、查询学生信息、删除学生信息窗口体。 对菜单子项“退出”进行注册监听,使其实现关闭窗口的功能。 在窗体上添加一个名叫“欢迎使用学生信息管理系统的标签,使其显示在正中间,并把窗体的背景色设为浅灰色,前景色设为红色。2) 录入学生信息窗体 在窗体的面板中设置学号、姓名、性别、专业、年级、出生标签以及其相对应的输入文本框。 在面板中添加录入、重置按钮。按下录入按钮时,能够把输入的信息添加到数据表中;按下重置按钮时,将文本框中的信息全部清空,回到初使状态。3) 修改学生信息窗体 在窗体的面板中设置输入要修改信息的学号、(新)姓名、(新)性别、(新)专业、(新)年级、(新)出生标签以及其相对应的输入文本框。 在面板中添加修改、录入修改、重置按钮。当提交的学号存在时,按下修改按钮,录入修改变成可执行状态;按下录入修改按钮时,能够把输入的信息添加到数据表中;按下重置按钮时,将文本框中的信息全部清空,回到初使状态。4) 查询学生信息窗体 在窗体的面板中设置请输入要查询的学号、姓名、性别、专业、年级、出生标签以及其相对应的输入文本框。 在面板中添加查询、查询全部学生信息按钮。当提交的学号存在时,按下查询按钮,在各个文本框中将显示该学号相应的信息;当按下查询全部学生信息按钮时,在另一个新建窗口中将显示数据表中所有学生的信息。5) 删除学生信息窗体 在窗体的面板中设置输入要删除的学号、姓名、性别、专业、年级、出生标签以及其相对应的输入文本框。 在面板中添加删除按钮。当提交的学号存在时,按下删除按钮,将删除数据表中该学号学生的相关信息。6) 数据库的相关操作 编写的程序能够成功的与Access数据库相连。 分析各窗体中标签的具体位置,合理的建立一个新的数据表。 能够对数据表进行插入、修改、查询、删除等操作。 三设计思路1. 工作原理通过对GUI界面的设计,菜单子项、按钮的注册与监听,文本框(获取数据getText()、输入数据setText()、设置是否可编辑setEnabled()),单选按钮(获取按钮的标识getState()、设置按钮的状态setState()),数据库的连接,数据表的建立以及其相关操作(插入信息、修改信息、查询信息、删除信息)等原理,使学籍管理系统能够具体的实现其各种功能。2. 功能规划 将所编的程序连接到Access数据库,并创建student数据表,可以对该表进行插入、修改、查询、删除操作。 学籍管理系统窗体当作用户刚运行程序时的界面,用户通过窗体可以访问到录入、修改、删除学生信息窗体。 用户能够在录入学生信息窗体中录入学生信息,并保存在所建的student表中,当按下录入按钮时,设置一个对话框询问用户是否继续操作。 用户能够在修改学生信息窗体中修改学生信息,并将新输入的内容替代student表中的内容。当按下修改按钮时,若输入的学号不存在时,弹出一个对话框提示用户该学号学生不存在,并询问用户是否继续操作;当所输入的学号存在时,将录入修改按钮设为可用状态;按下录入修改按钮时,提示用户学生信息修改成功,并弹出一个对话框询问用户是否继续操作。 用户能够在查询学生信息窗体中查询自己所需要的信息。当按下查询按钮时,若输入的学号不存在时,弹出一个对话框提示用户该学号学生不存在,并询问用户是否继续操作,如果存在时,将在本文框中显示出该学号学生的信息;当按下查询全部学生信息按钮时,弹出一个窗体显示student表中所有学生的信息。 用户能够在删除学生信息窗体中删除学生信息。当按下删除按钮时,若输入的学号不存在时,弹出一个对话框提示用户该学号学生不存在,并询问用户是否继续操作,如果存在时,将在删除该学号学生的信息,并显示在本文框中,同时询问用户是否继续操作。四详细设计1. 系统设计1) 系统体系结构设计一般要确定系统的体系结构,主要模块,系统运行环境(如操作系统、数据库),开发平台及语言。本系统主要运行在windows系列平台上,数据库使用Access,使用eclipse开发系统。系统体系结构如下图4-1所示:图形界面( AWT)数据访问( JDBC )数据库( ACCESS)客户端服务端图4-1 系统体系结构图图形界面层(采用java的AWT设计)负责与用户交互,数据访问层主要根据业务逻辑层的请求通过JDBC/SQL存取数据库。数据库使用ACCESS,可根据情况使用其他数据库(如SQL Server),客户端基本不做修改,仅有的少量修改也只在数据访问层。客户端与服务端在物理上可以运行在一台机器上,也可以分别运行在不同机器上。2) 系统功能模块、主要类以及其相关方法系统功能模块如下图4-2所示:学籍管理系统录入学生信息修改学生信息查询学生信息退出删除学生信息录入重置修改录入修改重置查询查询全部信息删除图4-2 系统功能模块图主要类以及其相关方法:表4-1主要类以及其相关方法表MyFramePanel faceplate(Panel f) 定义面板void keyin(String s) 录入信息void modify(String s) 修改信息void all_inquiry(String s) 查询全部学生信息void inquiry(String s) 按学号查询学生信息void delete(String s) 删除信息void windowClosing(WindowEvent e) 关闭窗口void Inprompt(String s) 录入提示窗口void ask(String s) 所找学号不存在时的提示窗口void Nuprompt(String s) 所找学号存在时的提示窗口 void actionPerformed(ActionEvent e) 对按钮监听的具体实现 2. 数据库设计数据库设计主要是根据分析和概要设计中发现的对象和类,确定哪些对象需要持久保存,然后将对象属性及对象间关系转化成关系表。通过对题目要求的分析,将学号、姓名、性别、专业、年级、出生的信息保存在数据表student表中,表的具体格式如下:表4-2 student表的具体格式表名称学号姓名性别专业年级生日数据类型STRINGSTRINGSTRINGSTRINGSTRINGSTRING以下是数据student表创建的主要代码:String url=jdbc:odbc:mystudent;String sql=create table student+(学号 STRING,+姓名 STRING,+性别 STRING,+专业 STRING,+年级 STRING,+生日 STRING);3. 界面设计 界面设计主要是根据功能要求构建界面,界面中的每个元素均应有其作用,以支持功能的实现,界面设计还要考虑到界面风格的一致、符合一般window应用GUI的规范。设计应简洁实用,避免在细节上(如字体、颜色)耗费时间。 图4-3 学籍管理系统窗体图 图4-4录入学生信息窗体图 图4-5 修改学生信息窗体图 图4-6 查询学生信息窗体图 图4-7 删除学生信息窗体图4. 系统实现1) 数据库访问:对数据库的基本操作是:增、删、改、查,数据库连接的建立、关闭,对student表的插入、修改、查询、删除数据,其中的难点是访问数据库的异常处理和参数化SQL,现举例如下: 、获取数据库连接与关闭的代码:String url=jdbc:odbc:mystudent; /mystudent为数据源名称tryClass.forName(sun.jdbc.odbc.JdbcOdbcDriver); /加载驱动类型catch (java.lang.ClassNotFoundException e)System.err.println(e.getMessage();tryConnection con=DriverManager.getConnection(url,null);System.out.println(Connection succeed!);con.close();catch (SQLException ex)System.out.println(Message:+ex.getMessage();该代码针对JdbcOdbcDriver驱动,ODBC源名为mystudent,没有进行口令验证。、插入代码从录入学生信息的窗体中输入信息,获得文本框中的数据,保存在student表中。nu=number.getText(); /获取学号na=name.getText(); /获取姓名sex=; /定义性别sp=speciality.getText(); /获取专业gr=grade.getText(); /获取年级bi=birthday.getText(); /获取生日if(cg1.getState() sex=男;if(cg2.getState() sex=女;String url=jdbc:odbc:mystudent;tryConnection con=DriverManager.getConnection(url,null);Statement stmt=con.createStatement();String sql=INSERT INTO student(学号,姓名,性别,专业,年级,生日) VALUES(+nu+,+na+,+sex+,+sp+,+gr+,+bi+);stmt.executeUpdate(sql);Inprompt(提示信息);System.out.println(学生信息录入成功);stmt.close();con.close();catch (SQLException ex) System.out.println(ex.getMessage();、修改代码先判断输入的学生学号student是否存在,若存在继续操作,不存在时弹出提示信息窗口。String num=number.getText();String url=jdbc:odbc:mystudent;tryConnection con=DriverManager.getConnection(url,null);Statement stmt=con.createStatement();String sql=SELECT *FROM student where 学号=+num+;ResultSet rs=stmt.executeQuery(sql);int count=0;while(rs.next() nu=rs.getString(学号);na=rs.getString(姓名); sex=rs.getString(性别);sp=rs.getString(专业); gr=rs.getString(年级); bi=rs.getString(生日); +count; if(count=0) ask(提示信息);System.out.println(该学生不存在);elsebu4.setEnabled(true);stmt.close();con.close();catch (SQLException ex)System.out.println(ex.getMessage();2) 主窗体的设计通过构造函数创建一个窗体,在其创建一个空菜单条m,并创建菜单项(菜单选项)加到m中,在菜单项上添加菜单子项(录入学生信息、修改学生信息、查询学生信息、删除学生信息、退出)并对它们注册给动作事件接口。MyFrame(String s)super(s);MenuBar m=new MenuBar(); /菜单栏对象Menu fi=new Menu(菜单选项); /菜单对象 MenuItem file=new MenuItem(录入学生基本信息,new MenuShortcut(KeyEvent.VK_A), /快捷键为 ctrl+Anew MenuItem(修改学生基本信息,new MenuShortcut(KeyEvent.VK_S), /快捷键为 ctrl+Snew MenuItem(查询学生基本信息,new MenuShortcut(KeyEvent.VK_D), /快捷键为 ctrl+Dnew MenuItem(删除学生基本信息,new MenuShortcut(KeyEvent.VK_F), /快捷键为 ctrl+Fnew MenuItem(退出);setMenuBar(m); m.add(fi);for(int i=0;ifile.length;i+)fi.add(filei);file0.addActionListener(this);file1.addActionListener(this);file2.addActionListener(this);file3.addActionListener(this);file4.addActionListener(this); setSize(500,500); setVisible(true);addWindowListener(new closeWin();3) 主要面板的设计通过对各个窗体的分析,发现其姓名、性别、专业、年级、出生在窗体中的分布都有共同之处,因此可以定义一个面板将这些内容规划好,在定义录入、修改、查询、删除等方法时可以直接调用该面板,可以节省许多代码与运行的速度。public Panel faceplate(Panel f) /定义面板f.setSize(500,500);f.setVisible(true);f.setLayout(null);f.setBackground(Color.lightGray);la2.setLocation(70,120);la2.setSize(50,30);f.add(la2);name.setLocation(130,120);name.setSize(280,30);f.add(name);la3.setLocation(130,160);la3.setSize(50,30);f.add(la3);cg2.setLocation(240,160);cg2.setSize(40,30);f.add(cg2);la5.setLocation(70,200);la5.setSize(50,30);f.add(la5);speciality.setLocation(130,200);speciality.setSize(280,30);f.add(speciality);la4.setLocation(70,240);la4.setSize(50,30);f.add(la4);grade.setLocation(130,240);grade.setSize(280,30);f.add(grade);la6.setLocation(70,280);la6.setSize(50,30);f.add(la6);birthday.setLocation(130,280);birthday.setSize(280,30);f.add(birthday);return f;调用该面板的方法如下:st=new MyFrame(s);f=new Panel();st.add(faceplate(f);五运行调试与分析讨论1. 运行调试首先通过createstudent.java创建一个新的空数据表student图5-1 student表创建成功提示信息图打开主程序Student.java进行学生信息的录入、修改、查询、删除。当按下录入学生基本信息菜单子项时,弹出如图5-2所示界面(已输入数据):图5-2 录入学生信息图若点下Button是时,将关闭提示信息窗口,并将文本框中的信息清空;若下Button退出时,将关闭提示信息窗口和录入学生信息窗口,并将文本框中的信息清空(防止进入其他窗口时,文本框中的数据不为空)。为使结果更加清晰化,减少截图所占的页面,还分别录入了以下学生的信息,如下表5-1所示:表5-1 已录入的学生信息表学号姓名性别专业年级生日2刘柳男软件工程20081990/3/243何璐女软件工程+电商20101991/2/64李云男软件工程+信息20091990/8/10学生信息显示在student表中如下图5-3所示:图5-3 student表的已有信息图当按下修改学生基本信息菜单子项时,弹出如下图5-4所示界面(已经输入数据):图5-4 修改学生信息图已修改的学生信息如下图5-5所示(将学号3的年级信息由2010改为2009):图5-5 student表中的信息图当按下查询学生基本信息菜单子项时,弹出如下图5-6所示界面(已经输入数据):图5-6 查询学生信息图当按下查询按钮时,若存在该学号学生,就出现如上所示界面,若不丰硕该学号学生时,则出现如下图5-7所示界面:图5-7 查询的学生信息不存在图若按下查询全部学生信息按钮时,则出现如下图5-8所示界面:图5-8 查询学生信息图当按下删除学生基本信息菜单子项时,弹出如下图5-8所示界面(已经输入数据):图5-9 删除学生信息图操作成功后,student表中的数据如下图5-9所示:图5-10 student表中已有信息图2. 分析讨论由运行调试中的结果可以看出,该程序在按下录入、修改、录入修改、查询、删除按钮时,都有人性化的弹出一个窗体,询问用户是否继续操作,或提示用户您所找的信息不存在等,在这点上,还是有很大的创新。并且以类似表格的形式将student表中的所有信息,将学生信息展现的更加具体,清晰。当然,如果具体操作可以发现,其中也有许多值得改进的地方。1) 在用户运行程序时,用户不需要验证帐号与密码就可以进去,这时信息的安全性不够高,因此可以在用户刚进入系统时,弹出一个窗体要求用户验证帐号信息以及其密码。2) 在查询学生信息时,可以增加几个内容的查询,如姓名、专业、年级等,这样可以使用户在不熟悉学生信息的情况下,更方便找出学生的信息。3) 在查询全部学生时,也可以不弄类似于表格的形式,而是在窗体上按照输入的顺序,直接显示在窗体上,并通过添加首页、上一页、下一页、尾页按钮,来实现往查询上一个学生信息或下一个学生信息的功能。4) 也可以通过SWING来编写系统,可以在进入页面时适当的加一些动画,也可以在按钮旁边加一点图案。这样就可以使系统更加活泼、生动。5) 本系统只记录了学生的基本信息,而学生的成绩还是没有考虑到的。可以在菜单栏上新建学生成绩菜单项,通过调用窗体,实现对学生平时成绩的录入、修改、查询等工作,也可以对学生的成绩进行排序并同时求出他们的平时成绩。六设计体会与小结对于这个课设,我算是花了相当大的精力在它上面,从窗体的设计,面板的排版,按钮的注册监听再到数据库的连接与表的具体实现,都尽量把它弄的尽善尽美。通过对这个系统的研究,对JAVA书上的知识又认认真真的看了一遍,并且仔细研究书上258页一个网络考试系统的设计,看看它是怎样连接数据库,以及其各种方法的使用,同时在图书馆借了本相关的书籍。然后自己在慢慢的将学籍管理系统的内容写出来,从中对JAVA的使用和它强大的作用有了一个更深刻的认识,尽管这个系统实现的功能也不是很多,但它让我综合运用了这个学期所学的很多知识,尤其是GUI界面的设计,在此基础在自己的JAVA基础知识得到了很好的巩固,并提高了自己编程的动手能力。刚开始也尝试怎样通过翻页的形式来实现查询全部学生的信息,在编写代码的过程中,对于数据库游标的具体实现还没有撑握的很好。因此,在编写的过程中,遇到了重重困难却依旧没有实现功能,才采用调用窗体的方式来实现全部学生信息的查看。今后在学习数据库的过程中,应该认真学习它,这样以后就可以把这个程序改的更加完美。对于按钮注册兼听这块,发现其是可以重复注册监听,意思就是两个不同的按钮注册的内容可以相同。这点JAVA实现的还是不错的,它可以使我们在编程的时候省掉了很多代码,减少了时间的浪费以及空间的占用。这次课设虽然已经结束了,但并不代码自己以后就慢慢地淡忘掉,而是应该通过后面学到的知识,将这个系统改的更加完美,功能更加齐全。求知的道路仍在继续,自己唯有不停地探索研究,才能使自己获得的知识,更广,更全面。第 19 页 七参考文献1:丁振凡.JAVA语言实用教程(第2版).北京:北京邮电大学出版社,2008.12: 施霞萍.JAVA程序设计教程(第2版).北京:机械工业出版社,2006.9第 20 页
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 其他分类 > 文学论文


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!