位置: IT常识 - 正文

数据库系统课程设计(高校成绩管理数据库系统的设计与实现)(数据库系统课程学什么)

编辑:rootadmin
数据库系统课程设计(高校成绩管理数据库系统的设计与实现)

推荐整理分享数据库系统课程设计(高校成绩管理数据库系统的设计与实现)(数据库系统课程学什么),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:数据库系统课程设计选题,数据库系统课程设计教学信息数据库,数据库系统课程学什么,数据库系统课程设计总结,数据库系统课程设计源代码,数据库系统课程设计选题,数据库系统课程设计选题,数据库系统课程设计,内容如对您有帮助,希望把文章链接给更多的朋友!

目录

1、需求分析 1

1.1 数据需求描述 1

1.2 系统功能需求 3

1.3 其他性能需求 4

2、概念结构设计 4

2.1 局部E-R图 4

2.2 全局E-R图 5

2.3 优化E-R图 6

3、逻辑结构设计 6

3.1 关系模式设计 6

3.2 数据类型定义 6

3.3 关系模式的优化 8

4、物理结构设计 9

4.1 聚簇设计 9

4.2 索引设计 9

4.3 分区设计 10

5、数据库实施 10

5.1 基本表建立 10

5.2 视图的建立 17

5.3 索引的建立 22

5.4 触发器建立 23

5.5 建存储过程 26

6、应用系统开发与试运行 27

6.1 开发平台和开发环境介绍。 27

6.2 前台界面与后台数据库连接说明,代码实现。 27

6.3 系统各功能设计和运行界面截图。 29

7、实验总结 42

7.1 遇到的问题和解决的办法 46

7.2 系统设计的不足 47

7.3 进一步改进思路和体会 47

1.需求分析

开发平台:Microsoft Visual Studio 2013 开发环境:微软在Builder 2013开发者大会上发布了Visual Studio 2013预览版,并且发布其程序组件库.NET 4.5.1的预览版,该软件已于北京时间2013年11月13日23:00时正式发布。Visual Studio 2013 预览版以 Visual Studio 2012 和后续的Microsoft Visual Studio 更新中的进展为基础构建而成,为开发团队提供需要的解决方案,使其接纳这种转变并开发和交付利用下一波Windows 平台创新 (Windows 8.1) 的新式应用程序,同时在所有 Microsoft 平台上支持多种设备和服务。

1.1 数据需求描述 

分析系统的数据需求,用数据字典和数据流图描述系统的数据需求,一般要求有2级(初级和详细级)数据流图,并确定系统开发边界。

1.2 系统功能需求 

系统功能框架介绍,处理模块描述。

管理员

添加教师名单查询教师名单修改教师信息删除教师信息添加学生名单查询学生名单修改学生名单统计生源地信息修改管理员密码重置教师密码重置学生密码

学生

查询个人基本信息查询个人成绩查询班级课表查询个人课表修改个人密码查询自己的总学分

教师

查询教师个人信息查询个人任课信息查询所任课程平均成绩查询所任课程学生排名提交所任课程的学生成绩修改个人密码1.3 其他性能需求

1.3 其他性能需求

(1)用户输入出错时,有错误提示。

(2)给管理员,教师,学生不同的权限,提高数据安全性;

(3)创建触发器,存储过程,防止数据不一致;

2、概念结构设计2.1 局部E-R图

画出局部的E-R图,进一步进行解释说明。

2.2 全局E-R图

合并成全局的E-R图,5个数据类别之间存在6个关系。

2.3 优化E-R图

因为本次的E-R已经符合了要求,这里就不需要优化了。

3、逻辑结构设计3.1 关系模式设计

教师teachers(教师编号,教师姓名,教师性别,教师年龄,教师职称,联系电话)

专业major(专业编号,专业名称)

班级class(班级编号,班级名称,专业编号)

学生students(学号,姓名,性别,年龄,地区,已修学分,班级编号)

课程course(课程编号,课程名称,课程学时,教师姓名,课程学期,考核方式,学分)

开设 class-course(课程编号,班级编号)

上课 teacher-class(教师编号,班级编号)

授课 teacher-course(教师编号,课程编号)

成绩报告 reports (学号,课程编号,学期,成绩,教师姓名)

管理员账号administer-account(管理员账号,管理员密码)

教师账号Teachers-account(教师账号,教师密码)

学生账号students-account(学生账号,学生密码)

3.2 数据类型定义教师Teacher表

表1  Teacher表

数据项名

数据类型

长度

完整性约束

教师编号

char

10

主键

教师姓名

char

10

教师性别

char

5

教师年龄

int

职称

char

10

联系电话

char

20

专业Major表

表2  Major表

数据项名

数据类型

长度

完整性约束

专业编号

char

10

主键

专业名称

char

10

班级Class表

表3  class表

数据项名

数据类型

长度

完整性约束

班级编号

char

10

主键

