数据库课程设计学生选课信息管理系统

上传人:仙*** 文档编号:253590780 上传时间:2025-03-16 格式:DOC 页数:27 大小:6.29MB
收藏 版权申诉 举报 下载
数据库课程设计学生选课信息管理系统_第1页
第1页 / 共27页
数据库课程设计学生选课信息管理系统_第2页
第2页 / 共27页
数据库课程设计学生选课信息管理系统_第3页
第3页 / 共27页
资源描述:

《数据库课程设计学生选课信息管理系统》由会员分享,可在线阅读,更多相关《数据库课程设计学生选课信息管理系统(27页珍藏版)》请在装配图网上搜索。

1、 信息工程学院信息工程学院 课程设计报告 设计名称:设计名称: 数据数据库库课程设计课程设计 姓姓 名:名: 杨美丽杨美丽 学学 号:号:1134160211 1134160211 姓姓 名:名: 张晓魁张晓魁 学学 号:号:113416021134160232 32 姓姓 名:名: 张颖莉张颖莉 学学 号:号:113416021134160240 40 专业班级:专业班级: 软件工程软件工程 系系 (院) :院) : 信息工程学院信息工程学院 设计时间:设计时间: 201120012 学年第学年第一一学期学期 设计地点:设计地点: 数据库实验室数据库实验室 成绩:成绩: 数据库课程设计报告

2、第 1 页,共 27页 一课程设计目的 数据库课程设计是为数据库原理及应用课程而独立开设的实践性课程,对于巩固数据库知识,加强学生的实际动手能力和提高学生综合素质十分必要。通过本实验达到以下目的: (1) 培养学生具有 C/S 和 B/S/S 模式的数据库应用软件系统的设计和开发能力。 (2) 熟练掌握一种数据库系统(如 SQL SERVER)的使用。 (3) 熟练掌握一种数据库应用软件开发工具(如 POWERBUILDER 、ASP、VB.NET)的使用。 (4) 通过设计实际的数据库系统应用课题,进一步熟悉数据库管理系统的操作技术,提高动手能力,提高分析问题和解决问题的能力。 二课程设计任

3、务与要求: 1、任务:任务: 学生选课系统 问题描述: 1) 学校学生有一万多人。 2) 每个学生都有学号、学生姓名、学生性别、学生年龄、所在系别等信息。 3) 每门课程有课程号、课程名、学分、学期、学时。 4) 学生可以选修多门课程,一门课程可以供多个学生选修。 2、设计要求:设计要求: 1) 实现学生信息管理的信息添加、修改、删除。 2) 实现课程信息管理的信息添加、修改、删除。 3) 实现对所有学生选课管理的选课、查询。 4) 能够按学号、课程号查询学生的选课信息。 5) 能够按查询值查询。 6)设计一完整的数据库。要求掌握数据库的设计的每个步骤;掌握数据设计各阶段的输入、输出、设计环境

4、、目标和方法;熟练的使用 SQL 语言实现数据库以及数据库重要对象的建立、应用和维护。 三课程设计说明书 1 需求分析需求分析 (1 1)数据需求)数据需求 学生选课信息管理系统需要完成功能主要有: 用户登录窗体界面,包括用户名和密码。 学生选课信息管理系统窗体界面包含学生信息管理、课程信息管理、选课信息管理和退出本系统,点击子系统可以进入各个模块。 学生信息管理窗体有添加、修改、删除、退出的功能,包括学生学号、姓名、性别、年龄、所在系部。 课程信息管理窗体有添加、修改、删除、退出的功能,包括课程编号、课程名、学分、学期、学时。 学生选课与选课信息查询窗体有选课、查询与退出的功能,选课包括选择

5、学生与选择课程,选课查询包括查询内容与查询值。 数据库课程设计报告 第 2 页,共 27页 (2 2)事务事务需求需求 在登录窗体部分,要求: 可以输入用户名和密码进入系统学生选课信息管理系统主窗体。 在学生选课信息管理系统的主窗体部分,要求: 可以执行点击学生信息管理、 课程信息管理、 选课信息管理和退出本系统按钮进入的各个子系统操作。 在学生信息管理部分,要求: a.可以浏览学生信息。 b.可以对学生信息进行添加、修改、删除操作。 在课程信息管理部分,要求: a.可以浏览课程信息。 b.对课程信息可添加、修改、删除操作。 在学生选课与选课信息查询部分,要求: a.显示当前数据库中选课信息情

