学生选课管理系统数据库.docx

上传人:b****4 文档编号:3998739 上传时间:2022-11-27 格式:DOCX 页数:16 大小:892.10KB
下载 相关 举报
学生选课管理系统数据库.docx_第1页
第1页 / 共16页
学生选课管理系统数据库.docx_第2页
第2页 / 共16页
学生选课管理系统数据库.docx_第3页
第3页 / 共16页
学生选课管理系统数据库.docx_第4页
第4页 / 共16页
学生选课管理系统数据库.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

学生选课管理系统数据库.docx

《学生选课管理系统数据库.docx》由会员分享,可在线阅读,更多相关《学生选课管理系统数据库.docx(16页珍藏版)》请在冰豆网上搜索。

学生选课管理系统数据库.docx

学生选课管理系统数据库

学生选课管理信息系统

一、课程设计的目的和意义

数据库课程设计是在学生系统的学习了数据库原理课程后,按照关系型数据

库的基本原理,综合运用所学的知识,以小组为单位,设计开发一个小型的数据库管理系统。

通过对一个实际问题的分析、设计与实现,将原理与应用相结合,使学生学会如何把书本上学到的知识用于解决实际问题,培养学生的动手能力;另一方面,使学生能深入理解和灵活掌握教学内容。

大型数据库课程设计是计算机专业集中实践性教学环节之一,是学习完《数据库原理及应用》课程后进行的一次全面的综合练习。

其目的在于加深对大型数据库课程理论和基本知识的理解,掌握使用数据库进行软件设计的基本方法,提高运用数据库解决实际问题的能力。

培养学生正确的设计思想,理论联系实际的工作作风,严肃认真、实事求是的科学态度和勇于探索的创新精神。

培养学生综合运用所学知识与生产实践经验,分析和解决工程技术问题的能力。

二、需求分析

学生选课系统体现在对各种信息的保存、修改和查询。

经过仔细分析系统需求之后可知其主要功能,具体功能如下:

可以根据表查询四个表之间属性之间的关系

 

系统总体设计图如图1所示:

 

图1整体设计图

 

三、概念结构设计(E-R图)

E-R图

四、逻辑结构设计

将E-R图转换成关系模式:

教师:

(教师编号,教师姓名,性别,年龄,学历,职称,毕业院校,健康状况)

学生:

(学号,姓名,所属院系,年龄)

选课:

(课程编号,课程名称,任课教师,学分)

成绩:

(学生学号,课程编号,课程名称,成绩)

五、数据库实施与维护

建立数据库打开SQLServer2008,建立数据库:

zaq。

1.在学生选课系统数据库中,添加teacher表,设置教师编号为主键,不允许为空,如图3所示

图3

右键选择编辑前200行,输入数据,如图4所示

图4

2.添加student表,设置学号为主键,不允许为空,如图5所示:

图5

右键选择编辑前200行,输入数据,如图6所示:

图6

3.添加choose表,设置课程编号为主键,不允许为空,如图7所示:

图7

右键选择编辑前200行,输入数据,如图8所示:

图8

4.添加grade表,设置学生学号,教师编号,课程名称为主键,不允许为空,如图9所示:

右键选择编辑前200行,输入数据,如图10所示:

六、界面设计与代码

1.登录界面

输入已在数据库中的账号和密码,点击登录按钮,如图11所示:

提示登录成功,单击确定进入主窗体

 

双击登录按钮,更新单击事件处理程序,主要代码如下:

privatevoidbutton1_Click(objectsender,EventArgse)

{

stringuserName=txtName.Text.Trim();

stringpassword=txtPwd.Text.Trim();

stringconnString=@"DataSource=a-think;InitialCatalog=zaq;IntegratedSecurity=True;Pooling=False;";

SqlConnectionconnection=newSqlConnection(connString);

//获取用户名和密码匹配的行的数量的SQL语句

stringsql=String.Format("selectcount(*)from[log]whereID='{0}'andPASSWORD='{1}'",userName,password);

try

{

connection.Open();//打开数据库连接

SqlCommandcommand=newSqlCommand(sql,connection);//创建Command对象

intnum=(int)command.ExecuteScalar();//执行查询语句,返回匹配的行数

if(num>0)

{

//如果有匹配的行,则表明用户名和密码正确

MessageBox.Show("欢迎进入系统!

","登录成功",MessageBoxButtons.OK,MessageBoxIcon.Information);

mainmainForm=newmain();//创建主窗体对象

mainForm.Show();//显示窗体

this.Visible=false;//登录窗体隐藏

}

else

{

txtPwd.Text="";

MessageBox.Show("您输入的用户名或密码错误!

","登录失败",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);

}

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message,"操作数据库出错!

",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);

}

finally

{

connection.Close();//关闭数据库连接

}

}

}

}