班级名称

char

10

专业编号

char

10

外键

学生表Students表

表4  students表

数据项名

数据类型

长度

完整性约束

学号

char

12

主键

姓名

char

10

性别

char

5

年龄

int

生源所在地

char

20

已修学分

float

班级编号

char

10

外键

课程Course表

表5  courses表

数据项名

数据类型

长度

完整性约束

课程编号

char

10

主键

课程名称

char

10

教师姓名

char

10

课程学期

char

20

课程学时

int

>0

考核方式

char

5

学分

float

>0

开设 class-course表

表6  class-course表

数据项名

数据类型

长度

完整性约束

班级编号

char

10

主键

外键

课程编号

char

10

外键

上课 teacher-class表

表7  teacher-class表

数据项名

数据类型

长度

完整性约束

教师编号

char

10

主键

外键

班级编号

char

10

外键

授课 teacher-course表

表8  teacher-course表

数据项名

数据类型

长度

完整性约束

教师编号

数据库系统课程设计(高校成绩管理数据库系统的设计与实现)(数据库系统课程学什么)

char

10

主键

外键

课程编号

char

10

外键

成绩报告表reports表

表9  reports表

数据项名

数据类型

长度

完整性约束

学号

char

12

主键

外键

课程编号

char

10

外键

学期

char

10

成绩

int

教师姓名

char

10

教师账号

表10  Teacher-account表

数据项名

数据类型

长度

完整性约束

教师编号

char

10

主键

教师密码

char

10

管理员账号

表11  Admin-account表

数据项名

数据类型

长度

完整性约束

管理员编号

char

10

主键

管理员密码

char

10

学生账号

表12  student-account表

数据项名

数据类型

长度

完整性约束

学生编号

char

12

主键

学生密码

char

10

3.3 关系模式的优化

该关系模式已经满足规范化需求,这里不进行规范化处理。

4、物理结构设计4.1 聚簇设计

教师Teacher(教师编号)

课程Course(课程编号)

学生Students(学生编号,班级编号)

班级Class(班级编号)

原因:这几张表都是实体表,同时聚簇中的属性都是主键或是外键,且被访问次数高,而其他表或者这些表上的其他属性被访问次数较低,没有考虑聚簇的必要。

原则:

1基本表中该属性访问次数较多

2基本表中某属性列重复率较高

3基本表中某属性列的值修改很少,或者增加和删除元组次数较少

4.2 索引设计

建立索引的一般规则:

在主键属性列和外键属性列上通常都可以分别建立索引,不仅有助于唯一性检查和完整性检查,而且可以加快连接查询的速度。以查询为主的关系可建立尽可能多的索引。对等值连接,但满足条件的元组较少的查询可以考虑建立索引。如果查询可以从索引直接得到结果而不必访问关系,则对此种查询可以建立索引。

所以我们建了这些索引:

  (1)

教师表Xum_Teachers18 索引:(教师编号 xm_Tno18)

create unique index Tea_Tno on Xum_Teachers18(xm_Tno18)

  (2)

课程表Xum_Courses18 索引:(课程编号xm_Cno18)

create unique index Cour_Cno on Xum_Courses18(xm_Cno18)

(3)

班级表 Xum_Class18 索引:(班级编号 xm_CLno18, 专业编号xm_Mno18)

create unique index Mno_CLno on Xum_Class18(xm_CLno18,xm_Mno18)

(4)

学生表Xum_Students18 索引:(学生学号xm_Sno18,班级编号xm_CLno18)

create unique index CLno_Sno on Xum_Students18(xm_Sno18,xm_CLno18)

(5)

成绩报告表Xum_Reports18 索引:(学生编号xm_Sno18 ,课程编号xm_Cno18)

create unique index Cno_Sno on Xum_Reports18(xm_Sno18,xm_Cno18)

(6)

专业表 xm_Cno18  索引:(专业编号xm_Mno18)

create unique index Majo_Mno on Xum_Majors18(xm_Mno18)

4.3 分区设计

磁盘分区设计的一般原则:

1减少访问冲突,提高I/O并发性。多个事物并发访问同一磁盘时,会产生磁盘访问冲突而导致效率低下,如果事务访问数据均能分布于不同磁盘上,则I/O可并发执行,从而提高数据库访问速度。

2分散热点数据,均衡I/O负担。在数据库中数据访问的频率是不均匀的,那些经常被访问的数据成为热点数据,此类数据宜分散存在于不同的磁盘上,以均衡各个磁盘的负荷,充分发挥多磁盘的并行操作的优势。

3保证关键数据快速访问,缓解系统瓶颈。在数据库中有些数据如数据字典等的访问频率很高,为保证对它的访问不直接影响整个系统的效率,可以将其存放在某一固定磁盘上,以保证其快速访问。

实际例子有将关系和索引放在不同磁盘上,查询时两个磁盘同时运行提高物理I/O效率。

