成绩管理系统 mfc c++ sql系统开发.docx

上传人:b****2 文档编号:692971 上传时间:2023-04-29 格式:DOCX 页数:34 大小:281.63KB
下载 相关 举报
成绩管理系统 mfc c++ sql系统开发.docx_第1页
第1页 / 共34页
成绩管理系统 mfc c++ sql系统开发.docx_第2页
第2页 / 共34页
成绩管理系统 mfc c++ sql系统开发.docx_第3页
第3页 / 共34页
成绩管理系统 mfc c++ sql系统开发.docx_第4页
第4页 / 共34页
成绩管理系统 mfc c++ sql系统开发.docx_第5页
第5页 / 共34页
成绩管理系统 mfc c++ sql系统开发.docx_第6页
第6页 / 共34页
成绩管理系统 mfc c++ sql系统开发.docx_第7页
第7页 / 共34页
成绩管理系统 mfc c++ sql系统开发.docx_第8页
第8页 / 共34页
成绩管理系统 mfc c++ sql系统开发.docx_第9页
第9页 / 共34页
成绩管理系统 mfc c++ sql系统开发.docx_第10页
第10页 / 共34页
成绩管理系统 mfc c++ sql系统开发.docx_第11页
第11页 / 共34页
成绩管理系统 mfc c++ sql系统开发.docx_第12页
第12页 / 共34页
成绩管理系统 mfc c++ sql系统开发.docx_第13页
第13页 / 共34页
成绩管理系统 mfc c++ sql系统开发.docx_第14页
第14页 / 共34页
成绩管理系统 mfc c++ sql系统开发.docx_第15页
第15页 / 共34页
成绩管理系统 mfc c++ sql系统开发.docx_第16页
第16页 / 共34页
成绩管理系统 mfc c++ sql系统开发.docx_第17页
第17页 / 共34页
成绩管理系统 mfc c++ sql系统开发.docx_第18页
第18页 / 共34页
成绩管理系统 mfc c++ sql系统开发.docx_第19页
第19页 / 共34页
成绩管理系统 mfc c++ sql系统开发.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

成绩管理系统 mfc c++ sql系统开发.docx

《成绩管理系统 mfc c++ sql系统开发.docx》由会员分享,可在线阅读,更多相关《成绩管理系统 mfc c++ sql系统开发.docx(34页珍藏版)》请在冰点文库上搜索。

成绩管理系统 mfc c++ sql系统开发.docx

成绩管理系统mfcc++sql系统开发

《数据库课程设计》

——学生成绩管理系统

 

授课老师:

高寅生

专业:

软件工程

班级:

软件A0801

学号:

14102080106

姓名:

孔卫超

 

系统简介

一,系统概述

开发环境:

microsoftvisualstudio6mfc

数据库版本:

sql2000

系统名称:

成绩管理系统(整体界面如图1_1)

图1_1系统界面截图

二,系统功能

对成绩进行简单管理,统计并公示各班各门课的成绩分部情况,及格率;学生通过密码查看自己每门课的成绩及平均分,不及格门数;教师通过密码上传查看自己所授课程的成绩,且上传后三个工作日不能再更改。

选课模式为我校的必修课,同一班的人上相同的课,一个老师可带多门课,可带多个班级,可带多个班级的同一门课。

三,同其他系统关联

本系统仅对成绩进行管理,对学生基本信息,教师基本信息,课程基本信息为只读操作,这些信息的管理为其他管理系统的功能。

系统设计

一,数据库设计

学生表(学号,姓名,班级号,密码)

教师表(教师号,姓名,密码)

课程表(课程号,课程名)

成绩表(学号,课程号,成绩)

教师授课表(课程号,班级号,教师号,成绩上传日期,已上传成绩否)

相应ER图如图2_1。

数据库中的各表见附录1。

图2_1成绩管理系统ER图

二,系统角色设计

系统分3个角色,游客,学生,教师。

游客能查看各班级的成绩统计,学生能查看自己的成绩和不及格门数。

教师能上传,修改和查看自己教授班级的成绩。