2.主界面

如图10所示:

 

4.点击教师信息显示下图12,

双击添加按钮,程序代码如下:

privatevoidbutton2_Click(objectsender,EventArgse)

{

stringconnString=@"DataSource=A-THINK;InitialCatalog=zaq;IntegratedSecurity=True;Pooling=False;";

SqlConnectionconnection=newSqlConnection(connString);

SqlCommandcommand=newSqlCommand();

stringsql=String.Format("INSERTINTOteacher(教师编号,教师姓名,性别,年龄,学历,职称,毕业院校,健康状况)VALUES('"+tno1.Text+"','"+tname1.Text+"','"+tsex1.Text+"','"+tage1.Text+"','"+tdip1.Text+"','"+tmon1.Text+"','"+tsch1.Text+"','"+thea1.Text+"')");

try

{

connection.Open();//打开数据库连接

command.Connection=connection;

command.CommandText=sql;//设置Command对象要执行的SQL语句

intcount=command.ExecuteNonQuery();//执行更新命令,返回值为更新的行数

if(count>0)

MessageBox.Show("添加成功","添加成功",MessageBoxButtons.OK,MessageBoxIcon.Information);

else

MessageBox.Show("添加失败","添加失败",MessageBoxButtons.OK,MessageBoxIcon.Information);

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message,"操作数据库出错!

",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);

}

finally

{

connection.Close();//关闭数据库连接

}

}

添加数据后,出现添加成功:

双击删除按钮,程序代码如下:

privatevoidbutton3_Click(objectsender,EventArgse)

