基于Java的学生选课管理系统

智术园

发布日期: 2020-08-09 11:03:08 浏览量: 181
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

摘 要

Java是一种被广泛使用的编程语言,它的主要特点在于它是一种既面向对象又可跨平台的语言。Java语言通过为每个计算机系统提供一个叫做Java虚拟机的环境来实现跨平台。Java不但适用于单机应用程序和基于网络的程序,而且还可以用于创建消费者类设备和附件程序。面向对象是一种直观而且程序结构简单的程序设计方法,他比较符合人类认识现实世界的思维方式。其基本思想是把问题看成是由若干个对象组成,这些对象之间是独立的,但是又可以相互配合、连接和协调,从而共同完成整个程序要实现的任务和功能。面向对象的三大特征:封装、继承和多态。继承可以解决编程中代码冗余的问题,继承的最基本作用就是使代码可重用,增加软件的可扩充性。面向对象的优点:

  • 与人类的思维习惯一致

  • 信息隐藏,提高了程序的可维护性和安全性

  • 提高了程序的可重用性

Java中只支持单继承,既每个类只能有一个直接父类。一个普通类只能继承一个父类,但能同时实现多个接口,也可以同时继承抽象类和实现接口。

我做的这个程序是学生选课管理系统,这个程序是由我一个人完成的。由于时间比较短且具体实现不需要用到Java的全部语法和功能,所以我做的这个程序不能体现Java的全部语法和功能。我的这个程序定义了三个类,他们分别是:增添类、修改类、删除类和管理员类。并且把这四个类放到了一个叫学生选课系统的包里面,“包”在Java中有很重要的意义,包的声明必须是Java源文件中的第一条非注释性语句,设计包需要与文件系统结构相对应。包的作用有:

  • 包允许将类组合成较小的单元(类似文件夹),易于找到和使用相应的类文件

  • 防止命名冲突,Java中只有在不同的包中的类才能重名

  • 包允许在更广的范围内保护类、数据和方法

根据访问规则,包外的代码有可能不能访问该类。另外数组的应用在我的程序中也有很大的体现,数组是Java中的很重要的语法。数组是用来储存一组相同类型数据的数据结构。当数组初始化完毕后,Java为数组在内存中分配了一段连续的空间,其在内存中开辟的空间也随之固定,此时的数组的长度就不能再发生改变。即使数组中没有保持任何数据,数组所占据的空间依然存在。数组的数据类型用于确定分配的每个空间的大小。JDK中提供一个用于操作数组的工具类,既Arrays类,位于Java.util包中。该类提供了一系列的方法来操作数组,如排序、复制、比较、填充等,用户直接调用这些方法即可,不需要自己编码实现,降低了开发难度。在我的这个程序中,我就用到了toString(arry)这个方法,很方便的实现了把数组中保存的课程信息用一个字符串输出,既方便又快捷。另外for循环在我的程序中也有很重要的应用,实现了对数组的遍历输出。

总之,我们不管干什么都要遵循一定的规则,充分利用资源,在巨人的肩膀上看世界。Java作为一种既面向对象又可跨平台的语言,确实很好用,非常的便捷。

一、开发背景

学生选课在大学是非常常见的一件事情,学生网上选课系统的开发具有十分重要的意义,可以减少大量的人力、物力、财力。为了优化学生选课管理系统,提高学生选课管理系统程序的效率,我在这一背景下开发了这一款学生选课管理系统。

二、需求分析

学生选课管理系统需要实现增添、修改、查询功能,分别由三个功能类来完成,再设计一个管理员类来实现主要功能。

三、模块说明

3.1 增添课程信息模块

  • 功能描述:此模块的主要功能是实现增添课程信息。系统的用户可增添需要增添的课程名称及相关信息,并将其保存到数组中,增添完毕后会输出所有的课程信息,便于判断增添是否成功,并明确有哪些课程信息,方便用户使用

  • 输入:需要增添的课程名称及相关信息

  • 输出:增添后textbooks数组中,增添后的所有的课程名称及相关信息

3.2 修改课程信息模块

  • 功能描述:此模块的主要功能是实现修改课程信息。系统的用户可修改需要修改的课程名称及相关信息,并将其保存到数组中,修改完毕后会输出所有的课程信息,便于判断修改是否成功,并明确有哪些课程信息,方便用户使用

  • 输入:需要修改的课程名称及相关信息

  • 输出:修改后textbooks数组中,修改后的所有的课程名称及相关信息

3.3 删除课程信息模块

  • 功能描述:此模块的主要功能是实现删除课程信息。系统的用户可删除需要删除的课程名称及相关信息,并将其保存到数组中,删除完毕后会输出所有的课程信息,便于判断删除是否成功,并明确有哪些课程信息,方便用户使用

  • 输入:需要删除的课程名称及相关信息

  • 输出:删除后textbooks数组中,删除后的所有的课程名称及相关信息

3.4 管理员模块

  • 功能描述:此模块的主要功能是实现学生选课管理系统的主要功能,包括保存学生的选课信息。系统的用户可根据输出的课程信息选择要选修的课程,选择需要选修的课程名称及相关信息,并将其保存到数组中,方便用户使用

  • 输入:需要选修的课程名称及相关信息

  • 输出:可供选择的课程信息;学生已经输入的选修的课程名称及相关信息

四、详细设计

4.1 增添课程设计类

  • 类名:增添

  • 继承父类:无

  • 实现接口:无

  • 概述:增添需要增添的课程名称及相关信息

  • 属性及说明:无

  • 方法及说明

    • for循环语句:实现数组的遍历输出课程名称及相关信息
    • if判断:找到暂时没有保存课程信息的null的数组的下标值,用于增添所需课程名称及相关信息

