您好,欢迎访问三七文档
L/O/G/O授课教师:钟绍辉学生基本信息管理系统软件学院科目信息管理1系统的功能学生信息管理2学生成绩录入管理3学生成绩等级管理4科目信息管理5软件学院公共类的设计1建立数据库2采用ODBC连接数据库(在控制面板上实现数据源)3在程序中实现数据库连接:(1)在主应用程序的初始函数中实现数据库的连接。在相应的位置来加入头文件“afxdb.h”(2)利用CDatabase类中的open函数来实现对数据库的连接。软件学院实现函数如下:if(CoInitialize(NULL)!=0){AfxMessageBox(初始化COM支持库失败!);exit(1);}//////////////////////////////////////////////////////////////////////////////////////////////////////////////try{CStringstrConnect;strConnect.Format(DSN=mystudents;);if(m_db.Open(NULL,false,false,ODBC;DSN=mystudents;UID=Sa;PWD=;)==0){AfxMessageBox(UnabletoConnecttotheSpecifiedDataSource);returnFALSE;}}catch(CDBException*pE){pE-ReportError();pE-Delete();returnFALSE;}软件学院主窗体设计(1)设计菜单栏控件,并将菜单栏增加到主窗体中。软件学院(2)主窗体中增加位图控件,并在位图中增加位图。软件学院科目信息管理模块设计科目信息管理设置界面软件学院科目信息管理设计(1)设计窗体在设计菜单条,并为每个菜单条添加事件(2)在科目设计主窗体中增加菜单条(在科目信息管理窗体的初始化函数中增加下面代码)if(!m_ToolBar.CreateEx(this,TBSTYLE_FLAT,WS_CHILD|WS_VISIBLE|CBRS_TOP|CBRS_GRIPPER|CBRS_TOOLTIPS|CBRS_SIZE_DYNAMIC)||!m_ToolBar.LoadToolBar(IDR_subject_bar)){TRACE0(_T(创建工具条失败\n));returnFALSE;}RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);m_ToolBar.SetButtonStyle(0,TBBS_CHECKBOX);m_ToolBar.SetButtonStyle(1,TBBS_CHECKBOX);m_ToolBar.SetButtonStyle(2,TBBS_CHECKBOX);m_ToolBar.SetButtonStyle(3,TBBS_CHECKBOX);m_ToolBar.SetButtonStyle(4,TBBS_CHECKBOX);m_ToolBar.SetButtonStyle(5,TBBS_CHECKBOX);m_ToolBar.SetButtonStyle(6,TBBS_CHECKBOX);软件学院(3)新建对科目表操作的类。软件学院(3)在窗体中科目信息表,并获得记录集。CStringsqlStr;sqlStr=SELECT*FROMkemuInfo;mysubjectset=newCSubjetcInfo(&((CMystudentApp*)AfxGetApp())-m_db);if(!mysubjectset-Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr))//打开数据t{AfxMessageBox(tb_subject表打开失败!);}软件学院(4)编写数据显示的函数boolCSubjectdlg::DisplayRecord(){if(mysubjectset-IsEOF()&&mysubjectset-IsBOF())//判断是否移动到了开头和结尾{m_subjectname=;m_subjectid=;}else{if(mysubjectset-IsBOF())//移动到了开头,就向后移动{mysubjectset-MoveNext();}else//否则前移{if(mysubjectset-IsEOF()){mysubjectset-MovePrev();}}}m_subjectname=mysubjectset-m_subject;//对应变量赋值m_subjectid=mysubjectset-m_code;UpdateData(FALSE);returnTRUE;}软件学院(6)最后一条记录voidCSubjectdlg::Onsubjectinfotoolbarlast(){//TODO:Addyourcommandhandlercodehereif(!mysubjectset-IsEOF()){mysubjectset-MoveLast();DisplayRecord();}}软件学院(7)后一条记录voidCSubjectdlg::Onsubjectinfotoolbarnext(){//TODO:Addyourcommandhandlercodehereif(!mysubjectset-IsEOF()){mysubjectset-MoveNext();DisplayRecord();}}软件学院第一条记录voidCSubjectdlg::Onsubjectinfotoolbarpre(){//TODO:Addyourcommandhandlercodehereif(!mysubjectset-IsBOF()){mysubjectset-MovePrev();DisplayRecord();}}软件学院(9)保存按钮代码的实现voidCSubjectdlg::Onsubjectinfotoolbarsave(){//TODO:AddyourcommandhandlercodehereUpdateData(TRUE);if(m_subjectname.IsEmpty()||m_subjectid.IsEmpty()){AfxMessageBox(请输入相应的数据!);return;}CStringsqlStr_findid;sqlStr_findid=SELECT*FROMtb_subjectWHEREtb_subject.code='+m_subjectid+';mysubjectset_find=newCSubjectinfo(&((CMystudentsysApp*)AfxGetApp())-m_DB);if(!mysubjectset_find-Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr_findid)){AfxMessageBox(tb_subject表打开失败!);}if(mysubjectset_find-GetRecordCount()!=0){AfxMessageBox(科目代码不能重复,请修改后再输入!);if(mysubjectset_find-IsOpen()){mysubjectset_find-Close();deletemysubjectset_find;}return;}if(mysubjectset_find-IsOpen())软件学院{mysubjectset_find-Close();deletemysubjectset_find;}mysubjectset-AddNew();//调用添加记录的函数处理mysubjectset-m_subject=m_subjectname;//对应变量更新mysubjectset-m_code=m_subjectid;try{mysubjectset-Update();mysubjectset-Requery();AfxMessageBox(成功保存数据!);}catch(CDBException*e){AfxMessageBox(e-m_strError,MB_ICONEXCLAMATION);e-Delete();}DisplayRecord();//更新显示}软件学院(10)关闭数据库。voidCSubjectdlg::OnClose(){//TODO:Addyourmessagehandlercodehereand/orcalldefaultif(mysubjectset-IsOpen()){mysubjectset-Close();deletemysubjectset;}CDialog::OnClose();}软件学院学生成绩信息模块的实现(1)学生成绩的录入功能实现软件学院学生成绩查询模块软件学院Servlet接口定义了基本servlet初始化、对客户请求服务、消亡的生存周期的方法,还定义了servlet与Servlet容器进行通信的方式GenericServlet类是Servlet接口的一个抽象实现HttpServlet类则针对HTTP协议这一特定的应用层协议进行了基本的实现MyHttpServlet类继承HttpServlet的基本特性,并根据需要重写部分代码软件学院Class/Interface名说明HTTPServlet类提供Servlet接口的HTTP指定的实现.HTTPServletRequest接口提供处理客户请求的方法.HTTPServletResponse接口通过HTTPServletResponse接口对象,以HTML页面形式把应答发给客户ServletConfig类用于存储servlets启动配置和初始化参数值软件学院思考:(1)何时创建Servlet对象(2)何时调用Servlet对象中的方法(3)何时销毁Servlet对象软件学院1生命周期的概念Servlet的生命周期是当服务器装载运行servlets,接收来自客户端的多个请求并返回数据给客户端,然后删除servlets的过程。包括加载、实例化、初始化、处理客户请求和卸载几个阶段Client(Browser)init()service()destroy()RequestResponse软件学院Servlet.init(ServletConfigconfig)throwsServletException包含所有有关servlet的初始化代码.Servlet.service(ServletRequestreq,ServletResponseres)接受所有客户的请求,识别请求的类型并把它们分派到doGet()或doPost()方法去处理.在HttpServlet中,service()方法将会区分不同的HTTP请求类型,调用相应的doXXX()方法进行处理,比如请求的是HTTPGET方法,将会调用doGet(),而POST则会调用doPost()。所以当我们实现一个针对http协议的Servlet时,我们只需要覆盖相应的doXXX方法,实现我们的业务处理逻辑即可。基本方法软件学院1、servlet的装入和实例化由servlet容器来负责。2、容器通过调用servlet的init()方法来初始化servlet,并且传递一个ServletConfig对象给它3、现在servlet已经准备好处理客户的请求了。当请求到达容器时,容器负责把请求包装成ServletRequest对象,然后调用servle
本文标题:vc++课程实训
链接地址:https://www.777doc.com/doc-3179132 .html