ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:257.48KB ,
资源ID:26838465      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26838465.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于java的学生选课系统本科毕业设计论文.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于java的学生选课系统本科毕业设计论文.docx

1、基于java的学生选课系统本科毕业设计论文 成绩: 课程设计(Java程序设计) 题 目 基于Java的学生选课系统 学 院 计算机与软件学院 专 业 计算机科学与技术 学号、姓名 指 导 教 师 二一四 年 十二月十八日基于Java的学生选课系统摘要:课程管理系统是一个学校中不可缺少的部分。课程管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式对课程进行查询、更新、选课等,这种管理方式存在着许多缺点,如:效率低、执行速度慢。另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能

2、已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对选课信息进行管理,具有手工管理无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、成本低、效率高等。这些优点能够极大地提高学生选课系统的效率,也是企业、学校的科学化、正规化管理和与世界接轨的重要条件。因此,开发这样一套管理系统已成为有必要的事情。JAVA是一门很优秀的编程语言,具有面向对象、与平台无关、安全、稳定和多线程等特点,是目前软件设计中极为健壮的编程语言。本文中介绍了用JAVA语言实现课程管理系统的全部过程。关键词:课程管理,Java,Eclipse,SQL,JDBC 第

3、一章 前 言1.1选题背景及意义随着计算机技术和网络通讯技术的飞速发展,现在国内有很多大学的选课方式由传统的选择方式转变成了网上选课,学生可以在网上选择规定范围内的课程,并且可以在网上查询成绩。无需自己去老师那一门一门查,了解自己已得多少学分还需多少学分,既节省了学生的时间,又便于学校的管理。网上选课系统为同学提供了一个自由选择的平台,学生可以选修规定范围内的课程,查看已修学分总数,还可以修改个人信息。本系统也为教师提供了很大的方便,教师可以根据统计的人数挑选一定数量的学生,也可以直接在网上公布成绩,让学生直接在网上查询成绩。本系统方便了学生的选课,同时便于管理,减少大量的人力资源。并且促进了

4、学生的积极性,近而开发了网上选课系统。1.2学生选课系统的发展和研究现状进入21世纪以来,国内各高校都在积极推动教育体制的改革,为培养更为优秀的新世纪复合型人才做出努力。然而在80年代以前,计算机还没有在国内普及各高校学生选课都是手工完成,不仅教师的工作量大,而且学生查询和检索时也很麻烦。80年代后期,少数高校开始实行学年学分制,学生有了一定程度的选课自由。学生在学校只需要修满学分就可以毕业,并且可以根据自己的喜好选择科目。并且随着PC机的普及,有些高校已经开始应用电脑进行日常管理工作。这时,学生选课系统诞生了。但是,这些系统大多是基于DOS或者WINDOWS的单机版本,不仅界面不友好,而且功

5、能薄弱。各科系之间的数据交流只能借助软盘为中介,费时费力。随着高校的规模扩大,教育体制改革的深化,这类系统已经不能适应管理上的要求。90年代后期以来,各高校纷纷建立自己的高速校园网:在技术上,客户机/服务器体系结构已经非常成熟,同时浏览器/服务器体系结构正在兴起,这些都为创建大型的学生选课系统创造了条件,满足了数据集中存放,管理运作分布执行的需求。中心数据库存放学生选课系统的相关数据,管理人员通过网络访问数据库进行业务管理;学生和任课教师可以通过浏览器查询相关数据。目前国内各高校均有自己的选课系统。1.3各章内容简介 本论文在第一章介绍了学生选课系统的研究意义以及研究现状,突出本系统研究的必要

6、性;第二章介绍Java语言和它的开发工具,以说明选择Java的好处;第三章进行学生选课系统的需求分析,以使系统的模块更加清楚;第四章介绍本系统各模块的功能以及它们的结构图,还有具体程序和注释以及运行结果截图;第五章是介绍了程序测试的目的、意义、原则、流程,以使每一步程序的功能清晰地跃然纸上;第六章对学生选课系统进行了总结以及对前景作了展望,使系统更加完美。 第二章 Java语言以及开发工具 有了系统制作的必要性接下来是选择开发语言和工具,由于选择的Java制作,座椅本章节将对Java进行介绍以说明选择它进行学生选课系统开发的理由,并介绍几种Java的开发工具。2.1 Java背景知识介绍2.1

7、.1 Java的起源 1991年四月份,Sun的绿色计划开始着手于发展消费性电子产品,所使用的语言是C、C+、及Oak(为Java语言的前身),后因语言本身和市场的问题,使得消费性电子产品的发展无法达到当初预期的目标,再加上网络的兴起,绿色计划也因此而改变发展的方向,这已是1994年了。而这一次的改变,就是Java诞生的契机。而Java这个名字不是由几个单词的首字所组成,而是从许多程序设计师钟爱的热腾腾、香浓咖啡中产生灵感的。2.1.2 Java的特点Sun是要Java成为一个简单(Simple)、面向对象对象的(Object Oriented)、分布式的(Distributed)、解释的(I

8、nterpreted)、健壮的(Robust)、安全的(Secure)、结构中立的(Architecture Neutral)、可移植的(Portable)、高效能的(High Performance)、多线程的(Multithreaded)、动态的(Dynamic)的程序语言。面向对象的思想是Java语言的重要指导思想,最主要的重点是即将要用Java编写的程序,其次才是所需要的工具;最近的即插即用(Plug and Play)亦是面向对象设计的重点。Java与C/C+最大不同点是Java有一个指针模型(Pointer Model)来排除内存被覆盖(Overwriting Memory)和毁损

