当前位置:文档之家› 安徽工业大学--数据库课程设计--含代码

安徽工业大学--数据库课程设计--含代码

《数据库系统概论》课程设计实验报告书安徽工业大学计算机学院姓名专业班级学号指导教师2011年12 月25 日目录1、绪论*****************************************32、系统需求分析与设计***************************43、系统实施*************************************74、系统说明*************************************135、总结*****************************************13 参考文献****************************************14 附录代码****************************************141 绪论1.1 概述1.1.1 问题的提出高效率的完成学生成绩的管理,开发一个具有使用意义的学生成绩管理系统。

1.1.2 本课题的意义通过对学校日常教学管理中的课程、选课、学生、教师、成绩等相关内容进行分析,完成具有学生管理、成绩管理、课程管理等相关功能的小型数据库管理应用系统。

1.2 开发环境与工具介绍本系统采用Microsoft Visual C++6.0作为开发工具,C++为开发语言,采用Oracle 9i版本数据库管理系统建立数据库,先在Oracle中设计并制作各部分需要调用的数据库,并进行初始数据的输入,再进行界面的设计和事件代码的编写,在指导老师的帮助下,已经基本上成功地实现了设计要求。

其中数据库设计和程序设计是系统的核心部分。

通过对数据库的概念设计、逻辑设计、物理设计和系统的模块设计,使得系统界面简洁,功能明确,方便了工作人员的操作。

1.2.1 ODBC简介ODBC(Open Database Connectivity) 是"开放数据库互连"的简称,是一种使用SQL的应用程序接口(API),是微软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。

这些API利用SQL 来完成其大部分任务。

ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。

一个完整的ODBC由下列几个部件组成:应用程序、 ODBC管理器、驱动程序管理器、 ODBC API、 ODBC 驱动程序、数据源。

1.2.2 学生成绩管理系统研究状况学生成绩管理是各大学的主要日常管理工作之一,涉及到校、系、师、生的诸多方面,随着教学体制的不断改革,尤其是学分制、选课制的展开和深入,学生成绩日常管理工作及保存管理日趋繁重、复杂。

迫切需要研制开发一款功能强大,操作简单,具有人性化的学生成绩管理系统。

在国外高校,与国内不同,他们一般具有较大规模的稳定的技术队伍来提供服务与技术支持。

而国内高校信息化建设相对起步较晚。

在数字校园理论逐步应用的过程中,各高校一方面不断投资购建各种硬件、系统软件和网络,另一方面也不断开发实施了各类教学、科研、办公管理等应用系统,形成了一定规模的信息化建设体系。

但是,由于整体信息化程度相对落后,经费短缺,理论体系不健全等原因,国内高校教务管理系统在机构设置、服务范围、服务质量及人员要求上与国外高校相比都有一定的差距。

纵观目前国内研究现状,在安全性和信息更新化方面存在有一定的不足,各现有系统资料单独建立,共享性差;在以管理者为主体的方式中,信息取舍依赖管理者对于信息的认知与喜好,较不容易掌握用户真正的需求,也因此无法完全满足用户的需求。

因此,教务管理软件应充分依托校园网,实现教务信息的集中管理、分散操作、信息共享,使传统的教务管理朝数字化、无纸化、智能化、综合化的方向发展,并为进一步实现完善的计算机教务管理系统和全校信息系统打下良好的基础。

2 系统需求分析与设计2.1 用户需求分析2.1.1 用户需求要求不同的实体(学生、教师和管理员)登录系统后,能够进行合理范围的内的对数据库中的数据进行操作。

2.1.2 系统功能需求1.学生:查询每一门课程的成绩;查询所有课程的平均成绩;查询所有选课信息;修改密码。

2.教师:添加学生成绩;修改学生成绩;查询学生成绩(按条件查询);查询所有授课信息;修改密码。

3:管理员:增删改查学生信息;增删改查教师信息;增删改查课程信息。

