课程设计报告学生学籍管理系统.docx

上传人:b****6 文档编号:5863590 上传时间:2023-01-01 格式:DOCX 页数:31 大小:266.11KB
下载 相关 举报
课程设计报告学生学籍管理系统.docx_第1页
第1页 / 共31页
课程设计报告学生学籍管理系统.docx_第2页
第2页 / 共31页
课程设计报告学生学籍管理系统.docx_第3页
第3页 / 共31页
课程设计报告学生学籍管理系统.docx_第4页
第4页 / 共31页
课程设计报告学生学籍管理系统.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

课程设计报告学生学籍管理系统.docx

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

课程设计报告学生学籍管理系统.docx

课程设计报告学生学籍管理系统

目录

1设计内容与要求2

1.1设计目的与要求2

1.2设计环境2

2需求分析3

2.1系统功能要求设计3

2.2系统模块设计3

2.3数据字典4

2.3.1数据项4

2.3.2数据结构5

2.3.3数据流5

3概念结构设计6

数据抽象与局部视图设计6

3.1学生基本信息与课程信息视图6

根据学生与课程的关系可设计如下关系图:

6

3.2专业、教师及院系信息视图6

4详细设计7

4.1用户登录7

(初始UserName为的evil密码123)7

4.2界面总览9

4.3学生信息管理10

4.4学生成绩录入12

4.5学生奖惩处理15

4.6学生信息查询19

4.7学生奖惩查询21

4.8成绩打印报表24

5.学生学籍管理系统使用说明书25

6设计体会与建议26

7参考文献26

学生学籍管理系统

1设计内容与要求

1.1设计目的与要求

随着社会的发展,基本上所有的具有一定数量数据的企事业单位或机关部门都开始使用计算机数据库来做管理。

当然几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学籍管理的工作量。

该课程设计要求设计一个学籍管理的数据库系统,数据库中要求包含学生的基本信息,学校所有专业信息,学校教师信息以及课程设置的信息。

同时还要设计它们之间的关系,如学生与课程关系和学生的成绩等,最后还要对一些数据进行查询,如查询学生成绩的各种集合等。

我们通过该课程设计,应该达到的目的是把数据库理论知识更加的巩固加深,加强动手能力与实践能力,学以致用,与现实生活中的应用充分的结合起来。

1.2设计环境

在Windows环境下利用ODBC,使用SqlServer2000作为数据库管理系统对数据进行管理与维护,使用VC++6.0为前台设计平台。

2需求分析

2.1系统功能要求设计

使得学生的学籍管理工作更加清晰、条理化、自动化。

建立学生档案,设计学生入学、管理及查询界面。

容易地完成学生信息的查询、更新、修改等操作。

对于学生成绩管理模块,设计学生各学期、学年成绩输入及查询界面,能更加容易的求得学生的平均成绩、最高分、最低分等,并能在Excel中以报表的形式显示并打印出来。

实现了在校期间对学生表现的跟踪记录,奖惩事件的记录,和处理的结果。

如:

综合测评加分,警告,留校察看,全校表扬等等。

2.2系统模块设计

学籍管理系统大体可以分成四大模块如下图所示,首先是学生的基本信息模块,里面应该包含学生的各方面的基本信息;再者便是学生成绩管理模块,在该模块中应该包含有对学生成绩信息的查询和处理,如平均成绩、最好成绩、最差成绩以及不及格学生的统计等功能模块;再其次还有院系、教师、课程等相关信息的模块;最后是系统模块。

图2-1系统模块图

 

2.3数据字典

2.3.1数据项

数据项是数据库的关系中不可再分的数据单位,下表分别列出了数据的名称(即码)、注释、数据类型、长度、取值范围和是否是主码。

表2.1数据项列表

名称

注释

数据类型

长度

最小值

最大值

主要的

班级

varchar(50)

50

FALSE

学号

唯一标识学生的信息

integer

TRUE

专业号

varchar(50)

50

FALSE

姓名

varchar(50)

50

FALSE

性别

Varchar(50)

50

FALSE

年龄

smallint

FALSE

家庭住址

Varchar(50)

50

FALSE

联系电话

varchar(50)

50

FALSE

课程名称

varchar(50)

50

TRUE

考试类型

varchar(50)

50

FALSE

考试时间

Datatime

8

FALSE

考试分数

float

FALSE

奖惩事件

varchar(100)

100

TRUE

处理结果

varchar(100)

100

FALSE

备注

varchar(100)

100

FALSE

奖惩时间

Datatime

8

FALSE

2.3.2数据结构

数据结构是为反映数据之间的组合关系,即一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构组成。

本学籍管理系统的数据组成可根据系统模块的划分来设计,即分为四个数据结构,分别如下表所示。

表2.2数据结构清单

数据结构名

含义说明

组成

学生基本信息

学生基本信息的描述

班级+学号+院系代号+专业号+姓名+性别+出生年月

+籍贯+民族+家庭住址+入学时间+政治面貌+身份证号+联系电话+备注;