用况图如图2_2。

图2_2系统用况图

二,系统模块及界面设计

本系统分3个界面,分别与图2_2的三个角色相对应。

如下图2_3为游客页,图2_4为学生页,图2_5为教师页。

图2_3游客页图2_4学生页

图2_5教师页

系统模块在上述三界面为基础的角色上曾加一个数据库常用操作模块。

如图2_6。

其中各模块对应的源文件见附录2系统源代码。

图2_6系统模块图

系统测试

一,系统初始化测试

输入:

启动程序

理论输出:

欢迎界面5秒后启动系统

实际输出:

如图3_1

图2_7闪屏界面

二,欢迎界面测试

输入:

启动程序

理论输出:

统计处已上传的成绩的成绩统计

时间输出:

如图3_2

图2_8成绩分部统计

三,学生界面测试

1,密码测试

输入:

学号10714010127密码888

理论输出:

提示错误

实际输出:

如图3_3

图3_3错误密码测试图3_3正确用户和密码

2,正确密码测试

输入:

学号10714010127密码123456

理论输出:

学生登入,并显示成绩统计

实际输出:

如图3_4

四教师页面测试

1,超期上传成绩测试

输入:

单击要上传的班级

理论输出:

提示您的科目已超过三个工作日,只能查看

实际输出:

如图3_5

图3_5超过3个工作日不能修改成绩

2,上传成绩测试

输入:

单击要上传的班级

理论输出:

返回相应班级成绩表,供老师上传

实际输出:

如图3_6

附录

附录一数据库各表

学生表(student)

学号(sno)姓名(sname)班级(sclass)密码(spassword)

10714010101王新软A0711123456

10714010102王运涛软A0711123456

10714010103王宁宁软A0711123456

10714010104姜铁军软A0711123456

10714010125建信A0711123456

10714010127汤龙软A0711123456

10714010201张一软A0712123456

10714010202王麻软A0712123456

10714010203李四软A0712123456

10714010204张三软A0712123456

10714010227二七人软A0712123456

教师表(teacher)

教师号(tno)姓名(tname)密码(tpassword)

20714010101严青123456

20714010102李秀贤123456

20714010103胡华123456

20714010104程宵123456

20714010105王超123456

20714010106孟娜123456

20714010107董晓刚123456

20714010123叶争青123456

20714010127张海123456

课程表(course)

课程(cno)课程名(cname)

000000单片机原理与应用

000001数据库课程设计

000002大学语文

000003asp程序设计

000004java程序设计

000005软件工程

教师授课表(tcourse)

教师号(tno)课程号(cno)班级(sclass)上传时间上传状态

20714010101000000软A07112010-06-2022:

14:

001

20714010101000000软A0712NULL0

20714010103000002软A07122010-06-2022:

16:

001

20714010123000002软A07112010-06-2112:

15:

001

20714010127000001软A0711NULL0

20714010127000001软A0712NULL0

成绩表(grade)

学号(sno)课程号(cno)成绩(grade)

1071401010100000088

1071401010100000280

1071401010200000089

10714010102000002100

1071401010300000095

1071401010300000295

1071401010400000090

1071401010400000288

1071401012500000075

1071401012500000290

1071401012700000055

1071401012700000295

1071401020100000265

1071401020200000230

1071401020300000290

1071401020400000270

1071401022700000250

附录2系统源代码

1数据库常用操作主要源代码

/*********adoconn.cpp********/

/*********************************************************************************

*函数名:

voidADOConn:

:

OnInitADOConn()

*功能:

建立数据库连接

*参数:

*全局变量引用:

m_pConnection(ado数据库连接指针)

*返回值无

*********************************************************************************/

voidADOConn:

:

OnInitADOConn()

