数据库课程设计学生信息管理系统Word文档下载推荐.docx
《数据库课程设计学生信息管理系统Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《数据库课程设计学生信息管理系统Word文档下载推荐.docx(31页珍藏版)》请在冰豆网上搜索。
经过综合分析,确定了学生管理系统的主要包括以下功能:
(1)用户登陆功能
管理员登陆界面主要为管理员提供对系统使用者的操控,确保系统信息的安全性,可靠性,登陆后可以通用系统管理中的用户管理增加或修改用户帐户。
(2)学生信息管理功能
学生信息管理功能模块可以实现以下功能:
学生信息管理;
学生成绩录入;
(3)学生信息查询功能
学生成绩查询;
学生课程查询;
学生基础信息查询。
(4)关于对话框
显示有关该系统的信息。
2.2功能模块图
根据上述的功能,可以设计出系统的总体功能模块,如图2.1所示。
图2.1系统总体功能模块
“系统登陆”功能模块用于验证使用者的身分,其功能模块如图2.2所示。
图2.2系统登陆模块
“学生管理”功能模块用于学生信息管理,学生成绩录入,学生违规处理,成绩等级设置,其功能模块如图2.3所示。
图2.3学生管理模块
“查询管理”功能模块用于查询学生信息,学生成绩,违规信息,其功能模块如图2.4所示。
图2.4查询管理模块
“系统管理”功能模块用于修改或增加用户,退出系统,其功能模块如图2.5所示。
图
图2.5系统管理模块
3数据库设计
3.1概念结构设计
根据需求分析抽象出信息结构,可得该系统的E-R图。
(1)用户(tb_user)E-R图,主体为系统管理员,其包含两个属性,分别为用户名和密码。
如图3.1所示。
图3.1用户E-R图
(2)学生(tb_studentinfo)实体E-R图,主体为学生,其包含属性为学生姓名,学生编号,年龄,性别,地址,班级,联系电话。
如图3.2所示。
图3.2学生实体E-R图
(3)考试(tb_examkinds)实体E-R图,主体为考试,其包含属性学生编号,考试类别,考试科目,考试成绩,考试日期。
如图3.3所示。
图3.3考试实体E-R图
通过分析上述实体间的联系将分E-R图合并为学生管理系统的基本E-R图。
由于用户这一实体它是用来确定使用该系统权限的于其他实体间无内在联系,故在此不考虑。
同时每个实体的属性在上面的分E-R图中已经给出,在此不予给出
图3.5系统基本E-R图
3.2逻辑结构设计
根据上述的概念结构设计出逻辑结构,将E-R图转换为关系模型。
(1)数据库中数据表描述
本数据库包含以下4个表:
登录表tb_user,学生基础信息表tb_studentinfo,学生违规信息表tb_regbreakinfo,学生成绩信息表tb_examinfo_sub,成绩等级设置表tb_gradelevel,考试类型表tb_examkinds。
表3.1数据表描述表
编号
数据表名称
类型
内容
01
tb_user
辅助表
记录管理员帐号,密码
02
tb_studentinfo
主表
记录学生基础信息
03
tb_regbreakinfo
记录学生违规信息
04
tb_examinfo_sub
记录学生成绩信息
05
tb_gradelevel
查询时设置查询范围
06
tb_examkinds
记录考试的类型
本系统主要用于管理者的使用,即只有系统管理员用户。
系统管理员为xuwei,他可以管理所有信息。
前面是通过前台来实现系统安全性的,我们也可以对数据库进行身份验证,可以从系统中建一个登录名,使得本系统可以有多个管理员,从而实现对数据库的完善与管理,以此来及时更新系统中的学生信息管理。
(2)系统数据项表描述
表3.2tb_user表数据项信息表
标识符
长度
所属表名
同义名
1
username
varchar
20
用户名
2
pwd
10
密码
表3.3tb_studentinfo表数据项信息表
studentid
50
tb_studentinfo
学生编号
studentname
3
phone
联系电话
4
addr
地址
5
age
float
8
年龄
6
目录名
7
sex
性别
表3.4tb_regbreakinfo表数据项信息表
tb_regbreakinfo
breakcontent
100
违规内容
handleresult
处理结果
memo
备注
breaktime
smalldatetime
时间
表3.5tb_examinfo_sub表数据项信息表
tb_examinfo_sub
code
考试科目
grade
成绩
kind
考试类型
examdate
datetime
考试时间
表3.6tb_gradelevel表数据项信息表
grade_level
tb_gradelevel
成绩等级
up_grade
最高分数
low_grade
最低分数
表3.7tb_examkinds表数据项信息表
tb_examkinds
4系统实现
4.1数据库的连接
在该系统中数据库的连接使用ODBC。
ODBC是一种可以执行SQL语句的API。
ODBC有VC++6.0编程语言编写的类及接口组成,使用它可以将VC程序连接到SQLSever等多种关系型数据库中。
程序员通过ODBC可以编写成具有平台无关性的数据库应用程序。
首先配置ODBC数据源。
打开Windows控制面板,找到管理工具—>
数据源(ODBC),双击打开此选项,数据源配置界面如图4.1所示:
图4.1数据源配置界面
选择添加(D)...,弹出“创建新数据源”界面,下拉选择框到最末尾,选择SQLServer。
点击完成按钮,弹出“创建到SQLServer的新数据源”界面,填写相关的内容,其中,名称(M)可以任意指定一个自己方便记忆的数据源名称(必须),描述(D)用来描述此数据源,可以不用填写,而服务器(S)来源于:
SQLSever服务管理器。
点击下一步按钮,不需要做任何改动。
点击下一步按钮,选择更改默认的数据库为(D):
自己定义的数据库,此处选择之前创建的数据库wang(重要),点击完成按钮,完成新数据源的创建工作。
数据源源配置成功之后进行测试,测试结果如图4.2所示。
图4.2数据源测试结果
4.2数据库备份和恢复方案
(1)应用辅助工具进行备份和恢复
应用数据库辅助工具(如sqlbackuptools…)进行备份,选择所需要备份的数据库和目标地址即可进行数据备份,恢复数据库只需要指定备份文件和需要恢复的数据库即可进行数据恢复。
(2)分离数据库法
在企业管理器中右击需要备份的数据库,选择“所有任务”,“分离数据库”,执行分析操作,拷贝数据库MDF文件和LDF文件。
恢复方案:
在企业管理器的控制台树中选择“数据库”节点,右击,“所有任务”,“附加数据库”,找到待恢复数据库的MDF文件,确定。
4.3系统功能模块设置
本系统的用户界面用VC++6.0编写,主要由1个主界面和10个辅助对话框组成。
主界面集合系统主要基本功能按键,辅助对话框负责采集用户输入信息和做基本的信息处理。
:
(1)系统类文件功能描述
NO.
类名
功能
CMystudentsysDlg
Frame
主窗口类,提供系统主要功能的调用接口
CMystudentsysApp
辅助类
封装系统主要数据和方法,为其它类提供信息处理功能
CRegbreak_finddig
Dialog
查询学生的违规信息
CUserdlg
管理员信息修改对话框,修改管理员密码,删除管理员
CInput_regbreakdlg
学生违规信息的录入
CInfoStudent
学生基础信息的录入
07
CGrade_levelinfodig
学生成绩等级的设置
08
CExaminfo_submarkdlg
学生成绩的录入
09
CLogin
管理员登陆对话框,提供登陆界面,检查登陆信息
表4.1类文件作用描述表
(2)系统数据流表描述
表4.3数据流表
名称
来源
去向
组成
登陆信息
管理员
应用系统
用户名+密码
授权信息
错误身份信息
查询请求
待查询对象识别符(如Cid,Ono)
查询结果
被查询对象具体信息
管理请求
识别符(Cid,Ono等)+管理类型
管理结果信息
被管理对象处理结果
非法请求
非法请求提示信息
5功能测试
5.1测试方案
由于系统规模较小,所以没有安排单独的白盒测试,而是相应地将这部分测试归并到系统编码过程中。
整个测试过程基于自顶向下测试的组装模块的方法,先对主模块进行基本测试,然后在按深度优先策略逐一将子模块组装到主模块上进行测试,最后再对系统进行全面的整体测试。
5.2测试过程
(1)登陆测试
双击可执行文件mystudentsys.exe打开应用系统,可见登陆界面如图5.1所示:
图5.1系统登陆界面
若输入用户名和密码错误,用户无法登陆如图5.2所示:
图5.2登陆错误提示信息
输入正确用户名和密码,用户正常登陆。
(2)学生管理功能测试
A:
学生信息管理:
选择“学生信息管理”,填写学生信息(或者单击添加按钮),单击“保存”按钮,即可将当前输入的学生信息保存到数据库中,如图5.3所示:
图5.3学生信息保存
B:
单击“第一条”,“上一条”,“下一条”,“末一条”按钮,可分别查看数据中以录入的学生信息,如图5.4所示:
图5.4查看学生信息
C:
选中学生信息页面,单击删除按钮,及可删除相应的学生信息,如图5.5所示:
图5.5删除学生信息
D:
学生成绩录入:
“学生管理”,“学生成绩录入”,单击“保存”按钮,即可保存输入的成绩信息。
如图5.6所示:
图5.6学生成绩录入
学生成绩查询:
“查询管理”,“学生成绩查询”,输入学生编号,单击查询按钮即可显示查询学生的信息。
如图5.10所示:
图5.10学生成绩查询
学生基础信息查询:
“查询管理”,“学生违规查询”,输入学生编号,单击“查询”按钮,即可查看所查询学生的信息。
如图5.12所示:
图5.12学生基本信息查询
(4)系统管理功能测试
用户管理:
“系统管理”,“用户管理”,出现用户管理界面,如图5.13所示。
在该界面可以为系统添加管理员,删除管理员,修改管理员,增加系统的管理人数以及修改变更。
图5.13用户管理
B:
退出系统:
如图5.14所示:
图5.14退出系统
(5)关于作者信息,显示作者的信息.如图5.15所示:
图5.15关于作者
程序代码
CREATEDATABASExuwei
GO
CREATETABLEtb_examinfo_sub(
studentidvarchar(50)NOTNULL,
codevarchar(50)NOTNULL,
gradefloatNOTNULL,
kindvarchar(50)NOTNULL,
examdatedatetimeNOTNULL
);
CREATETABLEtb_regbreakinfo(
breakcontentvarchar(100)NOTNULL,
[handleresult][varchar](100)NOTNULL,
memovarchar(100),
breaktimesmalldatetimeNOTNULL
CREATETABLEtb_studentinfo(
studentnamevarchar(50)NOTNULL,
sexvarchar(50)NOTNULL,
agefloatNOTNULL,
addrvarchar(60),
phonevarchar(50),
classvarchar(50)NOTNULL
CREATETABLEtb_user(
usernamevarchar(20)NOTNULL,
pwdvarchar(10)
CREATETABLEtb_gradelevel(
grade_levelvarchar(50)NOTNULL,
up_gradefloatNOTNULL,
low_gradefloatNOTNULL
CREATETABLEtb_examkinds(
kindvarchar(50)NOTNULL
//程序名称:
mystudentsys.cpp
//程序功能:
取得应用程序与数据库系统的连接
try
{
CStringstrConnect;
strConnect.Format("
DSN=mystudentsys;
"
);
if(m_DB.Open(NULL,false,false,"
ODBC;
DSN=xuwei;
UID=Sa;
PWD=123;
)==0)
{
AfxMessageBox("
UnabletoConnecttotheSpecifiedDataSource"
returnFALSE;
}
}
catch(CDBException*pE)
pE->
ReportError();
Delete();
returnFALSE;
//基于对话框的MFC程序,运行完了App函数之后便运行initial函数
CLogindlg;
if(dlg.DoModal()!
=IDOK)//在登录对话框显示后若用户按取消按钮则执行if语句销毁登录对话框
OnOK();
//执行本函数的ONOK函数,销毁登录对话框
//返回true显示出MystudentsysDlg对话框
returnTRUE;
//returnTRUEunlessyousetthefocustoacontrol
}
Login.cpp
系统登陆
voidCLogin:
:
OnOK()
{
//TODO:
Addextravalidationhere
UpdateData(TRUE);
if(m_Name.IsEmpty()||m_PassWord.IsEmpty())
MessageBox("
用户名或密码不能为空"
return;
m_Num++;
CStringsql;
sql.Format("
select*fromtb_userwhereusername='
%s'
andpwd='
m_Name,m_PassWord);
m_LoginSet=newCLoginSet(&
((CMystudentsysApp*)AfxGetApp())->
m_DB);
if(!
m_LoginSet->
Open(AFX_DB_USE_DEFAULT_TYPE,sql))
AfxMessageBox("
tb_studentinfo表打开失败!
if(m_LoginSet->
GetRecordCount()!
=0)
CDialog:
OnOK();
//核对密码成功,销毁登录对话框
else
if(m_Num==3)
MessageBox("
密码3次不正确"
CDialog:
OnCancel();
else
用户名或密码不正确"
m_Name="
;
m_PassWord="
UpdateData(FALSE);
IsOpen())
m_LoginSet->
Close();
deletem_LoginSet;
}
Studentinfo_finddlg.cpp
学生基本信息录入
BOOLCStudentinfo_finddlg:
OnInitDialog()
CDialog:
OnInitDialog();
Addextrainitializationhere
m_List.InsertColumn(0,"
学生姓名"
m_List.InsertColumn(1,"
性别"
m_List.InsertColumn(2,"
年龄"
m_List.InsertColumn(3,"
住址"
m_List.InsertColumn(4,"
电话"
m_List.InsertColumn(5,"
班级"
RECTrect;
m_List.GetWindowRect(&
rect);
intwid=rect.right-rect.left;
m_List.SetColumnWidth(0,wid/6);
m_List.SetColumnWidth(1,wid/6);
m_List.SetColumnWidth(2,wid/6);
m_List.SetColumnWidth(3,wid/6);
m_List.SetColumnWidth(4,wid/6);
m_List.SetColumnWidth(5,wid/6);
m_List.SetExtendedStyle(LVS_EX_FULLROWSELECT);
voidCStudentinfo_finddlg:
OnClose()
Addyourmessagehandlercodehereand/orcalldefault
OnClose();
Onfindstudentinfo()
Addyourcontro