学生信息管理系统win+sqlWord文档格式.docx

上传人:b****6 文档编号:20514448 上传时间:2023-01-23 格式:DOCX 页数:32 大小:1.17MB
下载 相关 举报
学生信息管理系统win+sqlWord文档格式.docx_第1页
第1页 / 共32页
学生信息管理系统win+sqlWord文档格式.docx_第2页
第2页 / 共32页
学生信息管理系统win+sqlWord文档格式.docx_第3页
第3页 / 共32页
学生信息管理系统win+sqlWord文档格式.docx_第4页
第4页 / 共32页
学生信息管理系统win+sqlWord文档格式.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

学生信息管理系统win+sqlWord文档格式.docx

《学生信息管理系统win+sqlWord文档格式.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统win+sqlWord文档格式.docx(32页珍藏版)》请在冰豆网上搜索。

学生信息管理系统win+sqlWord文档格式.docx

5.2实训中遇到的问题及解决方法30

5.3设计中尚存的不足之处30

5.4感想和心得体会30

5.5最满意地方30

附录:

30

学生信息管理系统

本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉面向对象程序设计过程。

本程序中涉及MFC,class等方面的知识。

通过本程序的训练,使学生能对MFC有一个更深刻的了解,掌握利用MSSQL通过ADO实现对学生成绩管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。

1、问题定义

创建一个学生信息管理系统。

假设系统中每个学生记录只包括学号、姓名、手机号、身份证号、联系地址。

程序的运行效果如下图所示,选择任意菜单后,实现相应功能。

图1.1学生信息管理系统功能需求

在问题定义阶段要考虑题目的可行性和需求分析,接下来进入开发阶段,完成系统设计和系统实现的任务。

2、系统设计

2.1总体设计

采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。

需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。

解决方案关系图

2.2详细设计

通过登陆验证后然后出现一个界面,改界面作为一个login类

然后主界面的操作,以项目名+dlg作为类名

学生数据操作部分,新建一个对话框界面,以DataOperation作为类名。

2.3运行环境

目标是写windowsxp可以运行,但是编写程序的机子是windows7,用vs2010编写,因此产生兼容性问题,最后程序运行环境为Windows7以上,装有MSSQL的计算机。

3、系统设计

3.1编码

项目名取为testmfc,因为每次做新东西的时候。

不用含test就经常干不成,所以项目名还是加test好点。

3.1.1ADO

因为需要ADO的支持,所以在stdafx.h中要引入ADO的dll并重命名下结束标记,避免与文件的EOF冲突。

因为主要执行操作都在CtestmfcDlg,也就是主要的界面,所以把ADO的相关操作语句放到该类下面

Switchint是作为一个开关用,作为是否刷新表单中的内容,1为刷新,其他不刷新。

Querycommand作为查询语句

查询函数里面用过ACCESS但是发现兼容性不是很好,所以还是用习惯用的MSSQL去做数据库了。

voidCtestmfcDlg:

:

sqlquery(intswitchint,CStringquerycommand)

