学籍管理系统.docx

上传人:b****8 文档编号:11001698 上传时间:2023-02-24 格式:DOCX 页数:27 大小:490.30KB
下载 相关 举报
学籍管理系统.docx_第1页
第1页 / 共27页
学籍管理系统.docx_第2页
第2页 / 共27页
学籍管理系统.docx_第3页
第3页 / 共27页
学籍管理系统.docx_第4页
第4页 / 共27页
学籍管理系统.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

学籍管理系统.docx

《学籍管理系统.docx》由会员分享,可在线阅读,更多相关《学籍管理系统.docx(27页珍藏版)》请在冰豆网上搜索。

学籍管理系统.docx

学籍管理系统

成绩

评阅人

评阅日期

计算机科学与技术系

数据库课程设计

设计题目:

学生学籍管理系统

 

班级:

学号:

姓名:

指导老师:

 

2006年12月25日

目录

1.学生学籍管理系统简介3

2.数据库需求分析3

3.系统总体设计3

3.1系统物理结构设计3

3.2系统体系结构设计3

3.2.1基本信息管理功能集合4

3.2.2考核管理功能集合4

3.2.3用户管理及权限控制功能集合5

3.2.4系统流程分析5

4.数据库设计6

4.1数据库概念结构设计6

4.2数据库逻辑结构设计8

4.3数据库物理设计9

4.3.1关系数据库的存取方法9

4.3.2数据库的存储结构9

4.3.3评价物理结构10

5.程序模块设计10

5.1登陆窗体和系统主界面设计10

5.1.1设计登陆窗体10

5.1.2设计主界面11

5.2学生基本信息管理模块设计12

5.2.1功能需求12

5.2.2界面设计13

5.2.3程序代码设计与分析14

5.2.4运行结果19

6.参考文献19

一、学生学籍管理系统简介:

学籍管理是高等院校学生管理事务中的一项重要工作,在管理过程中涉及大量的数据处理,它的内容对于学校的决策者和管理者来说都至关重要,所以学生学籍管理系统应该能够为用户提供充足的信息和快捷的查询手段。

但一直以来人们使用传统人工的方式管理文件档案,这种管理方式存在着许多缺点,如:

效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对学生学籍信息进行管理,具有着手工管理所无法比拟的优点.例如:

检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高学生学籍管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。

因此,开发这样一套管理软件成为很有必要的事情。

二、数据库需求分析:

高等院校学籍管理涉及院系信息、班级信息、任课教师信息、学生信息、学籍变更信息、学生奖惩信息、课程信息以及选课信息和成绩等多种数据信息。

学籍管理用户包括系统管理员、教师和学生。

系统管理员负责日常的学籍管理工作,如各种基本信息的录入、修改、删除等操作。

教师使用该系统可完成教学班信息查询和成绩管理。

学生使用该系统主要完成选课和成绩查询等操作。

经过调研与分析,高等院校学籍管理系统主要应具有以下功能。

(1)院系信息管理。

院系信息管理包括院系信息数据的录入、修改与删除等功能。

(2)学生信息管理。

学生信息管理包括学生信息的录入、修改与删除等功能。

(3)学生教育经历信息管理。

学生教育经历信息管理包括录入、修改与删除等功能。

(4)学生奖惩信息管理。

学生奖惩信息管理包括学生奖惩信息的录入、修改与删除等功能。

(5)学籍变更信息管理。

学籍变更信息管理包括学籍变更信息的录入、修改与删除等功能。

三、系统总体设计:

1、系统物理结构设计

本系统采用C/S体系结构,Client(客户端)负责提供表达逻辑、显示用户界面信息、访问数据库服务器;Server(服务器)端用于提供数据服务。

开发数据库管理信息系统需要选择两种工具,即前台开发语言和后台数据库。

开发C/S(客户/服务器)结构的应用程序时,前台开发语言通常选择BASIC、VISUALC++、DELPHI和POWERBUILDER等;如果开发网络应用程序,则需要选择网络数据库系统,例如SQLSERVER、ORACLE等;如果开发单机应用程序,则选择一个小型数据库系统就可以了,比如ACCESS。

鉴于对VISUALC++熟悉,功能强大、面向对象等特点,所以本系统采用VISUALC++作为开发工具,SQLSERVER作为后台数据库,以提供一个高性能的管理信息系统解决方案。

2、系统体系结构设计

根据功能分析总结系统的体系结构。

系统的功能模块如图所示:

在本系统中,可以把功能模块分为以下3个功能集合来描述:

(1)基本信息管理功能集合