6、况。 b.对学生选课与选课信息查询有选课、查询与退出操作。 c.对学生选课信息有查询操作。 (3)(3)关系模式关系模式 (1) 登录(用户名,密码,用户分类) (2) 学生信息(学生学号,姓名,性别,年龄,所在系部) (3) 课程信息(课程编号,课程名,学分,学期,学时) (4) 学生选课(学生学号,课程编号,成绩) (5) 选课信息查询(学生学号, 课程编号) (4 4)数据流程图)数据流程图(DFD) 通过对系统需求的调查分析,细化软件功能,把系统划分为四个子系统,明确每个子系统所要完的主要逻辑功能,采用以图形的方式描绘数据在系统中流动和处理。 图 1-1 顶层数据流图 学生选课管理 系

7、统 学生 管理员 学生信息 选课信息 选课信息 图书信息 课程信息 图书信息 学生 学生 数据库课程设计报告 第 3 页,共 27页 图 1-2 一层数据流图 注: D1 选课信息数据库 D2 学生信息数据库 D3 用户登录数据库 D4 课程信息数据库 F1 登录信息 F2,F3 选课信息 F4 课程管理信息 F5 学生信息 图 1-3 二层数据流图 P2.1 选择查询 F2.1 F2 P2.2 直接选课 D1 P2.3 多条件查询 F3 F2.2 P 数据流 数据处理 D 数据存储 F F4 P3 D1 F5 课程信息 学生信息 P4 D2D3 D4 登 录 P1 选课查询 P2 F2 F1

8、 F3 数据库课程设计报告 第 4 页,共 27页 图 1-4 二层数据流图 图 1-5 二层数据流图 (5 5)数据字典)数据字典 为了使各数据流,数据处理过程,存储过程不能反映其中的数据成,数据项目,数据特性,所以用数据字典来对数据流图中的各成份进行具体的定义,为系统的分析,设计及以后的实现提供供有关元素一致性定义和详细的描述: 数据流字典数据流字典 数据流名称:用户登录 标志符:F1 别名:无 来源:用户 去向:查询处理过程(P2、P3、P4) 数据组成:用户名+密码 F4 P3.1 课程 P3.2 添 加 P3.4 删除 D3 F4 F4 P3.3 修改 F4 P4.1 学生信息 F5

9、 P4.2 添 加 P4.3 修改 P4.4 删除 D4 数据库课程设计报告 第 5 页,共 27页 数据流名称:选课查询 标志符:F2 别名:无 来源:学生 去向:查询处理过程(P2) 数据组成:选择学生|选择课程 数据流名称:直接选课 标志符:F2.1 别名:无 来源:学生 去向: 直接查询处理过程(P2.2) 数据组成:选择学生|选择课程 数据流名称:多条件查询 标志符:F2.2 别名:无 来源:学生 去向: 多条件查询处理过程(P2.3) 数据组成:学号|课程号|查询值 数据流名称:课程信息 标志符:F4 别名:无 来源:学生 去向: 课程信息处理过程(P3) 数据组成:课程编号|课程

10、名|学期|学时|学分 数据流名称:课程添加 标志符:F4 别名:无 来源:管理员 去向: 查询处理过程(P3.2) 数据组成:课程编号|课程名|学期|学时|学分 数据流名称:课程修改 标志符:F4 别名:无 来源:管理员 去向:查询处理过程(P3.3) 数据组成:课程编号|课程名|学期|学时|学分 数据流名称:课程删除 标志符:F6.2 别名:无 来源:管理员 去向: 课程管理处理过程(P4.3) 数据组成:课程编号|课程名|学期|学时|学分 数据流名称:学生管理信息 标志符:F5 别名:无 来源:管理员 数据库课程设计报告 第 6 页,共 27页 去向:学生管理处理过程(P4) 数据组成:学