9、数据(Corrupting Data)的可能性。总的来说Java有以下特点:结构中立的(Architecture Neutral):一般而言,网络是由很多不同机型的机器所组合而成的,CPU和作业系统体系结构均有所不同;因此,如火如荼使一个应用程序可以在每一种机器上执行,是一个难题。所幸,Java的编译器产生一种结构中立的目标文件格式(Object File Format);这使得编译码得以在很多种处理器中执行。可移植的(Portable):原始资料形式的大小是被指定的,例如“float”一直是表示一个32位元IEEE754浮点运算数字,因绝大多数的CPU都具有此共同特征。程序库属于系统的一部分

10、,它定义了一些可移植的程序接口,Java本身具备有很好的可移植性。解释的(Interpreted):Java解释器能直接地在任何机器上执行Java位元码(Bytecodes),因此在进行程序连结时,时间的节省,这对于缩短程序的开发过程,有极大的帮助。高效能的(High Performance):Java位元码迅速地能被转换成机器码(Machine Code),从位元码转换到机器码的效能几乎与C于与C+没有分别。多线程的(Multi threaded):Java语言具有多线程的功能,这对于交互回应能力及即时执行行为是有帮助的。动态的(Dynamic):Java比C或C+语言更具有动态性,更能适应

11、时刻在变的环境,Java不会因程序库的更新,而必须重新编译程序。正如上文所述,Java是一种成熟的语言又有其他语言所不具有的特点,所以本系统采用Java编程实现。2.2 Java的开发工具 现在常用的Java项目开发环境有:JBuilder、VisualAge for Java、Forte for Java、Visual Cafe、Eclipse、NetBeans IDE、JCreator+J2SDK、jdk+记事本、EditPlus+J2SDK等等。一般开发J2EE项目时都需要安装各公司的应用服务器(中间件)和相应的开发工具,在使用这些开发工具之前,我们最好能熟知这些软件的优点和缺点,以便根

12、据实际情况选择应用。编程工具只是工具,为了方便人们工作而开发的,各有特点,本次学生选课系统我们选择了Ecilpse,下面对其进行介绍。EClipse是一种可扩展的开放源代码IDE。年月,公司捐出价值4000万美元的源代码组建了EClipse联盟,并由该联盟负责这种工具的后续开发。集成开发环境(IDE)经常将其应用范围限定在“开发构建和调试”的周期之中。为了帮助集成开发环境(IDE)克服目前的局限性,业界厂商合作创建了EClipse平台。EClipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了项目工作流程,使开发者可以专注在实际的嵌入式目标上。ECli

13、pse框架的这种灵活性来源于其扩展点。它们是在中定义的一直接口,并充当插件的耦合点。扩展点的范围包括从用在常规表述过滤器中的简单字符串,到一个Java类的描述。任何EClipse插件定义的扩展点都能够被其他插件使用,反之,任何EClipse插件也可以遵从其他插件定义的扩展点。除了解由扩展点定义的接口外,插件不知道它们通过扩展点提供的服务将如火如和被使用。利用EClipse,可以将高级设计(也许是采用UML)与低级开发工具(如应用调试器等)结合在一起。如果这些互相补充的独立工具采用EClipse扩展点彼此连接,那么当我们用调试器逐一检查应用时,UML对话框可以突出显示我们正在关注的器件。事实上,

14、由于EClipse并不了解开发语言,所以无论Java语言调试器、还是汇编调试器都是有效的,并可以在相同的框架内同时瞄准不同的进程或节点。EClipse的最大特点是它能接受由Java开发者自己编写的开放源代码插件,这类似于微软公司的Visual Studio和Sun微系统公司的NetBeans平台。EClipse为工具开发商提供了更好的灵活性,使他们能更好地控制自己的软件技术。这是一款非常受欢迎的Java开发工具,这国内的用户越来越多,实际上使用它Java开发人员是最多的。缺点就是较复杂,对初学者来说,理解起来比较困难。 第三章 学生选课系统的需求分析 在选择了开发工具后将对系统进行需求分析,以

15、确保程序的结构清晰明朗,所以本章节将对学生选课系统的功能和结构进行分析,以及数据库的构建进行简单说明。3.1学生选课系统功能分析选课系统的核心是选课功能。学生在选课以前,必须通过系统的身份验证后,然后就可以选定自己的选修课程。当然,学生也能删除选错或者误选的课程。另外,选课系统还提供了课程查看功能。3.2 学生选课系统总体设计 图3-1 学生选课系统总体设计图 3.3学生选课系统数据库需求分析 通过对学生选课系统工作内容和相关数据流程分析,根据学生选课系统的需要,以及系统功能设计的要求以及功能模块的划分,就可以设计出满足用户需求的各种实体。该系统由登陆模块、学生模块两部分组成,其功能如下。3.