不过考虑到本次课题数据量有限,暂不考虑分区设计。

5、数据库实施5.1 基本表建立(1)教师表建立 Xum_Teachers18

图10 建立教师表

create table Xum_Teachers18 (xm_Tno18 char(10) primary key,xm_Tname18 char(10),xm_Tsex18 char(5),xm_Tage18 int,xm_Tpos18 char(10),xm_Tpho18 char(20))

(2)专业表建立Xum_Majors18

create table Xum_Majors18(xm_Mno18 char(10) primary key,xm_Mname18 char(10))

(3)班级表建立Xum_Class18

create table Xum_Class18(xm_Clno18 char(10) primary key,xm_Clname char(10),xm_Mno18 char(10)constraint Major_Class foreign key(xm_Mno18) references Xum_Majors18)

(4)学生表Xum_Students18

create table Xum_Students18(xm_Sno18 char(12) primary key,xm_Sname18 char(10),xm_Ssex18 char(5),xm_Sage18 int,xm_Sorig18 char(20),xm_Ssum18 float,xm_Clno18 char(10)constraint Class_Student foreign key(xm_Clno18) references Xum_Class18)

 (5)课程表 Xum_Courses18

create table Xum_Courses18(xm_Cno18 char(10) primary key,xm_Cname18 char(10),xm_Tname18 char(10),xm_Cdate18 char(20),xm_Cway18 char(5),xm_Ccredit18 float check(xm_Ccredit18>0),xm_Chour18 int check(xm_Chour18>0))

 (6)授课表 Xum_Tea_Cour18

create table Xum_Tea_Cour18(xm_Tno18 char(10),xm_Cno18 char(10),primary key(xm_Tno18,xm_Cno18),constraint teacher_course foreign key(xm_Tno18) references Xum_Teachers18,constraint tea_cour foreign key(xm_Cno18) references Xum_Courses18)

(7)班级上课表Xum_Class_Cour18

create table Xum_Class_Cour18(xm_Clno18 char(10),xm_Cno18 char(10),primary key(xm_Clno18,xm_Cno18),constraint class_course foreign key(xm_Clno18) references Xum_Class18,constraint clas_cour foreign key(xm_Cno18) references Xum_Courses18)

(8)教师任课表Xum_Teac_Class18

create table Xum_Teac_Class18(xm_Tno18 char(10),xm_Clno18 char(10),primary key(xm_Tno18,xm_Clno18),constraint tea_class foreign key(xm_Tno18) references Xum_Teachers18,constraint teach_class foreign key(xm_Clno18) references Xum_Class18)

(9)成绩表Xum_Reports18

create table Xum_Reports18(xm_Cno18 char(10),xm_Sno18 char(12),xm_Score18 float,xm_date char(10),xm_Tname18 char(10),primary key(xm_Cno18,xm_Sno18),constraint cour foreign key(xm_Cno18) references Xum_Courses18,constraint stude foreign key(xm_Sno18) references Xum_Students18)

(10)管理员账号密码表 (11)学生账号密码表(12)教师账号密码表

create table Students_account18(xm_Sno18 char(12) primary key,xm_Skey18 char(10))create table Teachers_account18(xm_Tno18 char(12) primary key,xm_Tkey18 char(10))create table Admin_account18(xm_Ano18 char(12) primary key,xm_Akey18 char(10))

 (13)数据库表预览

5.2 视图的建立

(1)学生成绩

create view 学生成绩统计as(select Xum_Students18.xm_Sno18,Xum_Students18.xm_Sname18,Xum_Courses18.xm_Cname18,Xum_Class18.xm_Clname,Xum_Reports18.xm_Tname18,Xum_Courses18.xm_Ccredit18,Xum_Courses18.xm_Cdate18,Xum_Reports18.xm_Score18from Xum_Reports18,Xum_Students18,Xum_Courses18,Xum_Class18where Xum_Students18.xm_Sno18=Xum_Reports18.xm_Sno18and Xum_Reports18.xm_Cno18=Xum_Courses18.xm_Cno18and Xum_Class18.xm_Clno18=Xum_Students18.xm_Clno18)

(2)课程平均成绩

create view 每门平均成绩as(select xm_Cno18,avg(xm_Score18)平均分from Xum_Reports18group by xm_Cno18)

(3)课程和学分统计

create view 课程和学分统计as(select xm_Sno18,xm_Cname18,xm_Ccredit18from 学生成绩统计)

(4)教师课表

create view 教师课表as(select xm_Tno18,Xum_Teachers18.xm_Tname18,xm_Cno18,xm_Cname18,xm_Ccredit18,xm_Chour18from Xum_Teachers18,Xum_Courses18where Xum_Teachers18.xm_Tname18=Xum_Courses18.xm_Tname18)

(5)班级课表

