数据库专业技能训练报告

本文由用户“peak123xxx”分享发布 更新时间:2021-04-01 14:52:29 举报文档

以下为《数据库专业技能训练报告》的无排版文字预览,完整格式请下载

下载前请仔细阅读文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

《专业技能训练——数据库应用系统开发》报告

题目:学生选课管理系统

班级:14科技2班

姓名:谢某某

学号:***1246

任课老师:王某某

开始时间:12月3号

结束时间:12月25号

目录

目录 2

1、概述 2

2、需求分析 3

2.1、信息要求 3

2.2、处理要求 4

3、概念结构设计 6

4、逻辑结构设计 7

5、主要模块的设计以及代码 7

5.1、数据库连接方式 7

5.2、主要模块和关键代码 9

6、总结 19

1、概述

本文设计并实现了一个简单的学生选课系统,它是学生选课的平台,含登陆界面,三种角色(学生用户、教师用户、管理员)在输入正确密码的前提下方能进入系统。进入系统后学生可以在这个平台进行选课、查看所选课程以及成绩,教师可以查看个人资料,学生信息以及成绩录入和查看,管理员可以查看个人资料、学生信息。系统设计的目的是方便选课的顺利进行。

学生选课系统具有以下特点:

·用户登录按角色进行登录;

·学生可以根据要求和自身条件选择自己喜欢的学科;

·教师可以查看学生资料以及登分等;

·教务员可以查看学生、教师、以及自己的资料,更改学生成绩等。

本系统后台数据库采用SQL Server2012,前台采用C#的winform形式开发

工具。

本系统的主要功能包括以下几个方面:

· 学生选课以及相关查询

· 教师登分以及相关查询,录入成绩等

· 管理员可以更正学生或老师相关信息以及做相关查询

不同用户(学生、教师、管理员)注册功能

2、需求分析

2.1、信息要求

(1)针对高校选课信息系统的需求,通过对选课过程的内容和数据流流程分析,设计如下面所示的数据和数据结构:?

学生基本信息包括:学生号、姓名、性别、年龄、系别、学生密码

教师基本信息:教师号、姓名、性别、年龄、学历、职称、授课课程号、教师密码?

课程基本信息:课程号、课程名、学分

选课信息:学生号、教师号、课程号、成绩??

院系信息:系编号、系名、系主任

管理员:管理员账号、密码

数据库结构设计如下:

学生信息表:

/

老师信息表:

/

院系信息表:

/

课程信息表:

/

选课信息表:

/

管理员信息表:

/

2.2、处理要求

2.2.1、功能模块图:

2.2.2、功能划分

学生选课系统,在登录模块之后,根据系统用户的不同划分为三个模块:管理员模块、学生模块、教师模块

2.2.3、功能描述

(1)登录模块

登录模块用于用户登录,完成基本的验证。根据所填信息进行判断,用户名或密码如果错误则进行错误提示;分三种不同角色进行登陆,分别为学生、教师、管理员。

(2)管理员模块

管理员模块用于对系统进行管理,对学生信息进行修改、添加、删除。对教师信息进行添加、修改、删除。对课程信息进行修改、添加、删除。对院系信息进行修改、添加、删除。

(3)学生模块

学生登录后在此模块进行选课,查看选课信息、个人信息、课程信息、学院信息、成绩查询。

(4)教师模块

教师登录后,可查看个人信息、学院信息、选课情况、学生信息和录入成绩。

3、概念结构设计

学生选课管理系统概念模型

该系统所涉及的实体集有:

学生实体集:具有属性学号、姓名、性别、年龄、系别、密码。

教师实体集:具有属性教工号、姓名、性别、年龄、学历、职称、主讲课程。

管理员实体集:具有属性账号和密码。

课程信息实体集:具有属性课程号,课程名,学分。

院系信息实体集:具有属性系编号、系名、系主任。

一个学生可以选修多门课程,一个教师可以开设多门课程。所以学生和教师之间是M:N的联系。

***可以有多个学生,所以院系与学生之间是1:N的联系。

一个管理员可以管理多个学生信息。所以管理员和学生之间是1:N的联系。

多个管理员可以管理多个教师信息。所以管理员和教师之间是M:N的联系。