2.1.3 数据分析学生表:学号,姓名,性别,年龄,班级,电话,学院,登录初始密码;教师表:教师号,姓名,性别,年龄,职称,电话,所属学院,登录初始密码;课程表:课程号,课程名,课程类型,课时;学院信息表:学院名称,学院电话;教师授课表:教师号,课程号,上课教室,上课事件;学生选课表:学号,课程号,教师号,成绩;2.2 系统功能模块图2.3 数据库设计2.3.1 系统E-R图2.3.2 数据库逻辑结构设计学生表:学号,姓名,性别,年龄,班级,电话,学院,登录初始密码; Student (SNo,SName,SSex,SAge,SClass,SPhone,SDept,SCode );教师表:教师号,姓名,性别,年龄,职称,电话,所属学院,登录初始密码;Teacher (TNo,TName,TSex,TAge,TPosition,TPhone,TDept,TCode ); 课程表:课程号,课程名,课程类型,课时; Course (CNo,CName,CType,CTime ); 学院信息表:学院名称,学院电话; Dept (DName,DPhone );教师授课表:教师号,课程号,上课教室,上课事件; Teach (TNo,CNo,TRoom,TTime );学生选课表:学号,课程号,教师号,成绩; Score (SNo,CNo,TNo,Score );3 系统实施3.1 建立数据库创建数据库表的SQL语句3.2 数据库连接d b.Close(); //断开数据库的连接3.3 主要模块实施3.3.1 登录模块的开发见附加代码部分3.3.2 学生成绩管理系统各界面系统登录界面:学生登录功能:教师登录功能:管理员登录功能:3.4 系统测试3.4.1 软件测试的对象利用不同的登录权限对学生表、教师表、课程表、授课表和成绩表进行不同的增删改查操作。

3.4.2 软件测试的结果学生部分功能实现结果:教师部分功能实现结果:管理员部分功能实现结果:查询学生信息:添加学生信息:修改教师信息:修改后的内容删除教师信息:(下图中已经删除教师号为001的教师信息)4 系统说明4.1 开发环境本系统的是在Micorsoft Visual C++6.0平台下开发的,系统的后台数据库为Oracle9i 数据库;因此在使用本系统前,应先安装Micorsoft Visual C++和Oracle 9i数据库,否则该系统无法运行。

4.2 系统安装、配置与发布应用程序的步骤将系统的原文件直接复制到机器上后,在数据库管理系统上建立一个名为FXC的数据库,在创建用户U74115/fxc123,建立表空间并添加必要的数据,最后再在ODBC中配置数据源,将数据源命名为StuScore后,系统便可以运行。

5 总结整个课程设计基本满足设计的要求,不过还存在许多不足的地方。

此次的课程设计,对自己的动手能力水平有了一定幅度的提高。

课程设计过程中,基本完成了一下功能:连接数据库,增加数据库表中的记录,删除数据库表中的记录,修改记录,查询记录(按条件查询)。

尚未解决的问题:不能设置多条件查询记录;查询结果放到列表控件后未能按照一定条件排序;教师添加和修改学生成绩两个操作不能分开(即两个操作界限模糊);教师无修改学生成绩限定次数;无查询平均成绩、及格率、最高或最低成绩等指标的功能;管理员删除信息后,其他表中的相应信息也会删除,即未设置数据安全机制。

此次课程设计让我在数据库编程方面有了一定的认识,并且通过实际动手实验加深了对这一方的认识,了解了数据库应用系统的基本知识和开发步骤:需求分析、概念模式设计、逻辑结构设计、物理实施和系统测试阶段。

本课程设计的完成还通过了指导老师和同学的指导和帮助,在此表示感谢。

参考文献[1] 郑莉,董渊,何江周.C++程序设计[M]. 北京:清华大学出版社,2010.[2] 陈根才,孙建伶,林怀忠,周波.数据库课程设计[M]. 浙江:浙江大学出版社,2007[3] 戴小平,王丽,帅兵,张润梅.数据库系统及应用[M]. 合肥:中国科学技术大学出版社,2010附录代码:登录模块的开发while(!set.IsEOF()){set.GetFieldValue((short)0,username);if(m_username==username){set.GetFieldValue((short)1,password);match_flag=1; //是否匹配反映在标志变量match_flag上break;}else {}set.MoveNext();}}if(0==match_flag && 3!=m_id){MessageBox("没有找到该用户!",MB_OK);return;}//根据m_id登录不同界面if(1==m_id){if(m_password==password){//MessageBox("学生登录");CStudentDlg StuDlg;StuDlg.m_sno=m_username; //传递用户名和密码StuDlg.m_scode=m_password;StuDlg.DoModal();}else{MessageBox("密码不正确!","提示",MB_OK);return;}}else if(2==m_id){if(m_password==password){//MessageBox("教师登录");CTeacherDlg TeaDlg;TeaDlg.m_tno=m_username;TeaDlg.m_tcode=m_password;TeaDlg.DoModal();}else{MessageBox("密码不正确!","提示",MB_OK);return;}}else if("Manager"==m_username){教师添加学生成绩模块的开发:。

相关主题