4.2 修改课程设计类

  • 类名:修改

  • 继承父类:无

  • 实现接口:无

  • 概述:修改需要修改的课程名称及相关信息

  • 属性及说明:无

  • 方法及说明

    • for循环语句:实现数组的遍历输出课程名称及相关信息
    • if判断:找到需要修改的课程名称及相关信息所在的数组的下标值,修改所需修改课程名称及相关信息

4.3 删除课程设计类

  • 类名:删除

  • 继承父类:无

  • 实现接口:无

  • 概述:删除需要删除的课程名称及相关信息

  • 属性及说明:无

  • 方法及说明

    • for循环语句:实现数组的遍历输出课程名称及相关信息
    • if判断:找到需要删除的课程名称及相关信息所在的数组的下标值,删除所需修改课程名称及相关信息

4.4 管理员设计类

  • 类名:管理员

  • 继承父类:无

  • 实现接口:无

  • 概述: 实现学生选课管理系统的主要功能,包括保存学生的选课信息

  • 属性及说明:无

  • 方法及说明

    • for循环语句:实现数组的遍历输出课程名称及相关信息
    • 使用scanner方法:保存学生所选择的课程名称及相关信息

五、系统实现

设置增添、修改、删除三个功能类,以及一个管理员类共同来实现学生选课管理系统。增添类实现课程数目或者内容的增添,定义了一个add变量来储存所需要增添的课程名称,通过for循环遍历textbooks数组,找到null后,将保存在add变量中的课程名称保存到textbooks数组,从而实现了增添功能。修改类实现课程数目或者内容的修改,定义了一个change变量来储存所需要修改的课程名称,通过for循环遍历textbooks数组,找到保存在change变量中的课程名称在textbooks数组的储存空间并且返回它保持在textbooks数组的下标值,将找到的课程名修改成所需要的课程名,从而实现了修改功能。删除类实现课程数目或者内容的删除,定义了一个delete变量来储存所需要删除的课程名称,通过for循环遍历textbooks数组,找到delete变量来储存所需要删除的课程名称后,将保存在delete变量中的课程名称保持在保存到textbooks数组的下标值返回,然后将其置为null,从而实现了删除功能。管理员类实现学生选课管理系统的主要功能,使用了toString(array)方法来将所有的课程名称以字符串的形式输出,通过所输出的课程信息来确定所需要选择的课程,并且将其保存到content数组,通过for循环遍历students list数组,按照顺序依次保存学生的选课信息,从而基本上实现了学生选课管理系统的功能。

5.1 主界面

5.2 增添模块

5.3 修改模块

5.4 删除模块

总 结

通过这一次课程设计,我基本上重温了一下这一学期所学的Java程序设计基础的内容。在实践时发现想到以前觉得理解了的知识点并没有完全理解,还存在许多的疑问点或者说完全不懂的知识点。这个学生课程管理系统程序是由我独立完成的,虽然存在很大的不足,但是在整个的课程设计中我还是明白了很多的东西。我个人觉得独自完成课程设计的意义更大,因为对于同一件事情不同的人会有不同的看法,而这些看法本身并没有对错,但是不同的看法会产生不一样的行为,所以我个人觉得我们应该独立的完成课程设计。通过这次课程设计我对Java中一些重要的语法有了更加深刻的认识,我觉得我以后应该多编写一些程序,在这个过程中,我们可以系统的运用所学的Java知识,同时也可以让我们对编程产生兴趣,更好的培养我们的学科思维,增强我们的职业素养。面向对象是一种直观而且程序结构简单的程序设计方法,他比较符合人类认识现实世界的思维方式。其基本思想是把问题看成是由若干个对象组成,这些对象之间是独立的,但是又可以相互配合、连接和协调,从而共同完成整个程序要实现的任务和功能。我们可以更好的认识这个世界。人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。人工智能将涉及到计算机科学、心理学、哲学和语言学等学科。可以说几乎是自然科学和社会科学的所有学科,其范围已远远超出了计算机科学的范畴,人工智能与思维科学的关系是实践和理论的关系,人工智能是处于思维科学的技术应用层次,是它的一个应用分支。从思维观点看,人工智能不仅限于逻辑思维,要考虑形象思维、灵感思维才能促进人工智能的突破性的发展,数学常被认为是多种学科的基础科学,数学也进入语言、思维领域,人工智能学科也必须借用数学工具,数学不仅在标准逻辑、模糊数学等范围发挥作用,数学进入人工智能学科,它们将互相促进而更快地发展。知识并不是孤立的,我们应该广泛的学习各个方面的知识。

参考文献

[1] 尹友明. Java语言与Java技术概述[J].中国新技术新产品, 2011(6):99-99.

[2] 佚名. Java语言编程技术[M]. 1997.

[3] 邝砾,于美琪,冯文韬,等.基于层次考核的计算机类课程考试改革研究——以Java面向对象程序设计课程为例[J].计算机教育, 2017(1):62-66.

[4] 杨雪. Java面向对象语言的教学探讨[J].家教世界, 2012(6):52-53.

[5] H.M.Deitel. Java语言程序设计大全[M]// Java 语言程序设计大全. 1997.

[6] Y.DanielLiang. Java语言程序设计.基础篇[M]. 2008.

[7] 杨晓燕.基于应用的Java面向对象程序设计课程研究与教材建设[J].计算机教育, 2012(3):42-45.

[8] Dennis Kafura. Java面向对象程序设计教程[M]//JAVA面向对象程序设计教程. 2003.

[9] 佚名.面向对象程序设计与Java语言[M]. 2004.

上传的附件 cloud_download 基于Java的学生选课管理系统.zip ( 924.10kb, 17次下载 )
error_outline 下载需要8点积分

发送私信

28
文章数
1
评论数
最近文章
eject