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

下载本文档

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

文档简介

课 程 设 计 课程名称 数据库系统概论 题目名称 学生信息数据库管理系统 学生学院 计算机学院 专业班级 学 号 学生姓名 指导教师_左亚尧_ 2013年 1 月 15 日 目录一、引言21.课程设计选题22.课程设计的目的23.相关技术支持2二、需求分析21.概述22.功能需求23.数据字典3数据项3数据结构和数据存储:5数据流图6三、概念结构设计7四、逻辑结构设计81.关系模式92.系统结构图93.安全性和完整性10五、数据库实施101.创建数据库102.用户界面设计14六、系统测试方案和测试分析报告29七、安装和使用说明35八、 参考文献35一、 引言1. 课程设计选题学生信息数据库管理系统2. 课程设计的目的通过数据库系统课程设计,熟悉了SQL SERVER数据库管理系统的结构与组成;掌握了SQL统的使用和开发,提高分析问题、解决问题和实践应用能力。 SERVER数据库管理系统的应用技术和的使用;应用ASP开发工具实践了在线考试系统的数据库应用系统的设计方法、开发过程和SQL SERVER数据库的管理与维护。最终达到掌握数据库管理系3. 相关技术支持本程序使用C+语言,开发工具为Visual C+ 6.0,使用SQL语言建立数据库,到处ACCESS供学生管理系统使用。二、需求分析1.概述:学生管理系统是一套对学生和教育各方进行管理的工具,给教育工作者很大的方便,使教学管理更有效,更方便,满足日益繁重的教学管理需求2.功能需求:(1)提供一个对学生教学进行管理的工具,能对学生以及课程、学院设置等各方面的数据进行插入,查询,更改等基本功能,操作简便可靠。包括系统管理,基础管理,学生管理,成绩管理,学籍变动管理和数据库管理。(2)能满足不同教育工作者的管理,系统管理用于管理用户信息,能对添加和删除用户,设置和更改用户的权限。基础管理能管理学校的系、专业、班级信息,能添加删除和修改以上信息。学生管理功能是能够对学生个人基本信息没包括奖励惩处信息进行维护,包括查询、删除、修改功能。成绩管理功能能对学生成绩和考试信息进行维护。学籍管理功能能对学生个人动态进行记录,包括退学休学等。数据库管理功能对数据库进行管理,包括数据库恢复和备份。(3)能在基本Windows平台上运行,具有数据库备份功能,保证数据的安全和可恢复性。(4)界面友好,方便大部分人的理解和使用。3.数据字典:数据项:Class:数据项名类型长度注明code(班级代号)字符型20name(班级名字)字符型20department(所属系)字符型20major(主修)字符型20teacher(老师)字符型20brief(批注)字符型20Department:数据项名类型长度注明code(系代号)字符型20name(系名字)字符型20brief(批注)字符型20Examsubject:数据项名类型长度注明code(考试代号)字符型20name(考试科目)字符型20Examtime:数据项名类型长度注明ID (考试代号)字符型20time(考试时间)字符型20Examtype:数据项名类型长度注明code(类型代号)字符型20name(考试类型)字符型20Honor:数据项名类型长度注明ID(事件代号)字符型20code(学生学号)字符型20name(学生名字)字符型20class(学生班级)字符型20date(时间)字符型20content(时间)字符型20brief(备注)字符型20Leave:数据项名类型长度注明code(学生代号)字符型20name(学生名字)字符型20class(所属班级)字符型20major(主修)字符型20date(时间)字符型20reason(原因)字符型20Major:数据项名类型长度注明code(专业代号)字符型20name(专业名字)字符型20departmrnt(所属系)字符型20brief(批注)字符型20Outgrade:数据项名类型长度注明code(学生代号)字符型20name(学生名字)字符型20departmrnt(所属系)字符型20major(专业)字符型20class(所属班级)字符型20date(时间)字符型20Brief(批注)字符型20Schoolship:数据项名类型长度注明ID(奖励事件代号)字符型20name(奖励名称)字符型20type(类型)字符型20leave(获奖级别)字符型20person(获奖人)字符型20brief(批注)字符型20Date(时间)字符型20Score:数据项名类型长度注明ID (班级代号)字符型20class(班级名字)字符型20time(所属系)字符型20code(主修)字符型20name(老师)字符型20subject(批注)字符型20Type(考试类型)字符型20Score(分数)字符型20Makeup_score(补考分)字符型20Absent(缺席记录)字符型20Student:数据项名类型长度注明code(班级代号)字符型20name(班级名字)字符型20class(所属系)字符型20sex(主修)字符型20folk(老师)字符型20political(批注)字符型20Oldname(原名)字符型20Family(家庭出身)字符型20Phone(联系电话)字符型20Native(籍贯)字符型20Enroll_date(入学日期)字符型20Graduate_date(毕业时间)字符型20Address(家庭住址)字符型20Birthday(生日)字符型20Department(所属系)字符型20Major(专业)字符型20。字符型Suspend:数据项名类型长度注明code(学生代号)字符型20name(学生名字)字符型20class(所属班)字符型20date(时间)字符型20time(次数)字符型20reason(原因)字符型20Transfer:数据项名类型长度注明code(学生代号)字符型20name(学生名字)字符型20class(所属班)字符型20date(时间)字符型20reason(原因)字符型20User:数据项名类型长度注明user(班级代号)字符型20passwb(班级名字)字符型20数据结构和数据存储:数据存储名:班级信息记录输入:管理员信息维护 输出 :学生班级信息数据结构:班级号+班级名+所属系+专业+老师+备注说明:数据存储名:转专业记录输入:管理员信息维护 输出 :转专业信息数据结构:代号+名字+过去班级+现在班级说明数据存储名:院系信息记录输入:管理员信息维护和查询信息 输出 :院系信息数据结构:系编号+系名+备注说明:数据存储名:测试科目信息记录输入:管理员信息维护和查询信息 输出 :测试科目信息数据结构:科目代号+ 科目名称说明数据存储名:测试时间信息记录 输入:管理员维护信息和查询信息 输出:测试时间信息数据结构:测试时间代号+测试时间说明:数据存储名:测试类新信息记录 输入:管理员维护信息和查询信息 输出:测试类型信息数据结构:测试类型代号+测试类型说明:数据存储名:惩罚信息记录 输入:管理员维护信息和查询信息 输出:惩罚信息数据结构:事件代号+学生学号+学生名字+所属班级+发生日期+事件+备注说明:数据存储名:开除信息记录 输入:管理员维护信息和查询信息 输出:开除信息数据结构:学号+名字+班级+时间+原因说明:数据存储名:专业信息记录 输入:管理员维护信息和查询信息 输出:专业信息数据结构:专业号+专业名+所属系+备注说明:数据存储名:获奖信息记录 输入:管理员维护信息和查询信息 输出:获奖信息数据结构:奖励编号+奖项名称+类型+等级+获奖人+备注+时间说明:数据存储名:分数信息记录 输入:管理员维护信息和查询信息 输出:分数信息数据结构:名次+班级+考试时间+学号+名字+科目+考试类型+分数+补考分数+缺 席记录说明:数据存储名:学生信息记录 输入:管理员维护信息和查询信息 输出:学生信息数据结构:学号+名字+班级+性别+民族+政治面貌+家庭出身+联系电话+籍贯+入学日期+毕业日期+地址+生日+院系+身份证号码+邮政编码+专业+教育类型+家庭成员+成员政治面貌+工作单位+成员联系电话+德育考核+奖惩记录说明:数据存储名:休学信息记录 输入:管理员维护信息和查询信息 输出:休学信息数据结构:休学编号+学号+姓名+班别+时间+原因说明:数据存储名:转学信息记录 输入:管理员维护信息和查询信息 输出:转学信息数据结构:转学编号+学号+姓名+班别+时间+原因说明:数据存储名:用户信息记录 输入:管理员维护信息和查询信息 输出:用户信息数据结构:用户名+密码+是否管理员说明:师资科学生管理系统软件学生处系办公室一般用户教务处数据流图:顶层数据流图三、概念结构设计E-R图Class表ER图DepartmentER图、Score表ER图;Student表ER图:四、逻辑结构设计。1.关系模式:班级(班级号,班级名,所属系,专业,老师,备注)转专业(代号,名字,过去班级,现在班级)院系(系编号,系名,备注)测试科目(科目代号,科目名字)测试时间(测试事件代号,时间)测试类型(类型编号,类型名)惩罚(事件代号,学生学号,学生名字,所属班级,发生日期,事件,备) 开除(学号,名字,班级,时间,原因)专业(专业号,专业名,所属系,备注)奖励(奖励编号,奖项名称,类型,等级,获奖人,备注,时间)分数(名次,班级,考试时间,学号,名字,科目,考试类型,分数,补 席记录) 学生(学号,名字,班级,性别,民族,政治面貌,家庭出身,联系电话,籍贯,入学日期,毕业日期,地址,生日,院系,身份证号码,邮政编码,专业,教育类型,家庭成员,成员政治面貌,工作单位,成员联系电话,德育考核,奖惩记录)休学(休学编号,学号,姓名,班别,时间,原因)转学(转学编号,学号,姓名,班别,时间,原因)用户(用户名,密码,是否管理员)2.系统结构图:3.安全性和完整性: 对于管理人员(Admin)对系统具有完全的支配权,可以查询学生、院系等的信息,同时也可以对这些数据进行修改,同时还可以对系统数据库进行备份和修复。而普通用户只能进行非修改性的操作,查询自己需要的信息,这样保证了系统不受非法人员的干扰和破坏。五、数据库实施1.创建数据库:创建数据库school:(1)设置数据文件的初始大小为1MB,数据文件按1MB增长,最大大小为100MB。(2)设置日志文件件初始大小为1MB,按1MB增长,最大大小为100MBCREATE DATABASE schoolon(name=school_data,filename=I:DBschool_Data.mdf,size=1MB,maxsize=100MB,filegrowth=1MB)log on(name=school_log,filename=I:DBschool_log.mdf.ldf,size=1MB,maxsize=100MB,filegrowth=1MB);创建数据库对象:CREATE TABLE student( code char(20) NOT NULL , name char(20) NULL , class char(20) NULL , sex char(20) NULL , flok char(20) NULL , political char(20) NULL , oldname char(20) NULL , family char(20) NULL , phone char(20) NULL , native char(20) NULL , enroll_da char(20) NULL , graduate char(20) NULL , address char(20) NULL , birthday char(20) NULL , department char(20) NULL , IDCard char(20) NULL , postcode char(20) NULL , major char(20) NULL , edu_sys char(20) NULL , family_relation char(20) NULL , framily_name char(20) NULL , framily_political char (20) NULL , PRIMARY KEY(code) CREATE TABLE class ( code char (20) NOT NULL , name char (20) NOT NULL , department char (20) NULL , major char (20) NULL , teacher char (20) NULL , brief char (20) NULL , PRIMARY KEY(code) CREATE TABLE degrade ( code char (20) NOT NULL , name char (20) NOT NULL , class_pas char (20) NULL , class_now char (20) NULL , date char (20) NULL , reason char (20) NULL, PRIMARY KEY(code) ) CREATE TABLE department ( code char (20) NOT NULL , name char (20) NOT NULL , brief char (20) NULL , PRIMARY KEY(code),) CREATE TABLE examsubject ( code char (20) NOT NULL , name char (20) NULL , PRIMARY KEY(code) CREATE TABLE examtime ( ID char (20) NOT NULL , time char (20) NULL , PRIMARY KEY(ID) CREATE TABLE examtype ( code char (20) NOT NULL , name char (20) NULL, PRIMARY KEY(code) CREATE TABLE honor ( ID char(20) NOT NULL , code char(20) NOT NULL , name char(20) NULL , class char(20) NULL , date char(20) NULL , content char(20) NULL , brief char(20) NULL, PRIMARY KEY(ID), FOREIGN KEY(code) REFERENCES student(code) ) CREATE TABLE leave( code char(20) NOT NULL , name char(20) NOT NULL , class char(20) NULL , date char(20) NULL , reason char(20) NULL , FOREIGN KEY(code) REFERENCES student(code) ) CREATE TABLE major( code char(20) NOT NULL , name char(20) NULL , department char(20) NULL , brief char(20) NULL , PRIMARY KEY(code) CREATE TABLE outgrade ( code char(20) NOT NULL , name char(20) NULL , department char(20) NULL , major char(20) NULL , class char(20) NULL , date char(20) NULL , brief char(20) NULL FOREIGN KEY(code) REFERENCES student(code) ) CREATE TABLE scholarship ( ID char(20) NOT NULL , name char(20) NOT NULL , type char(20) NULL , level char(20) NULL , person char(20) NULL , brief char(20) NULL , date char(20) NULL , PRIMARY KEY(ID) CREATE TABLE score ( ID char (20) NOT NULL , class char (20) NULL , time char (20) NULL , code char (20) NULL , name char (20) NULL , subject char (20) NULL , type char (20) NULL , score char (20) NULL , makeup_score char (20) NULL , absent char (10) NULL , PRIMARY KEY(ID), FOREIGN KEY(code) REFERENCES student(code) ) CREATE TABLE suspand ( code char(20) NOT NULL , name char(20) NULL , class char(20) NULL , date char(20) NULL , time char(20) NULL , reason char(20) NULL , FOREIGN KEY(code) REFERENCES student(code) ) CREATE TABLE transfer ( code char(20) NOT NULL , name char(20) NULL , class char(20) NULL , date char(20) NULL , reason char(20) NULL , FOREIGN KEY(code) REFERENCES student(code) ) CREATE TABLE user( user char(20) NOT NULL , passwd char(10) NOT NULL , isadmin char(10) NULL , PRIMARY KEY(user) 2.用户界面设计设计方案:采用窗口式界面,包括一个登录界面,一个主界面,主界面中又按功能需求的不同分为六个功能菜单项和一个帮助菜单项,而每个菜单项中有按需求的不同分为多个不同的子项。实施和代码:(1) 登录框的设计:利用在屏幕上显示的对话框的基类CDialog类来实现一个简介的对话框效果:源代码代码:#include stdafx.h#include school.h#include LoginDlg.h#include userset.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endifCLoginDlg:CLoginDlg(CWnd* pParent /*=NULL*/): CDialog(CLoginDlg:IDD, pParent)/AFX_DATA_INIT(CLoginDlg)m_strUser = _T();m_strPass = _T();/AFX_DATA_INITvoid CLoginDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CLoginDlg)DDX_Control(pDX, IDC_EDIT1, m_ctrPass);DDX_Control(pDX, IDC_COMBO1, m_ctrUser);DDX_CBString(pDX, IDC_COMBO1, m_strUser);DDX_Text(pDX, IDC_EDIT1, m_strPass);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CLoginDlg, CDialog)/AFX_MSG_MAP(CLoginDlg)/AFX_MSG_MAPEND_MESSAGE_MAP()void CLoginDlg:OnOK() / TODO: Add extra validation hereCUserSet recordset;CString strSQL;UpdateData(TRUE);CSchoolApp* ptheApp = (CSchoolApp *) AfxGetApp();strSQL.Format(select * from user where user=%s AND passwd=%s,m_strUser,m_strPass);if(!recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(!,MB_OK);return ;if(recordset.GetRecordCount()=0)recordset.Close();MessageBox();m_strPass=;m_ctrPass.SetFocus();UpdateData(FALSE);elseptheApp-m_bIsAdmin = recordset.m_isadmin;recordset.Close();CDialog:OnOK();BOOL CLoginDlg:OnInitDialog() CDialog:OnInitDialog();CUserSet recordset ;CString strSQL;UpdateData(TRUE);strSQL=select * from user;if(!recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(!,MB_OK);return FALSE;while(!recordset.IsEOF()m_ctrUser.AddString(recordset.m_user);recordset.MoveNext();recordset.Close();return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid CLoginDlg:OnCancel() / TODO: Add extra cleanup hereCDialog:OnCancel();(2) 主界面的设计:主界面包括一个菜单栏和7个菜单项,分别表示了系统管理,基础管理,学生管理,成绩管理,学籍变动管理,数据库管理,帮助这7个不同的功能,让使用者一目了然。 实现效果:实现代码:/ MajorDlg.cpp : implementation file/#include stdafx.h#include school.h#include MajorDlg.h#include DepartmentSet.h#ifdef _DEBUG#define new DEBUG_NEW#undef THIS_FILEstatic char THIS_FILE = _FILE_;#endif/ CMajorDlg dialogCMajorDlg:CMajorDlg(CWnd* pParent /*=NULL*/): CDialog(CMajorDlg:IDD, pParent)/AFX_DATA_INIT(CMajorDlg)m_strDepartment = _T();m_strCode = _T();m_strInfo = _T();m_strName = _T();/AFX_DATA_INITvoid CMajorDlg:DoDataExchange(CDataExchange* pDX)CDialog:DoDataExchange(pDX);/AFX_DATA_MAP(CMajorDlg)DDX_Control(pDX, IDC_COMBO_DEPARTMENT, m_ctrDepartment);DDX_Control(pDX, IDC_LIST1, m_ctrList);DDX_Control(pDX, IDC_BUTTON_SAVE, m_bntSave);DDX_Control(pDX, IDC_BUTTON_NEW, m_bntNew);DDX_Control(pDX, IDC_BUTTON_MODIFY, m_bntModify);DDX_Control(pDX, IDC_BUTTON_DELETE, m_bntDelete);DDX_CBString(pDX, IDC_COMBO_DEPARTMENT, m_strDepartment);DDX_Text(pDX, IDC_EDIT_CODE, m_strCode);DDX_Text(pDX, IDC_EDIT_INFO, m_strInfo);DDX_Text(pDX, IDC_EDIT_NAME, m_strName);/AFX_DATA_MAPBEGIN_MESSAGE_MAP(CMajorDlg, CDialog)/AFX_MSG_MAP(CMajorDlg)ON_BN_CLICKED(IDC_BUTTON_NEW, OnButtonNew)ON_BN_CLICKED(IDC_BUTTON_SAVE, OnButtonSave)ON_BN_CLICKED(IDC_BUTTON_DELETE, OnButtonDelete)ON_BN_CLICKED(IDC_BUTTON_MODIFY, OnButtonModify)ON_NOTIFY(NM_CLICK, IDC_LIST1, OnClickList1)/AFX_MSG_MAPEND_MESSAGE_MAP()/ CMajorDlg message handlersBOOL CMajorDlg:OnInitDialog() CDialog:OnInitDialog();CDepartmentSet DeptSet ;CString strSQL;strSQL=select * from department;if(!DeptSet.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(!,MB_OK);while(!DeptSet.IsEOF()m_ctrDepartment.AddString(DeptSet.m_name);DeptSet.MoveNext();DeptSet.Close();m_ctrList.InsertColumn(0,);m_ctrList.InsertColumn(1,);m_ctrList.InsertColumn(2,);m_ctrList.InsertColumn(3,);m_ctrList.SetColumnWidth(0,60);m_ctrList.SetColumnWidth(1,120);m_ctrList.SetColumnWidth(2,120);m_ctrList.SetColumnWidth(3,160);m_ctrList.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);/m_bntSave.EnableWindow(FALSE);m_bntNew.EnableWindow(FALSE);m_bntDelete.EnableWindow(FALSE);m_bntModify.EnableWindow(FALSE);RefreshData();return TRUE; / return TRUE unless you set the focus to a control / EXCEPTION: OCX Property Pages should return FALSEvoid CMajorDlg:RefreshData()m_ctrList.DeleteAllItems();m_ctrList.SetRedraw(FALSE);UpdateData(TRUE);CString strSQL;strSQL.Format( select * from major );if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(!,MB_OK);return ;int i=0;while(!m_recordset.IsEOF()m_ctrList.InsertItem(i,m_recordset.m_code);m_ctrList.SetItemText(i,1,m_recordset.m_name);m_ctrList.SetItemText(i,2,m_recordset.m_department);m_ctrList.SetItemText(i,3,m_recordset.m_brief);i+;m_recordset.MoveNext();m_recordset.Close();m_ctrList.SetRedraw(TRUE);/m_bntSave.EnableWindow(FALSE);m_bntNew.EnableWindow();m_bntDelete.EnableWindow(FALSE);m_bntModify.EnableWindow(FALSE);void CMajorDlg:OnButtonNew() / TODO: Add your control notification handler code herem_strName= ;m_strCode= ;m_strDepartment = ;m_strInfo= ;m_bntSave.EnableWindow();m_bntNew.EnableWindow(FALSE);m_bntDelete.EnableWindow(FALSE);m_bntModify.EnableWindow(FALSE);UpdateData(FALSE);void CMajorDlg:OnButtonSave() / TODO: Add your control notification handler code hereUpdateData();if(m_strName=)AfxMessageBox();return;if(m_strCode=)AfxMessageBox();return;if(m_strDepartment=)AfxMessageBox();return;CString strSQL;strSQL.Format(select * from major where code=%s,m_strCode);if(!m_recordset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL)MessageBox(!,MB_OK);return ;if(m_recordset.GetRecordCount()!=0)AfxMessageBox();m_strCode = ;UpdateData(FALSE);m_recordset.Close();return;m_recordset.AddNew();m_recordset.m_name=m_strName;m_recordset.m_code=m_strCode;m_recordset.m_department=m_strDepartment ;m_recordset.m_brief=m_strInfo;m_recordset.Update();m_recordset.Close();RefreshData();void CMajorDlg:OnButtonDelete() / TODO: Add your control notification handler code hereint i = m_

温馨提示

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

评论

0/150

提交评论