C-课程设计-学生信息管理系统_第1页
C-课程设计-学生信息管理系统_第2页
C-课程设计-学生信息管理系统_第3页
C-课程设计-学生信息管理系统_第4页
C-课程设计-学生信息管理系统_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

页课程设计报告课程名称:面向对象程序设计C++设计题目:学生信息管理系统专业:计算机科学与技术姓名:学号:指导教师:李晓虹2016年1月1日目录一、系统背景 31.1摘要 31.2背景和目的 31.3关键字 3二、操作分析 32.1关于使用者 4三、需求分析 63.1产品透视图 63.2产品功能 63.3流程 7四、系统总体设计 84.1主界面 94.2管理员界面 94.3学生界面 104.4教师界面 10五、系统详细设计 115.1数据库设计 125.2导入ADO库文件 155.3连接数据库 165.4主界面功能实现 185.5登录功能实现 245.6管理员界面功能实现 275.7学生界面功能实现 375.8教师界面功能实现 44六、结束语 546.1心得体会 54一、系统背景【摘要】信息管理系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统。在现今众多的学生管理系统中,最为常见的是学生信息管理系统和学生课程成绩管理系统。这是对我国现今大多学校对学生管理的需要而开发设计的,但随着学校的发展,这种各自独立的系统远远不能满足学校管理的需要。学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。【背景及目的】随着计算机技术的飞速发展,当今社会正快速向信息化社会前进。而如今学校的规模不断扩大,学生数量急剧加,有关学生的各种信息量也成倍增长,面对庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率。通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工用量。此次设计我们使用JAVA编程,实现了学生信息管理系统的过程。本系统采用VisualC++和SQLSERVER2008数据库管理系统作为开发工具,通过对学生信息管理系统进行可行性分析、需求分析和设计逐步将一个学生信息管理系统的开发过程呈现出来。系统可以对学校的所有专业信息和课程信息进行管理,可以对学生的基本信息和成绩进行管理,最后本系统能对专业信息、课程信息、学生基本信息和成绩信息进行查询。【关键字】使用者;需求分析;设计界面;C++;MFC;SQLserver2008;二、操作分析2.1、关于使用者本组将图书管理系统分为了三类,分别为:管理员、学生、教师。管理员经过注册和登录后,不但可以修改基本学生信息和添加记录,还可以修改学生已经选课情况以及修改教师的基本信息、教师的开课情况、查询与学生和教师有关的信息。学生通过登录和注册以后,可以查询自己的基本信息以及查询本学期的各门课程的成绩、选课情况以及选课等等。教师登录该系统以后。可以修改个人信息、修改学生成绩以及录入学生成绩、以及对自己的开课情况进行查询。学生信息管理系统的打开界面(如图2-1),用户可以看到关于登录人员的分类,随即进行接下来的操作。点击“管理员”。进入管理员界面图2-1管理员界面(如图2-2)图2-2点击学生进入学生主界面(如图2-3)图2-3点击”教师”进入到教师登录主界面(如图2-4)图2-4经过调试,该界面是用户友好界面,方便使用者的操作和注册。三、关于需求的分析3.1系统功能用户登录功能、学生个人信息查询以及修改功能、学生个人成绩查询功能、学生选课功能、管理员修改学生选课以及教师开课功能、查询和修改学生教师相关信息功能、教师基本信息查询功能、教师个人开课信息查询功能、教师录入和修改学生成绩功能等。3.2系统E-R图(如图3-2)图3-23.3功能流程前面确定了对学生信息管理系统的使用对象的定位,需求分析是根据适用对象而定的,要求操作界面友好,操作方便,便于使用者进行登录,信息查询、信息修改的操作一体化,流程清楚明了,便于理解与使用。下图1是关于管理员、学生和教师的操作流程。3.4功能流程图(如图3-4)图3-4下面是该系统的使用者对系统的使用需求:实现管理员对学生、教师的基本信息的录入、修改、查询等基本操作。实现学生选课功能。实现教师打分功能。查看学生课程选择。教师开课情况查询。学生成绩查询。从上述陈述中可以发现以下元素:使用对象:管理员学生教师基本用例:1.登录:老用户的系统登录。2.个人信息查询:对登录者的个人信息进行查询。4.学生选课:学生根据已有的课程进行选课。5.学生成绩查询:学生对自己已选的课程的所有成绩进行了解。6.学生成绩录入:教师根据自己的开课情况对选择该门课的学生进行打分。四、系统总体设计软件的界面是用户与计算机进行信息数据交流的媒介,一个软件设计界面的人性化,友好与否将决定该软件的受欢迎度。所以在软件的界面设计方面做了很多次实验。软件登录主界面设计(如图4-1)图4-1管理员界面(如图4-2)图4-2学生界面(如图4-3)图4-3教师界面(如图4-4)图4-4软件产品的美观与否,与本组设计的学生信息管理系统受欢迎程度息息相关!五、数据库实现5.1数据库设计5.1.1成绩表(如表5.1)表教师课程表(如表5.2)表教师信息表(如表5.3)表课程信息表(如表5.4)表学生信息表(如表5.5)表5.55.2C++和数据库的操作本系统采用VC++MFC创建应用程序框架,使用ADO实现应用程序对数据库的连接和操作,SQLserver2005作为数据库驱动器。其中ADO对数据库的连接和操作步骤如下:5.3在本机上配置ODBC数据源由于ADO是微软推出的数据库接口新标准,到现在为止已经成为最通用最流行和操作性很好的一个数据库接口标准。首先仍然需要在服务器上配置数据源,本系统以本机作为服务器配置数据源。操作如下:在开始\控制面板\管理工具\ODBC数据源,之后操作(如图5-1)图5-1点击添加,运行(如图5-2)图5-2选择需要添加的数据源驱动程序,本系统为SQLserver。选择好驱动器后点击完成(如图5-3)图5-3自己任意填写一个数据源名称,选择好服务器,该服务器名与登录SQLserver时使用的服务器名一致即可。然后点击下一步(如图5-4)图5-4根据提示选好登录方式和信息以后点击下一步(如图5-5)图5-5选择需要连接的数据库点击下一步(如图5-6)图5-6点击完成后如下图,点击测试连接,若成功(如图5-7)图5-7以上边配置好了数据源。下面进行数据源与程序的连接5.3.1利用windows系统自带的ADO库文件实现应用程序与数据源的连接通常首先可在C:\ProgramFiles\CommonFiles\System\ado目录下找到msado15.dll(不同安装目录可能路径不一样,操作系统版本的不同可能相应的msado15.dll文件版本不同),找到后复制粘贴到自建的应用程序目录下,和debug路径相同。本系统是基于对话框的程序,因此可在FileView的头文件里找到stdfax.h文件,将ADO用如下代码导入到程序(键入到stdfax.h里):#ifdefined(ADO2_OLD)#pragmamessage("UsingADO2TLB")#import<msado15.tlb>no_namespacerename("EOF","adoEOF")#else#pragmamessage("UsingLatestADO")#import"msado15.dll"no_namespacerename("EOF","adoEOF")#endif(如图5-7)图5-75.3.2ADO库导入后便可利用ADO库里提供的接口开始进行链接和操作数据库,具体代码如下:_ConnectionPtrPConnection;//定义指向数据库的指针(对象)_RecordsetPtrPRecordset;//定义指向结果集的指针(对象) ::CoInitialize(NULL);//COM接口初始化 try { UpdateData();//初始化和刷新程序窗口数据 PConnection.CreateInstance("ADODB.Connection"); PConnection->Mode=adModeReadWrite;//数据库打开模式设置 PConnection->ConnectionString=_T("DataSource=KAY-PC;Provider=SQLOLEDB.1;InitialCatalog=指定数据库名");//设置连接字符串 HRESULThr1=PConnection->Open(_T(""),_T("sa"),_T("qwe123"),adAsyncConnect);//PConnection指向数据库对象 AfxMessageBox("请稍后!"); if(SUCCEEDED(hr1))//测试连接是否成功 { AfxMessageBox("连接数据库成功!"); return; } } catch(_com_error&e)//捕捉错误信息 { AfxMessageBox(e.ErrorMessage()); return; }操作结果集的代码如下:try{ PRecordset.CreateInstance("ADODB.Recordset"); CStringresult; result.Format("SQL语句");//将SQL 语句用一个字符串表示//打开记录集,PRecordset指针指向结果集PRecordset->Open((_bstr_t)result,PConnection.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);//打开结果集 if((PRecordset->BOF)&&(PRecordset->adoEOF))//表中无记录 { AfxMessageBox("无查询结果!"); if(PRecordset!=NULL) PRecordset->Close();//关闭结果集PConnection->Close();//关闭数据库连接 return; } else {//对结果集的操作if(PRecordset!=NULL) PRecordset->Close();//关闭结果集PConnection->Close();//关闭数据库连接return; }} catch(_com_error&e) { AfxMessageBox(e.ErrorMessage()); return; }六、系统详细设计6.1主界面(如图6-1)图6-1主要代码如下:#include"stdafx.h"#include"SMS.h"#include"SMSDlg.h"#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CSMSAppBEGIN_MESSAGE_MAP(CSMSApp,CWinApp) //{{AFX_MSG_MAP(CSMSApp) //NOTE-theClassWizardwilladdandremovemappingmacroshere. //DONOTEDITwhatyouseeintheseblocksofgeneratedcode! //}}AFX_MSG ON_COMMAND(ID_HELP,CWinApp::OnHelp)END_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////CSMSAppconstructionCSMSApp::CSMSApp(){ //TODO:addconstructioncodehere, //PlaceallsignificantinitializationinInitInstance}///////////////////////////////////////////////////////////////////////////////TheoneandonlyCSMSAppobjectCSMSApptheApp;///////////////////////////////////////////////////////////////////////////////CSMSAppinitializationBOOLCSMSApp::InitInstance(){ AfxEnableControlContainer(); //Standardinitialization //Ifyouarenotusingthesefeaturesandwishtoreducethesize //ofyourfinalexecutable,youshouldremovefromthefollowing //thespecificinitializationroutinesyoudonotneed.#ifdef_AFXDLL Enable3dControls(); //CallthiswhenusingMFCinasharedDLL#else Enable3dControlsStatic(); //CallthiswhenlinkingtoMFCstatically#endif CSMSDlgdlg; m_pMainWnd=&dlg; intnResponse=dlg.DoModal(); if(nResponse==IDOK) { //TODO:Placecodeheretohandlewhenthedialogis //dismissedwithOK } elseif(nResponse==IDCANCEL) { //TODO:Placecodeheretohandlewhenthedialogis //dismissedwithCancel } //Sincethedialoghasbeenclosed,returnFALSEsothatweexitthe //application,ratherthanstarttheapplication'smessagepump. returnFALSE;}6.2管理员界面(如图6-2)图6-2 实现代码://ManagerdialogManager::Manager(CWnd*pParent/*=NULL*/) :CDialog(Manager::IDD,pParent){ //{{AFX_DATA_INIT(Manager) m_student_no=_T(""); m_teacher_no=_T(""); //}}AFX_DATA_INIT}voidManager::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(Manager) DDX_Control(pDX,IDC_managerlist,m_managerlist); DDX_Text(pDX,IDC_EDIT1,m_student_no); DDX_Text(pDX,IDC_EDIT2,m_teacher_no); //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(Manager,CDialog) //{{AFX_MSG_MAP(Manager) ON_BN_CLICKED(IDC_search_student2,Onsearchstudent) ON_BN_CLICKED(IDC_BUTTON2,OnButton2) ON_BN_CLICKED(IDC_BUTTON3,OnButton3) ON_BN_CLICKED(IDC_BUTTON4,OnButton4) ON_BN_CLICKED(IDC_add_student,Onaddstudent) ON_BN_CLICKED(IDC_add_student2,Onaddstudent2) ON_BN_CLICKED(IDC_BUTTON5,OnButton5) ON_BN_CLICKED(IDC_BUTTON6,OnButton6) //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////ManagermessagehandlersvoidManager::Onsearchstudent(){ //TODO:Addyourcontrolnotificationhandlercodehere for(inti=0;i<10;i++) { m_managerlist.DeleteColumn(0); } m_managerlist.DeleteAllItems();//清空列表内容 m_managerlist.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES); m_managerlist.InsertColumn(0,"学号",LVCFMT_LEFT,95,0); m_managerlist.InsertColumn(1,"姓名",LVCFMT_LEFT,95,1); m_managerlist.InsertColumn(2,"性别",LVCFMT_LEFT,95,2); m_managerlist.InsertColumn(3,"年龄",LVCFMT_LEFT,95,3); m_managerlist.InsertColumn(4,"学院",LVCFMT_LEFT,95,4); m_managerlist.InsertColumn(5,"主修",LVCFMT_LEFT,95,5); m_managerlist.InsertColumn(6,"年级",LVCFMT_LEFT,95,6);//查找 //TODO:Addextravalidationhere //AfxOleInit(); _ConnectionPtrPConnection; _RecordsetPtrPRecordset; ::CoInitialize(NULL); try { UpdateData(); ::CoInitialize(NULL);//接口初始化 PConnection.CreateInstance("ADODB.Connection"); PConnection->Mode=adModeReadWrite; //连接数据库 PConnection->ConnectionString=_T("DataSource=KAY-PC;Provider=SQLOLEDB.1;InitialCatalog=SMS"); //PConnection指向数据库对象 HRESULThr1=PConnection->Open(_T(""),_T("sa"),_T("qwe123"),adAsyncConnect); AfxMessageBox("请稍后!"); if(SUCCEEDED(hr1)) { //AfxMessageBox("连接数据库成功!"); //return; } } catch(_com_error&e) { AfxMessageBox(e.ErrorMessage()); return; } try{ PRecordset.CreateInstance("ADODB.Recordset"); _bstr_tbstrSQL; CStringresult; result.Format("select*fromstudent_informationwherestu_no='%s'",m_student_no);//从编辑框获取值m_name及对应的sql语句//打开记录集,PRecordset指针指向结果集PRecordset->Open((_bstr_t)result,PConnection.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); if((PRecordset->BOF)&&(PRecordset->adoEOF))//表中无记录 { AfxMessageBox("无查询结果!"); if(PRecordset!=NULL) PRecordset->Close();PConnection->Close(); return; } else { while(!PRecordset->adoEOF) { m_managerlist.InsertItem(0,""); m_managerlist.SetItemText(0,0,(char*)(_bstr_t)PRecordset->GetCollect("stu_no")); m_managerlist.SetItemText(0,1,(char*)(_bstr_t)PRecordset->GetCollect("stu_name")); m_managerlist.SetItemText(0,2,(char*)(_bstr_t)PRecordset->GetCollect("stu_sex")); m_managerlist.SetItemText(0,3,(char*)(_bstr_t)PRecordset->GetCollect("stu_age")); m_managerlist.SetItemText(0,4,(char*)(_bstr_t)PRecordset->GetCollect("stu_col")); m_managerlist.SetItemText(0,5,(char*)(_bstr_t)PRecordset->GetCollect("stu_maj")); m_managerlist.SetItemText(0,6,(char*)(_bstr_t)PRecordset->GetCollect("stu_grade")); PRecordset->MoveNext(); } if(PRecordset!=NULL) PRecordset->Close();PConnection->Close(); return; }} catch(_com_error&e) { AfxMessageBox(e.ErrorMessage()); return; } }voidManager::OnButton2()//教师基本信息查询{ //TODO:Addyourcontrolnotificationhandlercodehere for(inti=0;i<10;i++) { m_managerlist.DeleteColumn(0); } m_managerlist.DeleteAllItems();//清空列表内容 m_managerlist.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES); m_managerlist.InsertColumn(0,"职工号",LVCFMT_LEFT,95,0); m_managerlist.InsertColumn(1,"姓名",LVCFMT_LEFT,95,1); m_managerlist.InsertColumn(2,"性别",LVCFMT_LEFT,95,2); m_managerlist.InsertColumn(3,"年龄",LVCFMT_LEFT,95,3); m_managerlist.InsertColumn(4,"学院",LVCFMT_LEFT,95,4);//查找 //TODO:Addextravalidationhere //AfxOleInit(); _ConnectionPtrPConnection; _RecordsetPtrPRecordset; ::CoInitialize(NULL); try { UpdateData(); ::CoInitialize(NULL);//接口初始化 PConnection.CreateInstance("ADODB.Connection"); PConnection->Mode=adModeReadWrite; //连接数据库 PConnection->ConnectionString=_T("DataSource=KAY-PC;Provider=SQLOLEDB.1;InitialCatalog=SMS"); //PConnection指向数据库对象 HRESULThr1=PConnection->Open(_T(""),_T("sa"),_T("qwe123"),adAsyncConnect); AfxMessageBox("请稍后!"); if(SUCCEEDED(hr1)) { //AfxMessageBox("连接数据库成功!"); //return; } } catch(_com_error&e) { AfxMessageBox(e.ErrorMessage()); return; } try{ PRecordset.CreateInstance("ADODB.Recordset"); _bstr_tbstrSQL; CStringresult; result.Format("select*fromteacher_informationwhereteacher_no='%s'",m_teacher_no);//从编辑框获取值m_name及对应的sql语句//打开记录集,PRecordset指针指向结果集PRecordset->Open((_bstr_t)result,PConnection.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); if((PRecordset->BOF)&&(PRecordset->adoEOF))//表中无记录 { AfxMessageBox("无查询结果!"); if(PRecordset!=NULL) PRecordset->Close();PConnection->Close(); return; } else { while(!PRecordset->adoEOF) { m_managerlist.InsertItem(0,""); m_managerlist.SetItemText(0,0,(char*)(_bstr_t)PRecordset->GetCollect("teacher_no")); m_managerlist.SetItemText(0,1,(char*)(_bstr_t)PRecordset->GetCollect("teacher_name")); m_managerlist.SetItemText(0,2,(char*)(_bstr_t)PRecordset->GetCollect("teacher_sex")); m_managerlist.SetItemText(0,3,(char*)(_bstr_t)PRecordset->GetCollect("teacher_age")); m_managerlist.SetItemText(0,4,(char*)(_bstr_t)PRecordset->GetCollect("teacher_col")); PRecordset->MoveNext(); } if(PRecordset!=NULL) PRecordset->Close();PConnection->Close(); return; }} catch(_com_error&e) { AfxMessageBox(e.ErrorMessage()); return; } }voidManager::OnButton3()//查询学生选课信息{ //TODO:Addyourcontrolnotificationhandlercodehere for(inti=0;i<10;i++) { m_managerlist.DeleteColumn(0); } m_managerlist.DeleteAllItems();//清空列表内容 m_managerlist.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES); m_managerlist.InsertColumn(0,"学号",LVCFMT_LEFT,95,0); m_managerlist.InsertColumn(1,"姓名",LVCFMT_LEFT,95,1); m_managerlist.InsertColumn(2,"课程号",LVCFMT_LEFT,95,2); m_managerlist.InsertColumn(3,"课程名",LVCFMT_LEFT,95,3); m_managerlist.InsertColumn(4,"任课老师",LVCFMT_LEFT,95,4);//查找 //TODO:Addextravalidationhere //AfxOleInit(); _ConnectionPtrPConnection; _RecordsetPtrPRecordset; ::CoInitialize(NULL); try { UpdateData(); ::CoInitialize(NULL);//接口初始化 PConnection.CreateInstance("ADODB.Connection"); PConnection->Mode=adModeReadWrite; //连接数据库 PConnection->ConnectionString=_T("DataSource=KAY-PC;Provider=SQLOLEDB.1;InitialCatalog=SMS"); //PConnection指向数据库对象 HRESULThr1=PConnection->Open(_T(""),_T("sa"),_T("qwe123"),adAsyncConnect); AfxMessageBox("请稍后!"); if(SUCCEEDED(hr1)) { //AfxMessageBox("连接数据库成功!"); //return; } } catch(_com_error&e) { AfxMessageBox(e.ErrorMessage()); return; } try{ PRecordset.CreateInstance("ADODB.Recordset"); _bstr_tbstrSQL; CStringresult; result.Format("select*fromstudent_lessonswherestu_no='%s'",m_student_no);//从编辑框获取值m_name及对应的sql语句//打开记录集,PRecordset指针指向结果集PRecordset->Open((_bstr_t)result,PConnection.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); if((PRecordset->BOF)&&(PRecordset->adoEOF))//表中无记录 { AfxMessageBox("无查询结果!"); if(PRecordset!=NULL) PRecordset->Close();PConnection->Close(); return; } else { while(!PRecordset->adoEOF) { m_managerlist.InsertItem(0,""); m_managerlist.SetItemText(0,0,(char*)(_bstr_t)PRecordset->GetCollect("stu_no")); m_managerlist.SetItemText(0,1,(char*)(_bstr_t)PRecordset->GetCollect("stu_name")); m_managerlist.SetItemText(0,2,(char*)(_bstr_t)PRecordset->GetCollect("course_no")); m_managerlist.SetItemText(0,3,(char*)(_bstr_t)PRecordset->GetCollect("course_name")); m_managerlist.SetItemText(0,4,(char*)(_bstr_t)PRecordset->GetCollect("teacher_name")); PRecordset->MoveNext(); } if(PRecordset!=NULL) PRecordset->Close();PConnection->Close(); return; }} catch(_com_error&e) { AfxMessageBox(e.ErrorMessage()); return; } }voidManager::OnButton4()//教师开课信息{ //TODO:Addyourcontrolnotificationhandlercodehere for(inti=0;i<10;i++) { m_managerlist.DeleteColumn(0); } m_managerlist.DeleteAllItems();//清空列表内容 m_managerlist.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES); m_managerlist.InsertColumn(0,"姓名",LVCFMT_LEFT,95,0); m_managerlist.InsertColumn(1,"性别",LVCFMT_LEFT,95,1); m_managerlist.InsertColumn(2,"课程号",LVCFMT_LEFT,95,2); m_managerlist.InsertColumn(3,"课程名",LVCFMT_LEFT,95,3); //查找 //TODO:Addextravalidationhere //AfxOleInit(); _ConnectionPtrPConnection; _RecordsetPtrPRecordset; ::CoInitialize(NULL); try { UpdateData(); ::CoInitialize(NULL);//COM接口初始化 PConnection.CreateInstance("ADODB.Connection"); PConnection->Mode=adModeReadWrite; //连接数据库 PConnection->ConnectionString=_T("DataSource=KAY-PC;Provider=SQLOLEDB.1;InitialCatalog=SMS"); //PConnection指向数据库对象 HRESULThr1=PConnection->Open(_T(""),_T("sa"),_T("qwe123"),adAsyncConnect); AfxMessageBox("请稍后!"); if(SUCCEEDED(hr1)) { //AfxMessageBox("连接数据库成功!"); //return; } } catch(_com_error&e) { AfxMessageBox(e.ErrorMessage()); return; } try{ PRecordset.CreateInstance("ADODB.Recordset"); _bstr_tbstrSQL; CStringresult; result.Format("select*fromteacher_lessonswhereteacher_no='%s'",m_teacher_no);//从编辑框获取值m_name及对应的sql语句//打开记录集,PRecordset指针指向结果集PRecordset->Open((_bstr_t)result,PConnection.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); if((PRecordset->BOF)&&(PRecordset->adoEOF))//表中无记录 { AfxMessageBox("无查询结果!"); if(PRecordset!=NULL) PRecordset->Close();PConnection->Close(); return; } else { while(!PRecordset->adoEOF) { m_managerlist.InsertItem(0,""); m_managerlist.SetItemText(0,0,(char*)(_bstr_t)PRecordset->GetCollect("teacher_no")); m_managerlist.SetItemText(0,1,(char*)(_bstr_t)PRecordset->GetCollect("teacher_name")); m_managerlist.SetItemText(0,2,(char*)(_bstr_t)PRecordset->GetCollect("course_no")); m_managerlist.SetItemText(0,3,(char*)(_bstr_t)PRecordset->GetCollect("course_name")); PRecordset->MoveNext(); } if(PRecordset!=NULL) PRecordset->Close();PConnection->Close(); return; }} catch(_com_error&e) { AfxMessageBox(e.ErrorMessage()); return; } }voidManager::Onaddstudent(){ //TODO:Addyourcontrolnotificationhandlercodehere Manager_student*pDlg=newManager_student;pDlg->Create(IDD_manager_add_sub_alt_student,this);pDlg->ShowWindow(SW_SHOW); }voidManager::Onaddstudent2()//修改和添加教师基本信息{ //TODO:Addyourcontrolnotificationhandlercodehere Manager_teacher*pDlg=newManager_teacher;pDlg->Create(IDD_manager_add_sub_alt_teacher,this);pDlg->ShowWindow(SW_SHOW); }voidManager::OnButton5()//选课信息修改{ //TODO:Addyourcontrolnotificationhandlercodehere Manager_student_lessons*pDlg=newManager_student_lessons;pDlg->Create(IDD_student_lessons,this);pDlg->ShowWindow(SW_SHOW); }voidManager::OnButton6()//教师开课信息{ //TODO:Addyourcontrolnotificationhandlercodehere }6.3学生界面(如图6-3)图6-3主要代码://StudentdialogStudent::Student(CWnd*pParent/*=NULL*/) :CDialog(Student::IDD,pParent){ //{{AFX_DATA_INIT(Student) m_lesson_no=_T(""); //}}AFX_DATA_INIT}voidStudent::DoDataExchange(CDataExchange*pDX){ CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(Student) DDX_Control(pDX,IDC_LIST1,m_studentlist); DDX_Text(pDX,IDC_EDIT1,m_lesson_no); //}}AFX_DATA_MAP}BEGIN_MESSAGE_MAP(Student,CDialog) //{{AFX_MSG_MAP(Student) ON_BN_CLICKED(IDC_BUTTON5,OnButton5) ON_BN_CLICKED(IDC_BUTTON1,OnButton1) ON_BN_CLICKED(IDC_BUTTON3,OnButton3) ON_BN_CLICKED(IDC_BUTTON2,OnButton2) //}}AFX_MSG_MAPEND_MESSAGE_MAP()///////////////////////////////////////////////////////////////////////////////StudentmessagehandlersvoidStudent::OnCancel(){DestroyWindow();}voidStudent::PostNcDestroy(){CDialog::PostNcDestroy();deletethis;}voidStudent::OnButton5()//学生基本信息查询{ //TODO:Addyourcontrolnotificationhandlercodehere for(inti=0;i<10;i++) { m_studentlist.DeleteColumn(0); } m_studentlist.DeleteAllItems();//清空列表内容 m_studentlist.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES); m_studentlist.InsertColumn(0,"学号",LVCFMT_LEFT,95,0); m_studentlist.InsertColumn(1,"姓名",LVCFMT_LEFT,95,1); m_studentlist.InsertColumn(2,"性别",LVCFMT_LEFT,95,2); m_studentlist.InsertColumn(3,"年龄",LVCFMT_LEFT,95,3); m_studentlist.InsertColumn(4,"学院",LVCFMT_LEFT,95,4); m_studentlist.InsertColumn(5,"主修",LVCFMT_LEFT,95,5); m_studentlist.InsertColumn(6,"年级",LVCFMT_LEFT,95,6);//查找 //TODO:Addextravalidationhere //AfxOleInit(); _ConnectionPtrPConnection; _RecordsetPtrPRecordset; ::CoInitialize(NULL); try { UpdateData(); ::CoInitialize(NULL);//接口初始化 PConnection.CreateInstance("ADODB.Connection"); PConnection->Mode=adModeReadWrite; //连接数据库 PConnection->ConnectionString=_T("DataSource=KAY-PC;Provider=SQLOLEDB.1;InitialCatalog=SMS"); //PConnection指向数据库对象 HRESULThr1=PConnection->Open(_T(""),_T("sa"),_T("qwe123"),adAsyncConnect); AfxMessageBox("请稍后!"); if(SUCCEEDED(hr1)) { //AfxMessageBox("连接数据库成功!"); //return; } } catch(_com_error&e) { AfxMessageBox(e.ErrorMessage()); return; } try{ PRecordset.CreateInstance("ADODB.Recordset"); _bstr_tbstrSQL; CStringresult; result.Format("select*fromstudent_informationwherestu_no='%s'",m_username);//从编辑框获取值m_name及对应的sql语句//打开记录集,PRecordset指针指向结果集PRecordset->Open((_bstr_t)result,PConnection.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); if((PRecordset->BOF)&&(PRecordset->adoEOF))//表中无记录 { AfxMessageBox("无查询结果!"); if(PRecordset!=NULL) PRecordset->Close();PConnection->Close(); return; } else { while(!PRecordset->adoEOF) { m_studentlist.InsertItem(0,""); m_studentlist.SetItemText(0,0,(char*)(_bstr_t)PRecordset->GetCollect("stu_no")); m_studentlist.SetItemText(0,1,(char*)(_bstr_t)PRecordset->GetCollect("stu_name")); m_studentlist.SetItemText(0,2,(char*)(_bstr_t)PRecordset->GetCollect("stu_sex")); m_studentlist.SetItemText(0,3,(char*)(_bstr_t)PRecordset->GetCollect("stu_age")); m_studentlist.SetItemText(0,4,(char*)(_bstr_t)PRecordset->GetCollect("stu_col")); m_studentlist.SetItemText(0,5,(char*)(_bstr_t)PRecordset->GetCollect("stu_maj")); m_studentlist.SetItemText(0,6,(char*)(_bstr_t)PRecordset->GetCollect("stu_grade")); PRecordset->MoveNext(); } if(PRecordset!=NULL) PRecordset->Close();PConnection->Close(); return; } } catch(_com_error&e) { AfxMessageBox(e.ErrorMessage()); return; } }voidStudent::OnButton1()//成绩查询{ //TODO:Addyourcontrolnotificationhandlercodehere for(inti=0;i<10;i++) { m_studentlist.DeleteColumn(0); } m_studentlist.DeleteAllItems();//清空列表内容 m_studentlist.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES); m_studentlist.InsertColumn(0,"学号",LVCFMT_LEFT,95,0); m_studentlist.InsertColumn(1,"姓名",LVCFMT_LEFT,95,1); m_studentlist.InsertColumn(2,"课程号",LVCFMT_LEFT,95,2); m_studentlist.InsertColumn(3,"课程名",LVCFMT_LEFT,95,3); m_studentlist.InsertColumn(4,"成绩",LVCFMT_LEFT,95,4);//查找 //TODO:Addextravalidationhere //AfxOleInit(); _ConnectionPtrPConnection; _RecordsetPtrPRecordset; ::CoInitialize(NULL); try { UpdateData(); ::CoInitialize(NULL);//接口初始化 PConnection.CreateInstance("ADODB.Connection"); PConnection->Mode=adModeReadWrite; //连接数据库 PConnection->ConnectionString=_T("DataSource=KAY-PC;Provider=SQLOLEDB.1;InitialCatalog=SMS"); //PConnection指向数据库对象 HRESULThr1=PConnection->Open(_T(""),_T("sa"),_T("qwe123"),adAsyncConnect); AfxMessageBox("请稍后!"); if(SUCCEEDED(hr1)) { //AfxMessageBox("连接数据库成功!"); //return; } } catch(_com_error&e) { AfxMessageBox(e.ErrorMessage()); return; } try{ PRecordset.CreateInstance("ADODB.Recordset"); _bstr_tbstrSQL; CStringresult; result.Format("select*fromgradewherestu_no='%s'",m_username);//从编辑框获取值m_name及对应的sql语句//打开记录集,PRecordset指针指向结果集PRecordset->Open((_bstr_t)result,PConnection.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText); if((PRecordset->BOF)&&(PRecordset->adoEOF))//表中无记录 { AfxMessageBox("无查询结果!"); if(PRecordset!=NULL) PRecordset->Close();PConnection->Close(); return; } else { while(!PRecordset->adoEOF) { m_studentlist.InsertItem(0,""); m_studentlist.SetItemText(0,0,(char*)(_bstr_t)PRecordset->GetCollect("stu_no")); m_studentlist.SetItemText(0,1,(char*)(_bstr_t)PRecordset->GetCollect("stu_name")); m_studentlist.SetItemText(0,2,(char*)(_bstr_t)PRecordset->GetCollect("course_no")); m_studentlist.SetItemText(0,3,(char*)(_bstr_t)PRecordset->GetCollect("course_name")); m_studentlist.SetItemText(0,4,(char*)(_bstr_t)PRecordset->GetCollect("grade")); PRecordset->MoveNext(); } if(PRecordset!=NULL) PRecordset->Close();PConnection->Close(); return; } } catch(_com_error&e) { AfxMessageBox(e.ErrorMessage()); return; } }voidStudent::OnButton3()//选课信息查询{ //TODO:Addyourcontrolnotificationhandlercodehere for(inti=0;i<10;i++) { m_studentlist.DeleteColumn(0); } m_studentlist.DeleteAllItems();//清空列表内容 m_studentlist.SetExtendedStyle(LVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES); m_studentlist.InsertColumn(0,"课程号",LVCFMT_LEFT,95,0); m_studentlist.InsertColumn(1,"课程名",LVCFMT_LEFT,95,1); m_studentlist.InsertColumn(2,"教师编号",LVCFMT_LEFT,95,2); m_studentlist.InsertColumn(3,"教师姓名",LVCFMT_LEFT,95,3); m_studentlist.InsertColumn(4,"先修课程",LVCFMT_LEFT,95,4); m_studentlist.InsertColumn(5,"上课时间",LVCFMT_LEFT,95,5);//查找 //TODO:Addextravalidationhere //AfxOleInit(); _ConnectionPtrPConnection; _RecordsetPtrPRecordset; ::CoInitialize(NULL); try { UpdateData(); ::CoInitialize(NULL);//接口初始化 PConnection.CreateInstance("ADODB.Connection"); PConnection->Mode=adModeReadWrite; //连接数据库 PConnection->ConnectionString=_T("DataSource=KAY-PC;Provider=SQLOLEDB.1;InitialCatalog=SMS"); //PConnection指向数据库对象 HRESULThr1=PConnection->Open(_T(""),_T("sa"),_T("qwe123"),adAsyncConnect); AfxMessageBox("请稍后!"); if(SUCCEEDED(hr1))

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论