4、逻辑结构设计

将概念模型转换为关系表,从而构建数据库。

由实体集转换而来的关系模式

学生实体集:

student(sno,sname,ssex,sage,sdept,spsw)

教师实体集:

teacher(tno,tname,tsex,tage,teb,tpt,cno1,cno2,cno3)

管理员实体集:

admin(adminID,password)

课程信息实体集:

course(cno,cname,ccredit)

院系信息实体集:

department(dno,dname,dmanager)

多值属性转换而来的关系模式

选课信息表

sct(sno,cno,tno,grade)

5、主要模块的设计以及代码

5.1、数据库连接方式

建立了一个connect类,里面有三个函数,通过此类实现数据库连接,避免重复麻烦。

public static DataSet GetDataset(string sql, string srctable)

//通过sql代码获取数据库信息

public static int Sqlexcute(string sql)

//通过sql代码修改数据库信息

public static bool Panduan(string sql, string psw, string ziduan)

//实现登陆时的密码判断

由于链接成功后才想到可以用Linq方式链接数据库并对数据库进行操作,而且时间的关系,所以并没有改过来。而是用原来的链接方式连接数据库,用Linq方式对数据库进行增删改查操作。

用linq创建方法对象设计图如下:

/

5.2、主要模块和关键代码

(1)登陆模块:

/

用户进行登陆:

private void button1_Click(object sender, EventArgs e)

