学生选课管理系统(JAVA课设)PS:有前端界面

 1.课设要求描述 

  • 实现系统的所有功能,包括但不限于:
    • 学生信息管理(增加、删除、修改、查询)
    • 课程信息管理
    • 选课操作
    • 成绩管理

2.制作思路及基础讲解 

此项目主要是用于完成大二下半学期的JAVA大作业,也可当作课设,随手记录。技术面大二下之前只学过Java,MySQL/SQLServer。制作思路:首先是数据库作为存储数据的地方,编写根据课设要求编写好对应的建表语句和存储过程,视图,触发器等。然后编写好对应系统的Java代码,最后通过JDBC将Java代码与数据库连接起来。

  部分学生可能学的比较浅,不理解mysql,sqlserver,java,c等一堆名词之间的含义。之前有同学找我做过这类似的课设。问的问题都比较抽象,例如用mysql做一个系统之类的。在此简单说一下我对于这些的理解,mysql,sqlserver都是数据库的一种,只不过是外国的所以都是用英文表示,大部分上课不听的同学看到这一堆英文都会比较懵,其实只需简单把数据库(mysql,SQLServer)理解成存储数据的地方,而java,c等语言是用来编写系统逻辑功能的代码。当然在数据库中的存储过程或者触发器什么的,这些功能也能在代码编程语言中通过特定的逻辑实现类似的功能,只不过我们在数据库中写好的话,免去了Java中代码的编写量,并且查询时速度会更快。

3.使用工具及语言详解

不同的学校要求不同,有的是sqlserver,有的是mysql,但其实这两者的区别在我看来区别不大,大部分的语句格式都是一样的,所以我选择了我熟悉的一种,mysql来进行编写。在语言方面,我大一的时候学过c,但是当时没有认真听,后来也慢慢都忘了,大二时学了Java,并且之后又系统性的学了一遍,所以选择来用Java语言编写。对于编译器我使用的是IDEA,版本随意,这个不影响,但需要注意IDEA不是免费的,可以去试用30天,也可以自行网上找方法安装破解版。数据库可视化工具使用的是Navicat,这个工具同样也不是免费的,但提供14天试用期,有长期需求也需要各位自行找破解版。

PS:这里又提到两个新名词,IDEA和Navicat,这不是编程语言,而是工具的名字,大家需要慢慢熟悉这些名词,简单来说就是他能让你的编程之路变得更顺畅,提供了可视化的界面,不需要一直在黑窗口中输入代码。

4.数据库建表代码(完整数据库文件请到主页资源处下载)