11、号|姓名|性别|年龄|所在系 数据流名称:学生信息添加 标志符:F5 别名:无 来源:管理员 去向:学生管理处理过程(P4.2) 数据组成:学号|姓名|性别|年龄|所在系 数据流名称:学生信息修改 标志符:F5 别名:无 来源:管理员 去向:学生管理处理过程(P4.3) 数据组成:学号|姓名|性别|年龄|所在系 数据存储字典:数据存储字典: 数据存储名称:选课信息数据库 标志符:D1 描述:选课信息资料 流入数据流:F2 涉及处理: P2.2,P2.3 数据组成:学号+课程号+成绩 数据存储名称:学生信息数据库 标志符:D2 描述:学生信息资料 流入数据流:F5,F4 涉及处理:P2.2,P2

12、.3,P3.2 数据组成:学号+姓名+性别+年龄+所在系 数据存储名称:用户登录数据库 标志符:D3 描述:用户登录资料 流入数据流:F5 涉及处理:P4.2,P4.3,P4.4 数据组成:用户名+密码 数据存储名称:课程信息数据库 标志符:D4 描述:课程信息资料 流入数据流:F4 涉及处理:P3.2,P3.3,P3.4 数据组成:课程编号+课程名+学期+学时+学分 数据处理字典:数据处理字典: 数据处理名称:用户登录 标志符:P1 处理定义:登录系统 激发条件:所输入的用户名和密码正确 输入:F1 输出:F2,F5 数据处理名称:选课查询 标志符:P2 处理定义:查询选课信息 数据库课程设

13、计报告 第 7 页,共 27页 激发条件:所输入图书信息找到 输入:F2 输出:F3 数据处理名称:查询选择 标志符:P2.1 处理定义:选择查询方式 激发条件:已选择查询方式 输入:F2 输出:F2.1,F2.2 数据处理名称:多条件查询 标志符:P2.3 处理定义:查询选课信息 激发条件:所输入选课信息找到 输入:F2.2 输出:F3 数据处理名称:直接查询 标志符:P2.2 处理定义:直接查询选课信息 激发条件:所输入选课信息找到 输入:F2.1 输出:F3 数据处理名称:课程信息 标志符:P3 处理定义:管理课程信息 激发条件:选择管理子功能 输入:F4 输出:D4 数据处理名称:课程

14、添加 标志符:P3.1 处理定义:添加课程信息 激发条件:课程号 输入:F4.1 输出:D4 数据处理名称:课程修改 标志符:P3.2 处理定义:修改课程信息 激发条件:课程号 输入:F4.2 输出:D4 数据处理名称:课程删除 标志符:P3.2 处理定义:删除课程信息 激发条件:课程号 输入:F4.3 输出:D4 数据处理名称:学生信息 标志符:P4 处理定义:管理学生信息 激发条件:选择管理子功能 输入:F5 输出:D3 数据处理名称:学生添加 标志符:P4.1 处理定义:添加学生信息 数据库课程设计报告 第 8 页,共 27页 激发条件:学号 输入:F5.1 输出:D3 数据处理名称:学

15、生修改 标志符:P4.2 处理定义:修改学生信息 激发条件:学号 输入:F5.2 输出:D3 数据处理名称:学生删除 标志符:P4.3 处理定义:删除学生信息 激发条件:学号 输入:F5.3 输出:D3 2 概要设计概要设计 (1 1)实体图及实体图及 E E- -R R 图图 根据 1)所要实现的功能设计,可能建立它们之间的关系,进而实现逻辑结构功能。 学生选课信息管理系统可以划分的实体有:用户登录实体、学生信息实体、课程信息实体、学生选课信息实体、学生选课查询信息实体。用 E-R 图一一描述这些实体。 用户登录用户登录实体图:实体图: 图 2-1 用户登录实体及其属性图 学生信息实体学生信

16、息实体图:图: 图 2-2 学生信息实体及其属性图 课程信息实体图课程信息实体图 用户登录 用户名用户名 密码密码 课程信息 课程号 课程名 学分 学期 学时 学生信息 学号 所在系别 学生年龄 学生性别 学生姓名 数据库课程设计报告 第 9 页,共 27页 图 2-3 课程信息实体及其属性图 选课信息实体图选课信息实体图 图 2-4 选课信息实体及其属性图 总的总的 E-R 图:图: 图 2-5 实体及联系图 (2 2)关系图关系图 管理员 管理 管理 学生 课程 查询 选课 选修 1 1 m 1 m m m n 选课信息 学号 课程号 成绩 数据库课程设计报告 第 10 页,共 27页 图

