书签 分享 收藏 举报 版权申诉 / 39
上传文档赚钱

类型高级语言程序设计C-课程答辩课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4437454
  • 上传时间:2022-12-09
  • 格式:PPT
  • 页数:39
  • 大小:883KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《高级语言程序设计C-课程答辩课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    高级 语言程序设计 课程 答辩 课件
    资源描述:

    1、高级语言程序设计(高级语言程序设计(C+)课程答辩课程答辩题 目:图书馆管理系统院 系:班 级:学 号:姓 名:系统开发系统开发背景背景 某民办高校在创办初期,办学规模比较小。学校的图书数量,以及借阅人数都比较少,所以,一直以来对图书管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况的统计和审核等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。近年来由于国家对民办教育的大力扶持,该民办高校的办学规模迅速扩大,学校的硬件设施以及在校学生和职工数都在成倍增长,给学校的图书馆管理也带来了巨大的压力,早期的手工图书管理方式已经不能满足日益增长的图

    2、书借阅需求。使用计算机对图书信息进行管理,具有手工管理所无法比拟的特点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。为了适应学校迅速发展的趋势,解决日益尖锐的图书馆管理矛盾,该校提出了采用计算机管理图书信息的需求。本系统就是基于这个需求进行开发的。系统需求系统需求在图书管理信息系统开发时应该满足以下具体的系统需求:1)满足图书借阅管理的基本需求2)满足图书书库管理的基本需求3)满足图书借阅人管理的基本需求4)对操作人员的技能要求比较低,操作方便。5)能够实现方便的扩展,满足图书馆发展的需要。6)能够保障图书馆管理数据的安全、准确。系统层次模块图系统层次模块图某学校

    3、图书管理信息系统可以分为5个子模块:系统登录、图书信息管理、读者信息管理、借书服务管理、还书服务管理,如图所示。数据库设计数据库设计 根据系统功能设计的要求以及功能模块的划分,对于本系统的数据库,可以列出以下数据项和数据结构:(1)名称:登录信息表表名标识符:CLERK(2)名称:书籍信息表表名标识符:BOOK(3)名称:读者信息表表名标识符:READER(4)名称:借书信息表表名标识符:BORROW(5)名称:借还书历史表表名标识符:HISTORY 创建项目创建项目 创建一个基于对话框的MFC AppWizard(exe)项目,项目名为Library。为了能在对话框中用ODBC编写数据库,需

    4、在stdafx.h中手动添加支持:#include 登录模块登录模块(1)模块的功能书籍市图书馆最宝贵的财产,它的借进借出都应该保证安全。每个管理员用自己的用户名和密码登陆,来使用图书馆管理系统。通过某管理员借进和借出的书都有他的标记。这样就保证了书籍的安全。(2)界面设计设计界面如图所示。对话框属性设置为:IDD_DIALOG_LOGIN。为IDD_DIALOG_LOGIN添加CLoginDlg类其中主要控件的属性、功能及成员变量如图所示。(3)添加CClerkDataSet类与登录信息表连接(4)代码编写“取消”按钮取消输入,并关闭登录对话框:“登录”按钮当管理员填完用户名和密码后,单击“

    5、登录”按钮,先检查用户名和密码是否合法。然后查找数据库中是否有该管理员的信息,若有则登陆成功。具体代码如下:void CLoginDlg:OnConfirm()/TODO:Add your control notification handler code hereCClerkDataSet mrsDataSet;/*声明记录集*/CString mSqlStr;UpdateData(TRUE);if(m_strName.IsEmpty()/*判断用户名信息是否为空*/AfxMessageBox(请输入用户名!);return;mSqlStr=SELECT*FROM CLERK WHERE N

    6、AME=;mSqlStr=mSqlStr+m_strName;mSqlStr=mSqlStr+AND PASSWORD=;mSqlStr=mSqlStr+m_strPassword;mSqlStr=mSqlStr+;if(!mrsDataSet.Open(AFX_DB_USE_DEFAULT_TYPE,mSqlStr)AfxMessageBox(CLERK表打开失败!);return;if(!mrsDataSet.IsEOF()/Open all function for userCDialog:OnOK();CLibraryDlg dlg;dlg.DoModal();elseAfxMessa

    7、geBox(登录失败!);return;主界面模块主界面模块(1)模块的功能通过主界面可以进入每个模块,是各个模块切换和联系的桥梁。主界面力求简单,对每个按钮的功能给予适当简介。从主界面中可以退出系统。(2)界面设计设计界面如图所示其中主要控件的属性、功能及成员变量如图所示。图书信息模块图书信息模块(1)模块的功能图书信息模块主要完成图书信息管理功能,包括浏览、查找、添加、删除和修改。管理员可以根据使用的需要,依次单击对应按钮,来实现这些功能。浏览功能:管理员可以查看全部图书信息。查找功能:因为书籍条码和书籍是一一对应的关系,所以通过书籍条码可以查找到任意一本书的信息并显示出来。添加功能:可以

    8、向书籍表中添加新的书籍信息,系统会自动检测新的书籍信息中书籍条码是否在书籍表中存在,确保每本书具有唯一的书籍条码。删除功能:删除界面上当前现实的书籍信息,系统会弹出确认对话框,提示是否确认删除,得到确认后,便会删除该书信息。修改功能:实现对当前信息的修改,为安全起见,系统默认书籍条目不能修改。(2)界面设计设计的界面如图所示:对话框属性设置:IDD_DIALOG_BOOK为IDD_DIALOG_BOOK添加CBookDlg类其中主要控件的属性、功能及成员变量如图所示。(3)添加CCBookDataSet类与书籍信息表连接(3)添加CCBookDataSet类与书籍信息表连接(4)代码编写功能函

    9、数:把一些常用的功能封装为成员函数。DisplayRecord对话框各控件显示当先记录:BOOL CBookDlg:DisplayRecord()if(m_rsDataSet.IsEOF()&m_rsDataSet.IsBOF()m_strBookID=;m_strBookName=;m_strPress=;m_strAuthor=;m_strFlag=;m_strPressDate=;elseif(m_rsDataSet.IsBOF()m_rsDataSet.MoveNext();elseif(m_rsDataSet.IsEOF()m_rsDataSet.MovePrev();m_strBo

    10、okID=m_rsDataSet.m_BOOK_ID;m_strBookName=m_rsDataSet.m_BOOK_NAME;m_strPress=m_rsDataSet.m_PRESS;m_strAuthor=m_rsDataSet.m_AUTHOR;m_strFlag=m_rsDataSet.m_FLAG_BORROW;m_strPressDate=m_rsDataSet.m_PRESS_DATE;UpdateData(FALSE);return TRUE;SetButtonState根据不同的情况,调整按钮的状态。如:当到首记录的时候,“上一条”按钮无效。BOOL CBookDlg:

    11、SetButtonState()CWnd*pWnd;if(!m_rsDataSet.IsOpen()pWnd=GetDlgItem(IDC_FIRST);pWnd-EnableWindow(FALSE);pWnd=GetDlgItem(IDC_NEXT);pWnd-EnableWindow(FALSE);pWnd=GetDlgItem(IDC_PRIOR);pWnd-EnableWindow(FALSE);pWnd=GetDlgItem(IDC_LAST);pWnd-EnableWindow(FALSE);pWnd=GetDlgItem(IDC_NEW);pWnd-EnableWindow(F

    12、ALSE);pWnd=GetDlgItem(IDC_EDIT);pWnd-EnableWindow(FALSE);pWnd=GetDlgItem(IDC_ENQUERY);pWnd-EnableWindow(FALSE);pWnd=GetDlgItem(IDC_DELETE);pWnd-EnableWindow(FALSE);pWnd=GetDlgItem(IDC_SAVE);pWnd-EnableWindow(FALSE);pWnd=GetDlgItem(IDC_CANCEL_REC);pWnd-EnableWindow(FALSE);return TRUE;if(m_bEdit)pWnd=

    13、GetDlgItem(IDC_FIRST);pWnd-EnableWindow(FALSE);pWnd=GetDlgItem(IDC_NEXT);pWnd-EnableWindow(FALSE);pWnd=GetDlgItem(IDC_PRIOR);pWnd-EnableWindow(FALSE);pWnd=GetDlgItem(IDC_LAST);pWnd-EnableWindow(FALSE);pWnd=GetDlgItem(IDC_NEW);pWnd-EnableWindow(FALSE);pWnd=GetDlgItem(IDC_EDIT);pWnd-EnableWindow(FALSE

    14、);pWnd=GetDlgItem(IDC_ENQUERY);pWnd-EnableWindow(FALSE);pWnd=GetDlgItem(IDC_DELETE);pWnd-EnableWindow(FALSE);pWnd=GetDlgItem(IDC_SAVE);pWnd-EnableWindow(TRUE);pWnd=GetDlgItem(IDC_CANCEL_REC);pWnd-EnableWindow(TRUE);return TRUE;if(m_rsDataSet.IsBOF()pWnd=GetDlgItem(IDC_FIRST);pWnd-EnableWindow(FALSE)

    15、;pWnd=GetDlgItem(IDC_PRIOR);pWnd-EnableWindow(FALSE);elsepWnd=GetDlgItem(IDC_FIRST);pWnd-EnableWindow(TRUE);pWnd=GetDlgItem(IDC_PRIOR);pWnd-EnableWindow(TRUE);if(m_rsDataSet.IsEOF()pWnd=GetDlgItem(IDC_NEXT);pWnd-EnableWindow(FALSE);pWnd=GetDlgItem(IDC_LAST);pWnd-EnableWindow(FALSE);elsepWnd=GetDlgIt

    16、em(IDC_NEXT);pWnd-EnableWindow(TRUE);pWnd=GetDlgItem(IDC_LAST);pWnd-EnableWindow(TRUE);if(m_rsDataSet.IsBOF()&m_rsDataSet.IsEOF()pWnd=GetDlgItem(IDC_EDIT);pWnd-EnableWindow(FALSE);pWnd=GetDlgItem(IDC_DELETE);pWnd-EnableWindow(FALSE);elsepWnd=GetDlgItem(IDC_EDIT);pWnd-EnableWindow(TRUE);pWnd=GetDlgIt

    17、em(IDC_DELETE);pWnd-EnableWindow(TRUE);pWnd=GetDlgItem(IDC_NEW);pWnd-EnableWindow(TRUE);pWnd=GetDlgItem(IDC_ENQUERY);pWnd-EnableWindow(TRUE);pWnd=GetDlgItem(IDC_SAVE);pWnd-EnableWindow(FALSE);pWnd=GetDlgItem(IDC_CANCEL_REC);pWnd-EnableWindow(FALSE);return TRUE;SetButtonState根据不同的情况,调整按钮的状态。如:当到首记录的时

    18、候,“上一条”按钮无效。初始化显示记录,设置按钮、编辑框状态。BOOL CBookDlg:OnInitDialog()CDialog:OnInitDialog();/TODO:Add extra initialization herem_bAdd=FALSE;m_bEdit=FALSE;if(!m_rsDataSet.Open(AFX_DB_USE_DEFAULT_TYPE)AfxMessageBox(数据打开失败!);DisplayRecord();SetButtonState();SetTextState();return TRUE;/return TRUE unless you set

    19、the focus to a control /EXCEPTION:OCX Property Pages should return FALSE查询不同条件下进行查询,显示查询记录,设置按钮状态。void CBookDlg:OnEnquery()/TODO:Add your control notification handler code hereUpdateData(TRUE);if(m_strBookIDQ.IsEmpty()&m_strBookNameQ.IsEmpty()m_rsDataSet.m_strFilter=;m_rsDataSet.Requery();DisplayRec

    20、ord();SetButtonState();return;BOOL mAll=FALSE;if(!m_strBookIDQ.IsEmpty()m_rsDataSet.m_strFilter=BOOK_ID=+m_strBookIDQ;m_rsDataSet.m_strFilter=m_rsDataSet.m_strFilter+;mAll=TRUE;if(!m_strBookNameQ.IsEmpty()if(mAll)m_rsDataSet.m_strFilter=m_rsDataSet.m_strFilter+AND BOOK_NAME=;m_rsDataSet.m_strFilter=

    21、m_rsDataSet.m_strFilter+m_strBookNameQ;m_rsDataSet.m_strFilter=m_rsDataSet.m_strFilter+;elsem_rsDataSet.m_strFilter=BOOK_NAME=+m_strBookNameQ;m_rsDataSet.m_strFilter=m_rsDataSet.m_strFilter+;m_rsDataSet.Requery();DisplayRecord();SetButtonState();保存适用于增加和修改状态,判断信息的合理性,并进行增加和修改操作。void CBookDlg:OnSave(

    22、)/TODO:Add your control notification handler code hereUpdateData(TRUE);if(m_strBookID.IsEmpty()|m_strBookName.IsEmpty()AfxMessageBox(请输入相应数据!);return;if(m_bAdd)m_rsDataSet.AddNew();elsem_rsDataSet.Edit();m_rsDataSet.m_AUTHOR=m_strAuthor;m_rsDataSet.m_BOOK_NAME=m_strBookName;m_rsDataSet.m_BOOK_ID=m_s

    23、trBookID;m_rsDataSet.m_PRESS=m_strPress;m_rsDataSet.m_FLAG_BORROW=m_strFlag;m_rsDataSet.m_PRESS_DATE=m_strPressDate;m_rsDataSet.Update();m_rsDataSet.Requery();m_bAdd=FALSE;m_bEdit=FALSE;DisplayRecord();SetButtonState();SetTextState();全部图书资料借书服务模块借书服务模块(1)模块的功能借书模块主要完成借书操作。首先检查读者是否有权借书,超期还书的读者需与管理员协商

    24、后方可获得权限再次借书,接着检查需要借的书籍是否可借,馆内保留的书籍不可借,一切正常后,登记借书时间、借书管理员ID完成借书。(2)界面设计设计界面如图所示对话框属性设置为:IDD_DIALOG_BORROW。为IDD_DIALOG_BORROW添加CBorrowDlg类其中主要控件的属性、功能及成员变量如图所示。(3)添加CBorrowDataSet类与登录信息表连接(4)代码编写“确定”按钮检查读者和书籍是否合理,若任意一项不合理,则给出警告信息,若合理,添加成功。void CBorrowDlg:OnConfirm()/TODO:Add your control notification

    25、handler code here/TODO:Add your control notification handler code hereBOOL m_bCanBorrow;BOOL m_bCanLendOut;m_bCanBorrow=FALSE;m_bCanLendOut=FALSE;CString mSqlStr;UpdateData(TRUE);if(!m_rsReaderDataSet.Open(AFX_DB_USE_DEFAULT_TYPE)AfxMessageBox(数据表打开错误!);return;m_rsReaderDataSet.m_strFilter=READER_ID

    26、=+m_strReaderID;m_rsReaderDataSet.m_strFilter=m_rsReaderDataSet.m_strFilter+;m_rsReaderDataSet.Requery();if(!m_rsReaderDataSet.IsEOF()if(m_rsReaderDataSet.m_FLAG_BORROW=Y)mSqlStr=SELECT*FROM BORROW WHERE READER_ID=+m_strReaderID;mSqlStr=mSqlStr+;if(!m_rsDataSet.Open(AFX_DB_USE_DEFAULT_TYPE,mSqlStr)m

    27、_rsReaderDataSet.Close();AfxMessageBox(数据表打开错误!);return;/Add some code to determine the num of book which this reader borrowed.m_bCanBorrow=TRUE;m_rsDataSet.Close();m_rsReaderDataSet.Close();if(!m_bCanBorrow)AfxMessageBox(读者不能借书!);return;mSqlStr=SELECT*FROM BOOK WHERE BOOK_ID=+m_strBookID;mSqlStr=mS

    28、qlStr+;if(!m_rsBookDataSet.Open(AFX_DB_USE_DEFAULT_TYPE,mSqlStr)AfxMessageBox(数据表打开错误!);return;if(!m_rsBookDataSet.IsEOF()if(m_rsBookDataSet.m_FLAG_BORROW=Y)m_bCanLendOut=TRUE;elseAfxMessageBox(此书不外借!);m_rsBookDataSet.Close();return;elseAfxMessageBox(无此书!);m_rsBookDataSet.Close();return;m_rsBookData

    29、Set.Close();CString m_strUserID;m_strUserID=theApp.m_strUserName;COleDateTime m_CurrentTime=COleDateTime:GetCurrentTime();CString strTime;int y=m_CurrentTime.GetYear();int m=m_CurrentTime.GetMonth();int d=m_CurrentTime.GetDay();strTime.Format(%d-%d-%d,y,m,d);mSqlStr=INSERT INTO BORROW(READER_ID,BOOK

    30、_ID,BORROW_DATE,B_CLERK_ID)VALUES(;mSqlStr=mSqlStr+m_strReaderID;mSqlStr=mSqlStr+,;mSqlStr=mSqlStr+m_strBookID;mSqlStr=mSqlStr+,;mSqlStr=mSqlStr+strTime;mSqlStr=mSqlStr+,;mSqlStr=mSqlStr+m_strUserID;mSqlStr=mSqlStr+);CDatabase mDB;if(!mDB.Open(_T(Library)AfxMessageBox(无法打开数据库!);return;trymDB.Execute

    31、SQL(mSqlStr);catch(CDBException e)AfxMessageBox(执行错!);return;mDB.Close();AfxMessageBox(操作成功!);还书服务模块还书服务模块(1)模块的功能还书模块主要完成还书工作,首先检查此次行为是否超期还书,若是,则锁定读者然后办理还书业务。被锁定的读者需与管理员协商后,方可解锁继续借书。(2)界面设计设计的界面如图所示:对话框属性设置:IDD_DIALOG_RETURN为IDD_DIALOG_RETURN添加CReturnDlg类其中主要控件的属性、功能及成员变量如图所示。(3)添加CBorrowSet类与书籍信息表连接(4)代码编写:功能函数:把一些常用的功能封装为成员函数。QryBorrow根据输入的书籍条目,自动查询借此书的借阅信息,计算是否超期等。Insert_History书的借还还应做记录,以备以后查用SetTxtNull清空编辑框。setTxtDisable使编辑框处于只读状态Delete_Borrow当还书成功时,应该从借书信息表中删除该信息回车事件管理员输入书籍条目后,按下Enter键,开始分析此书的借阅情况。按键功能还书分析书籍借阅信息,根据返回结果进行相应处理。

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:高级语言程序设计C-课程答辩课件.ppt
    链接地址:https://www.163wenku.com/p-4437454.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库