成绩管理

学生成绩的管理

与查询管理描述

学号+课程号+分数;

平均分数+最高分+最低分;

学生相关信息

学生的奖惩情况

学生在校毕业情况

奖惩时间+奖惩事件+处理情况+备注;

在校/毕业;

系统管理

对使用用户的管理

授权管理添加删除

用户名+密码

2.3.3数据流

数据流是数据结构在系统内传输的路径。

表2-3是描述数据流的数据流定义表,其中包含了数据流名、说明、数据流组成、流量与备注等,表1-4是系统中的数据流描述,其中包括输入数据流、输出数据流等的描述。

表2.3数据流定义表

编号

数据流名

说明

数据流组成

流量

备注

L01

学生基本信息

学生的所有基本信息

学生基本信息结构

——

——

L02

学生成绩

所有学生的成绩

成绩管理结构

——

L03

分类信息

同班级学生名单

部分学生基本信息结构

——

——

L04

各门成绩

学生的平均成绩(包括所有学生和同班级学生的成绩情况)

成绩管理结构

——

——

L05

科目成绩

学生的单科成绩

成绩管理结构

——

——

L06

教师、专业、院系信息

——

学生相关信息

——

——

L07

查询结果

——

L04|L05

——

——

3概念结构设计

数据抽象与局部视图设计

3.1学生基本信息与课程信息视图

图3-1学生基本信息视图图3-2课程信息视图

 

根据学生与课程的关系可设计如下关系图:

图3-3学生与课程关系视图

3.2专业、教师及院系信息视图

3-4专业、教师及院系信息视图

院系、教师以及专业的关系图如下:

图3-5院系教师以及专业关系图

4详细设计

4.1用户登录

(初始UserName为的evil密码123)

相应代码:

CLogin:

:

CLogin(CWnd*pParent/*=NULL*/)

:

CDialog(CLogin:

:

IDD,pParent)

{

//{{AFX_DATA_INIT(CLogin)

m_Name=_T("");

m_PassWord=_T("");

//}}AFX_DATA_INIT

m_Num=0;

}

 

voidCLogin:

:

DoDataExchange(CDataExchange*pDX)

{

CDialog:

:

DoDataExchange(pDX);

//{{AFX_DATA_MAP(CLogin)

DDX_Text(pDX,IDC_EDIT1,m_Name);

DDX_Text(pDX,IDC_EDIT2,m_PassWord);

//}}AFX_DATA_MAP

}

 

BEGIN_MESSAGE_MAP(CLogin,CDialog)

//{{AFX_MSG_MAP(CLogin)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

//CLoginmessagehandlers

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='%s'",

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==5)

{

MessageBox("密码5次不正确");

CDialog:

:

OnCancel();

}

else

{

MessageBox("用户名或密码不正确");

m_Name="";

m_PassWord="";

UpdateData(FALSE);

}

}

if(m_LoginSet->IsOpen())

{

m_LoginSet->Close();

deletem_LoginSet;

}

}

4.2界面总览

4.3学生信息管理

相应代码:

/////////////////////////////////////////////////////////////////////////////

//CInfoStudentmessagehandlers

BOOLCInfoStudent:

:

OnInitDialog()

{

CDialog:

:

OnInitDialog();

//TODO:

Addextrainitializationhere

if(!

m_ToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP

|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_SIZE_DYNAMIC)

||!

m_ToolBar.LoadToolBar(IDR_TOOLBAR_subjectinfo))

{

TRACE0(_T("创建工具条失败\n"));

returnFALSE;

}

RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);

m_ToolBar.SetButtonStyle(0,TBBS_CHECKBOX);

m_ToolBar.SetButtonStyle(1,TBBS_CHECKBOX);

m_ToolBar.SetButtonStyle(2,TBBS_CHECKBOX);

m_ToolBar.SetButtonStyle(3,TBBS_CHECKBOX);

m_ToolBar.SetButtonStyle(4,TBBS_CHECKBOX);

m_ToolBar.SetButtonStyle(5,TBBS_CHECKBOX);

m_ToolBar.SetButtonStyle(6,TBBS_CHECKBOX);

//TODO:

Addextrainitializationhere

//RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);

CStringsqlStr;

sqlStr="SELECT*FROMtb_studentinfo";

mystudentset=newCStudentinfoset(&((CMystudentsysApp*)AfxGetApp())->m_DB);

if(!

mystudentset->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr))//打开数据表

{

AfxMessageBox("tb_studentinfo表打开失败!

");

}

returnTRUE;//returnTRUEunlessyousetthefocustoacontrol

//EXCEPTION:

OCXPropertyPagesshouldreturnFALSE

}

voidCInfoStudent:

:

Onsubjectinfotoolbarsave()

