数据库ORACLE 与VC++的链接.doc_第1页
数据库ORACLE 与VC++的链接.doc_第2页
数据库ORACLE 与VC++的链接.doc_第3页
数据库ORACLE 与VC++的链接.doc_第4页
数据库ORACLE 与VC++的链接.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

哈尔滨理工大学荣成学院软件工程系 实 验 报 告课程名称: 班级: 学号: 姓名: 1.1 课题背景随着科学技术的发展,计算机已被广泛的用于社会的各个领域,成为推动社会发展的技术动力。而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步的开拓。软件产业已成为社会信息化进程中的一个战略性产业。在软件技术的应用中,软件的开发技术尤其是应用型软件产品的开发技术成了重中之重。不断开发适应用户需求、市场需要的新型软件产品迫在眉睫。随着社会的发展,软件也在不断的更新换代。计算机领域不断取得的新研究成果使计算机在代替和延伸脑力劳动方面发挥越来越重要的作用,不仅在工业方面而且在日常生活中也越来越离不开计算机。尤其是在学校里,要处理大量的学生数据。在数字化的今天,使用学生管理系统能使学校对学生数据的管理更加简单、到位,可大大的减轻管理人员的负担,实现高效办公。1.2学生管理系统分析学生管理是学校管理中的一项重要任务,以往的手工操作已经不能适应现在办公的需要.为了摆脱繁琐的劳动,提高工作效率,利用计算机进行信息处理成为必然.开发功能完善及安全可靠的管理系统可以大大提高学校资源的利用率,及时,准确地获取需要的信息,充分发挥人员的工作潜力。正是咨询业的迅速发展使得人们从过去的手工劳动中得以解脱.同时,编写一套完善的学生管理系统的任务就显得尤为重要.本系统是参照我们学校的实际情况而设计的一套针对性和功能都比较强的学生管理系统.本学生管理系统可实现学生基本信息、成绩信息、课程信息、学院信息、选课信息等的录入、修改、查询、更新和删除。1.3目的及意义 这次的课程设计是在学习完数据库原理和VB程序设计基础上进行的一次系统性的训练,既是对所学知识的巩固,也是对自己综合运用所学知识解决实际问题的一次锻炼。学生管理系统的主要目的是为了方便学校对学生的信息进行录入、修改、查询,提高学校的工作效率。这一系统的开发成功,解决了手写速度慢、容易出错的现状。无论是在学籍管理、成绩管理等方面都可以帮助学校最迅速最准确的完成所需的工作。无论是在适用性、灵活性和易操作性方面都显示出了它的强大功能1.4可行性分析对于学生管理信息的可行性分析,可以从以下几个方面来进行考虑(1)资源可行性分析在目前状况下,只需要一台个人电脑,安装了Microsoft SQL Server数据库管理软件就有了开发条件,在此基础上,任何一个人都可以充当人力资源中的一员,有了开发环境和人力资源后就可以进行学生管理系统数据库的设计。(2)工具可行性分析 在当前环境下,Microsoft SQL Server数据库软件技术已经开发得相当成熟了,可以运用该工具来实现学生管理系统的相关功能。(3)效益可行性分析 由于该学生管理系统只一个很小的管理系统,在很多方面都有限制,还有许多需要完善的地方,使用性较差,不具备较高的经济效益,仅供练习使用。1.5开发设计思想本系统的开发尽量采用目前现在学校现有的软,硬件环境以及先进的系统开发方案,从而达到充分利用学校现有资源,提高系统开发水平和应用效果的目的.所开发的系统应符合学校学生管理系统的规定,满足学校对学生管理的需要,并达到操作过程中的直观,方便,实用,安全等要求.所开发的系统应该满足模块化程序设计方案,这样即便于系统功能的各种组合和修改,有便于未参与开发的技术维护人员的补充,维护.所开发的系统应具备数据库维护功能,能够及时根据用户需求进行数据的添加,删除,修改和备分等操作.数据库系统概论课程设计一、 题目学生管理系统二、 要求完成以下四个阶段任务1、 需求分析(给出数据流程)2、 概念设计3、 逻辑设计4、 实现(数据库及用户界面)三、 系统需求描述学生管理系统学籍管理考勤管理成绩管理自然信息班级专业系别考勤类型学生考勤情况课程成绩表注释:1、 学生管理系统共分三大模块:学籍、考勤、成绩2、 学籍管理模块中:专业系别需要建立各个系信息及各系内部开设专业信息3、 考勤管理模块中:考勤类型分全日制(需住宿)、走读(不住宿)、函授(晚上或周末时间开课)4、 成绩管理模块中:管理学生第几学期所选课程的成绩四、 实现学生可以依据个人情况自主选择语言工具实现本系统,如VB、VC、JAVA等等五、 验收及评定1、 提交各阶段设计文档2、 可运行程序工程3、 课程设计报告一份(5000字)学生管理系统设计流程一:需求分析1.管理员能够方便地对信息进行添加、删除、修改、查询等操作。2.学生可以方便的查询自己的信息完整否。3.管理员可以方便的查询每个学生或多个学生的信息,可以得到一张完整的信息表。 4.学生学生管理系统共分三大模块:学籍、考勤、成绩1、学籍管理(1).新学期建立新班级。 (2).为新生办理新学籍。 (3).学籍包括:自然信息(学号,姓名,性别,年龄,出生日期,籍贯,身体基本健康状况),班级,专业系别。 2、考勤管理(1).有完善的考勤功能,能对学生有效的考勤。 (2).考勤包括:考勤类型,学生考勤状况。(3).考勤类型:查寝,上课出勤状况,出操状况,在校纪律状况3、 成绩管理(1).学生都只有一个成绩管理系统,每次考完试都要记录成绩,过多的书本记录会造成空间的浪费,所以需要一个数据库来进行日常管理。(2).成绩管理包括:课程,成绩单。1)课程的基本信息:课程名,课程号。2)成绩单;学号,姓名,课程号,课程名,成绩。管理员信息处理登陆成功进入子系统信息错误重新登录奖惩信息考勤统计成绩统计信息处理信息处理信息处理信息处理成功是否返还二:概念设计1、实体属性(1)学生(学号,姓名,性别,出生日期,班级编号,)此为学生实体的对应的关系模式。该关系模式已经包含了联系“属于”所对应的关系模式。(2)班级(班级编号,所属学院号) 此为班级实体所对应的关系模式。该关系模式已经包含了联系“属于”所对应的关系模式,所属学院号为该关系的候选码。(3)学院(学院编号,学院名称) 此为学院实体所对应的关系模式。(4)教师(教师编号,教师姓名,职称,) 此为教师实体所对应的关系模式。(5)课程(课程编号,课程名称,开课学院,) 此为课程实体所对应的关系模式。该关系模式已经包含了联系“开设”所对应的关系模式。(6)选课(课程编号,学号,成绩)此为联系“选课”所对应的关系模式(7)教授(课程编号,教师编号)此为联系“授课”所对应的关系模式。(8)考勤 (学号,考勤成绩,考勤类型)(9)学籍(学号,姓名)2、实体表格信息Student 学生信息表字段名称类型说明Sno学号varchar(10)PKSname姓名varchar(10)NOT NULLSsex性别tinyint用0表示女;用1表示男NOT NULLSbirth出生日期varchar(10)SC 选课记录表字段名称类型说明Sno学号varchar(10)PKFKCno课号varchar(10)FKScore成绩floatCourse 课程信息表字段名称类型说明Cno课程号varchar(10)PKCname课程名称varchar(10)NOT NULLCredit学分tinyintProfessor 教师信息表字段名称类型说明Pno教师号varchar(10)PKPname教师名varchar(10)NOT NULLDno系号varchar(10)FKPC 授课记录表字段名称类型说明Pno学生号varchar(10)PKFKCno课程号varchar(10)FKClass班级字段名称类型说明Clno班级号varchar(10)PKConame学院名varchar(10)NOT NULLClname班级名varchar(10)NOT NULL Text考勤 字段名称类型说明Sno学号varchar(10)Not nullTscore考勤成绩varchar(10)NOT NULLTkind考勤种类varchar(10)pkXueji 学籍 字段名称类型说明Sno学号varchar(10)Not nullSname姓名varchar(10)NOT NULLER图如下:班级学院名班级名学院学院号学院名属于学生属于课程教师开设授课选课学号姓名性别出生日期班级教师号教师名性别系号课程名1n1nnmnm1n学号课程号成绩课程号教师号学籍属于考勤属于学号考勤成绩1111考勤类型考勤类型学号姓名学院名课程号学分三:逻辑设计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 CHAR(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 (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 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) 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();/ 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 !/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#define 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_HELP, 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 (!AfxSocketInit()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.函数声明#ifdef _AFXDLLEnable3dControls();/ Call this when using MFC in a shared DLL#elseEnable3dControlsStatic();/ Call this when linking to MFC statically#endifCStudentDlg dlg;m_pMainWnd = &dlg;int nResponse = dlg.DoModal();if (nResponse = IDOK)/ TODO: Place code here to handle when the dialog is/ dismissed 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() 写数据UpdateData();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_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() 改数据UpdateData(); / 更新对话框数据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);/构造Sql语句/为简单考虑,这里只把学号和姓名作为查询条件CString strSql;if(m_sname != & m_sno != )strSql.Format(SELECT * FROM s WHERE sname = %s AND sno = %s,m_sname,m_sno);else if(m_sname != & m_sno = )strSql.Format(SELECT * FROM s WHERE sname = %s,m_sname);else if(m_sname = & m_sno != )strSql.Format(SELECT * FROM s WHERE sno = %s,m_sno);elsestrSql = SELECT * FROM s;try/先关闭已经打开的记录集对象m_pRecordset-Close();/根据新的Sql查询语句,重新打开记录集对象m_pRecordset-Open(strSql.AllocSysString(), theApp.m_pConnection.GetInterfacePtr(), adOpenDynamic, adLockOptimistic, 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设计的特点在本次课程设计中,我觉得最大的特点是用户管理这一模块设计得比较完善。该学生管理系统允许用户进行登录查看相关的信息。一般用户登录系统时是不能查看管理用户界面这一模块的,有效的提高了系统的安全性。拥有不同权限的用户可以执行不同的操作,这一点在实际应用中是非常需要也是非常重要的,特别是在数据库管理这方面。在建立数据库表的时候,为数据库中的表建立了关系,并且将关系设置为级联修改和删除,这样在对数据库中不同的表进行相关操作时就不会出现更新异常或者是插入异常等异常情况了,保证了数据库中的实体完整性和参照性完整性,这是非常符合实际要求的。1.1设计的不足本系统可实现基本的学生信息管理,比如对学生基本信息的增、删、改和查询,比如对学生选课情况的查询,统计学生所选科目的平均成绩,但是本系统并没有完全实现我在需求分析中所述的功能,实现的功能不完善,实用性不强。同时由于时间原因,没有把系统设计得很详细,很周到,很复杂,对于系统我也没有做太多的测试来检测其稳定性和健壮性。同时对于有些不合法的填写还不能完全的识别,这样会导致最终存入数据库的数据产生不可靠性,这对于数据库设计中安全性的考量是非常重要的一点,也是本次设计中需要好好完善的一个地方。1.2 设计的收获与体会这次课程设计,我收获颇丰,首先是把原来淡忘的知识重新温故了一遍,很多知识直接做一点也想不起来了,但是

温馨提示

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

评论

0/150

提交评论