包括院系信息管理和学生信息管理等功能模块。

此集合中功能模块的关系如图:

学生基本信息管理模块是整个系统的核心。

除了院系管理模块外,其他各个模块都针对每个学生的一个方面进行管理,都需要提供学生编号等基本信息作为索引。

(2)考核管理功能集合

包括考勤管理和考评管理模块。

此集合中功能模块的关系如图所示:

 

(3)用户管理及权限控制功能集合

包括用户信息管理、权限控制等模块。

权限控制虽然不是一个独立存在的模块,但是它却贯穿整个系统的运行过程当中。

在本系统中,用户管理模块的功能比较简单。

在系统初始化时,有两个默认的用户。

系统管理员用户为paradise,普通用户为user,手动添加到数据库中。

他们的默认密码为123。

paradise用户可以创建用户、修改用户信息和删除用户;普通用户只能修改自己的密码和查询信息。

用户管理功能模块的关系如图所示:

 

(4)系统流程分析

在本系统中,应该首先增加院系信息,再增加学生信息。

院系信息管理模块可以添加、修改、删除和查看院系等操作,院系信息包括院系名称和上级机构等。

添加院系信息后,就可以添加学生信息了。

在学生信息管理模块中可以对学生信息进行添加、修改、删除和查看操作。

学生基本信息包括姓名、性别、民族、籍贯、成绩、身份证号等信息。

学生信息是系统的核心数据,它为学生个人简历模块、学生奖励和处罚模块和学籍管理模块提供学生数据。

在学籍变动管理模块中,可以对学籍变动信息进行添加、修改、删除和查询操作。

学籍变动包括学生、变动类型、转入学校、转入院系、学籍变动原因和备注等信息。

在添加学籍变动信息需要选择学生和院系信息。

在学生奖惩管理模块中,可以对学生的奖励和处罚信息进行添加、修改、删除和查询等操作。

奖惩信息包括学生、奖惩类型和具体署名等信息。

在添加奖惩信息时需要选择学生信息。

本系统的流程分析如图所示:

四、数据库设计

数据库结构设计的好坏将直接对应用系统的效率以及与实现的效果产生影响,好的数据库结构设计会减少数据库的存储量,数据的完整性和一致性比较高,系统具有较快的响应速度等等。

1、数据库概念结构设计

(1)学生实体E-R图

 

 

(2)学生转出实体E-R图

   

 

(3)学生休学E-R图

 

(4)学生退学实体E-R图

 

(5)学生考评实体E-R图

 

(6)学生调班实体E-R图

 

(7)学生留级(跳级)实体E-R图

 

(8)各实体之间的E-R图

 

2数据库逻辑设计

(1)Department表(院系信息表)如表所示。

字段名称

类型

宽度

允许空值

主键

说明

Dep_id

char

6

NOTNULL

院系编号

Dep_name

char

20

NOTNULL

院系名称

Describe

char

8

NULL

院系描述

UpperId

int

2

NULL

上级院系编号

(2)Student表(学生信息表)如下表所示。

字段名称

类型

宽度

允许空值

主键

说明

sno

char

8

NOTNULL

学生学号

sname

char

8

NOTNULL

学生姓名

sex

char

2

NULL

学生性别

native

char

20

NULL

籍贯

birthday

smalldate

4

NULL

学生出生日期

cno

char

6

NULL

学生所在院系编号(外键)

spno

char

8

NULL

专业代码(外键)

classno

char

4

NULL

班级号

entime

smalldate

4

NULL

学生入校时间

home

varchar

40

NULL

学生家庭住址

tel

varchar

40

NULL

学生联系电话

(3)Experience表(学生教育经历信息表)如下表所示。

字段名称

类型

宽度

允许空值

主键

说明

Exp_id

smallint

2

NOTNULL

记录号

sno

char

8

NOTNULL

学生学号(外键)

StartDate

datetime

10

NOTNULL

开始日期

EndDate

datetime

10

NOTNULL

终止日期

School

Varchar

50

NOTNULL

学校名称

Title

varchar

20

NULL

职务

(4)Evaluation表(奖励和处罚信息表)如下表所示。

字段名称

类型

宽度

允许空值

主键

说明

Eva_id

smallint

2

NOTNULL

记录号

sno

char

8

NOTNULL

学生学号(外键)

EvaType

char

1

NOTNULL

奖罚类型

EvaDate

datetime

8

NOTNULL

记录时间

Description

varchar

100

NULL

描述

(5)Change表(学籍变更信息表)如下表所示。

字段名称

类型

宽度

允许空值

主键

说明

Changeid

smallint

