当前位置: 首页 > article >正文

ASP.NET 网上选课系统的设计与实现

1 系统设计与实现
1.1 数据库设计
为充分保护数据的一致性,数据库中各表都规范化设计,下图是系统数据库中使用的表以及各表之间的关系:
在这里插入图片描述

下面就各个表分别给出说明:
(1)课程基本信息(CourseInfo)表,保存课程的基本信息:

添加图片注释,不超过 140 字(可选)

1CourseID:课程ID,自动编号;
2CourseName:课程名称;
3TeacherID:教师ID,对应TeacherInfo表的TeacherID;
4CourseDes:课程描述;
5IsDeleted:是否删除,为保证数据安全,删除时并不物理删除,只将此字段置1;
6MajorID:专业ID,此课程对应的专业,与MajorInfo表的MajorID对应;
(2)专业基本信息(MajorInfo)表,保存各院系的专业基本信息:

添加图片注释,不超过 140 字(可选)

1MajorID:专业ID,自动编号;
2MajorName:专业名称;
3DeptID:院系ID,对应DeptInfo表的DeptID;
4IsDeleted:是否删除,为保证数据安全,删除时并不物理删除,只将此字段置1;
(3)学生选课信息(StuCourse)表,保存学生的选课信息:

添加图片注释,不超过 140 字(可选)

1StuCourseID:选课ID,自动编号;
2StudentID:学生ID,对应StudentInfo表的StudentID字段;
3CourseID:课程ID,对应CourseInfo表的CourseID字段;
此表中的每一条记录表示了某一个学生选择了某一门课程。

(4)院系基本信息(DeptInfo)表,保存学校的院系信息:

添加图片注释,不超过 140 字(可选)

(5)教师基本信息(TeacherInfo)表,保存学校教师的基本信息:

添加图片注释,不超过 140 字(可选)

1TeacherID:教师ID,自动编号;
2TeacherName:教师姓名;
3TeacherNumber:教师工号;
4DeptID:教师所属专业ID,对应DeptInfo表的DeptId字段;
5IsDeleted:是否删除,为保证数据安全,删除时并不物理删除,只将此字段置1;
(6)学生基本信息(TeacherInfo)表,保存学校学生的基本信息:

添加图片注释,不超过 140 字(可选)

1StudentID:学生ID,自动编号;
2StudentName:学生姓名;
3StudentNumber:学生学号;
4StudentGender:学生性别;
5DeptID:学生所属专业ID,对应DeptInfo表的DeptId字段;
6MajorID:学生所属院系ID;
7IsDeleted:是否删除,为保证数据安全,删除时并不物理删除,只将此字段置1;
(7)登录信息(Users)表,保存登录账号信息:

添加图片注释,不超过 140 字(可选)

1UserID:账号ID,自动编号;
2Name:登录名称;
3Pass:登录密码;
4Type:账号类型,1为管理员,2为教师,3为学生;
5ID:登录者身份ID,如为管理员,则此字段表示管理员ID,如为教师,则此字段表示教师ID。
1.1 模块设计
1.1.1 登录模块设计
登录页面为系统的起始页面,登录界面设计如下图所示:

添加图片注释,不超过 140 字(可选)

登录模块的功能是判断登录用户的权限以及将用户导航到不同的页面,管理员、教师和学生登录后的页面都是不相同的。在这个模块使用到了Auth这个类来完成主要的登录操作。
主要代码如下:
///

 /// 判断用户名和密码是否正确
 /// </summary>
 public bool Login(string name, string pass)
 {
 string sqlString = "select count(*) from Users where name='"+name+"' and pass='"+pass+"'";
 object obj = SqlHelper.ExecuteScalar(SqlString,CommandType.Text, sqlString);
 if(obj!=null && obj.ToString()!="0")
 return true;
 else
 return false;
 }
 /// <summary>
 /// 判断登录类型,1为学生,2为老师,3为管理员
 /// </summary>
 public int LoginType(string name)
 {
 string sqlString = "select type from Users where name='"+name+"'";
 object obj = SqlHelper.ExecuteScalar(SqlString,CommandType.Text, sqlString);
 if(obj!=null && obj.ToString()!="0")
 return int.Parse(obj.ToString());
 else
 return -1;
 }

登录时调用此函数,传入参数分别为用户名和密码,函数中对传入的用户名和密码与数据库中的查询结果比较,如果正确,返回true,否则返回false,完成登录账号判断。

链接:https://pan.baidu.com/s/1Xwd0U_KktL0hRFPaggIOGQ?pwd=6688
提取码:6688


http://www.kler.cn/news/156252.html

相关文章:

  • 二叉查找树和红黑树
  • 卖家低价侵权了怎么处理
  • 一款自动帮你生成UI界面和代码的AI神器
  • MySQL练习题,学生成绩查询练习题,附带答案
  • JIRA部分数据库结构
  • Spring AOP解析
  • 基于Java SSM框架实现美好生活九宫格日志网站系统项目【项目源码+论文说明】
  • Docker push 命令
  • 在CentOS7下安装Docker与Docker Compose
  • 举例说明自然语言处理(NLP)技术。
  • 二分查找算法:搜索有序数组中目标元素的利器
  • 松下、书客、明基护眼台灯值不值得买?热门护眼台灯真实测评!
  • 客户销售目标拆解:数据驱动的方法和策略
  • 【LeeCode】142.环形链表II
  • 开启gitlab中远程连接pgsql
  • 燃料电池汽车市场分析:预计2028年将达到118亿美元
  • 前端需要掌握的技术有哪些方面
  • Kubernetes(K8s)Service详解-07
  • 【数电笔记】17-具体函数的卡诺图填入
  • 关于svn如何上传一个完整的项目
  • OpenAI发生的大事件总结!
  • 含mask的单通道灰度图内容可视化python
  • Android 10.0 状态栏系统图标显示分析
  • JS的空值合并运算符??与逻辑空赋值??=
  • 贝叶斯分类器(Bayesian Classifier)
  • 极智芯 | 解读国产AI算力 璧仞产品矩阵
  • 基于大语言模型的垂直领域知识问答系统流程学习
  • 【【ZYNQ-自定义IP核-IP核封装于接口定义实验】】
  • [Golang] 高频次和高并发下的随机数重复问题的解决方案
  • 35、AD模数转换DA数模转换