收藏 分享(赏)

数据库ORACLE_与VC++的链接.doc

上传人:dzzj200808 文档编号:2607632 上传时间:2018-09-23 格式:DOC 页数:21 大小:273KB
下载 相关 举报
数据库ORACLE_与VC++的链接.doc_第1页
第1页 / 共21页
数据库ORACLE_与VC++的链接.doc_第2页
第2页 / 共21页
数据库ORACLE_与VC++的链接.doc_第3页
第3页 / 共21页
数据库ORACLE_与VC++的链接.doc_第4页
第4页 / 共21页
数据库ORACLE_与VC++的链接.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、哈尔滨理工大学荣成学院软件工程系 实 验 报 告课程名称: 班级: 学号: 姓名: 1.1 课题背景随着科学技术的发展,计算机已被广泛的用于社会的各个领域,成为推动社会发展的技术动力。而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步的开拓。软件产业已成为社会信息化进程中的一个战略性产业。在软件技术的应用中,软件的开发技术尤其是应用型软件产品的开发技术成了重中之重。不断开发适应用户需求、市场需要的新型软件产品迫在眉睫。随着社会的发展,软件也在不断的更新换代。计算机领域不断取得的新研究成果使计算机在代替和延伸脑力劳动方面发挥越来越重要

2、的作用,不仅在工业方面而且在日常生活中也越来越离不开计算机。尤其是在学校里,要处理大量的学生数据。在数字化的今天,使用学生管理系统能使学校对学生数据的管理更加简单、到位,可大大的减轻管理人员的负担,实现高效办公。1.2 学生管理系统分析学生管理是学校管理中的一项重要任务,以往的手工操作已经不能适应现在办公的需要.为了摆脱繁琐的劳动,提高工作效率,利用计算机进行信息处理成为必然.开发功能完善及安全可靠的管理系统可以大大提高学校资源的利用率,及时,准确地获取需要的信息,充分发挥人员的工作潜力。正是咨询业的迅速发展使得人们从过去的手工劳动中得以解脱.同时,编写一套完善的学生管理系统的任务就显得尤为重

3、要.本系统是参照我们学校的实际情况而设计的一套针对性和功能都比较强的学生管理系统.本学生管理系统可实现学生基本信息、成绩信息、课程信息、学院信息、选课信息等的录入、修改、查询、更新和删除。1.3 目的及意义这次的课程设计是在学习完数据库原理和 VB 程序设计基础上进行的一次系统性的训练,既是对所学知识的巩固,也是对自己综合运用所学知识解决实际问题的一次锻炼。学生管理系统的主要目的是为了方便学校对学生的信息进行录入、修改、查询,提高学校的工作效率。这一系统的开发成功,解决了手写速度慢、容易出错的现状。无论是在学籍管理、成绩管理等方面都可以帮助学校最迅速最准确的完成所需的工作。无论是在适用性、灵活

4、性和易操作性方面都显示出了它的强大功能1.4 可行性分析对于学生管理信息的可行性分析,可以从以下几个方面来进行考虑(1)资源可行性分析在目前状况下,只需要一台个人电脑,安装了 Microsoft SQL Server 数据库管理软件就有了开发条件,在此基础上,任何一个人都可以充当人力资源中的一员,有了开发环境和人力资源后就可以进行学生管理系统数据库的设计。(2)工具可行性分析在当前环境下,Microsoft SQL Server 数据库软件技术已经开发得相当成熟了,可以运用该工具来实现学生管理系统的相关功能。(3)效益可行性分析由于该学生管理系统只一个很小的管理系统,在很多方面都有限制,还有许

5、多需要完善的地方,使用性较差,不具备较高的经济效益,仅供练习使用。1.5 开发设计思想本系统的开发尽量采用目前现在学校现有的软,硬件环境以及先进的系统开发方案,从而达到充分利用学校现有资源,提高系统开发水平和应用效果的目的 .所开发的系统应符合学校学生管理系统的规定,满足学校对学生管理的需要,并达到操作过程中的直观,方便,实用,安全等要求.所开发的系统应该满足模块化程序设计方案,这样即便于系统功能的各种组合和修改,有便于未参与开发的技术维护人员的补充, 维护.所开发的系统应具备数据库维护功能,能够及时根据用户需求进行数据的添加,删除,修改和备分等操作.数据库系统概论课程设计一、 题目学生管理系

