还剩52页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
课程设计报告课程名称面向对象程序设计C++设计题目学生信息管理系统专业计算机科学与技术姓名学号指导教师李晓虹2016年1月1日目录TOC\o1-3\h\z\u333334666789910101112151618242737445454
一、系统背景【摘要】信息管理系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地把内部活动有机地组织起来,就必须建立与自身特点相适应的管理信息系统在现今众多的学生管理系统中,最为常见的是学生信息管理系统和学生课程成绩管理系统这是对我国现今大多学校对学生管理的需要而开发设计的,但随着学校的发展,这种各自独立的系统远远不能满足学校管理的需要学生信息管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段【背景及目的】随着计算机技术的飞速发展,当今社会正快速向信息化社会前进而如今学校的规模不断扩大,学生数量急剧加,有关学生的各种信息量也成倍增长,面对庞大的信息量,就需要有学生信息管理系统来提高学生管理工作的效率通过这样的系统,可以做到信息的规范管理、科学统计和快速的查询,从而减少管理方面的工用量此次设计我们使用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实现学生选课功能3实现教师打分功能4查看学生课程选择5教师开课情况查询6学生成绩查询从上述陈述中可以发现以下元素使用对象
1.管理员
2.学生
3.教师基本用例
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.
15.
1.2教师课程表(如表
5.2)表
5.
25.
1.3教师信息表(如表
5.3)表
5.
35.
1.4课程信息表(如表
5.4)表
5.
45.
1.5学生信息表(如表
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目录下找到msado
15.dll不同安装目录可能路径不一样,操作系统版本的不同可能相应的msado
15.dll文件版本不同,找到后复制粘贴到自建的应用程序目录下,和debug路径相同本系统是基于对话框的程序,因此可在FileView的头文件里找到stdfax.h文件,将ADO用如下代码导入到程序键入到stdfax.h里#ifdefinedADO2_OLD#pragmamessageUsingADO2TLB#importmsado
15.tlbno_namespacerenameEOFadoEOF#else#pragmamessageUsingLatestADO#importmsado
15.dllno_namespacerenameEOFadoEOF#endif(如图5-7)图5-
75.
3.2ADO库导入后便可利用ADO库里提供的接口开始进行链接和操作数据库,具体代码如下_ConnectionPtrPConnection;//定义指向数据库的指针(对象)_RecordsetPtrPRecordset;//定义指向结果集的指针(对象)::CoInitializeNULL;//COM接口初始化try{UpdateData;//初始化和刷新程序窗口数据PConnection.CreateInstanceADODB.Connection;PConnection-Mode=adModeReadWrite;//数据库打开模式设置PConnection-ConnectionString=_TDataSource=KAY-PC;Provider=SQLOLEDB.1;InitialCatalog=指定数据库名;//设置连接字符串HRESULThr1=PConnection-Open_T_Tsa_Tqwe123adAsyncConnect;//PConnection指向数据库对象AfxMessageBox请稍后!;ifSUCCEEDEDhr1//测试连接是否成功{AfxMessageBox连接数据库成功!;return;}}catch_com_errore//捕捉错误信息{AfxMessageBoxe.ErrorMessage;return;}操作结果集的代码如下try{PRecordset.CreateInstanceADODB.Recordset;CStringresult;result.FormatSQL语句;//将SQL语句用一个字符串表示//打开记录集,PRecordset指针指向结果集PRecordset-Open_bstr_tresultPConnection.GetInterfacePtradOpenKeysetadLockOptimisticadCmdText;//打开结果集ifPRecordset-BOFPRecordset-adoEOF//表中无记录{AfxMessageBox无查询结果!;ifPRecordset!=NULLPRecordset-Close;//关闭结果集PConnection-Close;//关闭数据库连接return;}else{//对结果集的操作ifPRecordset!=NULLPRecordset-Close;//关闭结果集PConnection-Close;//关闭数据库连接return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}
六、系统详细设计
6.1主界面(如图6-1)图6-1主要代码如下#includestdafx.h#includeSMS.h#includeSMSDlg.h#ifdef_DEBUG#definenewDEBUG_NEW#undefTHIS_FILEstaticcharTHIS_FILE[]=__FILE__;#endif///////////////////////////////////////////////////////////////////////////////CSMSAppBEGIN_MESSAGE_MAPCSMSAppCWinApp//{{AFX_MSG_MAPCSMSApp//NOTE-theClassWizardwilladdandremovemappingmacroshere.//DONOTEDITwhatyouseeintheseblocksofgeneratedcode!//}}AFX_MSGON_COMMANDID_HELPCWinApp::OnHelpEND_MESSAGE_MAP///////////////////////////////////////////////////////////////////////////////CSMSAppconstructionCSMSApp::CSMSApp{//TODO:addconstructioncodehere//PlaceallsignificantinitializationinInitInstance}///////////////////////////////////////////////////////////////////////////////TheoneandonlyCSMSAppobjectCSMSApptheApp;///////////////////////////////////////////////////////////////////////////////CSMSAppinitializationBOOLCSMSApp::InitInstance{AfxEnableControlContainer;//Standardinitialization//Ifyouarenotusingthesefeaturesandwishtoreducethesize//ofyourfinalexecutableyoushouldremovefromthefollowing//thespecificinitializationroutinesyoudonotneed.#ifdef_AFXDLLEnable3dControls;//CallthiswhenusingMFCinasharedDLL#elseEnable3dControlsStatic;//CallthiswhenlinkingtoMFCstatically#endifCSMSDlgdlg;m_pMainWnd=dlg;intnResponse=dlg.DoModal;ifnResponse==IDOK{//TODO:Placecodeheretohandlewhenthedialogis//dismissedwithOK}elseifnResponse==IDCANCEL{//TODO:Placecodeheretohandlewhenthedialogis//dismissedwithCancel}//SincethedialoghasbeenclosedreturnFALSEsothatweexitthe//applicationratherthanstarttheapplicationsmessagepump.returnFALSE;}
6.2管理员界面(如图6-2)图6-2实现代码//ManagerdialogManager::ManagerCWnd*pParent/*=NULL*/:CDialogManager::IDDpParent{//{{AFX_DATA_INITManagerm_student_no=_T;m_teacher_no=_T;//}}AFX_DATA_INIT}voidManager::DoDataExchangeCDataExchange*pDX{CDialog::DoDataExchangepDX;//{{AFX_DATA_MAPManagerDDX_ControlpDXIDC_managerlistm_managerlist;DDX_TextpDXIDC_EDIT1m_student_no;DDX_TextpDXIDC_EDIT2m_teacher_no;//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAPManagerCDialog//{{AFX_MSG_MAPManagerON_BN_CLICKEDIDC_search_student2OnsearchstudentON_BN_CLICKEDIDC_BUTTON2OnButton2ON_BN_CLICKEDIDC_BUTTON3OnButton3ON_BN_CLICKEDIDC_BUTTON4OnButton4ON_BN_CLICKEDIDC_add_studentOnaddstudentON_BN_CLICKEDIDC_add_student2Onaddstudent2ON_BN_CLICKEDIDC_BUTTON5OnButton5ON_BN_CLICKEDIDC_BUTTON6OnButton6//}}AFX_MSG_MAPEND_MESSAGE_MAP///////////////////////////////////////////////////////////////////////////////ManagermessagehandlersvoidManager::Onsearchstudent{//TODO:Addyourcontrolnotificationhandlercodehereforinti=0;i10;i++{m_managerlist.DeleteColumn0;}m_managerlist.DeleteAllItems;//清空列表内容m_managerlist.SetExtendedStyleLVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES;m_managerlist.InsertColumn0学号LVCFMT_LEFT950;m_managerlist.InsertColumn1姓名LVCFMT_LEFT951;m_managerlist.InsertColumn2性别LVCFMT_LEFT952;m_managerlist.InsertColumn3年龄LVCFMT_LEFT953;m_managerlist.InsertColumn4学院LVCFMT_LEFT954;m_managerlist.InsertColumn5主修LVCFMT_LEFT955;m_managerlist.InsertColumn6年级LVCFMT_LEFT956;//查找//TODO:Addextravalidationhere//AfxOleInit;_ConnectionPtrPConnection;_RecordsetPtrPRecordset;::CoInitializeNULL;try{UpdateData;::CoInitializeNULL;//接口初始化PConnection.CreateInstanceADODB.Connection;PConnection-Mode=adModeReadWrite;//连接数据库PConnection-ConnectionString=_TDataSource=KAY-PC;Provider=SQLOLEDB.1;InitialCatalog=SMS;//PConnection指向数据库对象HRESULThr1=PConnection-Open_T_Tsa_Tqwe123adAsyncConnect;AfxMessageBox请稍后!;ifSUCCEEDEDhr1{//AfxMessageBox连接数据库成功!;//return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}try{PRecordset.CreateInstanceADODB.Recordset;_bstr_tbstrSQL;CStringresult;result.Formatselect*fromstudent_informationwherestu_no=%sm_student_no;//从编辑框获取值m_name及对应的sql语句//打开记录集,PRecordset指针指向结果集PRecordset-Open_bstr_tresultPConnection.GetInterfacePtradOpenKeysetadLockOptimisticadCmdText;ifPRecordset-BOFPRecordset-adoEOF//表中无记录{AfxMessageBox无查询结果!;ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}else{while!PRecordset-adoEOF{m_managerlist.InsertItem0;m_managerlist.SetItemText00char*_bstr_tPRecordset-GetCollectstu_no;m_managerlist.SetItemText01char*_bstr_tPRecordset-GetCollectstu_name;m_managerlist.SetItemText02char*_bstr_tPRecordset-GetCollectstu_sex;m_managerlist.SetItemText03char*_bstr_tPRecordset-GetCollectstu_age;m_managerlist.SetItemText04char*_bstr_tPRecordset-GetCollectstu_col;m_managerlist.SetItemText05char*_bstr_tPRecordset-GetCollectstu_maj;m_managerlist.SetItemText06char*_bstr_tPRecordset-GetCollectstu_grade;PRecordset-MoveNext;}ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}}voidManager::OnButton2//教师基本信息查询{//TODO:Addyourcontrolnotificationhandlercodehereforinti=0;i10;i++{m_managerlist.DeleteColumn0;}m_managerlist.DeleteAllItems;//清空列表内容m_managerlist.SetExtendedStyleLVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES;m_managerlist.InsertColumn0职工号LVCFMT_LEFT950;m_managerlist.InsertColumn1姓名LVCFMT_LEFT951;m_managerlist.InsertColumn2性别LVCFMT_LEFT952;m_managerlist.InsertColumn3年龄LVCFMT_LEFT953;m_managerlist.InsertColumn4学院LVCFMT_LEFT954;//查找//TODO:Addextravalidationhere//AfxOleInit;_ConnectionPtrPConnection;_RecordsetPtrPRecordset;::CoInitializeNULL;try{UpdateData;::CoInitializeNULL;//接口初始化PConnection.CreateInstanceADODB.Connection;PConnection-Mode=adModeReadWrite;//连接数据库PConnection-ConnectionString=_TDataSource=KAY-PC;Provider=SQLOLEDB.1;InitialCatalog=SMS;//PConnection指向数据库对象HRESULThr1=PConnection-Open_T_Tsa_Tqwe123adAsyncConnect;AfxMessageBox请稍后!;ifSUCCEEDEDhr1{//AfxMessageBox连接数据库成功!;//return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}try{PRecordset.CreateInstanceADODB.Recordset;_bstr_tbstrSQL;CStringresult;result.Formatselect*fromteacher_informationwhereteacher_no=%sm_teacher_no;//从编辑框获取值m_name及对应的sql语句//打开记录集,PRecordset指针指向结果集PRecordset-Open_bstr_tresultPConnection.GetInterfacePtradOpenKeysetadLockOptimisticadCmdText;ifPRecordset-BOFPRecordset-adoEOF//表中无记录{AfxMessageBox无查询结果!;ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}else{while!PRecordset-adoEOF{m_managerlist.InsertItem0;m_managerlist.SetItemText00char*_bstr_tPRecordset-GetCollectteacher_no;m_managerlist.SetItemText01char*_bstr_tPRecordset-GetCollectteacher_name;m_managerlist.SetItemText02char*_bstr_tPRecordset-GetCollectteacher_sex;m_managerlist.SetItemText03char*_bstr_tPRecordset-GetCollectteacher_age;m_managerlist.SetItemText04char*_bstr_tPRecordset-GetCollectteacher_col;PRecordset-MoveNext;}ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}}voidManager::OnButton3//查询学生选课信息{//TODO:Addyourcontrolnotificationhandlercodehereforinti=0;i10;i++{m_managerlist.DeleteColumn0;}m_managerlist.DeleteAllItems;//清空列表内容m_managerlist.SetExtendedStyleLVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES;m_managerlist.InsertColumn0学号LVCFMT_LEFT950;m_managerlist.InsertColumn1姓名LVCFMT_LEFT951;m_managerlist.InsertColumn2课程号LVCFMT_LEFT952;m_managerlist.InsertColumn3课程名LVCFMT_LEFT953;m_managerlist.InsertColumn4任课老师LVCFMT_LEFT954;//查找//TODO:Addextravalidationhere//AfxOleInit;_ConnectionPtrPConnection;_RecordsetPtrPRecordset;::CoInitializeNULL;try{UpdateData;::CoInitializeNULL;//接口初始化PConnection.CreateInstanceADODB.Connection;PConnection-Mode=adModeReadWrite;//连接数据库PConnection-ConnectionString=_TDataSource=KAY-PC;Provider=SQLOLEDB.1;InitialCatalog=SMS;//PConnection指向数据库对象HRESULThr1=PConnection-Open_T_Tsa_Tqwe123adAsyncConnect;AfxMessageBox请稍后!;ifSUCCEEDEDhr1{//AfxMessageBox连接数据库成功!;//return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}try{PRecordset.CreateInstanceADODB.Recordset;_bstr_tbstrSQL;CStringresult;result.Formatselect*fromstudent_lessonswherestu_no=%sm_student_no;//从编辑框获取值m_name及对应的sql语句//打开记录集,PRecordset指针指向结果集PRecordset-Open_bstr_tresultPConnection.GetInterfacePtradOpenKeysetadLockOptimisticadCmdText;ifPRecordset-BOFPRecordset-adoEOF//表中无记录{AfxMessageBox无查询结果!;ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}else{while!PRecordset-adoEOF{m_managerlist.InsertItem0;m_managerlist.SetItemText00char*_bstr_tPRecordset-GetCollectstu_no;m_managerlist.SetItemText01char*_bstr_tPRecordset-GetCollectstu_name;m_managerlist.SetItemText02char*_bstr_tPRecordset-GetCollectcourse_no;m_managerlist.SetItemText03char*_bstr_tPRecordset-GetCollectcourse_name;m_managerlist.SetItemText04char*_bstr_tPRecordset-GetCollectteacher_name;PRecordset-MoveNext;}ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}}voidManager::OnButton4//教师开课信息{//TODO:Addyourcontrolnotificationhandlercodehereforinti=0;i10;i++{m_managerlist.DeleteColumn0;}m_managerlist.DeleteAllItems;//清空列表内容m_managerlist.SetExtendedStyleLVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES;m_managerlist.InsertColumn0姓名LVCFMT_LEFT950;m_managerlist.InsertColumn1性别LVCFMT_LEFT951;m_managerlist.InsertColumn2课程号LVCFMT_LEFT952;m_managerlist.InsertColumn3课程名LVCFMT_LEFT953;//查找//TODO:Addextravalidationhere//AfxOleInit;_ConnectionPtrPConnection;_RecordsetPtrPRecordset;::CoInitializeNULL;try{UpdateData;::CoInitializeNULL;//COM接口初始化PConnection.CreateInstanceADODB.Connection;PConnection-Mode=adModeReadWrite;//连接数据库PConnection-ConnectionString=_TDataSource=KAY-PC;Provider=SQLOLEDB.1;InitialCatalog=SMS;//PConnection指向数据库对象HRESULThr1=PConnection-Open_T_Tsa_Tqwe123adAsyncConnect;AfxMessageBox请稍后!;ifSUCCEEDEDhr1{//AfxMessageBox连接数据库成功!;//return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}try{PRecordset.CreateInstanceADODB.Recordset;_bstr_tbstrSQL;CStringresult;result.Formatselect*fromteacher_lessonswhereteacher_no=%sm_teacher_no;//从编辑框获取值m_name及对应的sql语句//打开记录集,PRecordset指针指向结果集PRecordset-Open_bstr_tresultPConnection.GetInterfacePtradOpenKeysetadLockOptimisticadCmdText;ifPRecordset-BOFPRecordset-adoEOF//表中无记录{AfxMessageBox无查询结果!;ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}else{while!PRecordset-adoEOF{m_managerlist.InsertItem0;m_managerlist.SetItemText00char*_bstr_tPRecordset-GetCollectteacher_no;m_managerlist.SetItemText01char*_bstr_tPRecordset-GetCollectteacher_name;m_managerlist.SetItemText02char*_bstr_tPRecordset-GetCollectcourse_no;m_managerlist.SetItemText03char*_bstr_tPRecordset-GetCollectcourse_name;PRecordset-MoveNext;}ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}}voidManager::Onaddstudent{//TODO:AddyourcontrolnotificationhandlercodehereManager_student*pDlg=newManager_student;pDlg-CreateIDD_manager_add_sub_alt_studentthis;pDlg-ShowWindowSW_SHOW;}voidManager::Onaddstudent2//修改和添加教师基本信息{//TODO:AddyourcontrolnotificationhandlercodehereManager_teacher*pDlg=newManager_teacher;pDlg-CreateIDD_manager_add_sub_alt_teacherthis;pDlg-ShowWindowSW_SHOW;}voidManager::OnButton5//选课信息修改{//TODO:AddyourcontrolnotificationhandlercodehereManager_student_lessons*pDlg=newManager_student_lessons;pDlg-CreateIDD_student_lessonsthis;pDlg-ShowWindowSW_SHOW;}voidManager::OnButton6//教师开课信息{//TODO:Addyourcontrolnotificationhandlercodehere}
6.3学生界面(如图6-3)图6-3主要代码//StudentdialogStudent::StudentCWnd*pParent/*=NULL*/:CDialogStudent::IDDpParent{//{{AFX_DATA_INITStudentm_lesson_no=_T;//}}AFX_DATA_INIT}voidStudent::DoDataExchangeCDataExchange*pDX{CDialog::DoDataExchangepDX;//{{AFX_DATA_MAPStudentDDX_ControlpDXIDC_LIST1m_studentlist;DDX_TextpDXIDC_EDIT1m_lesson_no;//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAPStudentCDialog//{{AFX_MSG_MAPStudentON_BN_CLICKEDIDC_BUTTON5OnButton5ON_BN_CLICKEDIDC_BUTTON1OnButton1ON_BN_CLICKEDIDC_BUTTON3OnButton3ON_BN_CLICKEDIDC_BUTTON2OnButton2//}}AFX_MSG_MAPEND_MESSAGE_MAP///////////////////////////////////////////////////////////////////////////////StudentmessagehandlersvoidStudent::OnCancel{DestroyWindow;}voidStudent::PostNcDestroy{CDialog::PostNcDestroy;deletethis;}voidStudent::OnButton5//学生基本信息查询{//TODO:Addyourcontrolnotificationhandlercodehereforinti=0;i10;i++{m_studentlist.DeleteColumn0;}m_studentlist.DeleteAllItems;//清空列表内容m_studentlist.SetExtendedStyleLVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES;m_studentlist.InsertColumn0学号LVCFMT_LEFT950;m_studentlist.InsertColumn1姓名LVCFMT_LEFT951;m_studentlist.InsertColumn2性别LVCFMT_LEFT952;m_studentlist.InsertColumn3年龄LVCFMT_LEFT953;m_studentlist.InsertColumn4学院LVCFMT_LEFT954;m_studentlist.InsertColumn5主修LVCFMT_LEFT955;m_studentlist.InsertColumn6年级LVCFMT_LEFT956;//查找//TODO:Addextravalidationhere//AfxOleInit;_ConnectionPtrPConnection;_RecordsetPtrPRecordset;::CoInitializeNULL;try{UpdateData;::CoInitializeNULL;//接口初始化PConnection.CreateInstanceADODB.Connection;PConnection-Mode=adModeReadWrite;//连接数据库PConnection-ConnectionString=_TDataSource=KAY-PC;Provider=SQLOLEDB.1;InitialCatalog=SMS;//PConnection指向数据库对象HRESULThr1=PConnection-Open_T_Tsa_Tqwe123adAsyncConnect;AfxMessageBox请稍后!;ifSUCCEEDEDhr1{//AfxMessageBox连接数据库成功!;//return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}try{PRecordset.CreateInstanceADODB.Recordset;_bstr_tbstrSQL;CStringresult;result.Formatselect*fromstudent_informationwherestu_no=%sm_username;//从编辑框获取值m_name及对应的sql语句//打开记录集,PRecordset指针指向结果集PRecordset-Open_bstr_tresultPConnection.GetInterfacePtradOpenKeysetadLockOptimisticadCmdText;ifPRecordset-BOFPRecordset-adoEOF//表中无记录{AfxMessageBox无查询结果!;ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}else{while!PRecordset-adoEOF{m_studentlist.InsertItem0;m_studentlist.SetItemText00char*_bstr_tPRecordset-GetCollectstu_no;m_studentlist.SetItemText01char*_bstr_tPRecordset-GetCollectstu_name;m_studentlist.SetItemText02char*_bstr_tPRecordset-GetCollectstu_sex;m_studentlist.SetItemText03char*_bstr_tPRecordset-GetCollectstu_age;m_studentlist.SetItemText04char*_bstr_tPRecordset-GetCollectstu_col;m_studentlist.SetItemText05char*_bstr_tPRecordset-GetCollectstu_maj;m_studentlist.SetItemText06char*_bstr_tPRecordset-GetCollectstu_grade;PRecordset-MoveNext;}ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}}voidStudent::OnButton1//成绩查询{//TODO:Addyourcontrolnotificationhandlercodehereforinti=0;i10;i++{m_studentlist.DeleteColumn0;}m_studentlist.DeleteAllItems;//清空列表内容m_studentlist.SetExtendedStyleLVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES;m_studentlist.InsertColumn0学号LVCFMT_LEFT950;m_studentlist.InsertColumn1姓名LVCFMT_LEFT951;m_studentlist.InsertColumn2课程号LVCFMT_LEFT952;m_studentlist.InsertColumn3课程名LVCFMT_LEFT953;m_studentlist.InsertColumn4成绩LVCFMT_LEFT954;//查找//TODO:Addextravalidationhere//AfxOleInit;_ConnectionPtrPConnection;_RecordsetPtrPRecordset;::CoInitializeNULL;try{UpdateData;::CoInitializeNULL;//接口初始化PConnection.CreateInstanceADODB.Connection;PConnection-Mode=adModeReadWrite;//连接数据库PConnection-ConnectionString=_TDataSource=KAY-PC;Provider=SQLOLEDB.1;InitialCatalog=SMS;//PConnection指向数据库对象HRESULThr1=PConnection-Open_T_Tsa_Tqwe123adAsyncConnect;AfxMessageBox请稍后!;ifSUCCEEDEDhr1{//AfxMessageBox连接数据库成功!;//return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}try{PRecordset.CreateInstanceADODB.Recordset;_bstr_tbstrSQL;CStringresult;result.Formatselect*fromgradewherestu_no=%sm_username;//从编辑框获取值m_name及对应的sql语句//打开记录集,PRecordset指针指向结果集PRecordset-Open_bstr_tresultPConnection.GetInterfacePtradOpenKeysetadLockOptimisticadCmdText;ifPRecordset-BOFPRecordset-adoEOF//表中无记录{AfxMessageBox无查询结果!;ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}else{while!PRecordset-adoEOF{m_studentlist.InsertItem0;m_studentlist.SetItemText00char*_bstr_tPRecordset-GetCollectstu_no;m_studentlist.SetItemText01char*_bstr_tPRecordset-GetCollectstu_name;m_studentlist.SetItemText02char*_bstr_tPRecordset-GetCollectcourse_no;m_studentlist.SetItemText03char*_bstr_tPRecordset-GetCollectcourse_name;m_studentlist.SetItemText04char*_bstr_tPRecordset-GetCollectgrade;PRecordset-MoveNext;}ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}}voidStudent::OnButton3//选课信息查询{//TODO:Addyourcontrolnotificationhandlercodehereforinti=0;i10;i++{m_studentlist.DeleteColumn0;}m_studentlist.DeleteAllItems;//清空列表内容m_studentlist.SetExtendedStyleLVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES;m_studentlist.InsertColumn0课程号LVCFMT_LEFT950;m_studentlist.InsertColumn1课程名LVCFMT_LEFT951;m_studentlist.InsertColumn2教师编号LVCFMT_LEFT952;m_studentlist.InsertColumn3教师姓名LVCFMT_LEFT953;m_studentlist.InsertColumn4先修课程LVCFMT_LEFT954;m_studentlist.InsertColumn5上课时间LVCFMT_LEFT955;//查找//TODO:Addextravalidationhere//AfxOleInit;_ConnectionPtrPConnection;_RecordsetPtrPRecordset;::CoInitializeNULL;try{UpdateData;::CoInitializeNULL;//接口初始化PConnection.CreateInstanceADODB.Connection;PConnection-Mode=adModeReadWrite;//连接数据库PConnection-ConnectionString=_TDataSource=KAY-PC;Provider=SQLOLEDB.1;InitialCatalog=SMS;//PConnection指向数据库对象HRESULThr1=PConnection-Open_T_Tsa_Tqwe123adAsyncConnect;AfxMessageBox请稍后!;ifSUCCEEDEDhr1{//AfxMessageBox连接数据库成功!;//return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}try{PRecordset.CreateInstanceADODB.Recordset;_bstr_tbstrSQL;CStringresult;result.Formatselect*fromcourse_information;//从编辑框获取值m_name及对应的sql语句//打开记录集,PRecordset指针指向结果集PRecordset-Open_bstr_tresultPConnection.GetInterfacePtradOpenKeysetadLockOptimisticadCmdText;ifPRecordset-BOFPRecordset-adoEOF//表中无记录{AfxMessageBox无查询结果!;ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}else{while!PRecordset-adoEOF{m_studentlist.InsertItem0;m_studentlist.SetItemText00char*_bstr_tPRecordset-GetCollectcourse_no;m_studentlist.SetItemText01char*_bstr_tPRecordset-GetCollectcourse_name;m_studentlist.SetItemText02char*_bstr_tPRecordset-GetCollectteacher_no;m_studentlist.SetItemText03char*_bstr_tPRecordset-GetCollectteacher_name;m_studentlist.SetItemText04char*_bstr_tPRecordset-GetCollectpre_course;m_studentlist.SetItemText05char*_bstr_tPRecordset-GetCollecttake_time;PRecordset-MoveNext;}ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}}voidStudent::OnButton2//选课{//TODO:Addyourcontrolnotificationhandlercodehere//查找//TODO:Addextravalidationhere//AfxOleInit;_ConnectionPtrPConnection;_RecordsetPtrPRecordsetpr;::CoInitializeNULL;try{UpdateData;::CoInitializeNULL;//接口初始化PConnection.CreateInstanceADODB.Connection;PConnection-Mode=adModeReadWrite;//连接数据库PConnection-ConnectionString=_TDataSource=KAY-PC;Provider=SQLOLEDB.1;InitialCatalog=SMS;//PConnection指向数据库对象HRESULThr1=PConnection-Open_T_Tsa_Tqwe123adAsyncConnect;AfxMessageBox请稍后!;ifSUCCEEDEDhr1{//AfxMessageBox连接数据库成功!;//return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}try{PRecordset.CreateInstanceADODB.Recordset;pr.CreateInstanceADODB.Recordset;_bstr_tbstrSQL;CStringresultadd;CStringitem1item2item3item4item5;ifm_lesson_no.GetLength==0{AfxMessageBox请输入课程号!;return;}result.Formatselect*fromcourse_informationwherecourse_no=%sm_lesson_no;//从编辑框获取值m_name及对应的sql语句//打开记录集,PRecordset指针指向结果集PRecordset-Open_bstr_tresultPConnection.GetInterfacePtradOpenKeysetadLockOptimisticadCmdText;ifPRecordset-BOFPRecordset-adoEOF//表中无记录{AfxMessageBox请输入正确的课程号!;ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}else{item1=char*_bstr_tPRecordset-GetCollectcourse_no;item2=char*_bstr_tPRecordset-GetCollectcourse_name;item3=char*_bstr_tPRecordset-GetCollectteacher_no;item4=char*_bstr_tPRecordset-GetCollectteacher_name;item5=char*_bstr_tPRecordset-GetCollectpre_course;add.Formatinsertintostudent_lessonsstu_nocourse_nocourse_nameteacher_namevalues%s%s%s%sm_usernameitem1item2item4;HRESULThr=pr-Open_bstr_taddPConnection.GetInterfacePtradOpenKeysetadLockOptimisticadCmdText;ifSUCCEEDEDhr{AfxMessageBox选课成功!;ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}else{AfxMessageBox选课失败!;}}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}}
6.4教师界面(如图6-4)图6-4主要代码//TeacherdialogTeacher::TeacherCWnd*pParent/*=NULL*/:CDialogTeacher::IDDpParent{//{{AFX_DATA_INITTeacherm_course_no=_T;//}}AFX_DATA_INIT}voidTeacher::DoDataExchangeCDataExchange*pDX{CDialog::DoDataExchangepDX;//{{AFX_DATA_MAPTeacherDDX_ControlpDXIDC_LIST1m_teacherlist;DDX_TextpDXIDC_EDIT2m_course_no;//}}AFX_DATA_MAP}BEGIN_MESSAGE_MAPTeacherCDialog//{{AFX_MSG_MAPTeacherON_BN_CLICKEDIDC_BUTTON1OnButton1ON_BN_CLICKEDIDC_BUTTON7OnButton7ON_BN_CLICKEDIDC_BUTTON5OnButton5ON_BN_CLICKEDIDC_BUTTON8OnButton8//}}AFX_MSG_MAPEND_MESSAGE_MAP///////////////////////////////////////////////////////////////////////////////TeachermessagehandlersvoidTeacher::OnButton1//教师基本信息查询{//TODO:Addyourcontrolnotificationhandlercodehereforinti=0;i10;i++{m_teacherlist.DeleteColumn0;}m_teacherlist.DeleteAllItems;//清空列表内容m_teacherlist.SetExtendedStyleLVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES;m_teacherlist.InsertColumn0职工号LVCFMT_LEFT950;m_teacherlist.InsertColumn1姓名LVCFMT_LEFT951;m_teacherlist.InsertColumn2性别LVCFMT_LEFT952;m_teacherlist.InsertColumn3年龄LVCFMT_LEFT953;m_teacherlist.InsertColumn4学院LVCFMT_LEFT954;//查找//TODO:Addextravalidationhere//AfxOleInit;_ConnectionPtrPConnection;_RecordsetPtrPRecordset;::CoInitializeNULL;try{UpdateData;::CoInitializeNULL;//接口初始化PConnection.CreateInstanceADODB.Connection;PConnection-Mode=adModeReadWrite;//连接数据库PConnection-ConnectionString=_TDataSource=KAY-PC;Provider=SQLOLEDB.1;InitialCatalog=SMS;//PConnection指向数据库对象HRESULThr1=PConnection-Open_T_Tsa_Tqwe123adAsyncConnect;AfxMessageBox请稍后!;ifSUCCEEDEDhr1{//AfxMessageBox连接数据库成功!;//return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}try{PRecordset.CreateInstanceADODB.Recordset;_bstr_tbstrSQL;CStringresult;result.Formatselect*fromteacher_informationwhereteacher_no=%sm_username;//从编辑框获取值m_name及对应的sql语句//打开记录集,PRecordset指针指向结果集PRecordset-Open_bstr_tresultPConnection.GetInterfacePtradOpenKeysetadLockOptimisticadCmdText;ifPRecordset-BOFPRecordset-adoEOF//表中无记录{AfxMessageBox无查询结果!;ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}else{while!PRecordset-adoEOF{m_teacherlist.InsertItem0;m_teacherlist.SetItemText00char*_bstr_tPRecordset-GetCollectteacher_no;m_teacherlist.SetItemText01char*_bstr_tPRecordset-GetCollectteacher_name;m_teacherlist.SetItemText02char*_bstr_tPRecordset-GetCollectteacher_sex;m_teacherlist.SetItemText03char*_bstr_tPRecordset-GetCollectteacher_age;m_teacherlist.SetItemText04char*_bstr_tPRecordset-GetCollectteacher_col;PRecordset-MoveNext;}ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}}voidTeacher::OnButton7//修改和录入学生成绩{//TODO:AddyourcontrolnotificationhandlercodehereStudent_grade*pDlg=newStudent_grade;pDlg-CreateIDD_student_gradethis;pDlg-ShowWindowSW_SHOW;}voidTeacher::OnButton5//学生成绩{//TODO:Addyourcontrolnotificationhandlercodehereforinti=0;i10;i++{m_teacherlist.DeleteColumn0;}m_teacherlist.DeleteAllItems;//清空列表内容m_teacherlist.SetExtendedStyleLVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES;m_teacherlist.InsertColumn0学号LVCFMT_LEFT950;m_teacherlist.InsertColumn1姓名LVCFMT_LEFT951;m_teacherlist.InsertColumn2课程号LVCFMT_LEFT952;m_teacherlist.InsertColumn3课程名LVCFMT_LEFT953;m_teacherlist.InsertColumn4成绩LVCFMT_LEFT954;//查找//TODO:Addextravalidationhere//AfxOleInit;_ConnectionPtrPConnection;_RecordsetPtrPRecordset;::CoInitializeNULL;try{//ifm_course_no.GetLength==0{AfxMessageBox请输入课程号!;return;}UpdateData;::CoInitializeNULL;//接口初始化PConnection.CreateInstanceADODB.Connection;PConnection-Mode=adModeReadWrite;//连接数据库PConnection-ConnectionString=_TDataSource=KAY-PC;Provider=SQLOLEDB.1;InitialCatalog=SMS;//PConnection指向数据库对象HRESULThr1=PConnection-Open_T_Tsa_Tqwe123adAsyncConnect;AfxMessageBox请稍后!;ifSUCCEEDEDhr1{//AfxMessageBox连接数据库成功!;//return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}try{PRecordset.CreateInstanceADODB.Recordset;_bstr_tbstrSQL;CStringresult;result.Formatselect*fromgradewherecourse_no=%sm_course_no;//从编辑框获取值m_name及对应的sql语句//打开记录集,PRecordset指针指向结果集PRecordset-Open_bstr_tresultPConnection.GetInterfacePtradOpenKeysetadLockOptimisticadCmdText;ifPRecordset-BOFPRecordset-adoEOF//表中无记录{AfxMessageBox无查询结果!;ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}else{while!PRecordset-adoEOF{m_teacherlist.InsertItem0;m_teacherlist.SetItemText00char*_bstr_tPRecordset-GetCollectstu_no;m_teacherlist.SetItemText01char*_bstr_tPRecordset-GetCollectstu_name;m_teacherlist.SetItemText02char*_bstr_tPRecordset-GetCollectcourse_no;m_teacherlist.SetItemText03char*_bstr_tPRecordset-GetCollectcourse_name;m_teacherlist.SetItemText04char*_bstr_tPRecordset-GetCollectgrade;PRecordset-MoveNext;}ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}}voidTeacher::OnButton8//课程安排{//TODO:Addyourcontrolnotificationhandlercodehereforinti=0;i10;i++{m_teacherlist.DeleteColumn0;}m_teacherlist.DeleteAllItems;//清空列表内容m_teacherlist.SetExtendedStyleLVS_EX_FLATSB|LVS_EX_FULLROWSELECT|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE|LVS_EX_GRIDLINES;m_teacherlist.InsertColumn0课程号LVCFMT_LEFT950;m_teacherlist.InsertColumn1课程名LVCFMT_LEFT951;m_teacherlist.InsertColumn2任课教师LVCFMT_LEFT952;m_teacherlist.InsertColumn3先修课LVCFMT_LEFT953;m_teacherlist.InsertColumn4上课时间LVCFMT_LEFT954;//查找//TODO:Addextravalidationhere//AfxOleInit;_ConnectionPtrPConnection;_RecordsetPtrPRecordset;::CoInitializeNULL;try{UpdateData;::CoInitializeNULL;//接口初始化PConnection.CreateInstanceADODB.Connection;PConnection-Mode=adModeReadWrite;//连接数据库PConnection-ConnectionString=_TDataSource=KAY-PC;Provider=SQLOLEDB.1;InitialCatalog=SMS;//PConnection指向数据库对象HRESULThr1=PConnection-Open_T_Tsa_Tqwe123adAsyncConnect;AfxMessageBox请稍后!;ifSUCCEEDEDhr1{//AfxMessageBox连接数据库成功!;//return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}try{PRecordset.CreateInstanceADODB.Recordset;_bstr_tbstrSQL;CStringresult;result.Formatselect*fromcourse_informationwhereteacher_no=%sm_username;//从编辑框获取值m_name及对应的sql语句//打开记录集,PRecordset指针指向结果集PRecordset-Open_bstr_tresultPConnection.GetInterfacePtradOpenKeysetadLockOptimisticadCmdText;ifPRecordset-BOFPRecordset-adoEOF//表中无记录{AfxMessageBox无查询结果!;ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}else{while!PRecordset-adoEOF{m_teacherlist.InsertItem0;m_teacherlist.SetItemText00char*_bstr_tPRecordset-GetCollectcourse_no;m_teacherlist.SetItemText01char*_bstr_tPRecordset-GetCollectcourse_name;m_teacherlist.SetItemText02char*_bstr_tPRecordset-GetCollectteacher_name;m_teacherlist.SetItemText03char*_bstr_tPRecordset-GetCollectpre_course;m_teacherlist.SetItemText04char*_bstr_tPRecordset-GetCollecttake_time;PRecordset-MoveNext;}ifPRecordset!=NULLPRecordset-Close;PConnection-Close;return;}}catch_com_errore{AfxMessageBoxe.ErrorMessage;return;}}
六、总结
1、关于系统本身是一个很普通的系统,但是学到的却不少,让自己进一步的了解C++面向对象编程也对语言进一步熟悉
2、关于遇到的问题,由于此前没有做过相对完整的项目,这次课程设计的过程中遇到了不少问题,甚至刚开始还不知道怎么上手做,但是借助图书馆和网络上的资料,大家建言献策,还是把问题一步一步解决了
3、关于学习本身,从接到课程设计要求到最终做出项目,这中间是一个漫长的探索过程,我的体会是,面对新知识要积极,面对问题要坚持页1。