17、-6 数据库存表关系图 3 逻辑设计逻辑设计 表 3-1 用户登录信息表 表中表中列名列名 数据类型数据类型 可否为空可否为空 说明说明 userName char(16) not null(主键主键) 用户名称用户名称 userPassword char(16) not null 密码密码 表 3-2 学生信息表 表中表中列名列名 数据类型数据类型 可否为空可否为空 说明说明 Sno char(10) not null(主键主键) 学号学号 Sname char(8) not null 姓名姓名 Ssex char(2) null 性别性别 Sage int null 年龄年龄 Sdept

18、char(20) null 所在系别所在系别 表 3-3 课程信息表 表中表中列名列名 数据类型数据类型 可否为空可否为空 说明说明 Cno char(10) Not null(主键主键) 课程号课程号 Cname char(20) Not null 课程名称课程名称 Ccredt int null 学分学分 Csemester int null 学期学期 Cperiod int Null 学时学时 表 3-4 选课信息表 表中表中列名列名 数据类型数据类型 可否为空可否为空 说明说明 Sno char(10) Not null(外主键外主键) 学生学学生学号号 数据库课程设计报告 第 11

19、页,共 27页 Cno char(10) Not null(外主键外主键) 课程号课程号 grade int null 成绩成绩 表 3-5 查询选课信息表 表中表中列名列名 数据类型数据类型 可否为空可否为空 说明说明 Sno char(10) Not null(外主键外主键) 学生学学生学号号 Cno char(10) Not null(外主键外主键) 课程号课程号 4 物理设计物理设计 数据库物理设计阶段的任务是根据具体计算机系统(DBMS 和硬件等)的特点, 为给定的数据库模型确定合理的存储结构和存取方法。所谓的“合理”主要有两个含义:一个是要使设计出的物理数据库占用较少的存储空间,另

20、一个对数据库的操作具有尽可能高的速度。主要体现在后者。 (1)建立索引: 对 tb1_Student 表在 Sno 属性列上建立聚集索引,在 Sname 属性列上建立非聚集索引。 对 tb1_Course 表在 Cno 上建立聚集索引,在 Cname、 Ccredt、Csemester、Cperiod 上建立非聚集索引。 对 tb1_SC 表在 Sno、Cno 上建立聚集索引,在 Grade 上建立非聚集索引 对 tb1_User 表在 userName 上建立聚集索引。 (2)存储结构 确定数据库的存储结构主要指确定数据的存放位置和存储结构,包括确定关系、索引、日志、备份等的存储安排及存储结