6、统二、 要求完成以下四个阶段任务1、 需求分析(给出数据流程)2、 概念设计3、 逻辑设计4、 实现(数据库及用户界面)三、 系统需求描述注学生管理系统学籍管理 考勤管理 成绩管理自然信息班级专业系别考勤类型学生考勤情况课程成绩表释:1、 学生管理系统共分三大模块:学籍、考勤、成绩2、 学籍管理模块中:专业系别需要建立各个系信息及各系内部开设专业信息3、 考勤管理模块中:考勤类型分全日制(需住宿) 、走读(不住宿) 、函授(晚上或周末时间开课)4、 成绩管理模块中:管理学生第几学期所选课程的成绩四、 实现学生可以依据个人情况自主选择语言工具实现本系统,如 VB、VC 、JAVA 等等五、 验收

7、及评定1、 提交各阶段设计文档2、 可运行程序工程3、 课程设计报告一份(5000 字)学生管理系统设计流程一:需求分析1.管理员能够方便地对信息进行添加、删除、修改、查询等操作。2.学生可以方便的查询自己的信息完整否。3.管理员可以方便的查询每个学生或多个学生的信息,可以得到一张完整的信息表。 4.学生学生管理系统共分三大模块:学籍、考勤、成绩1、学籍管理(1).新学期建立新班级。 (2).为新生办理新学籍。 (3).学籍包括:自然信息(学号,姓名,性别,年龄,出生日期,籍贯,身体基本健康状况) ,班级,专业系别。2、考勤管理(1).有完善的考勤功能,能对学生有效的考勤。 (2).考勤包括:

8、考勤类型,学生考勤状况。(3).考勤类型:查寝,上课出勤状况,出操状况,在校纪律状况3、 成绩管理(1).学生都只有一个成绩管理系统,每次考完试都要记录成绩,过多的书本记录会造成空间的浪费,所以需要一个数据库来进行日常管理。(2).成绩管理包括:课程,成绩单。1)课程的基本信息:课程名,课程号。2)成绩单;学号,姓名,课程号,课程名,成绩。管理员信息处理登陆成功进入子系统信息错误重新登录奖惩信息 考勤统计 成绩统计信息处理 信息处理 信息处理信息处理成功是否返还二:概念设计1、实体属性(1)学生(学号,姓名,性别,出生日期,班级编号,)此为学生实体的对应的关系模式。该关系模式已经包含了联系“属

9、于”所对应的关系模式。(2)班级(班级编号,所属学院号)此为班级实体所对应的关系模式。该关系模式已经包含了联系“属于”所对应的关系模式,所属学院号为该关系的候选码。(3)学院(学院编号,学院名称)此为学院实体所对应的关系模式。(4)教师(教师编号,教师姓名,职称,)此为教师实体所对应的关系模式。(5)课程(课程编号,课程名称,开课学院,)此为课程实体所对应的关系模式。该关系模式已经包含了联系“开设”所对应的关系模式。(6)选课(课程编号,学号,成绩)此为联系“选课”所对应的关系模式(7)教授(课程编号,教师编号)此为联系“授课”所对应的关系模式。(8)考勤 (学号,考勤成绩,考勤类型)(9)学

10、籍(学号,姓名)2、实体表格信息Student 学生信息表字段 名称 类型 说明Sno 学号 varchar(10) PKSname 姓名 varchar(10) NOT NULLSsex 性别 tinyint用 0 表示女;用 1 表示男NOT NULLSbirth 出生日期 varchar(10)SC 选课记录表字段 名称 类型 说明Sno 学号 varchar(10) FKCno 课号 varchar(10) PK FKScore 成绩 floatCourse 课程信息表字段 名称 类型 说明Cno 课程号 varchar(10) PKCname 课程名称 varchar(10) NOT

11、 NULLCredit 学分 tinyintProfessor 教师信息表字段 名称 类型 说明Pno 教师号 varchar(10) PKPname 教师名 varchar(10) NOT NULLDno 系号 varchar(10) FKPC 授课记录表字段 名称 类型 说明Pno 学生号 varchar(10) FKCno 课程号 varchar(10) PK FKClass班级字段 名称 类型 说明Clno 班级号 varchar(10) PKConame 学院名 varchar(10) NOT NULLClname 班级名varchar(10) NOT NULLText考勤字段 名称