create view 班级课表as(select Xum_Class18.xm_Clno18,xm_Clname,Xum_Courses18.xm_Cno18,xm_Cname18,xm_Cdate18,xm_Ccredit18,xm_Chour18from Xum_Class18,Xum_Courses18,Xum_Class_Cour18where Xum_Class18.xm_Clno18=Xum_Class_Cour18.xm_Clno18and Xum_Class_Cour18.xm_Cno18=Xum_Courses18.xm_Cno18)

(6)生源地人员统计

create view 生源地人员统计as(select xm_Sorig18,count(xm_Sno18)数量from Xum_Students18group by xm_Sorig18)

(7)教师课程成绩

create view 教师课程成绩as(select xm_Tno18,Xum_Teachers18.xm_Tname18,xm_Cno18,xm_Sno18,xm_Score18from Xum_Teachers18,Xum_Reports18where Xum_Teachers18.xm_Tname18=Xum_Reports18.xm_Tname18)

(8)教师与学生成绩

 (9)视图预览

 5.3 索引的建立create unique index Tea_Tno on Xum_Teachers18(xm_Tno18)create unique index Cour_Cno on Xum_Courses18(xm_Cno18)create unique index Mno_CLno on Xum_Class18(xm_CLno18,xm_Mno18)create unique index Majo_Mno on Xum_Majors18(xm_Mno18)create unique index CLno_Sno on Xum_Students18(xm_Sno18,xm_CLno18)create unique index Cno_Sno on Xum_Reports18(xm_Sno18,xm_Cno18)

 5.4 触发器建立 

(1)教师删除(删除一个教师时,与教师相关的记录全都删除)

    这里漏写了删除教师账号信息 如果运行出错了 可以参考“学生删除“代码 改写触发器

create trigger 教师删除18on Xum_Teachers18for delete as delete xm_Tno18 where Xum_Tea_Cour18.xm_Tno18=(select xm_Tno18 from deleted) and Xum_Teac_Class18.xm_Tno18=(select xm_Tno18 from deleted)