2

NOTNULL

记录号

sno

char

8

NOTNULL

学生学号(外键)

ChangeType

char

1

NOTNULL

变更类型

OldClass

varchar

50

NOTNULL

原班级名称

Newschool

varchar

50

NULL

新学校名称

ChangeDate

datetime

8

NOTNULL

变动日期

Reason

varchar

200

NOTNULL

变动原因

Description

varchar

200

NULL

描述

(6)Users表(用户信息表)如下表所示。

字段名称

类型

宽度

允许空值

主键

说明

UserName

char

8

NOTNULL

用户名

Pwd

char

8

NULL

密码

User_type

int

4

NOTNULL

操作权限

(7)外键定义表如下表所示。

关系名

主键表

主键字段

外键表

外键字段

FK_Students_Department

classes

cno

student

cno

FK_Experience_Student

student

Sno

Experience

sno

FK_Change_Student

student

sno

change

sno

FK_Evaluation_Student

student

sno

evaluation

sno

3、数据库物理设计

(1)关系数据库的存取方法:

采用索引方法,主要是B+树索引方法。

(2)数据库的存储结构:

录入数据采用表格方式,限制录入数据类型及取值范围以保证数据的完整性及准确。

由于条件不允许,本系统没有将表和索引放在不同的磁盘,没有能够实现磁盘驱动器并行工作,降低了物理I/O读写的效率。

为了改进系统的性能,我选择把比较大的表分放在两个磁盘上,以加快存取速度。

(3)评价物理结构:

数据完成的时间性:

如成绩的录入,仅当师资科录入教学进程,教务科分发教师教学任务安排之后,各系方可录入成绩。

数据安全性:

本系统采用二级安全保障:

第一级:

依赖于网络本身对用户使用权限的规定。

第二级:

在程序模块中通过使用密码控制功能对用户使用权限加以限制。

五、程序模块设计

1、登陆窗体和系统主界面设计

(1)设计登陆窗体:

登陆窗体的名称为“登陆对话框”,界面布局如图所示:

输入用户名的编辑框为IDC_USERNAME_EDIT,输入密码的编辑框为IDC_PWD_EDIT,在属性窗口中,选中编辑框IDC_PWD_EDIT的Password属性。

当用户单击“确定”按钮时,将发送BN_CLICKED消息,在ClassWizard窗口中为其添加CLoginDlg:

:

OnOK(),代码如下:

voidCLoginDlg:

:

OnOK()

