MFC网络程序设计.docx

上传人:b****6 文档编号:5738907 上传时间:2022-12-31 格式:DOCX 页数:11 大小:102.96KB
下载 相关 举报
MFC网络程序设计.docx_第1页
第1页 / 共11页
MFC网络程序设计.docx_第2页
第2页 / 共11页
MFC网络程序设计.docx_第3页
第3页 / 共11页
MFC网络程序设计.docx_第4页
第4页 / 共11页
MFC网络程序设计.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

MFC网络程序设计.docx

《MFC网络程序设计.docx》由会员分享,可在线阅读,更多相关《MFC网络程序设计.docx(11页珍藏版)》请在冰豆网上搜索。

MFC网络程序设计.docx

MFC网络程序设计

 

MFC网络程序设计

(课程设计成果论文)

 

学生信息管理系统

 

学院计算机工程学院   

专业计算机应用技术   

年级班别2011级计算机应用

(一)班

学号2011304030103

学生姓名路旭达

指导教师游明坤

分数

 

2013年12月17日

1.需求分析

学生信息管理系统按功能分为三个模块:

管理员登录模块:

要通过管理员身份验证后才能对成员的信息进行修改。

维护模块:

实现增加成员,修改成员,删除成员三个基本功能。

查询模块:

有按学号查询和按姓名查询功能。

学生信息管理系统的成员信息都存放于数据库中,所以必须在程序中实现对数据库的操作。

本程序功能简单,其界面的设计也要力求简单明了,各种功能使用起来也要非常方便。

2.数据库设计

数据库采用Accesss2003,API采用ODBC的连接方式。

ODBC(OpenDatabaseConnectivity),开放数据库互连,是微软公司开放服务结构(WOSA,WindowsOpenServicesArchitecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API(应用程序编程接口)。

这些API利用SQL来完成其大部分任务。

ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。

数据库设计如下表:

数据库名称:

mystudsystem,文件:

mystudsystem.mdb

内容如下:

窗口

数据类型

tb_class_subject

班级信息设置

classname

Cstring

code

Cstring

tb_classinfo

班级信息管理

classname

Cstring

teacher

Cstring

tb_classsubject

班级科目设置

classname

Cstring

code

Cstring

tb_examinfo_sub

考试类别设置

code

Cstring

examdate

CTime

grade

int

kind

Cstring

studentid

Cstring

tb_examkinds

考试类别设置

kind

Cstring

tb_studentinfo

学生信息报表

addr

Cstring

age

long

class

Cstring

phone

Cstring

sex

Cstring

studentid

Cstring

studentname

Cstring

tb_subject

班级科目设置

code

Cstring

subjuect

Cstring

tb_user

用户登陆

password

Cstring

username

Cstring

3.运行界面设计设计

3.1登陆界面对话框设计

3.2主窗口对话框设计

3.3学生成绩查询对话框设计

3.4学生成绩录入对话框设计

3.5班级信息管理对话框设计

3.6科目信息对话框设计

3.7考试类别对话框设计

4.关键代码

4.1连接数据库

CStringCClassSsubjectSet:

:

GetDefaultConnect()

{

return_T("ODBC;DSN=mystudsystem");

}

CStringCClassSsubjectSet:

:

GetDefaultSQL()

{

return_T("[dbo].[tb_class_subject]");

}

voidCClassSsubjectSet:

:

DoFieldExchange(CFieldExchange*pFX)

{

//{{AFX_FIELD_MAP(CClassSsubjectSet)

pFX->SetFieldType(CFieldExchange:

:

outputColumn);

RFX_Text(pFX,_T("[code]"),m_code);

RFX_Text(pFX,_T("[classname]"),m_classname);

//}}AFX_FIELD_MAP

}

4.2按钮操作

voidCExamInfoSubmarkDlg:

:

OnOK()

{

//TODO:

Addextravalidationhere

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=newCCStudentInfoSet(&((CCMyStudentSystemApp*)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'andmonth(examdate)='%s'andday(examdate)='%s'",m_studentid,m_examsubject,m_examkind,year,month,day);

myexamsubmarkset_findsame=newCExaminfoSubmarkSet(&((CCMyStudentSystemApp*)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_kind=m_examkind;

myexamsubmarkset->m_grade=m_submark;

myexamsubmarkset->m_examdate=m_examdate;

myexamsubmarkset->m_code=m_examsubject;

try

{

myexamsubmarkset->Update();

myexamsubmarkset->Requery();

AfxMessageBox("成功保存数据!

");

}

catch(CDBException*e)

{

AfxMessageBox(e->m_strError,MB_ICONEXCLAMATION);

e->Delete();

}

DisplayRecord();//更新显示

}

4.3初始化

BOOLCExamInfoSubmarkDlg:

:

OnInitDialog()

{

CDialog:

:

OnInitDialog();

//TODO:

Addextrainitializationhere

CStringsqlStr;

sqlStr="select*fromtb_examinfo_sub";

myexamsubmarkset=newCExaminfoSubmarkSet(&((CCMyStudentSystemApp*)AfxGetApp())->m_DB);

if(!

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

{

AfxMessageBox("tb_examinfo_sub表打开失败!

");

}

m_examdate=CTime:

:

GetCurrentTime();

UpdateData(FALSE);

returnTRUE;//returnTRUEunlessyousetthefocustoacontrol

//EXCEPTION:

OCXPropertyPagesshouldreturnFALSE

}

BOOLCExamInfoSubmarkDlg:

:

DisplayRecord()

{

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

{

m_studentid="";

m_submark=0;

m_examsubject="";

m_examkind="";

}

else

{

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

{

myexamsubmarkset->MoveNext();

}

else//否则前移

{

if(myexamsubmarkset->IsEOF())

{

myexamsubmarkset->MovePrev();

}

}

}

m_examdate=CTime:

:

GetCurrentTime();

m_studentid="";

m_submark=0;

m_examsubject="";

m_examkind="";

UpdateData(FALSE);//显示更新

returnTRUE;

}

voidCExamInfoSubmarkDlg:

:

OnCancel()

{

//TODO:

Addextracleanuphere

//if(myexamsubmarkset->IsOpen())

//{

//myexamsubmarkset->Close();

//deletemyexamsubmarkset;

//}

CDialog:

:

OnCancel();

}

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

当前位置:首页 > 外语学习 > 法语学习

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

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