您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 数据库学生成绩管理系统课程设计报告
数据库课程设计报告1.功能需求本报告主要介绍学生成绩管理系统的数据库设计,从需求分析到数据库的运行与维护都进行详细的叙述。该系统是利用SQL开发出来的。通过SQL建立学生成绩管理系统,大大方便和简化了数据的查询和处理,管理员可以通过SQL语言对表内数据进行添加,删除,修改,查询等操作,还可以建立多用户,对其使用权限进行分配和回收。报告分为4部分,第一部分是课题简介及设计的内容与目的,需求分析,此阶段是数据库设计的起点。第二部分是概念设计,逻辑结构设计,它是将需求分析的用户需求抽象为信息结构,并将概念模型转换为某个DBMS所支持的数据模型。第三部分是数据库的实施与运行,它包括数据的载入及数据困的运行和数据库和数据表的创建(代码)。第四部分是课程设计的总结。1.1开发环境及开发语言本次课程设计是以学生信息管理系统为模拟模型,运用C++编程语言结合SQL数据库所开发系统。开发平台为VC6.0和SQL2008。1.2设计目的随着学生数量的日益增多,学校对学生的管理要求也越来越高,为了使学生成绩的管理更加系统化,数字化,因此我们设计了该学生信息管理系统。1.3设计内容运用基于E-R模型的数据库设计方法和关系规范化理论做指导完成从系统的分析到设计直至系统的最终实现,开发学生成绩管理系统,完成学生成绩管理系统的全部功能。首先做好需求分析,并完成数据流图,其次做概念分析,利用实体联系的方法将需求分析的用户需求抽象为信息结构,得到E-R图,然后就是逻辑结构设计,将E-R图转换为计算机系统所支持的逻辑模型。最后利用SQL完成具体的实例。1.4.需求分析1、问题的提出:为了高效率的完成学生成绩的管理,决定开发学生成绩管理系统。2、需完成的功能:(1)能提供管理员及普通用户(除删除和修改)录入、注销、显示当前用户、修改、删除、查询、输出,学生的档案信息,这些信息包括学生的成绩、课程、个人信息等。(2)触发器,索引,存储过程的建立及使用。2.概念设计(1)(E-R图)(2)物理结构设计StudentColumnNameDateTypeWidth空值情况Snonchar10主关键字Snamenchar10不为空Sexnchar10不为空Birthdaynumeric10可为空Addressnchar10可为空Gradenchar10不为空Po;iticnchar10不为空Cuturenchar10不为空TelNchar10不为空StudentSnameSexBirthdayTelSnoAddressGradeScorePoliticaCultureCourceSnoCnoTestUserUserNmUserPwUserTypCourceColumnNameDateTypeWidth空值情况Snonchar10主关键字Cnonchar10不为空Scorenchar10可为空UserColumnNameDateTypeWidth空值情况User_namenchar20主关键字User_Pswdnchar20不为空User_Typeint可为空(3)分析关系模式对于关系模式Student(Sno|Sname|Sex|Age|Address|Grade|class|Tel|Politic|Cuture)假定姓名也具有唯一性,那么Student就有两个码,这两个码都由单个属性组成,彼此不相交。其它属性不存在对码的传递依赖与部分依赖,又因为Student中除学号、姓名外没有其它的因素,所以Student属于BCNF。对于关系模式Cource(|Sno|Cno|Score|)有两个码,这两个码都由单个属性组成,彼此不相交,其它属性不存在对码的传递依赖与部分依赖,又因为成绩中除学号、课程号外没有其它的决定因素,所以成绩属于BCNF。对于关系模式User(|UserName|UserType|UserPswd|)中,它只有一个码,这里没有任何属性对课程号部分依赖或传递依赖,同时用户名是唯一的决定因素,所以课程属于BCNF。它和学生信息和成绩没有直接的联系,因此它是一张单独的表。3.SQL语句3.1创建表学生表createtableStudent(Snonchar(10)primarykey,Snamenchar(10)notnullSexnchar(10)notnullAgenumeric(10)Addressnchar(10)Classnchar(10)notnullGradenchar(10)notnullTelnchar(10)notnullPoliticnchar(10)notnullCuturenchar(10)notnull)成绩表createtableExam(Snonchar(10)primarykey//主键约束Cnonchar(10)NotnullScorenchar(10)foreignkey(Cno)referencesCourse//外键约束check(Score=0)//完整性约束)用户表createtableTeacher(Usernamenchar(10)notnullUserPswdnchar(10)notnullUserTypenchar(10)notnull)3.2数据初始化将学生类别加入表Student中insertintoStudentvalues('000’,’张明’,’M’,’’,’哈尔滨’,’计科一班’,’大一’,’15880000’,’无’,’群众’)insertintoStudentvalues('001’,’李三’,’M’,’’,’长春’,’计科二班’,’大三’’15233000’.’无’,’群众’)insertintoStudentvalues('002’,’王强’,’M’,’’,’哈尔滨’,’软件二班’,’大二’’15850040’.’无’,’群众’)insertintoStudentvalues('003’,’张雪’,’F’,’’,’哈尔滨’,’软件一班’,’大一’’156809802’.’无’,’群众’)insertintoStudentvalues('004’,’李力’,’M’,’’,’大连’,’软件一班’,’大三’’15980000’.’无’,’群众’)insertintoStudentvalues('005’,’张小’,’M’,’’,’哈尔滨’,’软件三班’,’大一’’15884444’.’无’,’群众’)将考试类别加入Cource表中insertintoCourcevalues('000','A-123','85')insertintoCourcevalues('001','B-123','77')insertintoCourcevalues('002','C-123','91')insertintoCourcevalues('003','A-123','80')insertintoCourcevalues('004','B-123','75')insertintoCourcevalues('005','A-123','89')将课程加入User表中insertintoUservalues('阿生','921','0')insertintoUservalues('光光','111','1')insertintoUservalues('甜甜','111','1')索引的使用usestudentcreateuniquenonclusteredindexindex_snoonStudent(sno)触发器createtriggerreminderonstudentafterinsert,updateasraiserror('你在插入或修改学生的数据',16,10)droptrigger‘reminder’select*fromStudentwheresno=002存储过程createprocedureusp_getStudent@namenchar(40)asselect*fromStudentwhereSname=@name执行存储过程executeusp_getStudent'张明'4、SQL与C++结合(可视化的界面管理)1、准备创建好的数据库,创建数据源在创建数据库的应用程序之前,必须有一个可供应用程序使用的数据库。2、(1)建立了数据库之后,必须配备ODBC数据源,使其指向刚刚建立的数据库。选择“控制面板”中“管理工具”下的“数据源(ODBC)”项。双击ODBC图标,弹出“ODBC数据源管理器”对话框。在这里用户可以设置ODBC数据源的一些信息,其中的“用户DSN”选项卡是用户定义的在本地计算机上使用的数据源名(DSN),(2)为新的数据源选择数据库驱动程序。由于使用的是Access数据库,所以选择DriverdoMicrosoftAccess(*.mdb)选项,并单击“完成”按钮。(3)“ODBCMicrosoftAccess安装”对话框中,为该数据源起一个简短的名称。本例为TeacherDB,可以在下一个编辑框中输入对该数据库的说明。(4)指定数据库的位置。单击“选择”按钮,然后指定所创建的Access数据库。(5)单击“确定”按钮,刚才创建的用户数据源被添加在“用户DSN”选项卡的“用户数据源”列表框中。3.创建MFCAppWizard应用程序用MFCAppWizard(exe)创建一个对话框应用程序TeacherMIS。为了使程序能支持数据库对象,在头文件stdafx.h中加入#includeafxdb.h。4.用ClassWizard为数据库中的每一个表映射一个记录集类首先为表Users映射记录集类CUserSet。打开项目工作区的ClassView选项卡,选择项目名称,右击,弹出快捷菜单,选择NewClass命令弹出的NewClass对话框,输入记录集类名称CUserSet,并为其选择基类CRecordset,单击OK按钮,弹出的DatabaseOptions对话框,为记录集类选择ODBC数据源TeacherDB,单击OK按钮,弹出SelectDatabaseTables对话框,为记录集类选择数据库表Users,单击OK按钮,即完成记录集类CUserSet的定义。5、根据类属性之间的关系添加如下类:6、C++中实现对数据库的管理(及增加、删除、修改、查找、退出)(1)增加:voidCScore::OnBUTTONAdd()strSQL.Format(insertintoScoreVALUES('%s','%s','%s'),m_sno,m_cno,m_score);DoExecuteSQL(strSQL);(2)删除:CScore::OnBUTTONDel()strSQL.Format(deletefromScorewhereSNO='%s'andCNO='%s',m_sno,m_cno);DoExecuteSQL(strSQL);(3)修改:voidCScore::OnBUTTONEdit()strSQL.Format(UpdateScoreSETCNO='%s',SCORE='%s'wheresno='%s'andcno='%s'andscore='%s',m_cno,m_score,save_sno,save_cno,save_score);DoExecuteSQL(strSQL);(4)查找:voidCSore::OnBUTTONFind()strSQL.Format(select*fromteacherswhere%s='%s',strField,m_FieldValue);(5)退出:voidCSore::OnCancel()CDialog::OnCancel();(6)显示当前用户:m_corr_user=login.GetUserNm();(7)注销:voidCTeacherMISDlg::OnLogout()m_score.Close();CDialog::OnCancel();CLoginDlglogin;login.SetUser();log
本文标题:数据库学生成绩管理系统课程设计报告
链接地址:https://www.777doc.com/doc-2332807 .html