21、构,以及确定系统存储参数的配置。 将日志文件和数据库对象(表、索引等)分别放在不同的磁盘可以改进系统的性能。所以系统将日志文件和数据文件存放在不同磁盘上。 5 5 数据库建立数据库建立 (1)创建数据库创建数据库 create database SelectCourse on (name= SelectCourse _data,filename=d: SelectCourse _data.mdf, size=5MB, maxsize=20MB, filegrowth=2MB) log on (name= SelectCourse _log,filename=d: SelectCourse _l

22、og.ldf, size=1MB, maxsize=20MB, filegrowth=20%) (2)学生信息学生信息表建立表建立 use SelectCourse go create table tb1_Student (Sno char(5) primary key, 数据库课程设计报告 第 12 页,共 27页 sname char(20) unique, Ssex char(1), Sage int, Sdept char(15); go (3)课程信息课程信息表表建立建立 create table tb1_Course( Cno char(5), Cname char(10), Gr

23、ade char(1), Primary key (Cno); (4)选课选课表建立表建立 create table tb1_SC( Sno char(5), Cno char(5), Grade int, Primary key(Sno,Cno), Foreign key(Sno)References Student(Sno), Foreign key(Cno)References Course(Cno); (5)索引的创建索引的创建 USE SelectCourse GO ALTER TABLE dbo.tb1_Student ADD CONSTRAINT PK_tbl_Student P

24、RIMARY KEY CLUSTERED (Sno ASC )WITH (PAD_INDEX = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, ONLINE = OFF) ON PRIMARY 6 6 数据初始化数据初始化 (1)将将学生信息学生信息加入表加入表 tb1_Student 中中 insert into tb1_Student values(11001,李勇,男,20,CS) insert into tb1_Student values(11002,刘晨,男,19,CS) insert into tb1_Student value

25、s(11003,王敏,女,18,MA) insert into tb1_Student values(11004,张立,男,20,IS) (2)将将课程信息课程信息加入加入 tb1_Course 表中表中 insert into tb1_Course values(1,数据库,4); insert into tb1_Course values(2,数学,2); insert into tb1_Course values(3,信息系统,4); insert into tb1_Course values(4,操作系统,3); insert into tb1_Course values(5,数据结构

26、,4); insert into tb1_Course values(6,数据处理,2); insert into tb1_Course values(7,C 语言,4); (3)将将选课信息选课信息加入加入 tb1_SC 表中表中 insert into tb1_SC values(11001,1,92); insert into tb1_SC values(11001,2,85); 数据库课程设计报告 第 13 页,共 27页 insert into tb1_SC values(11001,3,92); insert into tb1_SC values(11002,2,88); inse

27、rt into tb1_SC values(11002,3,90); 7 7 数据库数据库用户用户权限管理权限管理 该系统设置两种类型的用户 (1) 管理员(superadministrator) 即管理员拥有所有的权限。 (2) 学生(student):可以对课程进行选课、查看自己的选课信息以及自己的学生信息。 8 8、建立触发器,存储过程、建立触发器,存储过程 -此代码主要是实现新建一存储过程,该存储过程的名字为 qchengji,其功能是按给定的学生姓名和课程名从 SC 表中查询该生所选该课程的成绩。 create procedure qchengji sname_in char(8),

28、cname_in char(20),score_out int output as begin select score_out=grade from tb1_Student,tb1_Course,tb1_SC where tb1_Student.Sno=tb1_SC.Sno and tb1_Course.Cno=tb1_SC.Cno and Sname=sname_in and Cname=cname_in end Go declare Sname_in char(8),Cname_in char(20),Score_out int select Sname_in=杨美丽,Cname_in=

29、cs11 exec qchengji Sname_in,Cname_in,Score_out output print Sname_in print Cname_in print Score_out go -此代码主要是实现新建一存储过程,该存储过程的名字为 cjcx,其功能是按给定的学号和课程号从 SC 表中查询该生所选该课程的成绩。 create procedure cjcx sno_in char(8),cno_in char(10),score_out int output as begin select score_out=grade from tb1_SC where tb1_SC

30、.Sno=sno_in and tb1_SC.Cno=cno_in end go declare Sno_in char(8),Cno_in char(10),Score_out int select Sno_in=1134160201,Cno_in=cs11 exec cjcx Sno_in,Cno_in,Score_out output print Sno_in print Cno_in print Score_out -此代码主要是实现新建一触发器,该触发器的名字为 score_sc_tri,其功能是对输入的成绩进 数据库课程设计报告 第 14 页,共 27页 行合法性检查,即确保输入的

31、成绩在 0-100 之间。 create trigger score_sc_tri on tb1_SC for insert,update as declare score_read int select score_read=grade from inserted if score_read=0 and score_read0 rollback transaction end 数据库课程设计报告 第 15 页,共 27页 9 9 系统实现系统实现 (1 1) 系统功能模块图:系统功能模块图: 系统功能模块图如图 10-1 图 9-1 系统功能模块图 四个模块的功能如下: 登录登录模块模块:

32、可以实现一般用户和管理员登录管理 学生信息管理学生信息管理: 主要用于学生信息管理,其中管理员可以对学生信息进行添加、修改、删除操作。学生可以查看自己的学生信息。 课程信息管理课程信息管理: 主要是课程的信息添加、修改、删除。 选课信息管理选课信息管理: 学生选课与选课信息查询窗体有选课、查询与退出的功能,选课包括选择学生与选择课程,选课查询包括查询内容与查询值。 (2 2) 前台开发平台的选择:前台开发平台的选择:C#C#.NET.NET (3 3) C#C#.NET.NET 与数据库的连接与数据库的连接 ADO.NET 是 C#.NET 访问数据库的主要方式。 ADO.NET 的数据访问方

33、式 ADO.NET 的数据存取API 提供3 种数据访问方式: a)通过ODBC 相连,访问支持早期ODBC 协议的数据库。 b)通过OLEDB 相连,访问SQL Server6.5, MicrosoftAccess, Oracle 或者其他有提供OLE DB 连接能力的数据库 c)使用SqlConnection 直接与SQL Server7.0以及SQL Server2005 相连 C#.NET访问数据库的具体过程 a)创建数据库连接 ADO.NET 中使用sqlConnection 类对SQL Server7.0 以及更高版本进行连接, 这个类的构造函数接受一个可选参数,称为连接字符串,

