版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
现代数据库技术南京航空航天大学南京航空航天大学数据库课程设计报告班级学号姓名指导老师E-mail二零一二年五月摘要运用数据库基本理论与应用知识,在微机RDBMS(SQLServer)的环境上建立一个数据库应用系统。要求把现实世界的事物及事物之间的复杂关系抽象为信息世界的实体及实体之间联系的信息模型,再转换为机器世界的数据模型和数据文件,并对数据文件实施检索、更新和控制等操作。关键词:设计目的,设计要求,软件概要正文1.设计目的课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际,实践编程的能力。课程设计的目的:加深对数据库系统、软件工程、程序设计语言的理论知识的理解和应用水平;在理论和实验教学基础上进一步巩固已学基本理论及应用知识并加以综合提高;学会将知识应用于实际的方法,提高分析和解决问题的能力,增强动手能力;为毕业设计和以后工作打下必要基础。2.设计要求运用数据库基本理论与应用知识,在微机RDBMS(SQLServer)的环境上建立一个数据库应用系统。要求把现实世界的事物及事物之间的复杂关系抽象为信息世界的实体及实体之间联系的信息模型,再转换为机器世界的数据模型和数据文件,并对数据文件实施检索、更新和控制等操作。用E-R图设计选定题目的信息模型;设计相应的关系模型,确定数据库结构;分析关系模式各属于第几范式,阐明理由;设计应用系统的系统结构图,确定系统功能;通过设计关系的主码约束、外码约束和使用CHECK实现完整性控制;为参照关系设计插入、删除、修改触发器;实现应用程序设计、编程、优化功能;对系统的各个应用程序进行集成和调试,进一步优化系统功能、改善系统用户界面完成实验内容所指定的各项要求;分析遇到的问题,总结并写出课程设计报告;自我评价3.软件定义:windowsXP系统4.开发环境:Visualstudio2005C#,SQLServer四、概要设计1.系统功能结构登录名E-R图:登录名修改授课老师课程ID n修改授课老师课程ID登录密码登录密码课程名登录名 1 m课程名登录名选择学生 1选择学生课程信息登录密码 n课程信息登录密码课程授课老师登录名 1 m课程授课老师登录名查阅管理员查阅管理员课程备注登录密码 1课程备注登录密码五、详细设计1.数据库设计关系图表:1.课程表CREATETABLE`classes`(
`id`bigint(20)NOTNULLAUTO_INCREMENTCOMMENT'键主',
`classname`char(255)NOTNULLCOMMENT'课程名称',
`description`char(255)NOTNULLCOMMENT'程描述课',
`id_teacher`bigint(20)DEFAULTNULLCOMMENT'课授教师',
PRIMARYKEY(`id`)
)ENGINE=InnoDBAUTO_INCREMENT=39DEFAULTCHARSET=utf8;
--
--Tablestructurefor`student_class`
--
DROPTABLEIFEXISTS`student_class`;
2.用户表CREATETABLE`users`(
`id`bigint(20)NOTNULLAUTO_INCREMENTCOMMENT'键主',
`username`char(50)NOTNULLCOMMENT'用户名',
`password`char(50)NOTNULLCOMMENT'密码',
`type`smallint(5)NOTNULLCOMMENT'类型0管理员1老师2学生',
PRIMARYKEY(`id`)
)ENGINE=InnoDBAUTO_INCREMENT=5DEFAULTCHARSET=utf8;
3.选课表CREATE
TABLE
`student_class`
(
`id`
bigint(20)
NOT
NULL
AUTO_INCREMENT,
`id_student`
bigint(20)
NOT
NULL,
`id_class`
bigint(20)
NOT
NULL,
PRIMARY
KEY
(`id`)
)
ENGINE=InnoDB
AUTO_INCREMENT=41
DEFAULT
CHARSET=utf8;主要功能模块设计A登录模块设计:public
static
User
CheckLogin(string
username,
string
password)
{
OdbcConnection
connection
=
OpenDatabase();
User
user
=
null;
string
sql
=
"SELECT
*
FROM
users
WHERE
username
=
'"
+
username
+
"'
AND
password
=
'"
+
password
+
"'";
OdbcCommand
cmd
=
new
OdbcCommand(sql,
connection);
OdbcDataReader
reader
=
cmd.ExecuteReader();
if
(reader.HasRows)
{
user
=
new
User();
user.UserId
=
reader.GetInt32(0);
user.Username
=
reader.GetString(1);
user.Type
=
(UserType)reader.GetInt32(3);
}
CloseDatabase(connection);
return
user;
}B开课信息模块public
static
List<Class>
GetTeacherClasses(User
user)
{
OdbcConnection
connection
=
OpenDatabase();
List<Class>
classes
=
null;
string
sql
=
string.Format("SELECT
*
FROM
classes
WHERE
id_teacher
=
'{0}'",
user.UserId);
OdbcCommand
cmd
=
new
OdbcCommand(sql,
connection);
OdbcDataReader
reader
=
cmd.ExecuteReader();
if
(reader.HasRows)
{
classes
=
new
List<Class>();
while
(reader.Read())
{
Class
tmp
=
new
Class();
tmp.ClassId
=
reader.GetInt32(0);
tmp.ClassName
=
reader.GetString(1);
tmp.Description
=
reader.GetString(2);
classes.Add(tmp);
}
}
CloseDatabase(connection);
return
classes;
}C选课模块publicstaticvoidGetSelectClasses(Useruser,List<Class>classes)
{
OdbcConnectionconnection=OpenDatabase();
foreach(Classcinclasses)
{
stringsql=string.Format("SELECT*FROMstudent_classWHEREid_student='{0}'ANDid_class='{1}'",user.UserId,c.ClassId);
OdbcCommandcmd=newOdbcCommand(sql,connection);
OdbcDataReaderreader=cmd.ExecuteReader();
if(reader.HasRows)c.Select=true;
reader.Close();
cmd.CommandText=string.Format("SELECT*FROMusersWHEREid='{0}'",c.TeacherId);
reader=cmd.ExecuteReader();
if(reader.HasRows)c.TeacherName=reader.GetString(1);
}
CloseDatabase(connection);
}D,选好后的选课模块publicstaticvoidUpdateSelectClasses(Useruser,List<Class>classes)
{
OdbcConnectionconnection=OpenDatabase();
foreach(Classcinclasses)
{
if(c.Select==false)
{
stringsql=string.Format("DELETEFROMstudent_classWHEREid_student='{0}'ANDid_class='{1}'",user.UserId,c.ClassId);
OdbcCommandcmd=newOdbcCommand(sql,connection);
cmd.ExecuteNonQuery();
}
else
{
stringsql=string.Format("SELECT*FROMstudent_classWHEREid_student='{0}'ANDid_class='{1}'",user.UserId,c.ClassId);
OdbcCommandcmd=newOdbcCommand(sql,connection);
objecto=cmd.ExecuteScalar();
if(o!=null)continue;
cmd.CommandText=string.Format("INSERTINTOstudent_class(id_student,id_class)VALUES('{0}','{1}')",user.UserId,c.ClassId);
cmd.ExecuteNonQuery();
}
}
CloseDatabase(connection);
}六、课程设计小结通过本次课程设计,我学习到了很多实用的知识,由于之前对C#知识的不足,在课程设计中遇到很多困难,尤其是在数据库的连接上,最后在老师的帮助下才解决问题,随着一个个问题的解决,我学到了很多知识,熟练了对软件的使用,每做完一个模块时,都有一种成功的喜悦,体会到了学习的快乐,这次设计的软件非常不完善,我将继续努力学习C#.NET,将数据库与编程语言结合,争取在接下来的这个暑假能开发出一个完善的系统,掌握更多实用的东西。本次课程设计让我有机会能把之前学的数据库知识系统的串联起来,尤其是对数据库的建立与操作都上了一个台阶,包括怎么建立更简洁,没有冗余而又很完备的数据库系统,怎么对数据库结构模型进行设计,主键外键的定义,更重要的是对前期概念模型,也就是E-R图的规划,深刻的体会到前期工作的重要性。只有正确详尽的对系统进行分析,才能更高效的完成系统的开发。七、致谢感谢老师和研究生在机房的指导,感谢韩羽佳,卜淼两位同学的帮忙,感谢国家,感谢党,感谢神!八、参考文献1.康莉著《新手学VisualC#2008程序设计》电子工业出版社;2.王珊萨师煊著《数据库系统概论》高等教育出版社;3.周峰著《SQLSever2005中文版关系数据库基础与实践教程》;4..徐国智汪孝宣著《SQLSever数据库开发实例精粹》电子工业出版社;5.周峰李德路王征著《VisualC#.NET2005中文版基础与实践教程》电子工业出版社;6.王华杰黄山著《精通C#数据库编程》科学出版社;注:1公式要求:正文中可以用字母表示的符号请尽量不要用公式表示,公式大小为原大小的75%。如:2图表要求:通常图标题名称在下,表标题名称在上,文字大小比正文文字小一号,为六号字体,其中,图形为Word自带绘图工具绘制或者采用其它绘图工具(Visio,Mat
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 混合动力电动汽车结构原理与检修 第2版 课件 学习情景4 混合动力电动汽车动力系统结构原理与检修
- 兽药饲料监管培训课件
- 演艺场地管理制度及流程(3篇)
- 兽药经营人员培训课件
- 重点岗位保密人员管理制度(3篇)
- 兽药临床应用技术
- 《GA 524-2004〈2004式警车汽车类外观制式涂装规范〉专题研究报告》
- 纪法衔接培训
- 企业员工招聘与面试流程制度
- 企业文化与团队建设制度
- 爆破作业危险性较大分部分项工程清单及安全措施
- 丈夫出轨婚内协议书范本
- 婚姻家庭矛盾纠纷调解
- 中性粒细胞缺乏症诊疗与管理体系
- 体育工作会议汇报
- GB/T 21649.2-2025粒度分析图像分析法第2部分:动态图像分析法
- 爷孙断绝协议书
- 铁道运输组织管理课件
- 网约车行业合规管理制度
- 六年级上册语文1-8单元习作范文
- 燃气工程建设管理办法
评论
0/150
提交评论