{

if (username.Text.Trim() != "" && textBox2.Text.Trim() != "")

{

if (comboBox1.SelectedItem.ToString().Trim() == "学生")

//教师、管理员同理

//else if(comboBox1.SelectedItem.ToString().Trim() == "教师"){…}

//else if (comboBox1.SelectedItem.ToString().Trim() == "管理员"){…}

{

if (connect.Panduan("select * from student where sno='" + username.Text.Trim() + "'", textBox2.Text.Trim(), "spsw"))

{

user.uno = comboBox1.SelectedItem.ToString().Trim();

this.DialogResult = DialogResult.Yes;

students s = new students();

s.ShowDialog();

//this.Close();

}

else

{

MessageBox.Show("用户名***;);

}

}

//跳转到注册窗口:

private void button3_Click(object sender, EventArgs e)

{

register r = new register();

r.ShowDialog();

}

(2)学生模块:

/

学生模块主要分为以下六块:个人信息查询、课程信息查询、学院信息查询、选课、已选课程查询、成绩查询。使用datagridview显示结果。

关键代码:

个人信息查询:

DBDataContext DB = new DBDataContext();

var ss = from cc in DB.student

join dd in DB.department //联表查询

on cc.sdept equals dd.dname

where cc.sno == textBox.Text

select new

{

学号=cc.sno,

姓名=cc.sname,

性别=cc.ssex,

年龄=cc.sage,

学院=cc.sdept,

***.spsw,

系主任=dd.dmanager

};dataGridView1.DataSource = ss;

个人信息修改:DBDataContext DB = new DBDataContext();

student cust = (from c in DB.student where c.sno == textBox5.Text select c).First();

cust.sname = textBox1.Text;

cust.ssex = char.Parse(textBox2.Text);

cust.sage = int.Parse(textBox3.Text);

cust.sdept = textBox4.Text;

cust.spsw = textBox6.Text;

DB.SubmitChanges();

课程信息查询:

查询可选课程

DBDataContext DB = new DBDataContext();

var query = from c in DB.course select c;

dataGridView2.DataSource = query;

查询老师信息

DBDataContext DB = new DBDataContext();

var query = from c in DB.teacher select c;

dataGridView3.DataSource = query;

学院信息查询:

DBDataContext DB = new DBDataContext();

var query = from c in DB.department select c;

dataGridView5.DataSource = query;

选课; DBDataContext DB = new DBDataContext();

sct s = new sct();

s.sno = textBox1.Text; //文本是输入的选课信息

s.cno = textBox2.Text;

s.tno = textBox3.Text;

DB.sct.InsertOnSubmit(s);

DB.SubmitChanges();

查询已选课程:DBDataContext DB = new DBDataContext();

var aa = from cc in DB.student

join dd in DB.sct //联表查询

on cc.sno equals dd.sno

join ee in DB.teacher

on dd.tno equals ee.tno

join ff in DB.course

on dd.cno equals ff.cno

where cc.sno == textBox4.Text

select new

{

姓名 = cc.sname,

课程号 = ff.cno,

课程名 = ff.cname,

老师 = ee.tname,

学分 = ff.ccredit,

学院 = cc.sdept

};

dataGridView4.DataSource = aa;

成绩查询:DBDataContext DB = new DBDataContext();

var ss = from sss in DB.sct

join ccc in DB.course

on sss.cno equals ccc.cno

where ccc.cno == textBox6.Text || ccc.cname == textBox7.Text

select sss;

textBox8.Text = ss.First().grade.ToString();

(3)教师模块

/

教师模块主要分为以下5个部分:个人信息、学生信息、学生选课情况、学院信息查询、录入成绩。用datagridview显示结果。

关键代码如下:

个人信息查询:DBDataContext DB = new DBDataContext();

teacher tea = new teacher();

var ss = from c in DB.teacher

where c.tno == textBox1.Text

select c;

if (ss.Count() > 0) //判断该教工号是否存在

{

var query = from c in DB.teacher where c.tno == textBox1.Text select c;

dataGridView1.DataSource = query;

}

信息修改:DBDataContext DB = new DBDataContext();

teacher t = (from c in DB.teacher where c.tno == textBox1.Text select c).First();

t.tname = textBox2.Text;

t.tsex = char.Parse(textBox3.Text);

t.tage = int.Parse(textBox4.Text);

t.teb = textBox5.Text;

t.tpt = textBox6.Text;

t.cno1 = textBox7.Text;

t.cno2 = textBox8.Text;

t.cno3 = textBox9.Text;

t.tpsw = textBox10.Text;

DB.SubmitChanges();

学生信息查询:DBDataContext DB = new 内容过长,仅展示头部和尾部部分文字预览,全文请查看图片预览。 {

MessageBox.Show("请填入完整资料");

}

}

注意:教师注册、管理员注册代码原理与学生注册差不多,这里就不将代码一一列出。

6、总结

在本次的数据结构课程设计中,我完成了学生选课系统的课程设计。通过本次数据库课程设计,达到了理论与实践的相结合,加深了对数据库理论知识理解,也进一步掌握了选用的开发语言及开发平台。

在本次课程设计过程中,在需求分析方面,学生选课系统要求界面友好、简明易懂、操作简单。数据库设计方面,学生选课系统要求有严谨的数据一致性,需主键、外键并用。最后是代码编写实现,选用面向网络的开发工具机语言,方便了用户进行各种操作。在代码的编写过程中,用到了数据库的插入、修改和删除语句,在具体的开发环境中使用数据库语言是对编程能力的进一步提高。

通过本次数据库课程设计,我学到了很多书本上学不到的知识以及上课接触不到的东西,也更加认识到网络对工作学习的重要性。此次课程设计积累的经验对以后项目系统的开发会有很大的帮助。

[文章尾部最后500字内容到此结束,中间部分内容请查看底下的图片预览]请点击下方选择您需要的文档下载。

  1. 小学教育社会实践调查报告
  2. 八年级语文
  3. 《第56号教室的奇迹》读书心得
  4. 新课程标准学习心得体会
  5. 师德征文一等奖5篇
  6. 四年级语文备课作业检查小结
  7. 小组合作学习心得体会2
  8. 展示课教学反思
  9. 年度教育教学工作总结
  10. 师德师风学习心得体会
  11. 师德心得体会
  12. 结合具体案例,谈下如何处理教学与学生管理、学校(幼儿园)活动等之间的关系。
  13. 课堂教学评价实施问题教学案例及反思
  14. 作为一名物理教师,经过这次XX区组织的“分层
  15. 人文素养提升计划书
  16. Unit3第二课时教学设计
  17. 信息技术2.0心得体会
  18. 特岗教师远程培训研修总结
  19. 中学义务教育管理标准及整改报告
  20. 问题学生帮扶措施

以上为《数据库专业技能训练报告》的无排版文字预览,完整格式请下载

下载前请仔细阅读上面文字预览以及下方图片预览。图片预览是什么样的,下载的文档就是什么样的。

图片预览