34、该字符串用于定义正在连接的数据库的类型、位置以及其他信息,这些属性用分号分隔,通常该字符串包含如下信息:Data Source 特性: 指定SQL Server 数据库所在计算机名称; Initial Catalog 特性: 指定连接的SQL Server 数据库的名称; User ID 和Pass-Word 特学生选课系统 用户登录 学生信息 管理 课程信息管理 选课信息管理 数据库课程设计报告 第 16 页,共 27页 性: 指定用SQL SERVER登录方式的有效帐户名和密码或设置为:Integrated Security=True设置为Windows 登录方式。 b ) 填充数据 创建

35、数据源连接以后,接下来创建数据适配器,适配器在创建过程中需要向其传递两个要素:用于包含结构化查询语句的数据描述和用于指明数据库连接信息的连接描述,创建后可利用Fill 方法,将所需的数据填充在一个数据集(DataSet)中。 c ) 关闭数据库的连接 由于DataSet采用是断开连接的方式,所以当把数据填充到数据集后即可断开与数据库的连接。 d) 为控件指定数据源 数据填充到数据集后,要在窗体上显示出来,则必须把相应的数据表绑定到数据控件上。 具体实现代码如下: public SqlConnection dataConnection = new SqlConnection(); public

36、SqlDataAdapter dataAdapter; public DataSet dataSet = new DataSet(); string connstr = server=PC-200906200558SQLEXPRESS;database=SelectCourse;integrated security=SSPI; public DataSet GetDataFormDB(string sqlStr) try dataConnection.ConnectionString = connstr; dataAdapter = new SqlDataAdapter(sqlStr, da

37、taConnection); dataSet.Clear(); dataAdapter.Fill(dataSet); dataConnection.Close(); catch (Exception ex) MessageBox.Show(ex.Message); dataConnection.Close(); if (dataSet.Tables0.Rows.Count != 0) return dataSet; else return null; public bool UpdateDB(string sqlStr) SqlConnection sqlConn = new SqlConne

38、ction(connstr); try 数据库课程设计报告 第 17 页,共 27页 SqlCommand cmdTable = new SqlCommand(sqlStr, sqlConn); cmdTable.CommandType = CommandType.Text; sqlConn.Open(); cmdTable.ExecuteNonQuery(); sqlConn.Close(); return true; catch (Exception ex) MessageBox.Show(ex.Message); return false; (4 4) 学生选课信息管理学生选课信息管理模

39、块的实现模块的实现 学生选课信息管理系统登录界面如图10-2 图9-2学生选课信息管理系统登录界面图 学生选课信息管理系统主界面如图10-3 数据库课程设计报告 第 18 页,共 27页 图9-3 学生选课信息管理系统主界面 学生信息管理运行界面如图10-4 图9-4学生信息管理运行界面 下面给出学生信息管理界面的主要代码: private void frmStudent_Load(object sender, EventArgs e) try ObjClose(); String sqlStr; 数据库课程设计报告 第 19 页,共 27页 DataBase db = new DataBas

40、e(); DataSet ds = new DataSet(); sqlStr = select * from tb1_Student; ds = db.GetDataFormDB(sqlStr); if (ds = null) MessageBox.Show(没有任何学生纪录); else dgrdvStudent.DataSource = ds.Tables0; dgrdvStudent_RowHeaderMouseClick(null, null); catch (Exception ex) MessageBox.Show(ex.Message); private void button