{

//TODO:

Addyourcommandhandlercodehere

UpdateData(TRUE);

if(m_studentaddr.IsEmpty()||m_studentclass.IsEmpty()

||m_studentname.IsEmpty()||m_studentphone.IsEmpty()

||m_studentsex.IsEmpty()||m_studentid.IsEmpty())

{

AfxMessageBox("请输入相应的数据!

");

return;

}

mystudentset->AddNew();//调用添加记录的函数处理

mystudentset->m_studentid=m_studentid;

mystudentset->m_addr=m_studentaddr;

mystudentset->m_age=m_studentage;

mystudentset->m_class=m_studentclass;

mystudentset->m_studentname=m_studentname;

mystudentset->m_phone=m_studentphone;

mystudentset->m_sex=m_studentsex;

mystudentset->Update();

mystudentset->Requery();

AfxMessageBox("成功保存数据!

");

DisplayRecord();//更新显示

}

4.4学生成绩录入

相应代码:

/////////////////////////////////////////////////////////////////////////////

//CExaminfo_submarkdlgmessagehandlers

voidCExaminfo_submarkdlg:

:

Oninputsavemarks()

{

UpdateData(TRUE);//读入输入的资料

if(m_studentid.IsEmpty()||m_examsubject.IsEmpty()||m_examkind.IsEmpty())

{

AfxMessageBox("请输入相应的数据!

");

return;

}

CStringsqlStr_findid;

sqlStr_findid="SELECT*FROMtb_studentinfoWHEREtb_studentinfo.studentid='"+m_studentid+"'";

myfindset_id=newCStudentinfoset(&((CMystudentsysApp*)AfxGetApp())->m_DB);

if(!

myfindset_id->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr_findid))

{

AfxMessageBox("tb_studentinfo表打开失败!

");

}

if(myfindset_id->GetRecordCount()==0)

{

AfxMessageBox("没有此学生,请确认学号后再输入!

");

if(myfindset_id->IsOpen())

{

myfindset_id->Close();

deletemyfindset_id;

}

return;

}

if(myfindset_id->IsOpen())

{

myfindset_id->Close();

deletemyfindset_id;

}

CStringsql;

CStringyear,month,day;

year=m_examdate.Format("%Y");

month=m_examdate.Format("%m");

day=m_examdate.Format("%d");

sql.Format("SELECT*FROMtb_examinfo_subWHEREtb_examinfo_sub.studentid\

='%s'andcode='%s'andkind='%s'andyear(examdate)='%s'and\

month(examdate)='%s'andday(examdate)='%s'",m_studentid,

m_examsubject,m_examkind,year,month,day);

myexamsubmarkset_findsame=newCExaminfo_submarkset(&((CMystudentsysApp*)AfxGetApp())->m_DB);

if(!

myexamsubmarkset_findsame->Open(AFX_DB_USE_DEFAULT_TYPE,sql))

{

AfxMessageBox("tb_examinfo_sub表打开失败!

");

}

if(myexamsubmarkset_findsame->GetRecordCount()!

=0)

{

AfxMessageBox("已经有此记录,不能重复输入!

");

if(myexamsubmarkset_findsame->IsOpen())

{

myexamsubmarkset_findsame->Close();

}

return;

}

if(myexamsubmarkset_findsame->IsOpen())

{

myexamsubmarkset_findsame->Close();

deletemyexamsubmarkset_findsame;

}

myexamsubmarkset->AddNew();//调用添加记录的函数处理

myexamsubmarkset->m_studentid=m_studentid;//对应变量更新

myexamsubmarkset->m_code=m_examsubject;

myexamsubmarkset->m_grade=m_submark;

myexamsubmarkset->m_kind=m_examkind;

myexamsubmarkset->m_examdate=m_examdate;

myexamsubmarkset->Update();

myexamsubmarkset->Requery();

DisplayRecord();//更新显示

}

boolCExaminfo_submarkdlg:

:

DisplayRecord()

{

if(myexamsubmarkset->IsEOF()&&myexamsubmarkset->IsBOF())

{

m_studentid="";

m_submark=0.0f;

m_examsubject="";

m_examkind="";

}

else

{

if(myexamsubmarkset->IsBOF())//移动到了开头,就向后移动

{

myexamsubmarkset->MoveNext();

}

else//否则前移

{

if(myexamsubmarkset->IsEOF())

{

myexamsubmarkset->MovePrev();

}

}

}

GetCurrentTime(m_examdate);

m_studentid="";

m_submark=0.0f;

m_examsubject="";

m_examkind="";

UpdateData(FALSE);//显示更新

returnTRUE;

}

BOOLCExaminfo_submarkdlg:

:

OnInitDialog()

{

CDialog:

:

OnInitDialog();

//TODO:

Addextrainitializationhere

CStringsqlStr;

sqlStr="SELECT*FROMtb_examinfo_sub";

myexamsubmarkset=newCExaminfo_submarkset(&((CMystudentsysApp*)AfxGetApp())->m_DB);

if(!

myexamsubmarkset->Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr))//打开数据表

{

AfxMessageBox("tb_examinfo_sub表打开失败!

");

}

m_examdat

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

当前位置:首页 > 经管营销

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

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