(2)学生删除(删除一个学生时,与该学生相关的记录全都删除

create trigger 学生删除18on Xum_Students18for delete as begin delete from Xum_Reports18 where Xum_Reports18.xm_Sno18 in (select xm_Sno18 from deleted) delete from Students_account18 where Students_account18.xm_Sno18 in (select xm_Sno18 from deleted) end

 (3)学生统计(提交成绩时,将》=60的成绩记为合格,同时加上该课程学分)

create trigger 学分统计18 on Xum_Reports18for insertas update Xum_Students18 set xm_Ssum18=( select sum(xm_Ccredit18) from Xum_Courses18 where xm_Cno18 in ( select xm_Cno18 from Xum_Reports18 where xm_Score18>=60 and Xum_Reports18.xm_Sno18 in (select xm_Sno18 from inserted) ) ) where Xum_Students18.xm_Sno18 in ( select xm_Sno18 from inserted )

(4)教师更新

create trigger 教师更新on Xum_Teachers18for updateas if update(xm_Tno18) begin update Xum_Tea_Cour18 set xm_Tno18=i.xm_Tno18 from deleted d,inserted i ,Xum_Tea_Cour18 t where t.xm_Tno18=d.xm_Tno18 end begin update Xum_Teac_Class18 set xm_Tno18=i.xm_Tno18 from deleted d,inserted i,Xum_Teac_Class18 c where c.xm_Tno18=d.xm_Tno18 end

(5)学生添加 自动注册新用户 默认密码12345

create trigger 插入创建学生新用户18 on Xum_Students18 for insert as declare @sno char(10) begin select @sno=xm_Sno18 from inserted insert into Students_account18 values(@sno,'12345') end

 (6)教师添加 自动注册新用户 默认密码12345

create trigger 插入创建教师新用户18 on Xum_Teachers18 for insert as declare @tno char(10) begin select @tno=xm_Tno18 from inserted insert into Teachers_account18 values(@tno,'12345') end

5.5 建存储过程

(1)插入新学生

create procedure pro_插入新学生@sno char(12),@sname char(10),@ssex char(5),@sage int,@sorig char(20),@ssum float,@clno char(10)as insert Xum_Students18(xm_Sno18,xm_Sname18,xm_Ssex18,xm_Sage18,xm_Sorig18,xm_Ssum18,xm_Clno18)values(@sno,@sname,@ssex,@sage,@sorig,@ssum,@clno)select *from Xum_Students18go

(2)自动算学分

create procedure pro_输入成绩自动生成学分@sno char(12),@cno char(10),@cname char(10),@cdate char(10),@score int,@tname char(10),@credit floatasbegin insert into pro_选修 values(@sno,@cno,@score) update Xum_Students18 set xm_Ssum18=xm_Ssum18+@credit where Xum_Students18.xm_Sno18=@snoend6、应用系统开发与试运行6.1 开发平台和开发环境介绍。

     Visual studio 2013 + SQL server 2014

     Win10系统

6.2 前台界面与后台数据库连接说明,代码实现。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;using System.Data.SqlClient;using System.Windows.Forms;namespace WindowsFormsApplication1{ class sqlConnect { public SqlConnection conn = null; public sqlConnect() { if (conn == null) { string connectString = "Data Source =LAPTOP-FPCD1SM8\\SQL2014; database =XumMIS18; " + "Integrated Security = True"; conn = new SqlConnection(connectString); if (conn.State == ConnectionState.Closed) conn.Open(); } } public void closeConnect() { if (conn.State == ConnectionState.Closed) conn.Close(); } public DataSet Getds(string sql) { if (conn.State == ConnectionState.Closed) conn.Open(); DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(sql, conn); da.Fill(ds); conn.Close(); return ds; } public int OperateData(string sql) { if (conn.State == ConnectionState.Closed) conn.Open(); SqlCommand sqlcom = new SqlCommand(); sqlcom.CommandText = sql; sqlcom.CommandType = CommandType.Text; sqlcom.Connection = conn; int x = sqlcom.ExecuteNonQuery(); conn.Close(); return x; } public DataSet BindDataGridView(DataGridView dgv, string sql) { if (conn.State == ConnectionState.Closed) conn.Open(); SqlDataAdapter da = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet(); da.Fill(ds); dgv.DataSource = ds.Tables[0]; return ds; } }}6.3 系统各功能设计和运行界面截图。

   (1)登录界面如图所示

①登入异常

(输入的密码、账号错误,提示框报错)

图43 账号或密码错误

②输入不完整

③验证成功 

 (2)进入学生界面

 ①个人信息查询

②成绩查询,选择学年查询

③班级课表查询

 ④学生课表和学分查询

 ⑤修改密码

 输入为空

 原密码输入错误(原密码为123456)

 两次新密码验证不通过

 修改成功

 (3)教师界面

 ①教师个人信息查询 

 ②教师任课查询

 ③所任课程平均成绩

 ④查询选择该课程学生的分数排名(分数按降序)

 ⑤教师提交学生成绩 添加成绩(课程里只有这个老师教的课)

 确定课程出现选择该课程学生的信息

 删除信息

 修改成绩(只能修改成绩,只有最后一行可编辑,将第二位同学 99改为98)

 ⑥修改密码和学生界面类似

(4)管理员界面

①教师管理 

实现插入编号为T10的教师信息,同时查询编号为T10老师的信息

插入的教室信息(T10,舒克,男,46,教授,3765874563)查询T10老师的信息

 教师删除(删除为T10教师的信息)

 修改T09教师的年龄(36-->45)

 ②学生界面

可以实现学生信息的插入、删除、修改以及查询和教师界面类似,这里不做过大介绍

 ③管理员生源统计

 ④管理员修改密码与学生老师的相同

⑤管理员重置教师、学生密码

为防止有教师、学生忘记密码,这里提供密码重置功能。

7、实验总结7.1 遇到的问题和解决的办法

(1)因为从来没有写过C#代码,刚开始的时候,对这门语言非常陌生,不知道从何下,所以,我的界面模块都是按照书本后面的实例代码写的,写的时候其实心里还是非常模糊,不知道怎么实现代码和数据库的嵌入,花了很多时间在探索上。但是C#是一门非常适合做界面的语言,它继承了C语言和java语言的优点,同时界面上控件的安放十分简单上手。

(2)在系统需求分析完成以后,根据用户需求设计概念结构的时候遇到了数据冗余等多种问题,经过慢慢的分解关系最终得到了相对来说还比较完善的概念结构,通过ER图表示出来。

(3)设计数据库的时候,原本是没有想到触发器和存储过程的设计,但是当界面设计完成的差不多,要初步测试界面功能时,才发现数据库的设计存在很多缺陷,在实现插入、删除时,多张表之间存在信息不对称问题,例如教师或学生删除后,没有将其相关记录删除,也没有将其账号注销,更新信息也同样存在这样的问题,因此,测试时出现了很多异常情况,不过后来添加了触发器,大抵上解决了这些问题。

(4)SQL语句经常出错。因为是写在代码里面,查询语句表现出来就是一串字符串,在SQL SEVER写查询语句时,会自动检查拼写、逻辑错误,直接在代码里面写SQL语句非常容易出错,导致程序的中端。因为本质上都是对数据库的操作,我认为可以先在SQL SEVER中写好语句,并且验证其的正确性之后,再写入C# 代码中,这样会大大降低错误率。

(5)字符串匹配问题,在实现用户登录及密码修改时,我发现,对查询结果与本身的字符串进行匹配时,尽管他们显示出是相等的,但是匹配是不成功的。譬如说登录时,输入账号为A01,先通过查询找出A01的密码,在将输入的密码与其匹配,实验中将这两个进行输出,肉眼上是看不出差别的,但是程序匹配上是永远失败的,这个问题产生的原因至今我还是不太清楚。后来,我将这两个查询语句进行合并,返回满足账号和密码的记录数,若记录为0,则说明输入的账号或密码有误,若不是0,则说明输入无误。

7.2 系统设计的不足

(1)数据库表格的设计存在一些不合理的地方,Reports表中,感觉加入教师编号会更利与数据库的实现,因为只有教师姓名,会加剧设计教师与学生操作的复杂性,且出错率也会变高。

(2)功能实现的不够全面,管理员的功能主要体现在老师和学生这两种类别上,其实还可以进行课程的管理等等,学生的选课、退课功能也还没有考虑上,整个系统还是比较脆弱简单的。

(3)在进行学生成绩排名的时候,只能显示排名结果,但是不能显示名次。

(4)数据库设计时,涉及到班级和专业的地方很少,实际中,应该把这两个也考虑进去,才能完善整个系统。

(5)建立了太多视图,设计视图的时候,因为有很多信息的交叉,还有很多外键,需要很多自然连接 ,非常繁琐。

7.3 进一步改进思路和体会

(1)本次课设让我理解了设计数据库的复杂性,并且数据库的设计一定要保障数据库的完整性和准确性,这些在数据定义、基本表建立、设计触发器和存储过程时都要仔细考虑。

(2)本次实验也让我对C#这么语言有了初步的理解,C#集合了c语言和java语言的优点,是一门非常适合做界面的语言,界面制作比较容易上手。

(3)设计更多的触发器,加强表与表之间的联系,尽量减少视图的数量,提高基本表与视图的有效性。

(4)优化界面,使界面更加符合实际需求。

体会

通过这次课程设计发现这其中需要的很多知识我们没有接触过,还有很多需要我们掌握的东西我们不明白。同时也发现有很多已经学过的东西我们没有理解到位,不能灵活运用于实际,不能很好的用来解决问题,这就需要我们不断的大量的实践,通过不断的自学,不断地发现问题,思考问题,进而解决问题。从                     种文档的阅读到开始的需求分析、概念结构设计、逻辑结构设计、物理结构设计。亲身体验了一回系统的设计开发过程。很多东西书上写的很清楚,貌似看着也很简单,操作起来要考虑到方方面面,这还只是一个比较简单的系统,可想可知在我们生活中应用的数据库会有多么复杂。

(写得比较简陋,页面不太美观,数据结构也存在问题,数据库文件已经找不到了,想要参考C#源码的可以私我,一定要先建好数据库(修改sqlConnect.cs的数据库名称),确保连接没问题,再将C#每个页面的查询语句改成自己建的表)

 不知道的看SQL Sever开启时服务器名称

要成功运行 一定要建好数据库、插入数据,插入的数据一定要有一定的对应关系,遵循主外键约束,当数据插入完毕之后。

插入数据参考

insertinto Xum_Majors18values('M01','计智')insertinto Xum_Majors18values('M02','计科')insertinto Xum_Majors18values('M03','软工')insertinto Xum_Majors18values('M04','网工')insert into Xum_Class18values('CL01','计智1902','M01')insert into Xum_Class18values('CL02','计智1902','M01')insert into Xum_Class18values('CL03','计科1902','M02')insert into Xum_Class18values('CL04','计科1902','M02')insert into Xum_Class18values('CL05','网工1901','M03')insert into Xum_Class18values('CL06','网工1902','M03')insert into Xum_Class18values('CL07','软工1901','M04')insert into Xum_Class18values('CL08','软工1902','M04')insert into Xum_Courses18values('C01','离散数学','程珍','大一下','考试',4,24)insert into Xum_Courses18values('C03','机器学习','黄亮','大一下','考查',4 ,24)insert into Xum_Courses18values('C04','数字电路','赵冬冬','大一下','考试',4 ,24)insert into Xum_Courses18values('C05','数字电路','龙胜春','大一下','考试',4 ,24)insert into Xum_Courses18values('C06','马原','周文','大一上','考试',3 ,18)insert into Xum_Courses18values('C07','毛概','陈燕','大一下','考试',3 ,18)insert into Xum_Courses18values('C08','思修','吴五','大一上','考试', 4,24)insert into Xum_Students18values('06060101','张三','男',20,'浙江',20,'CL01')insert into Xum_Students18values('06060102','李四','男',20,'浙江',15,'CL01')insert into Xum_Students18values('06060103','王五','男',20,'浙江',10,'CL02')insert into Xum_Students18values('06060104','张南','女',20,'浙江',22,'CL02')insert into Xum_Students18values('06060105','丽丽','女',20,'北京',18,'CL03')insert into Xum_Students18values('06060106','倩倩','女',20,'浙江',19,'CL03')insert into Xum_Students18values('06060107','悠悠','女',20,'浙江',25,'CL04')insert into Xum_Students18values('06060108','琪琪','男',20,'安徽',22,'CL04')insert into Xum_Students18values('06060109','贝奇','男',20,'湖南',20,'CL05')insert into Xum_Students18values('06060110','洛克','男',20,'浙江',20,'CL05')insert into Xum_Students18values('06060202','尼克','男',20,'江苏',15,'CL06')insert into Xum_Students18values('06060203','艾米','女',20,'江西',10,'CL06')insert into Xum_Students18values('06060301','丝尔特','女',20,'福建',20,'CL07')insert into Xum_Students18values('06060302','梅森','男',20,'浙江',15,'CL07')insert into Xum_Students18values('06060403','大卫','男',20,'浙江',10,'CL08')insert into Xum_Students18values('06060405','汤米','女',20,'浙江',22,'CL08')insert into Xum_Teachers18values('T01','程珍','女',35,'教师','13344332278')insert into Xum_Teachers18values('T02','王英姿','女',35,'教师','13756742178')insert into Xum_Teachers18values('T03','黄亮','男',34,'教师','15745723349')insert into Xum_Teachers18values('T04','赵冬冬','男',30,'教师','17858640979')insert into Xum_Teachers18values('T05','龙胜春','女',37,'教师','17857573670')insert into Xum_Teachers18values('T06','周文','女',32,'教师','18367986174')insert into Xum_Teachers18values('T07','陈燕','女',45,'教师','17858427842')insert into Xum_Teachers18values('T08','吴五','男',35,'教师','15724547842')insert into Xum_Tea_Cour18values('T01','C01')insert into Xum_Tea_Cour18values('T02','C02')insert into Xum_Tea_Cour18values('T03','C03')insert into Xum_Tea_Cour18values('T04','C04')insert into Xum_Tea_Cour18values('T05','C05')insert into Xum_Tea_Cour18values('T06','C06')insert into Xum_Tea_Cour18values('T07','C07')insert into Xum_Tea_Cour18values('T08','C08')insert into Xum_Class_Cour18values('CL01','C01')insert into Xum_Class_Cour18values('CL02','C02')insert into Xum_Class_Cour18values('CL03','C03')insert into Xum_Class_Cour18values('CL04','C04')insert into Xum_Class_Cour18values('CL05','C05')insert into Xum_Class_Cour18values('CL06','C06')insert into Xum_Class_Cour18values('CL07','C07')insert into Xum_Class_Cour18values('CL08','C08')insertinto Xum_Teac_Class18values('T01','CL01')insertinto Xum_Teac_Class18values('T02','CL02')insertinto Xum_Teac_Class18values('T03','CL03')insertinto Xum_Teac_Class18values('T04','CL04')insertinto Xum_Teac_Class18values('T05','CL05')insertinto Xum_Teac_Class18values('T06','CL06')insertinto Xum_Teac_Class18values('T07','CL07')insertinto Xum_Teac_Class18values('T08','CL08')insertinto Xum_Reports18values('C01','06060101',90,'大一下','程珍')insertinto Xum_Reports18values('C01','06060102',93,'大一下','程珍')insertinto Xum_Reports18values('C02','06060103',78,'大一上','王英姿')insertinto Xum_Reports18values('C02','06060104',96,'大一上','王英姿')insertinto Xum_Reports18values('C03','06060105',87,'大一下','黄亮')insertinto Xum_Reports18values('C03','06060106',98,'大一下','黄亮')insertinto Xum_Reports18values('C04','06060107',94,'大一下','赵冬冬')insertinto Xum_Reports18values('C04','06060108',80,'大一下','赵冬冬')insertinto Xum_Reports18values('C05','06060109',87,'大一下','龙胜春')insertinto Xum_Reports18values('C05','06060110',96,'大一下','龙胜春')insertinto Xum_Reports18values('C06','06060202',95,'大一上','周文')insertinto Xum_Reports18values('C06','06060203',93,'大一上','周文')insertinto Xum_Reports18values('C07','06060301',98,'大一下','陈燕')insertinto Xum_Reports18values('C07','06060302',77,'大一下','陈燕')insertinto Xum_Reports18values('C08','06060403',67,'大一上','吴五')insertinto Xum_Reports18values('C08','06060405',88,'大一上','吴五')insert into Teachers_account18values('T01','12345')insert into Teachers_account18values('T02','12345')insert into Teachers_account18values('T03','12345')insert into Teachers_account18values('T04','12345')insert into Teachers_account18values('T05','12345')insert into Teachers_account18values('T06','12345')insert into Teachers_account18values('T07','12345')insert into Teachers_account18values('T08','12345')insert intoStudents_account18values('06060101','12345')insert intoStudents_account18values('06060102','12345')insert intoStudents_account18values('06060103','12345')insert intoStudents_account18values('06060104','12345')insert intoStudents_account18values('06060105','12345')insert intoStudents_account18values('06060106','12345')insert intoStudents_account18values('06060107','12345')insert intoStudents_account18values('06060108','12345')insert intoStudents_account18values('06060109','12345')insert intoStudents_account18values('06060110','12345')insert intoStudents_account18values('06060202','12345')insert intoStudents_account18values('06060203','12345')insert intoStudents_account18values('06060301','12345')insert intoStudents_account18values('06060302','12345')insert intoStudents_account18values('06060403','12345')insert intoStudents_account18values('06060405','12345')insert intoAdmin_account18values('A01','12345')insert intoAdmin_account18values('A02','12345')

打开所有协议,然后修改每个界面的查询语句

注意点:1.C#源码用VS2013运行 其他版本可能会出错 SQL sever选择2014版2.不要重复插入数据,插入的数据遵循主外键约束3.触发器一定要写 如果不想写的话 就把对应的功能去掉(譬如“教师删除“”触发器,可以直接删除掉“删除教师”的功能)如果要留下这些功能 一定要写触发器4.视图可以不建立 运行过程中并没有用到5.可以先在SQL里面运行语句 再去C#里面运行 这样出错概率低6.源码里面有几个页面多余  运行时没有用到就可以删掉7.数据库连接问题 要把所有协议打开 保证服务器名没有写错8.页面可以自己重新编辑(换控件、背景jpg、增添功能)

(不需要关注我的 只是学习分享,只要私信我,或者在下方留言我都会发的 不需要已关注的)

  因为感觉评论好像会审核 提醒的也比较慢 并且也有点泄露隐私 大家尽量私信我就好了 这样回复也方便一点

本文链接地址:https://www.jiuchutong.com/zhishi/296145.html 转载请保留说明!

上一篇:可视化大屏的几种适配方案(可视化大屏技术)

下一篇:从0搭建前端脚手架详解(小白也可以搭建)(如何快速搭建前端界面)

  • 目的税包括
  • 印花税核定依据和核定比例
  • 未投入使用的固体废物
  • 人工费已经支付怎么入账
  • 哪些费用的进项税可以抵扣
  • 研发费用 会计核算
  • 取得虚开增值税专用发票罪
  • 增值税留抵退税政策2022
  • 印花税购销合同计税金额怎么算
  • 供应商转让合同
  • 地方教育费附加的会计分录
  • 一个人有多份工作
  • 继承房产出售时交个人所得税税率是多少
  • 国家要收回房屋土地怎么补偿
  • 学校维修维护费包括哪些
  • 财务费用中的利息收入指什么
  • 中小企业结算时间不超60天
  • 成立非盈利组织的条件
  • packethsvc.exe - packethsvc是什么进程 有什么用
  • php serialize()与unserialize() 不完全研究
  • 以租代购算固定资产吗
  • 非正常原因造成的损失计入什么科目
  • 哪些情况需要做进项税转出
  • 软件能否成为无线网
  • php imagefill
  • 企业出售房产土地增值税怎么计算
  • 世界著名气泡酒公司
  • php sendmail
  • 残疾人增值税即征即退税收减免备案
  • 税收协定与国内税法发生冲突
  • 私营独资企业的税收规定
  • 企业清算期间会计分录
  • 一般纳税人增值税减免政策2023
  • 停车费过路费和汽油费可以一起报销吗
  • es6 promise await
  • 建筑业预缴的个人所得税怎么在申报表体现
  • css定位属性的运用
  • 预付采购材料款60000元
  • 年检车辆检测费
  • 金融企业往来支出是一级科目吗
  • 承兑汇票提前承兑手续费
  • 现代服务增值税纳税义务发生时间
  • 货物赔偿款如何计算
  • 代开专票时缴纳的增值税账务处理如何做?
  • 房东减免后二房东不减房租
  • 小额收据入账规则最新
  • 固定资产处置需要交税吗?
  • 以前年度损益调整怎么做账
  • 职工教育经费产生的差异
  • 事业单位购入
  • 采购未到票如何入账
  • 私营企业员工享受探亲假吗
  • 购买固定资产的增值税计入成本吗
  • 收到对方的银行承兑汇票
  • 事业单位公务卡额度多少
  • 自己开发建造的房屋
  • 已经认证的进项发票在哪里查询
  • 薪金的定义
  • window怎么升级系统
  • winproj.exe - winproj进程是什么意思
  • asmb进程
  • win10系统如何删除账户
  • win10预览版21337
  • winxp修改ip地址方法
  • win7资源管理器停止工作怎么办
  • bat批处理脚本教程
  • 只有一行的矩阵的逆矩阵
  • 前端面试题csdn
  • nodejs最佳实践
  • node-js
  • python找出n个数里最小的k个
  • unity mesh编程
  • javascript定律
  • android注入so
  • Python注释详解
  • 重大税务违法案件一案双查标准
  • 泌阳县国土资源局崔超
  • 山东税务申报如何网上申报
  • 武汉市国税局局长黄英简历
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设