41、1_Click(object sender, EventArgs e) try if (button1.Text.Trim() = 添加) button1.Text = 确定; ObjOpen(); Clear(); button2.Enabled = false; button3.Enabled = false; button4.Enabled = false; else button1.Text = 添加; if (textBox1.Text.Trim() != null & textBox2.Text.Trim() != null) string sqlStr; sqlStr = ins

42、ert into tb1_Student values( + textBox1.Text.Trim() + , + textBox2.Text.Trim() + , + comboBox1.Text.Trim() + , + textBox3.Text.Trim() + , + textBox4.Text.Trim() + ); DataBase db = new DataBase(); bool b; 数据库课程设计报告 第 20 页,共 27页 b = db.UpdateDB(sqlStr); if (b = true) if (MessageBox.Show(添加成功!继续添加吗?, 添

43、加学生, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) = DialogResult.Yes) Clear(); ObjOpen(); button1.Text = 确定; else ObjClose(); button2.Enabled = true; button3.Enabled = true; button4.Enabled = true; dgrdvStudent.Enabled = true; else goto exit; else MessageBox.Sho

44、w(学号与姓名不能为空); textBox1.Focus(); button1.Text = 确定; RefreshData(); textBox1.SelectAll(); catch (Exception ex) MessageBox.Show(ex.Message); Clear(); ObjClose(); dgrdvStudent.Enabled = false; exit: ; 数据库课程设计报告 第 21 页,共 27页 课程信息运行界面如图 10-5 所示: 图9-5课程信息运行界面 下面给出课程信息管理界面的主要程序代码: private void frmCourse_Loa

45、d(object sender, EventArgs e) try ObjClose(); string sqlStr; DataBase db = new DataBase(); DataSet ds = new DataSet(); sqlStr = select * from tb1_Course; ds = db.GetDataFormDB(sqlStr); if (ds = null) MessageBox.Show(没有任何学生记录); else dCourse.DataSource = ds.Tables0; dCourse_RowHeaderMouseClick(null, n

46、ull); catch (Exception ex) 数据库课程设计报告 第 22 页,共 27页 MessageBox.Show(ex.Message); private void button1_Click(object sender, EventArgs e) try if (button1.Text.Trim() = 添加) button1.Text = 确定; ObjOpen(); Clear(); button2.Enabled = false; button3.Enabled = false; button4.Enabled = false; else button1.Text

47、= 添加; if (textBox1.Text.Trim() != null & textBox2.Text.Trim() != null) string sqlStr; sqlStr = insert into tb1_Course(Cno,Cname,Csemester,Ccredt,Cperiod)values( + textBox1.Text.Trim() + , + textBox2.Text.Trim() + , + comboBox1.Text.Trim() + , + textBox3.Text.Trim() + , + textBox4.Text.Trim() + ); Da

48、taBase db = new DataBase(); bool b; b = db.UpdateDB(sqlStr); if (b = true) if (MessageBox.Show(添加成功!继续添加吗?, 添加课程, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) = DialogResult.Yes) Clear(); ObjOpen(); button1.Text = 确定; else ObjClose(); button2.Enabled = true; but

49、ton3.Enabled = true; button4.Enabled = true; 数据库课程设计报告 第 23 页,共 27页 dCourse.Enabled = true; else goto exit; else MessageBox.Show(课程编号与课程名不能为空!); textBox1.Focus(); button1.Text = 确定; RefreshData(); textBox1.SelectAll(); catch (Exception ex) MessageBox.Show(ex.Message); Clear(); ObjClose(); dCourse.En

50、abled = false; exit: ; void RefreshData() string comStr; DataBase db = new DataBase(); DataSet ds = new DataSet(); comStr = select * from tb1_Course; ds = db.GetDataFormDB(comStr); if (ds != null) dCourse.DataSource = ds.Tables0; else MessageBox.Show(没有任何学生记录!); 学生选课信息运行界面如图 9-6 所示 数据库课程设计报告 第 24 页,

51、共 27页 图 9-6 学生选课信息运行界面 下面给出学生选课管理界面的主要代码: private void button1_Click(object sender, EventArgs e) try if (comboBox1.SelectedIndex = 0 & comboBox2.SelectedIndex = 0) sqlStr = insert into tb1_SC values( + comboBox1.Text.Trim().Substring(0, 8) + , + comboBox2.Text.Trim().Substring(0, 6) + ,0); connectio