12、 类型 说明Sno 学号 varchar(10) Not nullTscore 考勤成绩 varchar(10) NOT NULLTkind 考勤种类 varchar(10) pkXueji 学籍字段 名称 类型 说明Sno 学号 varchar(10) Not nullSname 姓名 varchar(10) NOT NULLER 图如下:班级学院名 班级名学院学院号 学院名属于学生属于课程教师开设授课选课学号姓名性别出生日期班级教师号 教师名性别系号课程名1n1nnmnm1n学号 课程号成绩课程号教师号学籍属于考勤属于学号 考勤成绩1111考勤类型考勤类型学号姓名学院名课程号学分三:逻辑设

13、计Student 学生信息表CREATE TABLE “STUDENT“ ( “SNO“ VARCHAR2(12) NOT NULL ENABLE, “SNAME“ VARCHAR2(12) NOT NULL ENABLE, “SSEX“ VARCHAR2(12) NOT NULL ENABLE, “SBIRTH“ DATE NOT NULL ENABLE, CONSTRAINT “STUDENT_PK“ PRIMARY KEY (“SNO“) ENABLE)/Sc 选课表、CREATE TABLE “SC“ ( “SNO“ CHAR(12) NOT NULL ENABLE, “CNO“ CH

14、AR(12) NOT NULL ENABLE, “SCORE“ BINARY_FLOAT NOT NULL ENABLE, )Course 课程信息表/ CREATE TABLE “COURSE“ ( “CNO“ VARCHAR2(12) NOT NULL ENABLE, “CNAME“ VARCHAR2(12) NOT NULL ENABLE, “CREDIT“ CHAR(6), CONSTRAINT “COURSE_PK“ PRIMARY KEY (“CNO“) ENABLE, CONSTRAINT “COURSE_FK“ FOREIGN KEY (“CNO“)REFERENCES “SC

15、“ (“CNO“) ENABLE)Professor 教师信息表CREATE TABLE “PROFESSOR“ ( “PNO“ VARCHAR2(4000) NOT NULL ENABLE, “PNAME“ VARCHAR2(4000) NOT NULL ENABLE, “DNO“ VARCHAR2(4000) NOT NULL ENABLE, CONSTRAINT “PROFESSOR_PK“ PRIMARY KEY (“PNO“) ENABLE)Class 班级CREATE TABLE “CLASS“ ( “CLNO“ CHAR(12) NOT NULL ENABLE, “CONAME“

16、 VARCHAR2(12) NOT NULL ENABLE, “CLNAME“ VARCHAR2(12) NOT NULL ENABLE, CONSTRAINT “CLASS_PK“ PRIMARY KEY (“CLNO“) ENABLE)Text 考勤CREATE TABLE “TEXT“ ( “SNO“ VARCHAR2(12) NOT NULL ENABLE, “TSCORE“ VARCHAR2(5) NOT NULL ENABLE, “TKIND“ VARCHAR2(5) NOT NULL ENABLE, CONSTRAINT “TEXT_PK“ PRIMARY KEY (“TKIND

17、“) ENABLE)/Xueji 学籍CREATE TABLE “XUEJI“ ( “SNO“ VARCHAR2(12), “SNAME“ VARCHAR2(12),Clname varchar2(12),Coname varchar2(12)数据存储表(班级,课程)SC 表,Student 表 kaoqin 表、学籍表四:程序实现登陆页面教师管理页面学生信息部分代码函数定义class CStudentApp : public CWinApppublic:CStudentApp();OnWritedata();Onalter() ;OnDelete() ;Onselect();Onadd();

18、/ Overrides/ ClassWizard generated virtual function overrides/AFX_VIRTUAL(CStudentApp)public:virtual BOOL InitInstance();/AFX_VIRTUAL/ Implementation/AFX_MSG(CStudentApp)/ NOTE - the ClassWizard will add and remove member functions here./ DO NOT EDIT what you see in these blocks of generated code !/

19、AFX_MSGDECLARE_MESSAGE_MAP();/AFX_INSERT_LOCATION/ Microsoft Visual C+ will insert additional declarations immediately before the previous line.#endif / !defined(AFX_STUDENT_H_F87A7D25_44CF_4517_9A66_AB36883F1A0C_INCLUDED_)#include “stdafx.h“#include “student.h“#include “studentDlg.h“#ifdef _DEBUG#d

20、efine new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CStudentAppBEGIN_MESSAGE_MAP(CStudentApp, CWinApp)/AFX_MSG_MAP(CStudentApp)/ NOTE - the ClassWizard will add and remove mapping macros here./ DO NOT EDIT what you see in these blocks of generated code!/AFX_MSGON_COMMAND(ID_HEL

21、P, CWinApp:OnHelp)END_MESSAGE_MAP()/ CStudentApp constructionCStudentApp:CStudentApp()/ TODO: add construction code here,/ Place all significant initialization in InitInstance/ The one and only CStudentApp objectCStudentApp theApp;/ CStudentApp initializationBOOL CStudentApp:InitInstance()if (!AfxSo

22、cketInit()AfxMessageBox(IDP_SOCKETS_INIT_FAILED);return FALSE;AfxEnableControlContainer();/ Standard initialization/ If you are not using these features and wish to reduce the size/ of your final executable, you should remove from the following/ the specific initialization routines you do not need.函

23、数声明#ifdef _AFXDLLEnable3dControls(); / Call this when using MFC in a shared DLL#elseEnable3dControlsStatic(); / Call this when linking to MFC statically#endifCStudentDlg dlg;m_pMainWnd = int nResponse = dlg.DoModal();if (nResponse = IDOK)/ TODO: Place code here to handle when the dialog is/ dismisse

24、d with OKelse if (nResponse = IDCANCEL)/ TODO: Place code here to handle when the dialog is/ dismissed with Cancel/ Since the dialog has been closed, return FALSE so that we exit the/ application, rather than start the applications message pump.return FALSE;void studentDlg:OnWritedata() 写数据UpdateDat

25、a();if(m_sname = “ | m_sno = “)AfxMessageBox(“学号和姓名信息不能为空!“);return;try/ 写入各字段值m_pRecordset-AddNew();m_pRecordset-PutCollect(“sno“, _variant_t(m_sno);m_pRecordset-PutCollect(“sname“, _variant_t(m_sname);m_pRecordset-PutCollect(“sage“, atol(m_age);m_pRecordset-PutCollect(“sdept“, _variant_t(m_dept);m

26、_pRecordset-PutCollect(“coname“, _variant_t(m_comment);m_pRecordset-Update();AfxMessageBox(“插入成功!“);/ 更新显示其库内容int nCurSel = m_list.GetCurSel();ListData();m_list.SetCurSel(nCurSel);/ 移动记录指针到新的位置OnSelchangeList();catch(_com_error *e)AfxMessageBox(e-ErrorMessage();void CstudentDlg:Onalter() 改数据UpdateDa

27、ta(); / 更新对话框数据if(m_list.GetCount() = 0)AfxMessageBox(“表中记录数为空!“);return;else if(m_list.GetCurSel() m_list.GetCount()m_list.SetCurSel(0);void CstudentDlg:OnDelete() if(m_list.GetCount() = 0)return;else if(m_list.GetCurSel() m_list.GetCount()m_list.SetCurSel(0);void CstudentDlg:Onadd()UpdateData(TRUE

28、);/构造 Sql 语句/为简单考虑,这里只把学号和姓名作为查询条件CString strSql;if(m_sname != “ else if(m_sname != “ else if(m_sname = “ elsestrSql = “SELECT * FROM s“;try/先关闭已经打开的记录集对象m_pRecordset-Close();/根据新的 Sql 查询语句,重新打开记录集对象m_pRecordset-Open(strSql.AllocSysString(), theApp.m_pConnection.GetInterfacePtr(),adOpenDynamic,adLoc

29、kOptimistic,adCmdText);catch(_com_error *e)AfxMessageBox(e-ErrorMessage();/将查询后得到的新记录集显示出来ListData();刷新按钮对应的函数代码如下:void studentDlg:Onselect() 查询数据m_sno=“;m_sname=“;m_age=“;m_sdept=“;m_coname=“;m_list.ResetContent();UpdateData(false);五 报告总结1.0 设计的特点在本次课程设计中,我觉得最大的特点是用户管理这一模块设计得比较完善。该学生管理系统允许用户进行登录查看相

30、关的信息。一般用户登录系统时是不能查看管理用户界面这一模块的,有效的提高了系统的安全性。拥有不同权限的用户可以执行不同的操作,这一点在实际应用中是非常需要也是非常重要的,特别是在数据库管理这方面。在建立数据库表的时候,为数据库中的表建立了关系,并且将关系设置为级联修改和删除,这样在对数据库中不同的表进行相关操作时就不会出现更新异常或者是插入异常等异常情况了,保证了数据库中的实体完整性和参照性完整性,这是非常符合实际要求的。1.1 设计的不足本系统可实现基本的学生信息管理,比如对学生基本信息的增、删、改和查询,比如对学生选课情况的查询,统计学生所选科目的平均成绩,但是本系统并没有完全实现我在需求

31、分析中所述的功能,实现的功能不完善,实用性不强。同时由于时间原因,没有把系统设计得很详细,很周到,很复杂, ,对于系统我也没有做太多的测试来检测其稳定性和健壮性。同时对于有些不合法的填写还不能完全的识别,这样会导致最终存入数据库的数据产生不可靠性,这对于数据库设计中安全性的考量是非常重要的一点,也是本次设计中需要好好完善的一个地方。1.2 设计的收获与体会这次课程设计,我收获颇丰,首先是把原来淡忘的知识重新温故了一遍,很多知识直接做一点也想不起来了,但是只要稍微看下提示,或是书中的范例,那些语法,方法都又跃然纸上,要是没有这个课程设计,说不定再过半年什么的,我就把原来的知识都忘得干干净净的了。

32、其次是我体会到了团队合作精神的重要性。这次的课程设计大部分同学都是用 VB 来进行编程的,在访问数据库这方面大家可以说都是新手,有的同学用 ADO 进行访问,而有的则是使用数据环境设计器,其中也涉及到报表的输出,大家都共同摸索分享思想。有时自己程序里的一个 Bug 怎么找也找不出来请同学帮忙看看很有效果。一个人所学的知识不可能面面俱到的,只有通过合作,取长补短,发扬团队精神,才能使工作做得更为出色再者这次课程设计使我学会了在短期时间内的系统开发,我感觉这种开发首先应该全神贯注,抓紧时间,应该先对系统中的主要功能加以认真实现,对细枝末节尽量完善,避免由于这些小错误而出现的系统崩溃等现象。通过本次

33、课程设计,我加深了对数据库知识的了解。为了做好这次课程设计,我重新复习了一遍跟题目相关的数据库知识和 VB 编程语言,特别是需要实现的那部分原理。除此之外,还有上网查询一些相关的资料,和一些实际问题实现的例子,通过理解别人实现的过程,学习实现的一些基本思路。在这个过程中,我对整个连接数据库程序的过程有了一个更立体的认识和了解。在这次的设计中,让我进一步认识了数据库的设计过程以及设计各阶段所做的工作和要注意的细节部分,对于数据库的功能也有了更深的了解。在了解了数据库的功能以后,我还学会了通过数据环境设计器连接数据库的方法,使得我可以通过VB 的编程语言实现与数据库的连接,进而实现相关的读写操作。

34、在品味成功喜悦的同时我深知自己掌握的知识还远远不够,将学习到的一些理论知识应用到实践中去,总会出现这样或那样的问题,不是理论没有掌握好,而是光知道书本上的知识是远远不够的,一定要把理论知识和实践结合起来。把学到的知识应用到时间中去,多做多练,才可以把理论的精华发挥出来。知识不是知道,了解就好,一定要去应用它,发展它,让它在现实生活中得到充分的应用,从而解决一些问题,这才是学习的根本目的。而且知识又不是单一的,它是互相联系的,学科与学科之间都有着内在的联系。计算机是一门非常复杂且庞大的学科,一项课题往往需要多项技术才可以完成的。在设计阶段,通过对课题的深入分析与研究,迫使我们们对技术有了一定的了解。计算机技术的高速发展,使我们深深地认识到只有不断的加强学习,才能在计算机技术方面不至于被淘汰,今后,我还需加强学习。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报