{

//初始化OLE/COM库环境

:

:

CoInitialize(NULL);

try

{

//创建connection对象

m_pConnection.CreateInstance("ADODB.Connection");

//设置连接字符串

CStringconectstr;

conectstr.Format("Provider=SQLOLEDB.1;IntegratedSecurity=SSPI;\

PersistSecurityInfo=False;InitialCatalog=%s;\

DataSource=%s",DATABASENAME,SERVERNAME);

_bstr_tstrConnect=conectstr;

//SERVER和UID,PWD的设置根据实际情况来设置

m_pConnection->Open(strConnect,"","",adModeUnknown);

}

//捕捉异常

catch(_com_errore)

{

//显示错误信息

//AfxMessageBox(e.Description());

AfxMessageBox("连接数据库失败");

}

}

/***********************************************************************************

*函数名:

_RecordsetPtr&ADOConn:

:

GetRecordSet(_bstr_tbstrSQL)

*功能:

获取数据库查询记录集

*参数:

_bstr_tbstrsql(数据库语句)

*全局变量:

m_pConnection(数据库连接指针)m_pRecordset(数据库记录集指针)

*返回值:

m_pRecordset引用

***********************************************************************************/

_RecordsetPtr&ADOConn:

:

GetRecordSet(_bstr_tbstrSQL)

{

try

{

//连接数据库,如果connection对象为空,则重新连接数据库

if(m_pConnection==NULL)

OnInitADOConn();

//创建记录集对象

m_pRecordset.CreateInstance(__uuidof(Recordset));

//取得表中的记录

m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,\

adLockOptimistic,adCmdText);

}

catch(_com_errore)

{

AfxMessageBox("获取记录集失败!

!

!

!

");

}

//返回记录集

returnm_pRecordset;

}

/**************************************************************************************

*函数名:

BOOLADOConn:

:

ExecuteSQL(_bstr_tbstrSQL)

*功能:

执行sql语句

*参数:

_bstr_tbstrSql待执行的sql语句

*全局变量引用:

m_pConnection数据库连接指针

*返回值:

成执行返回true失败返回false

*备注:

connection对象的Execute方法(_bstr_tCommandText,VARIANT*RecordsAffected,

longOptions)其中CommandText是命令字符串,通常是SQL命令参数RecordsAffected是操作完

成后所影响的行数参数Options表示CommandText的类型,adCmdText-文本命令,adCmdTable-表

名adCmdProc-存储过程,adCmdUnknown-未知

***************************************************************************************/

BOOLADOConn:

:

ExecuteSQL(_bstr_tbstrSQL)

{

_variant_tRecordsAffected;

try

{

//是否已连接数据库

if(m_pConnection==NULL)//未连接

OnInitADOConn();

m_pConnection->Execute(bstrSQL,NULL,adCmdText);

returntrue;

}

catch(_com_errore)

{

e.Description();

returnfalse;

}

}

/***********************************************************************************

*函数名:

voidADOConn:

:

ExitConnect()

*功能:

断开数据库连接,关闭记录集

*参数:

*全局变量:

m_pConnection,m_pRecordset

*返回值:

***********************************************************************************/

voidADOConn:

:

ExitConnect()

{

//关闭记录集和连接

if(m_pRecordset!

=NULL)

m_pRecordset->Close();

m_pConnection->Close();

//释放环境

:

:

CoUninitialize();

}

2主窗口源代码

/*********grademsdlg.h*****************/

classCGradeMSDlg:

publicCDialog

{

public:

CGradeMSDlg(CWnd*pParent=NULL);//standardconstructor

StuPagestuPage;//子对话框

WelPagewelPage;

TeaPageteaPage;

//{{AFX_DATA(CGradeMSDlg)

enum{IDD=IDD_GRADEMS_DIALOG};

CListCtrlm_Func_list;

//}}AFX_DATA

//ClassWizardgeneratedvirtualfunctionoverrides

//{{AFX_VIRTUAL(CGradeMSDlg)

protected:

virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport

//}}AFX_VIRTUAL

//Implementation

protected:

HICONm_hIcon;

//Generatedmessagemapfunctions

//{{AFX_MSG(CGradeMSDlg)

virtualBOOLOnInitDialog();

afx_msgvoidOnSysCommand(UINTnID,LPARAMlParam);

afx_msgvoidOnPaint();

afx_msgHCURSOROnQueryDragIcon();

afx_msgvoidOnClickFuncList1(NMHDR*pNMHDR,LRESULT*pResult);

//}}AFX_MSG

afx_msgvoidRnew(WPARAMwparam,LPARAMlparam);

//手动添加变量

private:

CImageListm_ImageList;

//手动添加功能函数

private:

voidUpdateFuncList();//初始化功能选择列表

voidMoveChild();//把子窗口嵌入父窗口

voidActivatePage(intindex);//显示活动页

DECLARE_MESSAGE_MAP()

};

*********grademsdlg.cpp*************

/*******************************************************************************************

*函数名:

HCURSORCGradeMSDlg:

:

UpdateFuncList();

*功能:

初始化或更新功能列表

*

*******************************************************************************************/

voidCGradeMSDlg:

:

UpdateFuncList()

{

m_ImageList.Create(32,32,ILC_COLOR16|ILC_MASK,1,4);

HICONhIcon=:

:

LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_WELICON));