{

//TODO:

在此添加控件通知处理程序代码

CoInitialize(NULL);

//初始化COM组件

_ConnectionPtrpConn(__uuidof(Connection));

//实例化一个connection对象pConn

_RecordsetPtrpRst(__uuidof(Recordset));

//实例化一个Recordset对象pRst

_CommandPtrpCmd(__uuidof(Command));

//实例化一个Command对象pCmd

try

{

//ACCESS

//pConn->

ConnectionString="

Provider=Microsoft.Jet.OLEDB.4.0;

UserID=Admin;

DataSource=C:

\\cppdb.mdb;

Mode=ShareDenyNone;

ExtendedProperties=\"

\"

;

JetOLEDB:

Systemdatabase=\"

RegistryPath=\"

DatabasePassword=\"

EngineType=5;

DatabaseLockingMode=1;

GlobalPartialBulkOps=2;

GlobalBulkTransactions=1;

NewDatabasePassword=\"

CreateSystemDatabase=False;

EncryptDatabase=False;

Don'

tCopyLocaleonCompact=False;

CompactWithoutReplicaRepair=False;

SFP=False"

//MSSQL

pConn->

Provider=SQLNCLI10.1;

IntegratedSecurity=\"

PersistSecurityInfo=False;

UserID=cpp;

InitialCatalog=cppwork;

DataSource=(local);

UseProcedureforPrepare=1;

AutoTranslate=True;

PacketSize=4096;

WorkstationID=LZY;

InitialFileName=\"

UseEncryptionforData=False;

Tagwithcolumncollationwhenpossible=False;

MARSConnection=False;

DataTypeCompatibility=0;

TrustServerCertificate=False"

Open("

"

"

adConnectUnspecified);

pCmd->

put_ActiveConnection(_variant_t((IDispatch*)pConn));

CommandText=(_bstr_t)querycommand;

pRst=pCmd->

Execute(NULL,NULL,adCmdText);

}

catch(_com_errore)

{}

if(switchint==1)

{

m_list.DeleteAllItems();

intcount=0;

while(!

pRst->

rsEOF)

{

m_list.InsertItem(count,_T("

data"

));

m_list.SetItemText(count,1,(_bstr_t)pRst->

GetCollect("

id"

m_list.SetItemText(count,2,(_bstr_t)pRst->

number"

m_list.SetItemText(count,3,(_bstr_t)pRst->

name"

m_list.SetItemText(count,4,(_bstr_t)pRst->

cellphonenumber"

m_list.SetItemText(count,5,(_bstr_t)pRst->

cardnumber"

m_list.SetItemText(count,6,(_bstr_t)pRst->

address"

pRst->

MoveNext();

//下移一个

count++;

}

pRst->

Close();

//关闭对象

pConn->

pCmd.Release();

//释放对象

pRst.Release();

pConn.Release();

CoUninitialize();

//卸载COM组件

}

3.1.2控件绑定变量及初始化变量

CtestmfcDlg:

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

:

CDialogEx(CtestmfcDlg:

IDD,pParent)

m_hIcon=AfxGetApp()->

LoadIcon(IDR_MAINFRAME);

m_edit=_T("

select*frommain"

);

m_query1=_T("

DoDataExchange(CDataExchange*pDX)

CDialogEx:

DoDataExchange(pDX);

DDX_Text(pDX,IDC_EDIT1,m_edit);

DDX_Control(pDX,IDC_LIST5,m_list);

DDX_Control(pDX,IDC_COMBO2,m_cb);

DDX_Text(pDX,IDC_EDIT2,m_query1);

BEGIN_MESSAGE_MAP(CtestmfcDlg,CDialogEx)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_BN_CLICKED(IDC_BUTTON1,&

OnBnClickedButton1)

ON_BN_CLICKED(IDOK,&

OnBnClickedOk)

ON_BN_CLICKED(IDC_BUTTON3,&

OnBnClickedButton3)

ON_BN_CLICKED(IDC_BUTTON2,&

OnBnClickedButton2)

ON_BN_CLICKED(IDC_BUTTON4,&

OnBnClickedButton4)

ON_BN_CLICKED(IDC_BUTTON5,&

OnBnClickedButton5)

ON_CBN_SELCHANGE(IDC_COMBO2,&

OnCbnSelchangeCombo2)

ON_EN_CHANGE(IDC_EDIT1,&

OnEnChangeEdit1)

ON_NOTIFY(NM_DBLCLK,IDC_LIST5,&

OnDblclkList5)

ON_BN_CLICKED(IDCANCEL,&

OnBnClickedCancel)

ON_BN_CLICKED(IDC_BUTTON6,&

OnClickedButton6)

ON_BN_CLICKED(IDC_BUTTON7,&

OnClickedButton7)

ON_BN_CLICKED(IDC_BUTTON8,&

OnClickedButton8)

END_MESSAGE_MAP()

3.1.3程序初始化工作

BOOLCtestmfcDlg:

OnInitDialog()

OnInitDialog();

//将“关于...”菜单项添加到系统菜单中。

//IDM_ABOUTBOX必须在系统命令范围内。

ASSERT((IDM_ABOUTBOX&

0xFFF0)==IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX<

0xF000);

CMenu*pSysMenu=GetSystemMenu(FALSE);

if(pSysMenu!

=NULL)

BOOLbNameValid;

CStringstrAboutMenu;

bNameValid=strAboutMenu.LoadString(IDS_ABOUTBOX);

ASSERT(bNameValid);

if(!

strAboutMenu.IsEmpty())

pSysMenu->

AppendMenu(MF_SEPARATOR);

AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);

//设置此对话框的图标。

当应用程序主窗口不是对话框时,框架将自动

//执行此操作

SetIcon(m_hIcon,TRUE);

//设置大图标

SetIcon(m_hIcon,FALSE);

//设置小图标

在此添加额外的初始化代码

m_list.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);

m_list.InsertColumn(0,L"

0,0,0);

m_list.InsertColumn(1,L"

索引编号"

LVCFMT_LEFT,100);

m_list.InsertColumn(2,L"

学号"

m_list.InsertColumn(3,L"

姓名"

m_list.InsertColumn(4,L"

手机号"

m_list.InsertColumn(5,L"

身份证号"

LVCFMT_LEFT,140);

m_list.InsertColumn(6,L"

地址"

LABLE:

logindlg;

dlg.m_statue=L"

学生信息管理系统——登陆"

if(dlg.DoModal()==IDOK)

CStringqstr=L"

select*fromloginwhereusername='

+dlg.m_username+"

'

sqlquery(2,qstr);

intcount=m_list.GetItemCount();

if(count>

0)

if(dlg.m_username==m_list.GetItemText(0,2)&

&

dlg.m_password==m_list.GetItemText(0,3))

{

}

else

AfxMessageBox(L"

用户名或者密码错误"

gotoLABLE;

else

AfxMessageBox(L"

gotoLABLE;

else

CDialogEx:

OnCancel();

m_cb.AddString(L"

编号"

m_cb.SetCurSel(0);

CStringcs;

GetDlgItem(IDC_EDIT1)->

GetWindowTextW(cs);

sqlquery(1,cs);

returnTRUE;

//除非将焦点设置到控件,否则返回TRUE

3.1.4新增按钮操作的函数

OnBnClickedButton2()

DataOperationdlg;

intx=m_list.GetItemCount();

m_list.InsertItem(x,_T("

m_list.SetItemText(x,2,dlg.m_number);

m_list.SetItemText(x,3,dlg.m_name);

m_list.SetItemText(x,4,dlg.m_cellnumber);

m_list.SetItemText(x,5,dlg.m_cardnumber);

m_list.SetItemText(x,6,dlg.m_address);

CStringcmd=L"

insertintomain([number],[name],[cellphonenumber],[cardnumber],[address])values('

+dlg.m_number+"

'

+dlg.m_name+"

+dlg.m_cellnumber+"

+dlg.m_cardnumber+"

+dlg.m_address+"

)"

sqlquery(0,cmd);

3.1.5修改按钮操作的函数

OnBnClickedButton4()

CStringstr;

intselectrow=-1;

boolisselect=false;

for(inti=0;

i<

m_list.GetItemCount();

i++)

if(m_list.GetItemState(i,LVIS_SELECTED)==LVIS_SELECTED)

selectrow=i;

isselect=true;

if(isselect)

str=m_list.GetItemText(selectrow,1);

if(str!

="

DataOperationdlg;

dlg.m_number=m_list.GetItemText(selectrow,2);

dlg.m_name=m_list.GetItemText(selectrow,3);

dlg.m_cellnumber=m_list.GetItemText(selectrow,4);

dlg.m_cardnumber=m_list.GetItemText(selectrow,5);

dlg.m_address=m_list.GetItemText(selectrow,6);

if(dlg.DoModal()==IDOK)

{

m_list.SetItemText(selectrow,2,dlg.m_number);

m_list.SetItemText(selectrow,3,dlg.m_name);

m_list.SetItemText(selectrow,4,dlg.m_cellnumber);

m_list.SetItemText(selectrow,5,dlg.m_cardnumber);

m_list.SetItemText(selectrow,6,dlg.m_address);

CStringcmd=L"

update[main]set[number]='

[name]='

[cellphonenumber]='

[cardnumber]='

[address]='

where[id]='

+m_list.GetItemText(selectrow,1)+"

sqlquery(0,cmd);

修改成功"

sqlquery(1,L"

刷新数据中,请再选择一次"

sqlquery(1,L"

AfxMessageBox(L"

请用鼠标单击要操作的行,然后再按此按钮"

3.1.6删除按钮操作的函数

OnBnClickedButton3()

str=m_list.GetItemText(selectrow,2);

if(str!

CStringdelstr=L"

deletefrommainwhere[number]='

+str+"

m_list.SetItemText(selectrow,1,L"

此行已删除"

m_list.SetItemText(selectrow,2,L"

m_list.SetItemText(selectrow,3,L"

m_list.SetItemText(selectrow,4,L"

m_list.Se

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

当前位置:首页 > 初中教育 > 语文

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

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