{

//将对话框中编辑框的数据读取到成员变量中

UpdateData(TRUE);

//检查数据有效性

if(m_UserName=="")

{

MessageBox("请输入用户名");

return;

}

if(m_Pwd=="")

{

MessageBox("请输入密码");

return;

}

//定义CUsers对象,用于从表Users中读取数据

CUsersuser;

user.GetData(m_UserName);

//如果读取的数据与用户输入数据不同,则返回

if(user.GetPwd()!

=m_Pwd)

{

MessageBox("用户信息不正确,无法登录!

你这丫是不是把密码忘记了?

");

return;

}

//关闭对话框

CDialog:

:

OnOK();

}

(2)设计主界面:

主界面的名称为“学生学籍管理”,加入菜单项,主界面如下图所示:

打开ClassWizard窗口,为菜单项IDR_EXIT添加代码,对应的函数为CHrSysDlg:

:

OnExit(),代码如下:

voidCHrSysDlg:

:

OnExit()

{

//TODO:

Addyourcommandhandlercodehere

OnOK();

}

2、学生基本信息管理模块设计

(1)学生基本信息管理模块可以实现以下功能:

创建学生记录、修改学生基本信息、删除学生记录、查看学生基本信息。

(2)界面设计

①设计学生基本信息编辑窗体

②设计学生信息管理窗体

③设计选择学生信息窗体

(3)程序代码设计与分析

①Refresh_Data()函数功能是根据用户选择的院系和学生状态信息设置select语句而刷新DataGrud表格中的数据,代码:

voidCEmpManDlg:

:

Refresh_Data()

{

UpdateData(TRUE);

intiDepId;

HTREEITEMnode;

node=m_tree.GetSelectedItem();

iDepId=m_tree.GetItemData(node);

CStringcDepId;

cDepId.Format("%d",iDepId);

CStringcSource="SELECTEmp_Id,Emp_NameAS姓名,SexAS性别,";

cSource+="NationalityAS民族,BadgeID学生证,PositionAS专业,";

cSource+="Family_PlaceAS籍贯FROMEmployeesWHEREDep_Id="+cDepId;

 

intiType=m_combo.GetCurSel();

CStringcType;

cType.Format("%d",iType);

if(iType>0)

cSource+="ANDState="+cType;

//刷新ADOData控件的记录源

m_Adodc.SetRecordSource(cSource);

m_Adodc.Refresh();

//设置列宽度

_variant_tvIndex;

vIndex=long(0);

m_datagrid.GetColumns().GetItem(vIndex).SetWidth(0);

vIndex=long

(1);

m_datagrid.GetColumns().GetItem(vIndex).SetWidth(50);

vIndex=long

(2);

m_datagrid.GetColumns().GetItem(vIndex).SetWidth(30);

vIndex=long(3);

m_datagrid.GetColumns().GetItem(vIndex).SetWidth(57);

vIndex=long(4);

m_datagrid.GetColumns().GetItem(vIndex).SetWidth(60);

vIndex=long(5);

m_datagrid.GetColumns().GetItem(vIndex).SetWidth(60);

vIndex=long(6);

m_datagrid.GetColumns().GetItem(vIndex).SetWidth(60);

}

②当学生基本信息编辑窗体启动时,将执行OnInitDialog()函数,代码:

BOOLCEmpEditDlg:

:

OnInitDialog()

{

CDialog:

:

OnInitDialog();

//TODO:

Addextrainitializationhere

//设置性别

if(cSex=="男")

m_Sex.SetCurSel(0);

else

m_Sex.SetCurSel

(1);

//设置状态

m_State.SetCurSel(iState-1);

if(EmpId==0)

GetDlgItem(IDC_SETPHOTO_BUTTON)->EnableWindow(FALSE);

else//读取照片图像信息

{

//清除原图像数据

if(m_hBitmap)

{

DeleteObject(m_hBitmap);

m_hBitmap=NULL;

}

//将当前学生记录读取到m_pRs对象中

CStringcEmpId;

cEmpId.Format("%d",EmpId);

//连接数据库

ADOConnm_AdoConn;

m_AdoConn.OnInitADOConn();

//设置SELECT语句

_bstr_tvSQL;

vSQL="SELECT*FROMEmployeesWHEREEmp_id="+cEmpId;

//执行SELETE语句

_RecordsetPtrm_pRs;

m_pRs=m_AdoConn.GetRecordSet(vSQL);

//如果不存在此记录,则将设置按钮置灰并返回

if(m_pRs->adoEOF||m_pRs->adoBOF)

{

GetDlgItem(IDC_SETPHOTO_BUTTON)->EnableWindow(FALSE);

returnFALSE;

}

//读取图像字段的实际大小

longlDataSize=m_pRs->GetFields()->GetItem("Photo")->ActualSize;

char*m_pBuffer;//定义缓冲变量

returnTRUE;//returnTRUEunlessyousetthefocustoacontrol

//EXCEPTION:

OCXPropertyPagesshouldreturnFALSE

}

③当用户单击学生信息管理窗体“添加”按钮时将执行OnAddButton()函数,代码:

voidCEmpManDlg:

:

OnAddButton()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData(TRUE);

HTREEITEMnode;//用于保存当前节点

node=m_tree.GetSelectedItem();//取得当前节点值

intiDepId;

iDepId=m_tree.GetItemData(node);

if(iDepId==0)//不能在根节点添加学生

{

MessageBox("请选择院系");

return;

}

CEmpEditDlgdlg;

//初始化变量

dlg.EmpId=0;//编号为0,表示添加

dlg.DepId=iDepId;//

dlg.cSex="男";//性别初始化为男

intiState;

iState=m_combo.GetCurSel();

if(iState==0)

dlg.iState=1;

else

dlg.iState=iState;

CTimet=CTime:

:

GetCurrentTime();

dlg.m_Birth=t;

dlg.m_HireDate=t;

if(dlg.DoModal()==IDOK)

Refresh_Data();

}

当用户单击学生信息管理窗体“修改”按钮时将执行OnModiButton()函数,代码:

voidCEmpManDlg:

:

OnModiButton()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData(TRUE);

if(m_Adodc.GetRecordset().GetEof())

{

MessageBox("请选择要修改的记录!

");

return;

}

CEmployeesemp;

emp.GetData(m_datagrid.GetItem(0));

CEmpEditDlgdlg;

dlg.EmpId=emp.GetEmp_Id();

dlg.EmpName=emp.GetEmp_Name();

dlg.DepId=emp.GetDep_Id();

dlg.UpperId=emp.GetUpperId();

dlg.m

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

当前位置:首页 > PPT模板 > 简洁抽象

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1