m_ImageList.Add(hIcon);

hIcon=:

:

LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_TEAICON));

m_ImageList.Add(hIcon);

hIcon=:

:

LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_STUICON));

m_ImageList.Add(hIcon);

m_Func_list.SetImageList(&m_ImageList,LVSIL_NORMAL);

CRectrc;

m_Func_list.GetClientRect(rc);

//setnewiconspacing

m_Func_list.SetIconSpacing(rc.Width(),64);

//changecolors

m_Func_list.SetTextColor(RGB(6,247,13));//绿色

m_Func_list.SetTextBkColor(RGB(87,166,117));//蓝色

m_Func_list.SetBkColor(RGB(87,166,117));

//insertitems

m_Func_list.InsertColumn(0,_T("OutlookBar"));

m_Func_list.InsertItem(0,_T("教师入口"),0);

m_Func_list.InsertItem(1,_T("学生入口"),1);

m_Func_list.InsertItem(2,_T("公共页面"),2);

}

/*************************************************************************************

*函数名:

voidActivatePage(intindex);

*功能:

显示活动页

*************************************************************************************/

voidCGradeMSDlg:

:

ActivatePage(intindex)

{

SendMessage(RNEW,NULL,NULL);

switch(index)

{

caseTEAPAGE:

//显示教师页

{

welPage.ShowWindow(SW_HIDE);

stuPage.ShowWindow(SW_HIDE);

teaPage.ShowWindow(SW_SHOW);

//CStringtest;

//test.Format("%d",index);

//AfxMessageBox(test);

break;

}

caseSTUPAGE:

//显示学生页

{

welPage.ShowWindow(SW_HIDE);

stuPage.ShowWindow(SW_SHOW);

teaPage.ShowWindow(SW_HIDE);

break;

}

default:

//公共页

{

welPage.ShowWindow(SW_SHOW);

stuPage.ShowWindow(SW_HIDE);

teaPage.ShowWindow(SW_HIDE);

}

}

MoveChild();

UpdateData(false);

}

3教师窗口主要源代码

/*********teapage.cpp*******************/

voidTeaPage:

:

OnButtontlog()//教师登入

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData(true);

ADOConnadotemp;

CStringsql;

CStringstrtemp;

_variant_tvar;

if(0==m_tno.GetLength())

{

AfxMessageBox("职工号不能为空!

!

!

!

");

return;

}

this->SetDlgItemText(IDC_BUTTONTLOG,"正在核对信息...");

sql.Format("select*fromteacherwheretno=%s",m_tno);

adotemp.GetRecordSet(_bstr_t(sql));

if(adotemp.m_pRecordset->adoEOF)

{

AfxMessageBox("没有这个职工号!

!

!

");

adotemp.ExitConnect();

return;

}

if(adotemp.m_pRecordset->adoBOF)

{

adotemp.m_pRecordset->MoveFirst();

}

var=adotemp.m_pRecordset->GetCollect("tpassword");

//AfxMessageBox((LPCSTR)_bstr_t(var));

if(m_tpassword.Compare((LPCSTR)_bstr_t(var)

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

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2