学生选课管理系统(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.效果运行实例 

 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/735246.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

详细解析MATLAB和Simulink中的文件格式:mat, mdl, mexw32, 和 m 文件

matlab 探索MATLAB和Simulink中的文件格式:MAT, MDL, MEXW32, 和 M 文件**MAT 文件 (.mat)****MDL 文件 (.mdl)****MEX 文件 (.mexw32/.mexw64)****M 文件 (.m)****总结** 探索MATLAB和Simulink中的文件格式:MAT, MDL, MEXW32, 和 M 文件 当你开始使用M…

纯js开发在线截图生成器工具,思路和方法在这里

不谈使用转账付款交易截图的用途是什么,我这里只谈怎么通过代码来实现这个功能的思路,以及用到的技术。 最近有个客户找到探奇客需要定制一个截图生成的工具。开发后的效果是这样的 开发这个转账付款交易截图生成器用到了这些组件,这里就直接…

C# OCCT Winform 界面搭建

目录 1.创建一个WInform项目 2.代码总览 代码解析 3.添加模型到场景 4.鼠标交互 1.创建一个WInform项目 2.代码总览 using Macad.Occt.Helper; using Macad.Occt; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.Remoting.Co…

现在的Android程序员为什么会感到焦虑?焦虑的源头在哪里?该怎么去缓解焦虑呢?——没有无中生有的贩卖焦虑,只有你的挣扎和不甘。

二、知识为何产生焦虑 先说两个世界,知识的世界和现实的世界。 知识的世界,由承载知识的那些载体组成,比如图书、音视频、报刊、自媒体等。 现实的世界,就是我们每天生活的、做出各种行为的世界。 学习的目的是什么呢&#xff1…

将WIN10的wifi上网分享给以太网接口

目录 打开网络设置设置属性点这里的设置将wlan主机的以太网接口IP设为自动获取 如果连接不成功,拔网线重连一次 打开网络设置 设置属性 点这里的设置 将wlan主机的以太网接口IP设为自动获取 如果连接不成功,拔网线重连一次

【八股系列】说一下mobx和redux有什么区别?(React)

🎉 博客主页:【剑九 六千里-CSDN博客】 🎨 上一篇文章:【介绍React高阶组件,适用于什么场景?】 🎠 系列专栏:【面试题-八股系列】 💖 感谢大家点赞👍收藏⭐评…

论文《Geom-GCN:Geometric Graph Convolutional Networks》笔记

【Geom-GCN】现有的MPNNs方法具有两个基本弱点:①丢失邻域节点的结构信息;②缺乏捕获非同配性图的长距离依赖的能力。本文从经典神经网络和网络几何学的观察出发,提出了一种新的几何聚合方案,该方案利用图背后的连续空间进行聚合&…

Python爬虫技术:动态JavaScript加载音频的解析

在当今的互联网世界中,JavaScript已成为构建丰富交互体验不可或缺的技术。然而,对于网络爬虫开发者来说,JavaScript动态生成的内容却带来了不小的挑战。音频内容的动态加载尤其如此,因为它们往往涉及到复杂的用户交互和异步数据加…

游戏高度可配置化(二)用“模型抽象”化解游戏策划和程序员的江湖恩怨

游戏高度可配置化(二)用“模型抽象”化解游戏策划和程序员的江湖恩怨 码客 卢益贵 ygluu 关键词:模型抽象、功能抽象、抽象工厂模式、游戏服务端引擎、高度可配置化、恩怨情仇、游戏策划、数据引擎、生产消费模型、订阅-通知模型 一、前言…

Day11 —— 大数据技术之Spark

Spark快速入门系列 Spark的概述什么是Spark?Spark的主要特点Spark的主要组件 Spark安装Spark三种运行模式Spark Standalone架构Spark Standalone的两种提交方式Spark On YARN架构 RDD算子转化算子行动算子 Spark RDDRDD的创建从对象集合创建RDD从外部存储创建RDD Sp…

基于SpringBoot+vue闲置物品交易网站详细设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,…

系统架构师概述

引言 系统架构设计师是项目开发活动中的众多角色之一,它可以是一个小组或者一个人或者是一个团队,架构师包含建筑师,设计师,创造者,缔造者,可以说架构师就是我们社会各个领域的创造者和缔造者。从组织上划分…

【深度学习系列】全面指南:安装TensorFlow的CPU和GPU版本

本博客旨在为初学者提供一份全面的指南,介绍如何根据个人电脑的配置选择并安装适合的TensorFlow版本。内容涵盖了如何查看电脑显卡型号以确定是安装CPU还是GPU版本的TensorFlow,创建Python虚拟环境,以及使用conda命令查找可用的TensorFlow版本…

使用Vercel 搭建自己的Dashy导航页

背景 Dashy 是一个开源的自托管导航页面配置服务,它具有易于使用的可视化编辑器、状态检查、小工具和主题等功能。用户可以利用 Dashy 将自己常用的一些网站聚合起来,形成一个个性化的导航页面。 同类的竞品还有Heimdall, Flare 等。 可以通过Docker 等…

DAMA学习笔记(二)-数据治理

1.引言 数据治理(Data Governance,DG)的定义是在管理数据资产过程中行使权力和管控,包括计划、监控和实施。在所有组织中,无论是否有正式的数据治理职能,都需要对数据进行决策。建立了正式的数据治理规程及…

深入学习Java1213新特性

一、关于Java生态圈 二、Java老矣,尚能饭否? 三、JDK各版本主要特性 四、JDK与IDE的下载与安装 五、Java12新特性 1.switch表达式(预览)

以太坊==MetaMask获取测试币最新网址

估算分数https://community.infura.io/t/unable-to-receive-sepolia-eth-from-faucet/7715 Gitcoin Passport 水龙头地址,填入自己的测试地址 水龙头项目地址 GitHub - pk910/PoWFaucet: Modularized faucet for EVM chains with different protection methods (…

DNF手游攻略:云手机辅助流光星陨刀详细攻略大全!

DNF手游中,流光星陨刀是鬼剑士的专属神器之一,拥有快速的攻击速度和优秀的物理与法术攻击属性,因其出色的性能和未来升级的潜力,成为广大玩家关注的焦点。 流光星陨刀的背景与起源 流光星陨刀作为鬼剑士的标志性武器之一&#xf…

Go 语言学习笔记之数组与切片

大家好,我是码农先森。 数组与切片的区别 在 Go 语言中,数组和切片是两种不同的数据结构,它们之间有以下主要区别。 参数长度: 数组(Array):数组的长度是固定的,在创建时就需要指…

CMMM Plus+ Calculus Update 超级游戏大作 游戏说明

资源链接 关卡编辑器 ◽️使用 WASD 移动视图。 ◽️LMB 放置单元格。 ◽️Space LMB 删除单元格。Ctrl Space LMB 删除所有相同类型的单元格。 ◽️Q / E 旋转单元格。 ◽️Z / X 在单元格类别之间切换。 ◽️键 1-9 快速选择单元格。 ◽️按 F 显示可拖动的图块。 ⌨️控…