摘 要
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 主界面
![0c2933c3d1d8f773ffd6c10f423e6839.png](https://i-blog.csdnimg.cn/blog_migrate/7462c7b8e57a01ed56b4434c34072bd0.jpeg)
![e74d97962410ce168784f1359c886a15.png](https://i-blog.csdnimg.cn/blog_migrate/369ba5ba365f26f374c2070431deab33.jpeg)
完整的源码和详细的文档,上传到了 WRITE-BUG技术共享平台 上,需要的请自取:
https://www.write-bug.com/article/3306.html