数据库课程设计-学生信息管理系统报告书.doc_第1页
数据库课程设计-学生信息管理系统报告书.doc_第2页
数据库课程设计-学生信息管理系统报告书.doc_第3页
数据库课程设计-学生信息管理系统报告书.doc_第4页
数据库课程设计-学生信息管理系统报告书.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

河南理工大学计算机科学与技术学院课程设计报告2010 2011 学年 第 一 学期课程名称 数据库系统原理 设计题目 学生信息管理系统 学生姓名 学 号 310809030118 专业班级 信管08-1班 指导教师 2011 年 01 月 14 日目录一、摘要2概述:31.1系统及需求分析:错误!未定义书签。31.2可行性分析错误!未定义书签。二、课题组成人员及本人任务3三、开发环境43.1 visualc+6.0简介43.2 access2010简介43.3结构化查询语句sql简介错误!未定义书签。5四、需求分析64.1 需求功能64.2 性能需求7五、详细设计75.1 概念结构设计71.学生表:错误!未定义书签。72.课程表:错误!未定义书签。73.选课表:85.2数据库的逻辑结构设计81.学生表82. 课程表93. 选课表94. clerk表95.3数据库连接、数据源具体配置10六、系统功能实现116.1总体框架结构116.2系统实现121.登陆界面:122.学生信息管理模块儿123.课程信息管理模块儿134.成绩信息管理模块儿135.修改密码模块儿146.主界面14七、总结15八、参考文献15九、附录16摘要随着信息技术在管理上越来越深入而广泛的应用, 管理信息系统的实施在技术 上已逐步成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管 理信息系统。 本文介绍了在 visual+6.0 环境下采用“自上而下地总体规划,自下而上地应用开 发”的策略开发一个管理信息系统的过程。通过分析某一学校学生管理的不足,创建了一套行之有效的计算机管理学生的方案。 文章介绍了学生管理信息系统的系统分析部分,包括可行性分析、业务流程分析等;系统设计部分主要介绍了系统功能设计和数据库设计及代码设计;系统实现部分说明了几个主要模块的算法,本系统 界面友好,操作简单,比较实用。【关键字】:管理信息系统、学生管理、visualc+6.0、access、odbc。一、 概述本学生信息管理系统可以说是一个比较简单的学生管理系统, 这它集成了学生信息管理、课程信息管理、学生选课管理、等功能,因而具有较强的实用性。1.1 系统及需求分析要求系统需要有以下功能: 1 由于操作人员的计算机知识普遍较差,要求有良好的人机界面;2 由于该系统的使用对象多,要求有较好的权限管理;3 原始数据修改简单方便,支持多条件修改; 4 方便的数据查询,支持多条件查询; 5 在相应的权限下,删除数据方便简单,数据稳定性好; 数据计算自动完成,尽量减少人工干预;1.2 可行性分析由于本系统管理的对象单一,都是在校学生,且每个数据内容具有较强的关联性,涉及的计算过程不是很复杂。因此,比较适合于采用数据库管理。且现在的计算机配置都比较高,在存储量、速度方面都能满足数据库运行的 要求。在技术难度方面,由于有指导老师的指导和相关参考文献,特别是网上资料,特别是参考其它程序的功能,实验过程中挫折在所难免,但是系统功能完全可以实现。二、 实验组成人员及本人任务本系统由我自己一人结合平时学到的知识独立完成。主要用到的技术有以下几点vc+6.0c+基础sql语法基础access基础odbc配置等三、 开发环境3.1 visualc+6.0简介vc+是微软公司开发的一个ide(集成开发环境),换句话说,就是使用c+的一个开发平台。vc+是windows平台上的c+编程环境,学习vc要了解很windows平台的特性并且还要掌握mfc、atl、com等的知识,难度比较大。windows下编程需要了解windows的消息机制以及回调(callback)函数的原理;mfc是win32api的包装类,需要理解文档视图类的结构,窗口类的结构,消息流向等等;com是代码共享的二进制标准,需要掌握其基本原理等等。vc+应用程序的开发主要有两种模式,一种是win api方式,另一种则是mfc方式,传统的win api开发方式比较繁琐,而mfc则是对win api再次封装,所以mfc相对于win api开发更具备效率优势。3.2 access简介microsoft access 2010是一种关系型数据库管理系统 (rdbms)。access数据库是microsoft office 2010套件的professional版和developer版的一个组件,不需要单独安装。 与其他关系型数据库一样,ms access充当“后端”,它的任务是存储数据。除此之外,通过使用ms access,用户还可以创建“前端”或一种对用户友好的、颇受欢迎的数据访问方式。与sql server数据库进行比较,access数据库具有以下的特点:1、功能比较单一,不提供数据发布、分布式事务处理等操作,因此比access数据库需要的内存和磁盘资源要少;2、access数据库一般用于桌面应用程序,不适用于大型的企业级应用; access应用程序的可执行文件为:msaccess.exe,并且该文件的位置与powerpoint、excel等都在同一个目录下,例如office 2010,在目录office安装目录office14下可以找到该文件。要运行access,可以双击文件msaccess.exe,也可以在“开始”菜单上以快捷方式启动。access数据库由七个对象组成:表、查询、窗体、报表、页、宏以及模块。数据库中的数据主要存储在“表”中;“查询”帮助用户检索基于某些条件的特定数据;“窗体”帮助用户创建用于输入、修改和操纵数据的用户界面;“报表”以某种格式显示一个或多个表中的数据,数据可以直接从表中提取,也可以是字段经过某些计算的结果,报表还提供良好的打印效果;“宏”和“模块”有用来计算、在应用程序中导航以及打印报表等操作;“页”有提供给浏览器忠訵eb页的形式查看数据库中的数据。与sql server数据库一样,ms access中的数据库可以有一个或多个相关的表,下面我们来看看如何在access数据库中创建学员管理数据库以及学员信息表、学员成绩表。3.3结构化查询语句sql简介sql(structured query language)语言是一种介于关系代数与关系验算之间 的结构化查询语句,其功能并不仅仅是查询。sql 是一个通用的、功能极强的关系 数据库语言。sql 语言集数据查询(data query) 、数据操纵(data manipulation) 、 数据定义(data definition)和数据控制(data control)功能于一体,主要特点包括:1综合统一 2高度非过程化 3面向集合的操作方式 4以同一种语法结构提供两种使用方式 5语言简介,易学易用 定义基本表 sql 语言使用 create table 语句定义基本表,其一般格式如下: create table (列级完整性约束条件 ,列级完整性约束条件 ,) ; 修改基本表 sql 语言使用 alter table 修改基本表,其一般格式为: alter table add完整性约束 drop modify;查询sql 语言提供了 select 语句进行数据库的查询,该语句具有灵活的使用方式 和丰富的功能。其一般格式为: select all|distinct, from , where 5 课程设计(论文) group by having order by asc|desc; 插入数据 1 插入单个元组 插入单个元组的 insert 语句的格式为: insert into (,) values(,); 2 插入子查询结果 插入子查询结果的 insert 语句的格式为: insert into(,) 子查询; 修改数据 修改操作语句的一般格式为: update set =,= where ; 删除数据 删除语句的一般格式为: delete from where ;四、 需求分析需求分析是数据库信息管理系统开发的第一步也是最重要一步。 需求分析就是 描述系统的需求,通过定义系统种的关键域来建立模型,分析的根本目的的是在开 发者和提出需求的人之间建立的一种理解和沟通机智。4.1需求功能这个是一个学生管理系统,我们的目标是提高学会管理工作的效率,具有对学生个人信息,课程信息,所选课程信息进行管理及维护的功能。学生可以通过此系统进行个人信息,考试成绩查询。系统开发的总体任务是实现学生信息管理的系统化,规范化和自动化。总之,学生管理系统的功能需求包括管理员对功能的需求和学生对功能的需求两大部分,如下所列:管理员对功能的需求管理员权限最大,可以对学生,课程情况进行统一的管理,管理员对功能的需求细分如下: 有关学生信息的浏览,包括学生的姓名,性别,系别,入学日期,所在班级,等多项信息; 学生信息的添加,本系统由管理员对学生的基本信息进行添加; 学生信息的修改,删除; 学校基本课程的浏览,包括课程名,课程类型,学分等信息; 学校基本课程的添加; 学校基本课程的修改,删除; 学生成绩的浏览与统计;学生成绩信息的添加;学生成绩信息的修改,删除; 学生选课人数的统计。4.2 性能需求一般的性能需求是指界面友好,运行时间满足使用需要,安全性得到完全保证。就实际情况,在高系统配置,很容易得到保证的情况下,我们最需要考虑的性能就是系统安全性问题。在开发系统的每个阶段,均需要考虑彼此间的认证与授权。尤其要注意认证,简单地说谁是特定用户,并针对安全源验证该用户的身份。在处理完识别用户的方法后,必须利用一种方法以向用户授权,从而能够使用系统的特定功能。也就是说,需要一种方法来决定允许特定用户进行什么样的 操作。五、 详细设计5.1概念结构设计1、学生表snosnameesdeptssexsclassscomedatestu2、课程表coursepropertycnocnameecredit3、选课表scscoresnocno4、用户表clerkuserkindpassworduser5.2数据库的逻辑结构设计1、学生表2、课程表3、选课表4、用户表5.3数据库连接及数据源配置现将建好的数据库在odbc中注册。打开开始菜单打开控制面板打开管理工具再打开数据源(odbc)选择添加按钮选中access的驱动器选项,单击完成接下来选择数据库文件,单击选择找到相应的数据库文件,完成接下来的步骤。六、系统功能实现学生信息管理课程信息管理6.1 总体框架结构学生管理信息系统管理员成绩信息管理账户信息管理账户信息管理学生信息查询课程信息查询成绩信息查询普通6.2 系统实现1、登陆界面本系统分为两类用户登录,分别是管理员和普通用户,由用户类别来区分。2、学生信息管理模块儿该模块儿实现了学生信息的浏览、查询、修改、删除等功能。查询可以分为按学号查询和按姓名查询两种筛选条件。3、课程信息管理模块儿该模块儿实现了课程信息的浏览、查询、修改、删除等功能。查询可以分为按课程号查询和按课程名查询两种筛选条件。4、成绩信息管理模块儿该模块儿实现了成绩信息的浏览、查询、修改、删除等功能。查询可以分为学程号查询和按课程号查询两种筛选条件,活着是按学号和课程号同时作为筛选条件来进行查询。5、密码修改模块儿普通用户只能修改自己的密码,而不能修改其他用户的密码。6、主界面主界面是各个功能模块儿的入口,只有通过主界面才能进入各个功能模块儿。七、总结通过这次课程设计,我更加熟练的掌握了使用visualc+进行数据库软件开发的方法,加深了对数据库课程知识的理解。由于时间仓促,系统还有很多不足之处,如:成绩查询部分不够完善,成绩输入模块不支持学生成绩批量输入,软件代码交冗余、效率不高等等。在今后的学习中我会加强理论与实践的结合,通过不断的摸索来强化、巩固自己的知识、不断地学习心得知识。说实话这次的体会写下来可能会一大版呢!开始的时候看起书来问题不是很大,但是在自己动 手做的时候却又是困难重重,好几次遇到麻烦,经过翻阅多本资料,以及浏览多个网页终于把问题解决了。处理问题的能力也有了一定的提高,通过这次做课程设计,使本人对做一个完整的系统从需求分析到概要设计到详细设计到系统测试的流程有了更新的掌握。 不仅是对做系统方面有了很多认识和知识上的提高,在做文档的时候,也让自己学到了很多很简单很基础的东西,在这整个过程中,还接触到了photoshop等一些其它软件,总之,通过这一个设计我学会了很多,受益匪浅。更深的感受 是自己不去动手, 什么事都是那么的难;只要自己愿意去做,什么事都有可能。八、参考文献1.张荣梅,梁晓林。visual c+实用教程。冶金工业出版社。20042.郑阿奇. visual c+ 实用教程(第2版). 电子工业出版社.20033.魏亮, 李春葆编著.visual c+程序设计例学与实践.清华大学出版社 .20064.刘瑞 吴跃进 王宗越. visual c+项目开发实用案例. 科学出版社.20065.孙鑫 余安萍. vc+深入详解. 电子工业出版社.20066.龙马工作室.visual c+管理信息系统完整项目实例剖析.人民邮电出版社 20047.求是科技.visual c+6.0数据库开发技术与工程实践. 人民邮电出版社 2004九、附录1、登录模块儿主要代码:void clogindlg:onconfirm() / todo: add your control notification handler code herecclerkdataset mrsdataset;/记录集的声明cstring msqlstr;updatedata(true);if(m_strname.isempty()afxmessagebox(用户名不能为空,请输入用户名!);return ;msqlstr = select * from clerk where user=;msqlstr = msqlstr + m_strname;msqlstr = msqlstr + and password=;msqlstr = msqlstr + m_strpassword;msqlstr = msqlstr + ;msqlstr = msqlstr + and userkind=;msqlstr = msqlstr + m_userkind;msqlstr = msqlstr + ;if (!mrsdataset.open(afx_db_use_default_type, msqlstr)afxmessagebox(用户表打开失败!);return;if (!mrsdataset.iseof()/ open all function for user/user_kind=m_userkind.t;cugmsapp *app=(cugmsapp*)afxgetapp(); app-user_kind=m_userkind;messagebox(app-user_kind);cdialog:onok();elseafxmessagebox(用户名或用户密码或者用户类型错误!);return;2、查询部分核心代码:void cstudentdlg:onenquery() / todo: add your control notification handler code hereupdatedata(true);if (m_strsno.isempty() & m_strsname.isempty()m_rsdataset.m_strfilter = ;m_rsdataset.requery();displayrecord();setbuttonstate();return;bool mall = false;if (!m_strsno.isempty()m_rsdataset.m_strfilter = sno= + m_strsno ;m_rsdataset.m_strfilter = m_rsdataset.m_strfilter + ;mall = true;if (!m_strsname.isempty()if (mall)m_rsdataset.m_strfilter = m_rsdataset.m_strfilter + and sname=;m_rsdataset.m_strfilter = m_rsdataset.m_strfilter + m_strsname;m_rsdataset.m_strfilter = m_rsdataset.m_strfilter + ;elsem_rsdataset.m_strfilter = sname= + m_strsname;m_rsdataset.m_strfilter = m_rsdataset.m_strfilter + ;m_rsdataset.requery();displayrecord();setbuttonstate();3、按钮状态设置部分代码:bool cstudentdlg:setbuttonstate()cwnd *pwnd;cugmsapp *app=(cugmsapp*)afxgetapp();if(app-user_kind=普通)pwnd = getdlgitem(idc_new);pwnd-enablewindow(false);pwnd = getdlgitem(idc_edit);pwnd-enablewindow(false);pwnd = getdlgitem(idc_delete);pwnd-enablewindow(false);pwnd = getdlgitem(idc_save);pwnd-enablewindow(false);if(!m_rsdataset.isopen()pwnd = getdlgitem(idc_first);pwnd-enablewindow(false);pwnd = getdlgitem(idc_next);pwnd-enablewindow(false);pwnd = getdlgitem(idc_prior);pwnd-enablewindow(false);pwnd = getdlgitem(idc_last);pwnd-enablewindow(false);pwnd = getdlgitem(idc_new);pwnd-enablewindow(false);pwnd = getdlgitem(idc_edit);pwnd-enablewindow(false);pwnd = getdlgitem(idc_enquery);pwnd-enablewindow(false);pwnd = getdlgitem(idc_delete);pwnd-enablewindow(false);pwnd = getdlgitem(idc_save);pwnd-enablewindow(false);pwnd = getdlgitem(idc_cancel_rec);pwnd-enablewindow(false);return true;if (m_bedit)pwnd = getdlgitem(idc_first);pwnd-enablewindow(false);pwnd = getdlgitem(idc_next);pwnd-enablewindow(false);pwnd = getdlgitem(idc_prior);pwnd-enablewindow(false);pwnd = getdlgitem(idc_last);pwnd-enablewindow(false);pwnd = getdlgitem(idc_new);pwnd-enablewindow(false);pwnd = getdlgitem(idc_edit);pwnd-enablewindow(false);pwnd = getdlgitem(idc_enquery);pwnd-enablewindow(false);pwnd = getdlgitem(idc_delete);pwnd-enablewindow(false);pwnd = getdlgitem(idc_save);pwnd-enablewindow(true);pwnd = getdlgitem(idc_cancel_rec);pwnd-enablewindow(true);return true;if (m_rsdataset.isbof()p

温馨提示

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

评论

0/150

提交评论