16、3.1 用户登陆 登陆模块包括用户名、密码的输入框,当用户名或密码输入错误时系统会报错。3.3.2 学生登陆 学生登陆后就可依次输入所要选的课程的课程ID、课程名、学时、学分、学期、性质,提交便可选课成功,但是如果选课人数已满,那么选课便不会成功,成功的页面会提示还剩多少人可选这门课程。3.3.3 数据库的构建 对于学生选课系统数据库,可以列出以下数据项和数据结构: 学生信息:学号、姓名 课程信息:课程ID、课程名、学时、学分、学期、性质第四章 学生选课系统的实现 在系统的功能和结构分析完后,程序可以进行编写,本章节将对程序进行介绍,然后介绍了系统的运行环境,最后展示了程序完成后的界面截图。4

17、.1 学生选课系统程序及注释public class StudentChooseCourse extends JFrame implements ActionListener JTextField jtfSearch = new JTextField(11);String columnNames = new String 课程ID, 课程名, 学时, 学分, 学期, 性质 ;DefaultTableModel dtmSearch = new DefaultTableModel(columnNames, 27);JTable jtSearch = new JTable(dtmSearch);JS

18、crollPane jspSearch = new JScrollPane(jtSearch);JComboBox jcbSearch = new JComboBox();JTextField jtfSelectedCourse = new JTextField(10);Connection con = null;PreparedStatement ps = null;ResultSet rs = null;private static String usrName;private static String passwrd;/在构造方法中添加两个参数。以便在提交时,将学生的身份连同所选的课程

19、,一同记录在学生选课表中。public StudentChooseCourse(String usrName, String passwrd) createSearchCourse();this.usrName = usrName;this.passwrd = passwrd;public String getUsrName() return usrName;public void setUsrName(String usrName) this.usrName = usrName;public String getPasswrd() return passwrd;public void set

20、Passwrd(String passwrd) this.passwrd = passwrd;/根据用户的时间,做出相应的反映public void actionPerformed(ActionEvent e) String str = e.getActionCommand();/清空结果显示区中的内容,如果有的话。if (查询.trim().equals(str) int k = 1;while (k 10) for (int i = 1; i 7; i+) jtSearch.setValueAt(null, k - 1, i - 1);k+;/调用下面的这个方法,在数据库中进行查找,并将结

21、果显示在表格中。searchAvailableCourse(); else if (提交.equals(str) /processBeforeCommit()对用户选课操作进行有效性检验;/剔除无效操作:如输入无效的课程号,或已经选择了某一课程,已经选满的6学分等各种情况boolean effect=processBeforeCommit(); /如果课程存在,且该学生具有选择该课程的资格,即effect为true,进入正式提交程序(tryCommit()if(effect=true)tryCommit();/对用户选课操作进行有效性检验;public boolean processBefor

22、eCommit()/清空原结果显示区中的内容,如果有的话。int k = 1;while (k 10) for (int i = 1; i 6) JOptionPane.showMessageDialog(null, 你已经选满6学分,系统将退出);this.setVisible(false);return false;/无效操作3:课程该学生已经选择了某课程,则不能再选该课程了。sql = select * from choicesxx where sname=? and cno=?;boolean flag = false;try ps = con.prepareStatement(sql

23、);ps.setString(1, this.getUsrName();ps.setString(2, userInput);rs = ps.executeQuery();flag = rs.next(); catch (Exception eaa) eaa.printStackTrace();if (flag) JOptionPane.showMessageDialog(null, 你已经选择了该课程。请另选课程);return false;/如果以上无效操作都不存在,则返回true,意为这是一个准有效操作return true;/对有效的提交操作的进行处理public void tryCo

24、mmit() / userInput为用户输入的课程ID.String userInput = jtfSelectedCourse.getText().toString().trim().toLowerCase();/ if course still available(count 0) / save studentId and courseId to student-course table./ this.getUsrName();userInputsql = insert into choicesxx values(?,?);ps = con.prepareStatement(sql);p

25、s.setString(1, this.getUsrName();ps.setString(2, userInput);ps.executeUpdate();JOptionPane.showMessageDialog(null, 选课成功: + this.getUsrName()+ 选了 + userInput + . + + 还有 + RemainedCount+ 人可以选该课程。);/ 更新课程中已选该课程的人数:即将可选该课程的人数减去1个人。sql = update CourseXX set selectedCount=selectedCount+1 where cno=?;ps = con.prepareStatement(sql);ps.setString(1, userInput);ps.executeUpdate();mit();/如果该课程已经没有选择名额,提示重新选课 catch (Exception es) es.printStackTrace();try con.rollback(); catch (Exception ey)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1