【Web】基于C#的学生选课系统开发

news2024/11/19 8:42:51

目录

    • 一、实验目的
    • 二、设计数据库表
    • 三、设计学生、课程和已选课程类
    • 四、 系统流程图
    • 五、功能流程图
    • 六、总结

一、实验目的

1、设计学生类(学号 | 姓名 | 班级 | 初始密码)
2、设计课程类(课程代码 | 课程名称 | 学分)
3、设计已选课程类(课程代码 | 学号)
4、设计数据库表。
5、增删改查学生信息
6、学生选课
7、查看学生已选课程
8、增删改查课程信息

二、设计数据库表

  创建一个数据库并新建三张表,分别命名为 "student"、"sourse" 和 "cs",它们对应的字段如下:

student表: — sid  (varchar(10))
			— sname  (varchar(20))
			— class  (varchar(20))
			— password  (varchar(10))
course表:  — cid  (varchar(10))
			— cname  (varchar(20))
			— credit (varchar(5))
cs表:   — cid  (varchar(10))
		 — sid  (varchar(10)

在这里插入图片描述
  student表和course表是一种多对多的关系,一个学生可以选择多个课程,一个课程可以同时被多个学生选择,两者的多对多关系设计为cs表。student表中sid为主键,course表中cid为主键,cs表中使用sid和cid作为外键。
  例如在如下的三个表中,离散数学课程同时被两个学生所选,学生李四同时选了离散数学课程和算法设计与分析课程。
在这里插入图片描述

三、设计学生、课程和已选课程类

这些类在连接数据库时会自动生成。

 public partial class Student{
        public string Sid { get; set; }
        public string Sname { get; set; }
        public string Class { get; set; }
        public string Password { get; set; }
    }
 public partial class Course{
        public string Cid { get; set; }
        public string Cname { get; set; }
        public string Credit { get; set; }
}
 public partial class Cs{
        public string Cid { get; set; }
        public string Sid { get; set; }
    }

四、 系统流程图

  首先输入选项1至4,选择学生管理、课程管理、选课管理或退出系统。当选择学生管理、课程管理或选课管理时,可通过当前目录下的功能进行信息的增删改查,也可直接返回上一级目录,也就是主菜单目录。之后再进行下一项操作,直到退出系统。
在这里插入图片描述

五、功能流程图

1. 增加学生信息
  输入待添加学生的学号,在数据库当中查找该学号。如果找到则说明数据库表中已经存储了该学生的信息。如果查找不到,则输入学生的姓名、班级和密码,最后添加信息到数据库并保存。
在这里插入图片描述
2. 删除学生信息
  输入待删除学生的学号,在数据库当中查找该学号。如果找到则删除该学生信息并保存。如果查找不到,则提示找不到该学生。
在这里插入图片描述
3. 修改学生信息
  输入待修改学生的学号,在数据库当中查找该学号。如果找到则修改该学生信息并保存。如果查找不到,则提示找不到该学生。
图 4.5 修改学生信息流程图

4. 查询学生信息
  输入待查询学生的学号,在数据库当中查找该学号。如果找到则输出该学生的信息。如果查找不到,则提示找不到该学生。
图 4.6 查询学生信息流程图

课程与学生所实现的功能的流程图类似,所以不再一一画出。

5. 学生选课
  输入待选课学生的学号,判断是否找到该学生,如果找不到返回提示信息。如果找到则输入待选课程号,如果存在该课程则进一步判断该学生是否已经选过该课程。如果没有选过则添加该选课信息到数据库并保存,否则输出提示该学生已经选过该课程。
图 5.7 学生选课流程图

6. 查看学生已选课程
  输入学生学号,查询已选课程表中该学生的所有选课记录。判断该学生是否有选课记录。如果有选课记录,则输出学号和课程号。如果没有选课记录,输出提示信息。
图 4.8 查看学生已选课程流程图

六、总结

  通过本次实验,熟悉了相关工具的使用和环境的配置,并掌握了一些处理报错的方法。
  在所有实现的功能中,花费时间最长的是查看学生已选课程的功能。最后实现该功能的方法是先输入学号,接着使用LINQ语句查询已选课程表中该学生所选的所有课程,并将查询结果存储在students变量中,最后遍历查询结果并将选课情况打印输出到控制台。
  在此次实践中我深刻理解了系统设计的步骤、流程以及思路,还加深了对数据库的认识,并认识到了以前所学基础课程的重要性。而且这次实验也使我掌握了很多新知识,特别是一些课本之外的内容,体会到了理论知识和实践相结合的重要性。

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

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

相关文章

HTML5 Canvas(画布)

<canvas>标签定义图形&#xff0c;比如图表和其他图像&#xff0c;你必须用脚本来绘制图形。 在画布上&#xff08; Canvas &#xff09;画一个共红色矩形&#xff0c;渐变矩形&#xff0c;彩色矩形&#xff0c;和一些彩色文字。 什么是 Canvas&#xff1f; HTML5<c…

数据库的分库分表

#!/bin/bash ######################### #File name:db_fen.sh #Version:v1.0 #Email:admintest.com #Created time:2023-07-29 09:18:52 #Description: ########################## MySQL连接信息 db_user"root" db_password"RedHat123" db_cmd"-u${…

linux安装Tomcat及部署jpress的详细教程!!!

一、YUM在线安装 1、查看Tomcat相关安装包 [rootlocalhost ~]# yum list | grep tomcat tomcat.noarch 7.0.76-16.el7_9 updates tomcat-admin-webapps.noarch 7.0.76-16.el7_9 updates tomcat-docs…

msvcr100.dll丢失的解决方法?三招解决msvcr100.dll丢失问题

最近我遇到了一个电脑问题&#xff0c;就是在运行某个软件时提示缺少msvcr100.dll文件。起初我并不知道这个文件是什么&#xff0c;也不知道它的作用&#xff0c;但通过一番搜索和了解&#xff0c;我对这个问题有了更深的理解&#xff0c;并且也得到了解决的办法。 解决方法一&…

分享学习java过程中遇到的一些网址

*****JavaWeb视频教程***** https://www.bilibili.com/video/BV1m84y1w7Tb?p4&spm_id_frompageDriver&vd_source841fee104972680a6cac4dbdbf144b50*****Java前端官网教程&#xff08;HTML、CSS、JS)***** https://www.w3school.com.cn/html/index.asp*****VS Code官网…

阶段性实验汇总

文章目录 前言一、实验目的与要求1.目的2.要求 二、实验拓扑三、实验步骤1.阅读实验拓扑2.配置基础环境3.配置DHCP及其中继服务器&#xff08;一&#xff09;DHCP主服务器&#xff08;二&#xff09;DHCP中继服务器(三)登录客户端验证 4.配置DNS服务器&#xff08;一&#xff0…

faac内存开销较大,为方便嵌入式设备使用进行优化(valgrind使用)

faac内存开销较大&#xff0c;为方便嵌入式设备使用进行优化&#xff0c;在github上提了issues但是没人理我&#xff0c;所以就搞一份代码自己玩吧。 基于faac_1_30版本&#xff0c;原工程https://github.com/knik0/faac faac内存优化: faac内存开销较大&#xff0c;为方便嵌入…

RS232转Profinet网关rs232转网口需要如何设置

大家好&#xff0c;今天我要给大家带来一个很有意思的案例分享。你们猜猜&#xff0c;这回我们要用捷米的一款神奇的网关JM-RS485/232-PN做什么呢&#xff1f;没错&#xff0c;我们要把一台扫码枪设备通过这个RS232转PROFINET网关&#xff0c;接入到一台西门子S7-1200PLC的Prof…

无涯教程-Lua - for语句函数

for 循环是一种重复控制结构&#xff0c;可让您有效地编写需要执行特定次数的循环。 for loop - 语法 Lua编程语言中 for 循环的语法如下- for init,max/min value, increment dostatement(s) end 这是 for 循环中的控制流程- 首先执行 init 步骤&#xff0c;并且仅执行一…

DT MAYA绑定

设置另外一边 控制器 结果 根骨骼 // 错误: line 0: 未应用冻结变换&#xff0c;因为 curve4.scaleX 被锁定。 骨骼旋转 轴向

关于latch up的重读

衬底电流容易导致寄生三极管导通(衬底电阻衬底电流》衬底压差)&#xff0c;更容易触发latchup&#xff1b; 一般常用的实际产品中会用衬底隔离的器件来做负压器件&#xff1b;用DNW&NBL组成一个隔离盆将整个负压区和正常电路分开&#xff0c;DNW&NBL接高电压&#xff1…

【福建事业单位-语言理解】03 语序选择-填空-接语

【福建事业单位-语言理解】03 语序选择-填空-接语 一、语句排序1.1 确定首句1.2 确定捆绑集团/确定局部顺序/确定尾句1.3确定尾句总结 二、语句填空题句子首句&#xff08;概括下文&#xff09;句尾&#xff08;总结前文/提对策&#xff09;句中&#xff08;承上启下&#xff0…

spring-bean配置信息重用(继承)和bean创建顺序是什么以及bean 对象的单例和多例讲解

&#x1f600;前言 本章是spring基于XML 配置bean系类中第5篇讲解spring-bean配置信息重用(继承)和bean创建顺序是什么以及bean 对象的单例和多例讲解 &#x1f3e0;个人主页&#xff1a;尘觉主页 &#x1f9d1;个人简介&#xff1a;大家好&#xff0c;我是尘觉&#xff0c;希…

Java-SPI机制详解

Java之SPI机制详解 1: SPI机制简介 SPI 全称是 Service Provider Interface&#xff0c;是一种 JDK 内置的动态加载实现扩展点的机制&#xff0c;通过 SPI 技术我们可以动态获取接口的实现类&#xff0c;不用自己来创建。这个不是什么特别的技术&#xff0c;只是 一种设计理念…

【MySQL】MVCC的实现原理

MVCC的实现原理 1.前期准备1.2.隐式字段1.3.undo log日志1.4.readView 2.MVCC的实现流程2.1.R C&#xff08;读已提交---隔离级别&#xff09;2.2.R R&#xff08;可重复读---隔离级别&#xff09; 3.面试题---->事务中的隔离性是如何保证的呢&#xff1f;(你解释一下MVCC) …

减少错误和重复工作:PDM系统的智能排错功能

减少错误和重复工作&#xff1a;PDM系统的智能排错功能 在产品开发和制造过程中&#xff0c;错误和重复工作常常是企业面临的挑战。这不仅浪费了宝贵的时间和资源&#xff0c;还可能导致产品质量下降和生产延误。PDM系统&#xff08;Product Data Management&#xff0c;产品数…

Jmeter阶梯式加压测试

熟悉阿里云性能测试PTS的都可以看到压测配置设置如下图&#xff0c;相比Jmeter简单的线程设置&#xff0c;要合理更直观。 但是我们会去研究&#xff0c;性能测试中&#xff0c;有时需要模拟一种实际生产中经常出现的情况&#xff0c; 即&#xff1a;从某个值开始不断增加压力…

【Linux】常用的基本指令

&#x1f466;个人主页&#xff1a;Weraphael ✍&#x1f3fb;作者简介&#xff1a;目前正在学习c和算法 ✈️专栏&#xff1a;Linux &#x1f40b; 希望大家多多支持&#xff0c;咱一起进步&#xff01;&#x1f601; 如果文章有啥瑕疵&#xff0c;希望大佬指点一二 如果文章对…

matplotlib绘制方波圆周分解动画

1 方波的圆周分解 在学习傅里叶变换的时候&#xff0c;有一个经典的示例是方波的分解。我们知道&#xff0c;方波可以分解为无数个正弦波的叠加。而正弦波&#xff0c;又可以看作是圆周运动在一条直线上的投影。当时为了理解这个事情&#xff0c;恐怕大家也花了不少时间。 学…

【MyBtis】各种查询功能

目录 【MyBtis】配置和映射 11.1 示例:实现表数据的增、删、改、查 1.创建工程mybatis_DML demo 2.创建数据库操作的工具类&#xff1a;DBOperatorMgr.java 3.创建映射接口 4.创建XML映射文件 5.测试 【MyBtis】配置和映射 MyBatis 的真正强大之外在于它的映射语句&#xf…