




已阅读5页,还剩80页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
天津理工大学聋人工学院C语言课程设计专业网络工程年级2015级一班姓名胡志冲学号成绩完成日期20161220目录第一章简介111设计题目112指导教师1第二章图书管理系统设计意义221设计内容概述222需求分析223设计意义2第三章总体设计331系统运行环境332系统结构图333系统各模块的功能434对象数据结构7第四章详细设计841程序源代码8411登陆模块8412注册模块11413主菜单模块13414编辑模块17415查询模块27416浏览模块34417设置模块39418组合框模块41419图书信息模块434110资源文件4542系统测试55421登陆对话框55422编辑对话框58423浏览对话框62424查询对话框66425设置对话框71426退出73427测试结束运行7343问题分析73第五章结论80参考文献81第一章简介11设计题目图书管理系统12指导教师第二章图书管理系统设计意义21设计内容概述本课程设计图书管理系统,必修要满足使用方便、操作灵活和数据安全等设计需求。本系统在设计时应满足以下几个目标1采用人机对话的操作方式,界面设计美观友好,操作灵活、方便、快捷、准确数据保存安全可靠。2实现对图书信息的管理功能。3系统运行稳定、安全可靠。22需求分析信息技术的飞速发展给图书企业的管理带来了全新的变革采用图书管理系统对图书企业的经营运作进行全程管理不仅可以使企业摆脱以往人工管理产生的一系列问题,而且可以提高管理效率、降低管理成本、增加经济效益。通过管理系统对图书企业的发展进行规划,可以收集大量关键可靠的数据。企业决策层分析这些数据,做出合理决策,及时调整,使之能够更好地遵循市场的销售规律,适应市场的变化,从而让企业能够在激烈的行业竞争中占据一席之地。23设计意义1有助于加深我们对C程序设计这门课程的理解,我们在课堂上学的都是基础理论知识,对于如何用程序语言来描述所学知识还是有一定难度。通过课程设计,我们可以真正理解其内涵。2有利于我们逻辑思维的锻炼,程序设计能直接有效地训练学生的创新思维、培养分析问题、解决问题能力。即使是一个简单的程序,依然需要学生有条不理的构思。3有利于培养严谨认真的学习态度,在程序设计过程里,当我们输入程序代码的时候,如果不够认真或细心,那么可能就导致语法错误,从而无法得出运行结果。那么,这个我们反复调试,反复修改的过程,其实也是对我们认真严谨治学的一个锻炼。第三章总体设计31系统运行环境1硬件环境PC机2软件环境操作系统WINDOWS10开发工具VISUALSTUDIO201032系统结构图图书管理系统结构图如图31所以。该系统包括添加、修改、删除、查询、浏览等。图31系统的功能模块图33系统各模块的功能表32主要类介绍类名派生自说明CTIANJINAPPCWINAPP为初始化应用程序WINDOW应用程序基类的派生类LOGINCDIALOG用户登录对话框REGISTERCDIALOG注册对话框CTIANJINDLGCDIALOG主程序界面对话框STACSTATIC由于直接用CSTATIC创建的静态文本控件的样式是默认,但不是理想的效果,故再次继承CSTATIC,可以重新改变样式。BUTTONCBUTTON由于直接用CBUTTON创建的按钮控件的样式是默认,但不是理想的效果,故再次继承CBUTTON,可以重新改变样式。EXPLORECDIALOG浏览对话框COMBOXCCOMBOBOX由于直接用CCOMBOBOX创建的组合框控件的样式是默认,但不是理想的效果,故再次继承CCOMBOBOX,可以重新改变样式。ENTERINGCDIALOG编辑对话框EDITPRICECEDIT由于直接用CEDIT创建的编辑框的功能还不够,所以再次继承CEDIT,可以多加功能限制输入字符QUERYCDIALOG查询对话框SETTINGCDIALOG设置对话框ABOUTCDIALOG关于对话框表33主要函数介绍源文件函数名称功能描述EXPLORECPPONINITDIALOGOPENFILEONCLICKEDBUTTON1ONCLICKEDBUTTON2EXCHANGEBOOK对对话框进行初始化处理打开文件函数响应“升序”按钮实现排序该图书信息响应“升序”按钮实现排序该图书信息交换各对象的数据表34主要函数介绍源文件函数名称功能描述CTIANJINDLGCPPONINITDIALOGONPAINTONQUERYDRAGICONONTIMERUPDATEFILEONEXITONENTERONABOUTONQUERYONSETTINGONEXPLORE对对话框进行初始化处理对对话框绘制部分应用窗口系统获取鼠标图标用于实现定时控制功能用于实现更新文件来计算收了几本书响应“退出”按钮实现退出本程序响应“编辑”按钮实现启动编辑对话框响应“关于”按钮实现启动关于对话框响应“查询”按钮实现启动查询对话框响应“设置”按钮实现启动设置对话框响应“浏览”按钮实现启动浏览对话框表35主要函数介绍源文件函数名称功能描述ENTERINGCPPONINITDIALOGONCTLCOLORONBNCLICKEDOKCHECKINPUTONCLOSEONLVNITEMCHANGEDLIST1ONBNCLICKEDOK2ONBNCLICKEDOK3ONLVNCOLUMNCLICKLIST1ONNMCLICKLIST1ONBNCLICKEDBUTTON1对对话框进行初始化处理控件窗口函数用于画出控件菜单处理添加记录信息检查输入的内容是否为空输入记录信息关闭该对话框某个项已经发生变化响应“删除”按钮实现删除该图书信息响应“修改”按钮实现修改该图书信息单击列,用于勾选全部当鼠标单击列表视图控件时产生响应“清空”按钮实现修改该图书信息表36主要函数介绍源文件函数名称功能描述QUERYCPPONINITDIALOGONBNCLICKEDRADIO1ONBNCLICKEDRADIO2ONBNCLICKEDRADIO3ONBNCLICKEDRADIO4ONBNCLICKEDRADIO5ONBNCLICKEDBUTTON1QUERYNUMQUERYNAMEQUERYAUTHORQUERYPRESSQUERYANYOPENFILETIPINSERTONBNCLICKEDBUTTON2对对话框进行初始化处理响应“书号”按钮实现选择该方式查询响应“书名”按钮实现选择该方式查询响应“作者”按钮实现选择该方式查询响应“出版社”按钮实现选择该方式查询响应“任何内容”按钮实现选择该方式查询关闭该对话框查询书号函数查询书名函数查询作者函数查询出版社函数查询任何函数打开文件提示用于告诉用户找到了多少本将已找到的几本书插入在显示上响应“查询”按钮实现根据该方式查询34对象数据结构每个对象记录着每本书的信息,为了保护数据安全,故把其的这些成员变量声明为PRIVATE,就是说在类外的话,不能直接调用对象的成员变量名来赋值或者获取其值,这就达到了保护数据,但是在某个时候遇到数据不对可能需要修改,这时就要加成员函数来修改或者获取,而且把成员函数声明为PUBLIC,由于在类外需要正常调用,故声明为公开。其表如下。表37主要变量介绍变量名类型功能描述NAMENUMAUTHORPRESSTIMEPRICECHARCHARCHARCHARCHARDOUBLE书名书号作者出版社时间价格表38主要函数介绍源文件函数名称功能描述BOOKCPPSETNAMESETNUMSETAUTHORSETPRESSSETTIMESETPRICEGETNAMEGETNUMGETAUTHORGETPRESSGETTIMEGETPRICE设置当前对象的成员变量NAME的值设置当前对象的成员变量NUM的值设置当前对象的成员变量AUTHOR的值设置当前对象的成员变量PRESS的值设置当前对象的成员变量TIME的值设置当前对象的成员变量PRICE的值获取当前对象的成员变量NAME的值获取当前对象的成员变量NUM的值获取当前对象的成员变量AUTHOR的值获取当前对象的成员变量PRESS的值获取当前对象的成员变量TIME的值获取当前对象的成员变量PRICE的值第四章详细设计41程序源代码411登陆模块LOGINHPRAGMAONCEINCLUDE“TIANJINDLGH“INCLUDE“AFXWINH“/LOGIN对话框CLASSLOGINPUBLICCDIALOGDECLARE_DYNAMICLOGININTAPUBLICLOGINCWNDPPARENTNULL/标准构造函数VIRTUALLOGIN/对话框数据ENUMIDDIDD_LOGINPROTECTEDVIRTUALVOIDDODATAEXCHANGECDATAEXCHANGEPDXCTIANJINDLGDLGDECLARE_MESSAGE_MAPPUBLICVIRTUALBOOLONINITDIALOGAFX_MSGVOIDONCLOSECSTRINGUSERCSTRINGPASSWORDAFX_MSGVOIDONBNCLICKEDOKCBUTTONREGISAFX_MSGVOIDONBNCLICKEDBUTTON1LOGINCPPINCLUDE“STDAFXH“INCLUDE“TIANJINH“INCLUDE“LOGINH“INCLUDE“AFXDIALOGEXH“INCLUDE“REGISTERH“IMPLEMENT_DYNAMICLOGIN,CDIALOGLOGINLOGINCWNDPPARENT/NULL/CDIALOGLOGINIDD,PPARENT,USER_T“,PASSWORD_T“LOGINLOGINVOIDLOGINDODATAEXCHANGECDATAEXCHANGEPDXCDIALOGDODATAEXCHANGEPDXDDX_TEXTPDX,IDC_EDIT3,USERDDX_TEXTPDX,IDC_EDIT4,PASSWORDDDX_CONTROLPDX,IDC_BUTTON1,REGISBEGIN_MESSAGE_MAPLOGIN,CDIALOGON_WM_CLOSEON_BN_CLICKEDIDOK,A0/初始化A的值为0用于判断该值是否退出本程序当输入密码错误,就使该A的值增加1CRECTR/矩形的类,数据成员是矩形左上角的X的坐标,矩形左上角Y的坐标,矩形右下角X的坐标,矩形右下角Y的坐标CSTRINGUSERTHISGETCLIENTRECT/是获得窗口的当前的客户区,把各坐标值保存在R对象。THISMOVEWINDOW600,300,RRIGHT,RBOTTOM/根据上面获得窗口的大小,来调整并且移动。GETPRIVATEPROFILESTRING“LOGIN“,“USER“,“NULL“,USERGETBUFFER20,20,“/SETTINGINI“/从SETTINGINI配置文件中的LOGIN节名中获取该USER键名的值并保存在USER的值,如果找不到该键名,则保存第三个参/数的值即默认的值表示未注册的账号,反之找到了该值,表示已经注册了IFUSER“NULL“/用于判断上面获得的值是否已经注册过如注册过,则执行IF()后边的语句REGISENABLEWINDOW0/在该函数的参数赋值为0表示禁止指定的控件接受鼠标和键盘的输入由于该已经注册过的。REGISSETWINDOWTEXTA“已注册“/指定该控件的内容设为”已注册“用于提示RETURNTRUEVOIDLOGINONCLOSECDIALOGONCLOSEVOIDLOGINONBNCLICKEDOKTHISUPDATEDATA1/将各控件中的数据保存到相应的变量分别为”USER“”PASSWORD“IFUSERISEMPTY/定义两个字符串类变量用于从配置文件的注册过的用户及密码的值保存在该变量的GETPRIVATEPROFILESTRING“LOGIN“,“USER“,“NULL“,USER1GETBUFFER20,20,“/SETTINGINI“/从本身程序的当前的SETTINGINI配置/文件中的LOGIN节名中获取该USER键名的值并保存在USER1的值,如果找不到该键名,则保存默认值为”NULL“GETPRIVATEPROFILESTRING“LOGIN“,“PASSWORD“,“NULL“,PASSWORD1GETBUFFER20,20,“/SETTINGINI“/如同上面的方法IFUSERUSER1/把该对话框的显示方式为隐藏DLGDOMODAL/启动主窗口的对话框CDIALOGONOKELSEA/密码错误次数IFA3/如超过3次的错误密码就执行IF()后边的语句CDIALOGONCANCELRETURN/调用关闭该对话框的函数CSTRINGDDFORMAT“用户名或者密码错误D次超过三次错误即将自动退出“,AMESSAGEBOXD,“登陆提示“,MB_OK|MB_ICONWARNING/用于提示密码错误以避免令人觉得这程序有问题ELSEMESSAGEBOX“用户名或者密码的字符串为空“,“登陆提示“,MB_OK|MB_ICONWARNING/当该值为空,则执行该语句用于提示。VOIDLOGINONBNCLICKEDBUTTON1REGISTERDIALOG/定义注册对话框的对象变量DIALOGDOMODAL/启动注册对话框412注册模块REGISTERHPRAGMAONCEINCLUDE“AFXWINH“/REGISTER对话框CLASSREGISTERPUBLICCDIALOGDECLARE_DYNAMICREGISTERPUBLICREGISTERCWNDPPARENTNULL/标准构造函数VIRTUALREGISTER/对话框数据ENUMIDDIDD_REGISTERPROTECTEDVIRTUALVOIDDODATAEXCHANGECDATAEXCHANGEPDX/DDX/DDV支持DECLARE_MESSAGE_MAPPUBLICAFX_MSGVOIDONBNCLICKEDOKCSTRINGUSERCSTRINGPASSWORDCSTRINGPASSWORD1REGISTERCPPINCLUDE“STDAFXH“INCLUDE“TIANJINH“INCLUDE“REGISTERH“INCLUDE“AFXDIALOGEXH“/REGISTER对话框IMPLEMENT_DYNAMICREGISTER,CDIALOGREGISTERREGISTERCWNDPPARENT/NULL/CDIALOGREGISTERIDD,PPARENT,USER_T“,PASSWORD_T“,PASSWORD1_T“REGISTERREGISTERVOIDREGISTERDODATAEXCHANGECDATAEXCHANGEPDXCDIALOGDODATAEXCHANGEPDXDDX_TEXTPDX,IDC_EDIT1,USERDDX_TEXTPDX,IDC_EDIT6,PASSWORDDDX_TEXTPDX,IDC_EDIT3,PASSWORD1BEGIN_MESSAGE_MAPREGISTER,CDIALOGON_BN_CLICKEDIDOK,/默认值是TRUE,即从控件传给变量IFUSERISEMPTY/向该SETTINGINI配置文件中的LOGIN节名中设置该USER键名的值为USER的值WRITEPRIVATEPROFILESTRING“LOGIN“,“PASSWORD“,PASSWORD,“/SETTINGINI“HWNDBUTTON/定义窗口句柄THISGETPARENTGETDLGITEMIDC_BUTTON1,/获取当前窗口的父窗口句柄(登陆对话框),然后通过父窗口句柄获取指定参数ID为IDC_BUTTON1的子元素的句柄并绑定BUTTON窗口句柄SETWINDOWTEXTABUTTON,“已注册“/改变指定BUTTON窗口句柄的文本内容为“已注册“。ENABLEWINDOWBUTTON,0/第二个参数的值为0表示禁止指定的控件接受鼠标和键盘的输入MESSAGEBOX“已经成功注册该账号“USER“,“注册提示“,MB_OK|MB_ICONASTERISK/注册成功输出提示CDIALOGONCANCELELSEMESSAGEBOX“新密码与第二次新密码不一致请注意输入正确“,“密码提示“,MB_OK|MB_ICONEXCLAMATIONELSEMESSAGEBOX“用户名或者密码的字符串为空“,“注册提示“,MB_OK|MB_ICONWARNING413主菜单模块TIANJINDLGHPRAGMAONCEINCLUDE“BUTTONH“INCLUDE“STAH“INCLUDE“ENTERINGH“INCLUDE“QUERYH“INCLUDE“SETTINGH“INCLUDE“EXPLOREH“/CTIANJINDLG对话框CLASSCTIANJINDLGPUBLICCDIALOGEX/构造PUBLICCTIANJINDLGCWNDPPARENTNULL/标准构造函数/对话框数据ENUMIDDIDD_TIANJIN_DIALOGPROTECTEDVIRTUALVOIDDODATAEXCHANGECDATAEXCHANGEPDX/实现PROTECTEDHICONM_HICONCTOOLBARTOOLBARCSTATUSBARSTATUSBARCIMAGELISTTOOLIMAGCIMAGELISTTOOLHOTIMAGBUTTONBUT2INTAINTBVIRTUALBOOLONINITDIALOGAFX_MSGVOIDONPAINTAFX_MSGHCURSORONQUERYDRAGICONDECLARE_MESSAGE_MAPPUBLICAFX_MSGVOIDONTIMERUINT_PTRNIDEVENTBUTTONBUT1VOIDUPDATEFILESTASTAT,STAT1AFX_MSGVOIDONEXITAFX_MSGVOIDONENTERAFX_MSGVOIDONABOUTPROTECTEDPUBLICAFX_MSGVOIDONQUERYAFX_MSGVOIDONSETTINGAFX_MSGVOIDONEXPLORETIANJINDLGCPPINCLUDE“STDAFXH“INCLUDE“TIANJINH“INCLUDE“TIANJINDLGH“INCLUDE“AFXDIALOGEXH“INCLUDE“ABOUTH“IFDEF_DEBUGDEFINENEWDEBUG_NEWENDIFCTIANJINDLGCTIANJINDLGCWNDPPARENT/NULL/CDIALOGEXCTIANJINDLGIDD,PPARENTM_HICONAFXGETAPPLOADICONIDR_MAINFRAMEVOIDCTIANJINDLGDODATAEXCHANGECDATAEXCHANGEPDXCDIALOGEXDODATAEXCHANGEPDXDDX_CONTROLPDX,IDOK,BUT1DDX_CONTROLPDX,TIC,STATBEGIN_MESSAGE_MAPCTIANJINDLG,CDIALOGEXON_WM_PAINTON_WM_QUERYDRAGICONON_WM_TIMERON_COMMAND1006,CBITMAPBIT7BIT0LOADBITMAPAIDB_BITMAP1BIT1LOADBITMAPAIDB_BITMAP2BIT2LOADBITMAPAIDB_BITMAP3BIT3LOADBITMAPAIDB_BITMAP4BIT4LOADBITMAPAIDB_BITMAP5BIT5LOADBITMAPAIDB_BITMAP6BIT6LOADBITMAPAIDB_BITMAP8TOOLIMAGCREATE70,50,ILC_COLOR|ILC_MASK,0,0FORINTI0IREPOSITIONBARSAFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0RETURNTRUE/除非将焦点设置到控件,否则返回TRUEVOIDCTIANJINDLGONPAINTIFISICONICELSECRECTDIALOGRECTTHISGETCLIENTRECTDIALOGRECTCDCPICCBITMAPPIC1BITMAPINFOPIC1LOADBITMAPAIDB_BITMAP7PIC1GETBITMAPCPAINTDCDCTHISPICCREATECOMPATIBLEDCPICSELECTOBJECTDCSTRETCHBLT0,0,DIALOGRECTRIGHT,DIALOGRECTBOTTOM,CDIALOGEXONPAINTHCURSORCTIANJINDLGONQUERYDRAGICONRETURNSTATIC_CASTM_HICONVOIDCTIANJINDLGONTIMERUINT_PTRNIDEVENTCRECTDIALOGRECTTHISGETCLIENTRECTDIALOGRECTSTATUSBARSETPANETEXT2,CTIMEGETCURRENTTIMEFORMAT“YMDHMS“STATMOVEWINDOWA,DIALOGRECTBOTTOM402,260,50IFADIALOGRECTRIGHT270B1ELSEIFAGETCLIENTRECTPWNDGETWINDOWRECTPDCSETTEXTCOLORRGB160,32,240IFCTLCOLOR_EDITCTLCOLOR_EDITPWNDGETWINDOWRECTRETURNHBRVOIDENTERINGONBNCLICKEDOK/添加记录信息IFCHECK/判断该值是否继续输入还是不输入FORINTI0I0/达到符合字符输入及已选该图书信息的条件就执行添加记录,第一个参数是在该列表框的未尾的位置,第二个参数1表示添加记录行为非1表示修改记录行为ELSEMESSAGEBOX“该未选项目,无法修改“,“提示“/弹出消息框用于提示BOOLENTERINGCHECKTHISINVALIDATE/进行更新显示的函数THISUPDATEWINDOW/使窗口立即重绘THISUPDATEDATA/默认值是TRUE,即从控件传给变量CCLIENTDCDCTHIS/关联本窗口(THIS),在目标窗口的任何一部分进行绘图,包含边界与标题DCSETBKMODETRANSPARENT/设置文字背景为透明(TRANSPARENT)DCSETTEXTCOLORRGB255,0,0/设置文字颜色为红色RGB255,0,0INTN0/用于判断符合的次数如输入文字都不为空,即符合这条件就是N5IFBOOKNAMEISEMPTY/判断该字符是否为空如为空,则执行IF()后边的的语句DCTEXTOUTA820,65,“该字符为空“/向关联的窗口设备上下文输出文字用于提示ELSEN/不为空的话,就使N的值增加1IFBOOKNUMISEMPTYDCTEXTOUTA820,113,“该字符为空“ELSENIFAUTHORISEMPTYDCTEXTOUTA820,155,“该字符为空“ELSENIFPRESSISEMPTYDCTEXTOUTA820,200,“该字符为空“ELSENIFPRICE1ISEMPTYDCTEXTOUTA820,235,“该字符为空“ELSENIF0YEARGETCURSEL|0MOGETCURSEL|0DAYGETCURSEL/判断该是否选项DCTEXTOUTA875,287,“该未选“ELSEIFNUPDATEDATA0/由于默认值是TRUE,即从控件传给变量,需要改为FALSE,表示从变量传给控件。VOIDENTERINGONCLOSECFILEFILE“DATATXT“,CFILEMODEWRITE|CFILEMODECREATE/第一个参数“DATATXT“表示指定该文件名,第二个参数的值表示以写入模式CHARTEXTNEWCHAR20/开辟20个类型CHARFORINTI0IPNMHDRINTSELECTCOUNT0/选项次数FORINTI0I0I/根据列表框的多少行相应循环多少次直到0为止IFLISTCTRLGETCHECKI/根据第几行(I)的勾选状态判断是否已经勾选如未勾选,GETCHECKD的返回值为0,已勾选的返回值为非0LISTCTRLDELETEITEMI/删除第几行(I)SELECTCOUNT/增加次数即共已删除了多少项IFSELECTCOUNT/判断该值是否等于0,如等于0表示未选项则执行IF后边的语句MESSAGEBOX“该未选项,无法删除“,“提示“/弹出消息框用于提示ELSELISTCTRLSETCHECKI1,0CSTRINGTIPSTIPSFORMAT“已经成功删除D条的信息“,SELECTCOUNTMESSAGEBOXTIPS,“提示“/弹出消息框用于提示VOIDENTERINGONLVNCOLUMNCLICKLIST1NMHDRPNMHDR,LRESULTPRESULTLPNMLISTVIEWPNMLVREINTERPRET_CASTPNMHDRIFPNMLVISUBITEM/该值是否列表框控件的第0列IFDELETES/判断是否取消勾选还是勾选FORINTI0IPNMHDRINDEXPNMITEMACTIVATEIITEM/获取列表框控件的第几行IFINDEXUPDATEDATAFALSE/由于默认值是TRUE,即从控件传给变量,需要改为FALSE,表示从变量传给控件。CCLIENTDCDCTHIS/关联本窗口(THIS),在目标窗口的任何一部分进行绘图,包含边界与标题DCSELECTSTOCKOBJECTLTGRAY_BRUSH/把亮灰色画刷选入设备环境DCRECTANGLE0,30,28,387/绘制一个矩形DCSETBKMODETRANSPARENT/设置文字背景为透明DCTEXTOUTA0,56INDEX21,“,4/输出指向当前的图书信息,用于提示以便确定你要修改哪个图书信息PRESULT0VOIDENTERINGONBNCLICKEDBUTTON1BOOKNUM“/清空该编辑框控件绑定的变量的值BOOKNAME“AUTHOR“PRESS“PRICE1“THISUPDATEDATAFALSE/由于默认值是TRUE,即从控件传给变量,需要改为FALSE,表示从变量传给控件。415查询模块QUERYHPRAGMAONCEINCLUDE“AFXCMNH“INCLUDE“AFXWINH“INCLUDE“BOOKH“/QUERY对话框CLASSQUERYPUBLICCDIALOGDECLARE_DYNAMICQUERYPUBLICQUERYCWNDPPARENTNULL/标准构造函数VIRTUALQUERY/对话框数据ENUMIDDIDD_QUERYPROTECTEDVIRTUALVOIDDODATAEXCHANGECDATAEXCHANGEPDX/DDX/DDV支持INTRADIOINTCOUNTCHARPFFDECLARE_MESSAGE_MAPPUBLICCLISTCTRLLISTCTRLVIRTUALBOOLONINITDIALOGAFX_MSGVOIDONBNCLICKEDRADIO1CBUTTONRADIOBOOKAFX_MSGVOIDONBNCLICKEDRADIO2AFX_MSGVOIDONBNCLICKEDRADIO3AFX_MSGVOIDONBNCLICKEDRADIO4AFX_MSGVOIDONBNCLICKEDBUTTON1VOIDQUERYNUMVOIDQUERYNAMEVOIDQUERYAUTHORVOIDQUERYPRESSVOIDQUERYANYBOOKOPENFILEVOIDTIPINTVOIDINSERTBOOKCSTRINGFINDTEXTAFX_MSGVOIDONBNCLICKEDOKAFX_MSGVOIDONBNCLICKEDBUTTON2AFX_MSGVOIDONBNCLICKEDRADIO5QUERYCPPINCLUDE“STDAFXH“INCLUDE“TIANJINH“INCLUDE“QUERYH“INCLUDE“AFXDIALOGEXH“INCLUDE“BOOKH“/QUERY对话框IMPLEMENT_DYNAMICQUERY,CDIALOGQUERYQUERYCWNDPPARENT/NULL/CDIALOGQUERYIDD,PPARENT,FINDTEXT_T“QUERYQUERYVOIDQUERYDODATAEXCHANGECDATAEXCHANGEPDXCDIALOGDODATAEXCHANGEPDXDDX_CONTROLPDX,IDC_LIST1,LISTCTRLDDX_CONTROLPDX,IDCANCEL,RADIOBOOKDDX_TEXTPDX,IDC_EDIT1,FINDTEXTBEGIN_MESSAGE_MAPQUERY,CDIALOGON_BN_CLICKEDIDC_RADIO1,LISTCTRLSETEXTENDEDSTYLELVS_EX_GRIDLINES/设置该列表框控件的扩张风格画出网格线LISTCTRLINSERTCOLUMN0,“书号“,0,130/在该列表框控件中的第0列的设置为“书号”,其宽度为130LISTCTRLINSERTCOLUMN1,“书名“,0,120LISTCTRLINSERTCOLUMN2,“作者“,0,70LISTCTRLINSERTCOLUMN3,“出版社“,0,100LISTCTRLINSERTCOLUMN4,“出版日期“,0,90LISTCTRLINSERTCOLUMN5,“价格“,0,50RADIO0/为点击单选框的值初始化为0PFFNEWCHAR10/开辟CHAR的内存大小为10字节RETURNFALSEVOIDQUERYONBNCLICKEDRADIO1RADIO1VOIDQUERYONBNCLICKEDRADIO2RADIO2VOIDQUERYONBNCLICKEDRADIO3RADIO3VOIDQUERYONBNCLICKEDRADIO4RADIO4VOIDQUERYONBNCLICKEDRADIO5RADIO5VOIDQUERYONBNCLICKEDBUTTON1IFRADIO/判断该值是否点击单选按钮MESSAGEBOX“该未选项“,“提示“,MB_OK|MB_ICONWARNING/当未选单选按钮,则提示ELSETHISUPDATEDATA/默认值是TRUE,即从控件传给变量IFFINDTEXTISEMPTY/判断该查询的内容是否为空MESSAGEBOX“该内容为空无法查询“,“提示“,MB_OK|MB_ICONWARNING/当为空,则提示ELSESWITCHRADIO/匹配RADIO的值来调用哪种方式的函数进行查询该内容CASE1QUERYNUMBREAK/调用查询书号函数CASE2QUERYNAMEBREAK/调用查询书名函数CASE3QUERYAUTHORBREAK/调用查询作者函数CASE4QUERYPRESSBREAK/调用查询出版社函数CASE5QUERYANYBREAK/调用查询任何内容函数BOOKQUERYOPENFILECFILEFILE“DATATXT“,CFILEMODEREAD/第一个参数“DATATXT“表示指定该文件名,第二个参数的值表示以读入模式COUNTFILEGETLENGTH/95/总文件的大小除以每一本图书的文件大小等于几本书IFCOUNT0/若等于0,表示该文件为空,就是什么都没有图书的信息MESSAGEBOX“该目录为空“/输出提示RETURNNULL/返回值为NULL表示空指针CHARTEXT20/BOOKPNEWBOOKCOUNT/根据多少本书分配多少个对象并返回指向其的地址FORINTI0IINVALIDATETHISUPDATEWINDOWBOOKPOPENFILEIFPRETURNINTTIM0LISTCTRLDELETEALLITEMSCSTRINGTEMPFORINTI0IINVALIDATETHISUPDATEWINDOWBOOKPOPENFILEIFPRETURNINTTIM0LISTCTRLDELETEALLITEMSCSTRINGTEMPFORINTI0IINVALIDATETHISUPDATEWINDOWBOOKPOPENFILEIFPRETURNINTTIM0LISTCTRLDELETEALLITEMSCSTRINGTEMPFORINTI0IINVALIDATETHISUPDATEWINDOWBOOKPOPENFILEIFPRETURNINTTIM0LISTCTRLDELETEALLITEMSCSTRINGTEMPFORINTI0IINVALIDATETHISUPDATEWINDOWBOOKPOPENFILEIFPRETURNINTTIM0,INDEXLISTCTRLDELETEALLITEMSCSTRINGTEMPFORINTI0ITEMPPIGETPRESSFINDFINDTEXTIF0TEMPPIGETAUTHORFINDFINDTEXTIF0TEMPPIGETNAMEFINDFINDTEXTIF0TEMPPIGETNUMFINDFINDTEXTINDEX0ELSEINDEX1ELSEINDEX1ELSEINDEX1ELSEINDEX1IFINDEX1INSERTPITIMTIPTIMRETURN416浏览模块EXPLOREHPRAGMAONCEINCLUDE“COMBOXH“INCLUDE“AFXWINH“INCLUDE“AFXCMNH“INCLUDE“BOOKH“/EXPLORE对话框CLASSEXPLOREPUBLICCDIALOGDECLARE_DYNAMICEXPLOREPUBLICEXPLORECWNDPPARENTNULL/标准构造函数VIRTUALEXPLORE/对话框数据ENUMIDDIDD_EXPLOREPROTECTEDVIRTUALVOIDDODATAEXCHANGECDATAEXCHANGEPDX/DDX/DDV支持INTCOUNTDECLARE_MESSAGE_MAPPUBLICCOMBOXBOXCHARPFFVIRTUALBOOLONINITDIALOGCBUTTONSORTCBUTTONDSORTBOOKOPENFILEAFX_MSGVOIDONCLICKEDBUTTON1AFX_MSGVOIDONCLICKEDBUTTON2VOIDEXCHANGEBOOKBOOKCLISTCTRLLISTCTRLEXPLORECPPINCLUDE“STDAFXH“INCLUDE“TIANJINH“INCLUDE“EXPLOREH“INCLUDE“AFXDIALOGEXH“INCLUDE“BOOKH“/EXPLORE对话框IMPLEMENT_DYNAMICEXPLORE,CDIALOGEXPLOREEXPLORECWNDPPARENT/NULL/CDIALOGEXPLOREIDD,PPARENTEXPLOREEXPLOREVOIDEXPLOREDODATAEXCHANGECDATAEXCHANGEPDXCDIALOGDODATAEXCHANGEPDXDDX_CONTROLPDX,IDC_COMBO1,BOXDDX_CONTROLPDX,IDC_BUTTON1,SORTDDX_CONTROLPDX,IDC_BUTTON2,DSORTDDX_CONTROLPDX,IDC_LIST1,LISTCTRLBEGIN_MESSAGE_MAPEXPLORE,CDIALOGON_BN_CLICKEDIDC_BUTTON1,BOXSETITEMSSORTSETICONAFXGETAPPLOADICONAIDI_ICON2DSORTSETICONAFXGETAPPLOADICONAIDI_ICON1LISTCTRLSETEXTENDEDSTYLELVS_EX_GRIDLINES/设置该列表框控件的扩张风格画出网格线LISTCTRLINSERTCOLUMN0,“书号“,0,130/在该列表框控件中的第0列的设置为“书号”,其宽度为130LISTCTRLINSERTCOLUMN1,“书名“,0,120LISTCTRLINSERTCOLUMN2,“作者“,0,70LISTCTRLINSERTCOLUMN3,“出版社“,0,100LISTCTRLINSERTCOLUMN4,“出版日期“,0,90LISTCTRLINSERTCOLUMN5,“价格“,0,60PFFNEWCHAR5/开辟CHAR的内存大小为10字节RETURNTRUEVOIDEXPLOREONCLICKEDBUTTON1INTINDEXBOXGETCURSELIFINDEX1MESSAGEBOX“该未选项“,“提示“RETURNBOOKPOPENFILEIFPRETURNLISTCTRLDELETEALLITEMSFORINTICOUNTI0IFORINTJ0J0EXCHANGEBOOKPJ,PJ1ELSEIFSTRLENPJGETNUMSTRLENPJ1GETNUMEXCHANGEBOOKPJ,PJ1BREAKCASE1IFSTRCMPPJGETNAME,PJ1GETNAME0EXCHANGEBOOKPJ,PJ1BREAKCASE2IFSTRCMPPJGETAUTHOR,PJ1GETAUTHOR0EXCHANGEBOOKPJ,PJ1BREAKCASE3IFSTRCMPPJGETPRESS,PJ1GETPRESS0EXCHANGEBOOKPJ,PJ1BREAKCASE4IFSTRCMPPJGETTIME,PJ1GETTIME0EXCHANGEBOOKPJ,PJ1BREAKFORINTI0I0IFORINTJ0JUPDATEDATA1IFOLDPASSISEMPTYGETPRIVATEPROFILESTRING“LOGIN“,“PASSWORD“,“NULL“,PASSWORD1GETBUFFER20,20,“/SETTINGINI“IFOLDPASSPASSWORD1IFNEWPASS1NEWPASSIFIDOKMESSAGEBOX“确定要改密码“,“修改密码提示“,MB_OKCANCEL|MB_ICONQUESTIONWRITEPRIVATEPROFILESTRING“LOGIN“,“PASSWORD“,NEWPASS1,“/SETTINGINI“MESSAGEBOX“已经成功修改该本次密码“,“密码提示“,MB_OK|MB_ICONASTERISKELSEMESSAGEBOX“新密码与第二次新密码不一致请注意输入正确“,“密码提示“,MB_OK|MB_ICONEXCLAMATIONELSEAIFA3CDIALOGONOKRETURNCSTRINGDDFORMAT“密码错误D次超过三次错误即将自动退出“,AMESSAGEBOXD,“登陆提示“,MB_OK|MB_ICONWARNINGELSEMESSAGEBOX“用户名或者密码的字符串为空“,“登陆提示“,MB_OK|MB_ICONWARNING418组合框模块COMBOXHPRAGMAONCECLASSCOMBOXPUBLICCCOMBOBOXDECLARE_DYNAMICCOMBOXCSTRINGSTRING5PUBLICCOMBOXVIRTUALCOMBOXVOIDSETITEMSPROTECTEDDECLARE_MESSAGE_MAPPUBLICVIRTUALVOIDDRAWITEMLPDRAWITEMSTRUCTCOMBOXCPPINCLUDE“STDAFXH“INCLUDE“TIANJINH“INCLUDE“COMBOXH“/COMBOXIMPLEMENT_DYNAMICCOMBOX,CCOMBOBOXCOMBOXCOMBOXCOMBOXCOMBOXBEGIN_MESSAGE_MAPCOMBOX,CCOMBOBOXON_WM_MOUSEACTIVATEEND_MESSAGE_MAP/COMBOX消息处理程序VOIDCOMBOXDRAWITEMLPDRAWITEMSTRUCTLPDRAWITEMSTRUCTCDCDCDCATTACHLPDRAWITEMSTRUCTHDC/获取项目区域CRECTITEMRCLPDRAWITEMSTRUCTRCITEM/定义显示颜色的区域CRECTCLRRCITEMRC/获取系统文本颜色COLORREFCLRTEXTRGB255,255,0/选中时的文本颜色COLORREFCLRSELECTEDGETSYSCOLORCOLOR_HIGHLIGHT/获取窗口背景颜色COLORREFCLRNORMALGETSYSCOLORCOLOR_WINDOW/获取当前项目索引INTNINDEXLPDRAWITEMSTRUCTITEMID/判断项目状态INTNSTATELPDRAWITEMSTRUCTITEMSTATEIFNSTATE/文本颜色取反DCSETBKCOLORCLRSELECTED/设置文本背景颜色DCFILLSOLIDRECT/填充项目区域为高亮效果ELSEDCSETTEXTCOLORCLRTEXT/设置正常的文本颜色DCSETBKCOLORCLRNORMAL/设置正常的文本背景颜色DCFILLSOLIDRECT/绘制颜色文本并且填充颜色区域IFNINDEX1/项目不为空/获取项目颜色DCSETBKMODETRANSPARENT/输出文本DCFILLSOLIDRECT/输出颜色DCFRAMERECTDCTEXTOUTAITEMRCRIGHT/7,ITEMRCBOTTOM20,STRINGNINDEXDCDETACHVOIDCOMBOXSETITEMSSTRING0“书号“STRING1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届苏州大学附属中学化学高二上期末学业水平测试试题含答案
- 四川省成都市锦江区嘉祥外国语高级中学2024-2025学年高一下学期期末考试化学试题(含答案)
- 湖南省长沙大学附属中学2024-2025学年高一下学期7月期末考试物理试卷(含解析)
- 房地产公司工作总结范文
- 社交媒体对品牌营销影响分析
- 汉字六书课件
- 汉字教学课件
- 军事理论(河北政法职业学院)知到智慧树答案
- 水轮机基础知识培训总结课件
- 大型设备吊装与安装方案
- 2025年发展对象考试题库附含答案
- 2025年新专长针灸考试题及答案
- 高三生物一轮复习课件微专题5电子传递链化学渗透假说及逆境胁迫
- DBJ50-T-306-2024 建设工程档案编制验收标准
- 公司解散清算的法律意见书、债权处理法律意见书
- 02jrc901b电子海图操作jan中文说明书
- 田间道路工程施工图设计说明
- 井下管路安装、维护管理规定
- GB/T 7967-2002声学水声发射器的大功率特性和测量
- GB 38507-2020油墨中可挥发性有机化合物(VOCs)含量的限值
- GA/T 1162-2014法医生物检材的提取、保存、送检规范
评论
0/150
提交评论