{

stringtno=tno1.Text.Trim();

stringtname=tname1.Text.Trim();

stringtsex=tsex1.Text.Trim();

stringtage=tage1.Text.Trim();

stringtdip=tdip1.Text.Trim();

stringtmon=tmon1.Text.Trim();

stringtsch=tsch1.Text.Trim();

stringthea=thea1.Text.Trim();

stringstr="DataSource=A-THINK;InitialCatalog=zaq;IntegratedSecurity=True;Pooling=False";

SqlConnectionconn=newSqlConnection(str);

conn.Open();

if(tno1.Text!

=""||tname1.Text!

=""||tsex1.Text!

=""||tage1.Text!

=""||tdip1.Text!

=""||tmon1.Text!

=""||tsch1.Text!

=""||thea1.Text!

="")

{

SqlCommandcom=newSqlCommand("deletefromteacherwhere教师编号='"+tno+"'or教师姓名='"+tname+"'or性别='"+tsex+"'or年龄='"+tage+"'or学历='"+tdip+"'or职称='"+tmon+"'or毕业院校='"+tsch+"'or健康状况='"+thea+"'",conn);

intm=com.ExecuteNonQuery();

if(m>0)

MessageBox.Show("成功删除该教师信息!

");

else

MessageBox.Show("删除该教师信息失败!

");

}

else

MessageBox.Show("请输入正确的信息!

");

conn.Close();conn.Dispose();

}

删除成功,提示删除成功:

 

双击修改按钮,程序代码如下:

privatevoidbutton4_Click(objectsender,EventArgse)

{

stringtno=tno1.Text.Trim();

stringtname=tname1.Text.Trim();

stringtsex=tsex1.Text.Trim();

stringtage=tage1.Text.Trim();

stringtdip=tdip1.Text.Trim();

stringtmon=tmon1.Text.Trim();

stringtsch=tsch1.Text.Trim();

stringthea=thea1.Text.Trim();

stringstr="DataSource=A-THINK;InitialCatalog=zaq;IntegratedSecurity=True;Pooling=False";

SqlConnectionconn=newSqlConnection(str);

conn.Open();

if(tno1.Text!

=""&&tname1.Text!

=""&&tsex1.Text!

=""||tage1.Text!

=""||tdip1.Text!

=""||tmon1.Text!

=""||tsch1.Text!

=""||thea1.Text!

="")

{

SqlCommandcom=newSqlCommand("updateteacherset教师姓名='"+tname+"'where教师编号='"+tno+"'",conn);

inta=com.ExecuteNonQuery();

if(a>0)

MessageBox.Show("修改成功!

");

else

MessageBox.Show("修改该教师信息失败!

");

}

else

MessageBox.Show("请输入正确的信息!

");

conn.Close();conn.Dispose();

}

}

}

修改成功后显示修改成功:

双击查询按钮,程序代码如下:

privatevoidbutton1_Click(objectsender,EventArgse)

{

stringconnString="DataSource=A-THINK;InitialCatalog=zaq;IntegratedSecurity=True;Pooling=False;";

SqlConnectionconnection=newSqlConnection(connString);

SqlCommandcommand=newSqlCommand();

stringsql=String.Format("select*FROMteacherWHERE教师编号='{0}'",tno1.Text);

try

{

inti=0;

connection.Open();//打开数据库连接

command.Connection=connection;

command.CommandText=sql;//设置Command对象要执行的SQL语句

SqlDataReaderdataReader=command.ExecuteReader();

while(dataReader.Read())

{

i++;

tno1.Text=dataReader["教师编号"].ToString();

tname1.Text=dataReader["教师姓名"].ToString();

tsex1.Text=dataReader["性别"].ToString();

tage1.Text=dataReader["年龄"].ToString();

tdip1.Text=dataReader["学历"].ToString();

tmon1.Text=dataReader["职称"].ToString();

tsch1.Text=dataReader["毕业院校"].ToString();

thea1.Text=dataReader["健康状况"].ToString();

}

if(i==0)

MessageBox.Show("教师不存在","查询失败",MessageBoxButtons.OK,MessageBoxIcon.Information);

}

catch(Exceptionex)

{

MessageBox.Show(ex.Message,"操作数据库出错!

",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);

}

finally

{

connection.Close();//关闭数据库连接

}

}

 

5.点击学生信息,显示下图界面:

6.点击选课信息,显示如下图片:

 

7.点击成绩信息,显示如下界面:

图12

七、课程设计心得与体会

这次课设不仅仅是对这个学期数据库课程的总结,更是一次知识大检查。

这个不但要掌握数据库原理,还要熟练掌握c#语言。

我用这学期刚刚学会的vs2010开发环境中的c#,设计的是开发工具窗体界面运行模式。

这样不仅可以学习数据库,而且还可以对c#方面的知识进行巩固,知识是相互联系的,没有哪一门是单独存在的。

所以要学好一门课,就是应该横向思考,多联系,这样会学的更好。

这次课程设计,我选的是选课管理系统,这个课题比较贴近生活,所以要考虑到选课的实际情况,根据实际情况来进行分析,构思好功能模块。

在这个过程中,最难的应该是软件编程了。

在编程的过程中,遇到的问题也可谓是多样化。

先是因为一些控件没有响应事件,导致运行的时候点击没有效果,然后再SQL语句中字符串的单引号,双引号标注出现问题,同样调试时没有出错,运行时出现问题。

一开始在进行数据库连接的时候也出现了一些问题,但最后问题还是被解决了。

看到所有都能被运行成功,并且能对数据进行增删改查询的时候,总的来说,还是很欣慰。

这也激励着我,在以后的学习中,要多多培养自己的动手操作能力,编出更加完美,用户友好的系统。

八、参考文献

[1]李涛王永皎/等.《VisualC++SQLServer数据库开发与实例》.清华大学出版社.2006年7月

[2]郑莉董渊张瑞丰.《C++语言程序设计》清华大学出版社.2004年1月

[3]王珊萨师煊.《数据库系统概论》.北京.高等教育出版社.2006年5月

[4]邵顺增,李琳.C#程序设计--Windows项目开发.清华大学出版社.2008年5月

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1