52、n.ConnectionString = connStr; SqlCommand comm = new SqlCommand(sqlStr, connection); connection.Open(); comm.ExecuteNonQuery(); connection.Close(); MessageBox.Show(选课成功!, 学生选课); else MessageBox.Show(请先选择学生和课程!); catch (Exception ex) MessageBox.Show(ex.Message); 数据库课程设计报告 第 25 页,共 27页 MessageBox.Show(

53、该生已经选择了该课程!, 不能重选, MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1); comboBox1.SelectedIndex = -1; comboBox2.SelectedIndex = -1; RefreshData(); private void button2_Click(object sender, EventArgs e) try if (selectCondition = tb1_SC.Sno) str = textBox1.Text.Trim(); if (s

54、electCondition = tb1_SC.Cno) str = textBox1.Text.Trim(); if (comboBox3.SelectedIndex = -1 | textBox1.Text = ) MessageBox.Show(请选择查询条件并输入查询值!); else sqlStr = select tb1_SC.Sno,tb1_Student.Sname, + tb1_SC.Cno,tb1_Course.Cname,tb1_SC.grade from + tb1_Student inner join (tb1_Course inner join + tb1_SC o

55、n tb1_Course.Cno=tb1_SC.Cno) on tb1_Student+ .Sno=tb1_SC.Sno where+ selectCondition + = + textBox1.Text.Trim() + ; connection.ConnectionString = connStr; adapter = new SqlDataAdapter(sqlStr, connection); DataSet ds = new DataSet(); adapter.Fill(ds); if (ds.Tables0.Rows.Count = 0) MessageBox.Show(没有符

56、合条件的选课记录!); else comboBox1.DataSource = ds.Tables0; SetHeaderText(); 数据库课程设计报告 第 26 页,共 27页 1 10 0 课程设计心得体会课程设计心得体会 这次的课程设计可以说是为毕业设计做的一个预演,做起来真的困难重重,深刻体会到做一个软件真的很不容易,里面需要的很多知识我们没有接触过,经过自己课下去图书馆借书补充自己的知识以及在老师的帮助下,终于把系统完成了。这个软件还有许多不足之处需要去改。现在能力有限也只能做到这样了。 通过做这次课程设计发现还有很多知识没有吃透,这需要我们不断的实践,不断的自学习,不断的发现问

57、题去思考问题。 另外我还充分体会了从事软件开发工作需要特别严谨认真的态度和作风,一点都马虎不得。每一个细微的细节都必须十分的注意,如果不认真思考决策,就会出现或大或小的错误,如果早期的错误隐藏下来,对后面的工作影响就会很大,甚至有时要推倒很多前面做的工作重来。有时候,我自己觉得我写的程序非常的正确,但是就是编译通不过,在查找错误的过程中,面临着否认自己的过程,非常的痛苦,而且由于自己的经验及各方面的能力的不足,所以进展的速度非常的缓慢,往往几天的时间还没有一点进展。这时候,我一般是先自己通过书本,手册和资料找解决办法,实在没辙了才向专家请教。尽管向专家请教解决问题比较快,自己钻研花的时间较多,

58、但我强迫自己独立的思考对我的学习提高帮助非常大。 在开始编写程序的时候,我看到别人的软件功能非常的详细,而且界面非常的漂亮,总希望自己的软件也非常的完善,但是,经过二个月的学习,发现编一个优秀的软件决不是一蹴而就的事情,需要长时间的积累和经验。我认清自己的能力后,我就特别注意在工作的过程中不贪图大而全,而是根据自己的能力,制定适当的目标。 由于我的知识浅薄,经验不足及阅历颇浅,因此,在该系统的设计方面还有很多不足,比如功能过少,界面不够醒目等问题,我会在工作的使用过程中,根据工作的具体要求不断的修改,完善,争取使该系统慢慢趋向完美。 在本系统的设计过程和课程设计报告的编写过程中,老师和同学都给予了我许多无私的帮助,尤其是我的指导老师杨锋英老师给我的系统设计提出了很多宝贵的修改意见,在这里,我向这些无私帮助我的人表示衷心的感谢。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!