学生选课管理系统(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 TransferSource Server         : 本地数据库
Source Server Version : 50505
Source Host           : localhost:3306
Source Database       : coursechooseTarget Server Type    : MYSQL
Target Server Version : 50505
File Encoding         : 65001Date: 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.效果运行实例 

 

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树莓派pico入坑笔记,uart使用

uart原理自行百度,相关内容很多其他博主写过并且质量很高,这里不再赘述。 调用circuitpy的busio模块来使用uart,除此以外,spi、iic等要需要使用该模块,使用方法见 官方教程 ,详细信息见文档 官方的例子简…

文本生成图像综述

本调查回顾了扩散模型在生成任务中广泛流行的背景下文本到图像的扩散模型。作为一份自成一体的作品,本调查首先简要介绍了基本扩散模型如何用于图像合成,然后介绍了条件或指导如何改善学习。基于这一点,我们介绍了文本到图像生成方面的最新方…

# 深入理解 Java 虚拟机 (二)

深入理解 Java 虚拟机 (二) Java内存模型 主内存与工作内存 所有的变量存储在主内存(虚拟机内存的一部分)每条线程有自己的工作内存,线程对变量的所有操作(读取、赋值)都必须在工作内存中进行…

VMware Windows sever 虚拟机互联网连接配置

一、VMware配置 1、虚拟网络编辑 从左上角 编辑→虚拟网络编辑器 进入 2、配置NAT模式 配置的子网IP,在虚拟机中获取到的ip跟子网IP的前三个是一样的 1.配置网关 2.配置DHCP设置 这个主要是分配ip最后一位获取的区间 3、虚拟机配置 二、Windows Server 虚拟机配置…

【Linux】进程 | 控制块pcb | task_struct | 创建子进程fork

目录 Ⅰ. 进程的概念(Process) 1. 什么是进程? 2. 多进程管理 3. 进程控制块(PCB) task_struct 的结构 Ⅱ. 进程查看与管理 1. 使用指令查看进程 2. /proc 查看进程信息 3. 获取进程 ID 4. 创建子进程 原因&…

STM32启动流程 和 map文件的作用

一,启动流程 1. 复位/上电 2. 根据 BOOT0/BOOT1 确定程序从哪个存储位置执行 3. 初始化 SP 及 PC 指针 将 0X08000000 位置的栈顶地址存放在 SP 指针中 将 0x08000004 位置存放的向量地址装入 PC 程序计数器 4. 初始化系统时钟 5. 初始化用户堆栈 6. 进入main函数 二…

Jmeter TCP接口测试-实例

1、TCP接口结构 TCP接口:只有IP和PORT 传参数据类型根据开发定义的类型 需要添加一个ascii码的十进制字节结束符,tcp才会关闭 2、TCP接口环境搭建 在testfan-tcp-server.jar目录下,启动cmd命令行,输入: java -jar…

如何在 SwiftUI 视图中显示应用图标和版本

文章目录 前言获取应用图标获取应用版本创建 SwiftUI 视图总结前言 在应用中显示应用图标和版本是为用户提供快速识别应用版本和变体的好方法,无论是内部用户(如测试人员或利益相关者)还是外部用户。 在本文中,我将展示如何创建一个可访问的 SwiftUI 视图,既能显示应用图…

字符串匹配 --- BF算法 KMP算法

Welcome to 9ilks Code World (๑•́ ₃ •̀๑) 个人主页: 9ilk (๑•́ ₃ •̀๑) 文章专栏: 算法Journey 本篇博客我们将介绍关于字符串匹配的BF算法以及KMP算法,请放心食用~ 🏠 字符串匹配 假设有一个字符串为主串str&#x…

2.移植freertos到stm32f103c8t6

目录 1.步骤 2.freertos配置时常见的选项卡意思 1.步骤 2.freertos配置时常见的选项卡意思

【unity实战】Unity中基于瓦片的网格库存系统——类似《逃离塔科夫》的库存系统

最终效果 文章目录 最终效果前言素材下载图片配置获取格子坐标动态控制背包大小添加物品移动物品物品跟随鼠标创建物品的容器,定义不同物品修改物品尺寸修复物品放置位置问题按物品尺寸占用对应大小的格子判断物品是否超出边界范围物品放置重叠,交换物品…

深度解析:机器学习如何助力GPT-5实现语言理解的飞跃

文章目录 文章前言机器学习在GPT-5中的具体应用模型训练与优化机器翻译与跨语言交流:情感分析与问答系统:集成机器学习功能:文本生成语言理解任务适应 机器学习对GPT-5性能的影响存在的挑战及解决方案技术细节与示例 文章前言 GPT-5是OpenAI公…

24/06/26(1.1129)动态内存

strtok 字符串分割函数 #include<stdio.h> int main(){ char str[] "this,a sample string."; char* sep ","; char* pch strtok(str, sep); printf("%s\n", pch); while (pch ! NULL){ printf("%s\…

惊天大瓜姬圈天莱女明星出轨风波

#惊天大瓜&#xff01;姬圈天菜女明星出轨风波#近日&#xff0c;娱乐圈掀起了一场前所未有的风暴&#xff01;狗仔队放出重磅消息&#xff0c;直指某位姬圈天菜级别的女明星深陷出轨泥潭。消息一出&#xff0c;引发了网友们的热议和猜测&#xff0c;究竟这位神秘的女明星是谁&a…

各式各样神奇的注意力机制变型

当输入sequence N很大的时候&#xff0c;这个时候self-attention 占据了绝大部分算力 Local Attention / Truncated Attention 只需要关注附近的attention, local attention 和cnn 差不多&#xff0c;可以加速计算&#xff0c;但效果不一定好 Stride attention 空几格attenti…

[保姆级教程]uniapp自定义标签页切换组件

文章目录 导文样式改成动态列表切换点击效果加上点击自动滑动scroll-view加上切换组件效果 导文 unaipp自带的标签页和ui设计相差太大&#xff0c;直接修改组件比手写一个还麻烦&#xff0c;下面手写一个。 样式 先用scroll-view做一个滑动&#xff0c;不然多的话滑动不了。 &l…

神经网络学习8-反向传播

back propagation 拿到前面传回来的L对z的偏导&#xff0c;再分别算损失值对x和w的偏导 反向传播 前馈过程求局部梯度 反向传播 这里的loss&#xff08;wxb-y)^2,第一个关于b的偏导为2(wxb-y),第二个关于w的为2w(wxb-y)

【机器学习300问】128、简述什么Word2Vec?

一、一句话说明Word2Vec是什么&#xff1f; Word2Vec是一种常见的词嵌入技术。Word2Vec的目标是将每个词表示为一个向量&#xff0c;使得这些向量能够反映出词语之间的相似性和关联性。 word2vec算法通过预测中心词和上下文词的共现概率来学习词向量&#xff0c;能够捕捉词语之…

植物大战僵尸杂交版v2.1最新直装版,苹果+安卓+PC+防闪退工具+修改工具+高清工具+通关存档整合包更新

今天我要和各位聊聊一款让全网疯狂的游戏——《植物大战僵尸杂交版》。这可不是简单的游戏&#xff0c;它可是让B站的UP主“潜艇伟伟迷”一夜成名的大作&#xff0c;让无数玩家为之疯狂的魔改神作&#xff01; 记得2009年&#xff0c;《植物大战僵尸》横空出世&#xff0c;那时…

LDO芯片手册,实例应用分析

在进行电路设计时LDO是经常用到的&#xff0c;尤其在为芯片&#xff0c;晶振等敏感电路进行供电时应用更多&#xff0c;下面选取一款比较常用的LDO芯片&#xff0c;一起进行更深入的学习。 SGM2036特点简介 SGM2036&#xff0c;圣邦微一款比较常用的LDO芯片手册 可以先大致看…