/*
Navicat MySQL Data Transfer

Source Server         : 本地数据库
Source Server Version : 50505
Source Host           : localhost:3306
Source Database       : coursechoose

Target Server Type    : MYSQL
Target Server Version : 50505
File Encoding         : 65001

Date: 2018-03-07 10:17:30
*/
DROP DATABASE IF EXISTS coursechoose;
CREATE DATABASE coursechoose CHARSET utf8;
use coursechoose;
SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------
-- Table structure for `c_ccourse`
-- ----------------------------
DROP TABLE IF EXISTS `c_ccourse`;
CREATE TABLE `c_ccourse` (
  `stu_id` int(11) NOT NULL,
  `course_id` int(11) NOT NULL,
  `ccourse_mark` int(11) DEFAULT '0',
  `ccourse_time` datetime DEFAULT NULL,
  PRIMARY KEY (`stu_id`,`course_id`),
  KEY `course_id` (`course_id`),
  CONSTRAINT `c_ccourse_ibfk_1` FOREIGN KEY (`course_id`) REFERENCES `c_course` (`course_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `c_ccourse_ibfk_2` FOREIGN KEY (`stu_id`) REFERENCES `c_student` (`stu_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of c_ccourse
-- ----------------------------
INSERT INTO `c_ccourse` VALUES ('10004', '1', '87', '2018-03-05 11:38:13');
INSERT INTO `c_ccourse` VALUES ('10015', '2', '61', '2018-03-05 11:04:57');
INSERT INTO `c_ccourse` VALUES ('10015', '8', '88', '2018-03-05 11:04:45');
INSERT INTO `c_ccourse` VALUES ('10015', '10', '68', '2018-03-05 11:05:05');
INSERT INTO `c_ccourse` VALUES ('10017', '1', '88', '2018-03-06 17:10:13');
INSERT INTO `c_ccourse` VALUES ('10017', '3', '0', '2018-03-06 17:10:16');
INSERT INTO `c_ccourse` VALUES ('10019', '2', '88', '2018-03-06 17:10:27');
INSERT INTO `c_ccourse` VALUES ('10019', '3', '0', '2018-03-06 17:10:24');
INSERT INTO `c_ccourse` VALUES ('10019', '5', '0', '2018-03-07 10:06:27');
INSERT INTO `c_ccourse` VALUES ('10021', '1', '98', '2018-03-06 16:17:44');
INSERT INTO `c_ccourse` VALUES ('10021', '2', '98', '2018-03-06 16:18:06');
INSERT INTO `c_ccourse` VALUES ('10021', '9', '0', '2018-03-07 10:09:42');
INSERT INTO `c_ccourse` VALUES ('10021', '10', '0', '2018-03-07 10:09:40');

-- ----------------------------
-- Table structure for `c_class`
-- ----------------------------
DROP TABLE IF EXISTS `c_class`;
CREATE TABLE `c_class` (
  `class_id` int(2) NOT NULL AUTO_INCREMENT,
  `class_name` varchar(20) NOT NULL,
  `class_maxnum` int(2) NOT NULL,
  `grade_id` int(2) NOT NULL,
  PRIMARY KEY (`class_id`),
  KEY `grade_id` (`grade_id`),
  CONSTRAINT `grade_id` FOREIGN KEY (`grade_id`) REFERENCES `c_grade` (`grade_id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of c_class
-- ----------------------------
INSERT INTO `c_class` VALUES ('1', '核弹技术07-1', '50', '1');
INSERT INTO `c_class` VALUES ('2', '核弹技术07-2', '50', '1');
INSERT INTO `c_class` VALUES ('3', '软件工程', '25', '2');
INSERT INTO `c_class` VALUES ('4', '信息技术', '55', '2');
INSERT INTO `c_class` VALUES ('5', '计算机技术', '50', '3');

-- ----------------------------
-- Table structure for `c_course`
-- ----------------------------
DROP TABLE IF EXISTS `c_course`;
CREATE TABLE `c_course` (
  `course_id` int(11) NOT NULL AUTO_INCREMENT,
  `course_name` varchar(20) NOT NULL,
  `course_credit` float NOT NULL,
  `course_info` varchar(50) NOT NULL,
  `course_begin_time` datetime NOT NULL,
  `teach_id` int(11) NOT NULL,
  PRIMARY KEY (`course_id`),
  KEY `teach_id` (`teach_id`),
  CONSTRAINT `c_course_ibfk_1` FOREIGN KEY (`teach_id`) REFERENCES `c_teacher` (`teach_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;

-- ----------------------------
-- Records of c_course
-- ----------------------------
INSERT INTO `c_course` VALUES ('1', '计算机技术', '4', '学习计算机', '2011-05-28 12:38:58', '1');
INSERT INTO `c_course` VALUES ('2', '核弹技术', '3', '学习核弹技术', '2011-05-28 12:39:33', '1');
INSERT INTO `c_course` VALUES ('3', '石油化工', '5', '学习石油化工', '2011-05-28 12:40:09', '2');
INSERT INTO `c_course` VALUES ('4', '高等数学', '8', '学习高等数学', '2011-05-28 12:40:30', '3');
INSERT INTO `c_course` VALUES ('5', '数据结构与算法', '5', '很好的课程', '2011-06-08 00:00:00', '2');
INSERT INTO `c_course` VALUES ('8', '高分子', '5', '对!就是是高分子,而不是高分子材料!', '2008-08-08 00:00:00', '1');
INSERT INTO `c_course` VALUES ('9', '航空航天', '6', '世界一流的航空技术', '2009-09-06 00:00:00', '3');
INSERT INTO `c_course` VALUES ('10', '潜艇技术', '3', '很强的的技术,专门对付美国', '2011-06-02 00:00:00', '2');
INSERT INTO `c_course` VALUES ('11', '软件工程导论', '3', '很强的的技术,专门对付美国', '2018-03-05 00:00:00', '3');
INSERT INTO `c_course` VALUES ('12', '人工智能', '4', '学习人工智能', '2018-03-07 00:00:00', '4');
INSERT INTO `c_course` VALUES ('13', '计算机网络', '3', '学习计算机网络', '2018-03-07 00:00:00', '6');
INSERT INTO `c_course` VALUES ('14', '离散数学', '4', '学习离散数学', '2018-03-07 00:00:00', '3');


 5.Java代码思路及结构

此处只放部分代码截图(可选择管理员,教师,学生三个不同身份登录)

 

6.效果运行实例 

附带说明书,任务书,数据库文件,需要源码及相关资料后台私信    

  • 19
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
2.2 主要功能说明: 一.欢迎界面:改界面主要是作为本系统的封面,程序运行后该界面会出 现在屏幕中间,操作者可以点击该界面即可计入下一个窗体。 二.入口:本系统中权限的设置主要是靠入口,选择不同的登录身份进入 系统后将会得到不一样的执行权限。若选择退出系统,则将会退出整个软件。 三. 读者登陆界面:该窗体主要是给一般读者登陆系统执行图书的查询和借阅功能的,当读者输入的编号和密码正确后即可进入系统,当用户输入用户名和密码出现错误后,系统会提示用户重新输入。当用户三次输入均出现错误时,系统会自动关闭。 四.管理员登陆界面:该窗体主要是提供给系统管理员进入系统进行操作的,其中用法和读者登陆界面一样,不同的是进入系统后具有的操作权限不同。管理员具有全部权限。 五.图书管理:(1)图书信息录入界面:此界面主要用于首次录入图书信 息,因此该界面应该具有输入图书所有信息的元素, 如图书编号,书名,书号,作者…. (2)图书信息修改界面:此界面主要是用于已经存在馆里的图书的信息的修改,因此该界面应该有查找和修改的功能,所以除了具有图书信息录入界面的元素外,还应该有上一条,下一条,查询等元素。 六.读者管理:(1)读者注册界面:此界面主要是用于录入新读者的信息, 因此此界面应该具有读者的所有信息,另外应该还具 有赋予读者一个进入系统的密码的元素。 (2)读者信息修改:此界面主要用于对已经注册过本系统 的读者的信息的修改,包括密码等等元素。 七.图书服务:(1)图书查询界面:此界面主要是用于查询,借阅,预 约图书,查询时可按图书的书名,作者,出版社来 查询,查询到的图书用表格显示,并且可以显示图书 的借阅情况。 (2)借书还书界面:该界面主要是用于读者的借书和还 书的情况,并且读者可以归还图书。 八.数据安全:(1)数据备份界面:该界面主要用于对本系统的重要数 据进行备份,以便不小心失去数据后可以恢复数据 提高系统的安全性。 (2)数据恢复界面:该界面是和数据备份界面配合使用的,当需要恢复已经备份的数据时,即可使用该窗体。 九.系统管理:(1)帮助和相关界面:该界面主要是向使用本系统的读者或者管理员提供相应的提示和帮助,同时显示一些关于本系统的相关信息。 (2)密码设置界面:该界面主要是用于管理员的注册和密码修改,注册界面可以注册新的管理员,密码修改界面可以对已经存在的管理员的信息的修改。 (3)退出本系统界面:该界面主要是用来安全退出整个软件,包括退出了vfp软件 (4)恢复vfp系统界面:该界面主要是用来退出当前运行的图书管理系统,恢复到vfp系统继续进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值