数据库设计报告书.doc_第1页
数据库设计报告书.doc_第2页
数据库设计报告书.doc_第3页
数据库设计报告书.doc_第4页
数据库设计报告书.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目 录一、系统概述.31.1 目的.31.2 背景.31.3 范围.3二、需求说明.32.1功能分析.32.2工作流图.42.3数据流图.52.4数据字典.52.5概念模型设计(E-R图).82.6逻辑设计.8三、系统设计.93.1软件模块结构设计.93.2 数据库设计.16四、系统的功能.204.1 系统的主界面.204.2 学生管理模块.204.3 教师管理模块.234.4 成绩管理模块.25五、全文总结与体会.28参考文献一、系统概述1.1 目的往往管理学生档案信息是非常繁琐和极为重要的工作.我们在学习和工作中作出的努力怎样才能得到很好地保存与管理已经是我们所关心的问题了。为此,通过ASP+SQL技术来编写一部管理学生信息的程序来方便学生和老师。1.2 背景21世纪以高科技为核心的知识经济将占主导地位,国家的综合国力和国际竞争力将越来越取决于科学技术创新水平。教育作为知识创新、传播和应用的基础,已经成为经济发展和社会进步的基础。在信息爆炸时代,传统教学管理面临着诸多挑战。1.3 范围系统包括的范围:系统结构流程、前台结构、后台结构。二、需求说明2.1功能分析教学管理系统包括学生信息、教师信息、成绩信息,具体功能如下:(1) 学生消息的添加、查询、删除、修改。学生信息包括学生学号、姓名、性别、年龄。实现了学生基本信息的录入,实现了按学号、姓名、系名称查询学生基本信息以及对学生基本信息的更新。(2) 教师信息的添加、查询、删除、修改。教师信息包括老师所教课程、教师姓名、教师性别,老师所在系名、学历。实现了教师基本信息的添加,实现了按姓名、系名称查询教职工基本信息以及对教师基本信息的更新。(3) 成绩信息的添加、查询、删除、修改。成绩信息包括学号、姓名、课程编号、课程名称、成绩。实现了成绩信息的录入,运用连接查询实现了按学号、学生姓名、课程号、课程名称、教师姓名查询学生成绩,按课程号、课程名称查询不及格学生学号、姓名,也实现了对成绩信息表的更新。(4) 退出系统。实现了关闭系统的功能。 教学管理系统功能模块示意图:2.2工作流图2.3数据流图2. 4 数据字典2.4.1 数据结构卡片为:数据结构名:学生基本信息别名:描述:这是教学管理系统的主要数据结构,定义了一个学生的基本信息组成:学号,姓名,专业,性别,年龄 (1) (2)数据结构名:教师基本信息别名:教职工基本信息描述:这是教学管理系统的一个重要数据结构,定义了一个教师的基本信息组成:编号、教师姓名、性别、备注 (3) 数据结构名:成绩基本信息别名:成绩信息描述:这是教学管理系统的一个重要数据结构,记录了每一个学生的每一门考试的成绩的基本信息组成:学号、课程名称、成绩 2.4.2 数据项卡片:选择其中一个数据结构卡片给出数据项卡片(选择第一个数据结构卡片) (2) (1)数据项名:姓名别名:名字描述:标示每个学生的代号定义:字符型位置:取值范围:010个字符取值含义:自己定数据项名:学号别名:学生编号描述:唯一标识每个学生定义:字符型位置:取值范围:010个字符取值含义:顺序编号 (4) (3)数据项名:性别别名:描述:说明每个学生是男生还是女生定义:字符型位置:取值范围:02个字符取值含义:男或者女数据项名:系名别名:专业名描述:说明每个学生所学专业定义:字符型位置:取值范围:015个字符取值含义:由专业定 (5)数据项名:年龄别名:年纪描述:说明每个学生的大小定义:整型位置:取值范围:04取值含义:按照每个学生大小而定2.4.3 数据存储卡片(选择第一个数据结构卡片分析):数据存储名:查询结果别名:描述:查询学生基本信息所得的结果数据流来源:学生基本信息表数据流去向:学校管理者组成:学号,姓名,专业,性别,年龄 2.4.4数据流卡片(选择第一个数据结构卡片分析)数据流名:学生基本信息表别名:学生登记表描述:用来录入学生基本信息定义:学生基本信息表=学号+姓名+专业+性别+年龄流入数据流:流出数据流:存取方式:随机2.5概念模型设计(E-R图) 学 生学号姓名系名性别年龄教 师教师姓名系名学历课 程选修讲授课程编号课程名称学分版本先修成绩1mn12.6逻辑设计(1)Students(学号主键,姓名,系名,性别,年龄);(2)Teacher(编号外键,教师姓名主键,系名,学历);(3)Grade(学号外键,课程名称外键,成绩)(学号和课程名称作为主键);综合上述关系模式可得,3个关系模式都只有一个主键,每个关系模式中的所有非主属性对候选键均没有部分函数和传递函数依赖,也没有主属性对候选键的部分函数依赖和传递函数依赖,故可以认为3个关系模式均达到BC范式,满足数据库的开发要求,无需再对每一个关系模式进行分解。1) 学生信息表字段名称数据类型字段大小必填字段编号 char10是姓名 char10是性别int2否年龄char4否专业char15否2)成绩表字段名称数据类型字段大小必填字段课程编号 char 5是课程名称 char20是前置课程 char5否学分 int4否3)教师信息表字段名称数据类型字段大小必填字段教师编号int 4否教师姓名char10是性别char2否教授课程char10否备注 char10否三、系统设计3.1软件模块结构设计3.1.1创建一个新的MFC工程,如图所示3.1.2在对话框添加按钮,摆出各个部件的位置下图为学生管理的界面示意图:3.1.3给每个按钮做个新的对话框,如登记对话框如下图:3.1.4以此类推,将所有的模块的界面及上面的部件全部摆出来,最后所有的素材如下图:3.1.5实现对话框与对话框之间的跳转例如要实现点击学生管理界面上的登记按钮跳到学生登记的界面点击登记按钮跳转到下图首先需要给学生登记界面对话框建立一个名为MyDlg_Stu_Reg的类,然后在双击学生管理界面上的登录按钮,添加下列代码:void MyDlg_Stu:OnButton1() MyDlg_Stu_Reg stuDlg;/建立学生登记类的一个对象stuDlg.cCid = ;if (stuDlg.DoModal() = IDOK)/生成学生登录对话框,并检测是否按下确定按钮,若按下则刷新学生管理界面的数据表RefreshData();其他所有按钮跳转均为上述方法可以实现。3.1.6实现从界面对话框上输入数据并写入数据库个人认为这个是整个软件的核心部分,也是最难的部分。就还是拿学生登录对话框举例,从学生登录对话框输入学生的基本信息,然后点击确定,然后写入学生管理对话框。首先应建立一个名为Student的类,该类的声明如下class Student private:int StuNum;CString StuNam;CString StuSex;int StuAge;public:Student();virtual Student();CStringArray a_StuNum;CStringArray a_StuNam;CStringArray a_StuSex;CStringArray a_StuAge;/读取和设置成员变量int GetStuNum();void SetStuNum(int iStuNum);CString GetStuNam();void SetStuNam(CString cStuNam);CString GetStuSex();void SetStuSex(CString cStuSex);int GetStuAge();void SetStuAge(int iStuAge);/数据库操作int HaveName(CString cStuNam);void sql_insert(); /向数据库中插入一行void sql_findSno(CString cCid); /以学号查询void sql_findSname(); /以姓名查询 void sql_update(CString b); /修改数据库 void sql_delete(CString a); /删除数据库;说明:该类具有四个私有变量StuNum,StuNam,StuSex,StuAge,分别记录学生的学号,姓名,性别,年龄。由于私有函数不能直接访问,故需要编写对应的成员函数,void SetStuNum(int iStuNum),SetStuNam(CString cStuNam),SetStuSex(CString cStuSex),SetStuAge(int iStuAge),并把从外界获得的数据赋给私有变量。还需要编写关于数据库操作的函数,例如数据库的插入函数void sql_insert();/数据库插入void Student:sql_insert()/连接数据库ADOConn m_AdoConn;m_AdoConn.OnInitADOConn();/设置INSERT语句_bstr_t vSQL;CString strStuNum;strStuNum.Format(%d, StuNum);CString strStuAge;strStuAge.Format(%d, StuAge);vSQL = INSERT INTO Students (Cid, Cname, Csex, Cage, Cdept) VALUES( + strStuNum + , + StuNam + , + StuSex + , + strStuAge + , 计算机);/执行INSERT语句m_AdoConn.ExecuteSQL(vSQL);/断开与数据库的连接m_AdoConn.ExitConnect();说明:这个函数可以把Student类中的私有变量对应加到数据库之中。现在还需要把对话框中用户输入的数据通过后台传入类Student中的私有变量,应该先给对话框中的编辑框建立类向导,如下图:并给编辑框加上对应的变量名现在需要给学生登记对话框中的确定按钮加上如下代码:void MyDlg_Stu_Reg:OnOK() / TODO: Add your control notification handler code hereUpdateData(TRUE);/int StuNum,StuAge;/CString StuNam,StuSex;Student stu;stu.SetStuNum(m_Cid);stu.SetStuAge(m_Cage);stu.SetStuNam(m_Cname);stu.SetStuSex(m_Csex);if (m_Cname = )MessageBox(请输入学生姓名);return;if (cCid = ) /插入数据if (stu.HaveName(m_Cname) = 1)MessageBox(m_Cname);MessageBox(当前顾客已经存在,请重新输入顾客姓名);return;elsestu.sql_insert();else/更新数据if (m_Cname != cCname & stu.HaveName(m_Cname) = 1)MessageBox(当前顾客已经存在,请重新输入顾客姓名);return;elsestu.sql_update(cCid);/关闭对话框CDialog:OnOK();到此为止即可以实现从对话框向数据库中增加数据,其他所有功能,添加,删除,修改,查询的处理方法与这个大同小异,就不多做叙述了。3.2 数据库设计3.2.1 建立一个新的数据库打开SQLserver2000的企业管理器,在数据库里增添一个新的数据库,如下图:3.2.2 建立一个新的表设计表的属性,如下图:填写表的内容,如下图:3.2.3 数据库的链接本程序采用ADO接口来实现数据库和MFC的链接首先需要给工程中添加新的关于ADO的组件,添加方法为:工程添加到工程Components and Controls,并添加下面三个控件:Microsoft DataCombo Control,version 6.0 (OLEDB)Microsoft DataGrid Control,version 6.0 (OLEDB)Microsoft DataList Control,version 6.0 (OLEDB)如下图所示:添加成功后,控件工具条会新增四个工具,如下图需要再添加一个名为ADOConn.cpp和ADOConn.h的文件,并在ADOConn.h中添加下列代码:#import c:Program FilesCommon FilesSystemadomsado15.dll no_namespace rename(EOF,adoEOF) rename(BOF,adoBOF)点击ADODC控件的属性,链接数据库,如下图:四、系统的功能4.1系统的主界面主界面代码详见:计算机学生管理系统Dlg.cpp4.2 学生管理模块4.2.1 学生登记界面4.2.2 学生查询界面4.2.3 学生删除界面4.3 教师管理模块4.3.1 教师登记界面4.3.2 教师查询界面4.3.3 教师删除界面 4.4 成绩管理模块4.4.1 成绩登记界面4.4.2 成绩查询界面4.4.3 成绩删除界面五、全文总结与体会一周的课设感觉每天的都过的特别的充实,记得课设的第一天,我基本上是一头雾水,根本不知道如何下手,看着老师给的例子和书上的例子,那无数张表,无数个对话框,还有那写密密麻麻的代码,我头皮发麻,不知道自己在短短的一周内真的能做完这么多不,万事开头难,我硬着头皮去一点点的研究,去翻书,去查资料,去问王老师。开始不断的自己尝试,一个功能一个功能的实现。我记得我首先实现的功能是在MFC上显示一张数据库里的表,当我把表成功的显示了时,我心里充满了成绩感,下决心一定

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论