Windows编程大作业
windows编程期末考试和答案
windows编程期末考试和答案一、单选题(每题2分,共20分)1. 在Windows编程中,哪个函数用于创建一个窗口?A. CreateWindowB. CreateDialogC. MessageBoxD. DrawText答案:A2. 哪个消息是当窗口被创建时发送的?A. WM_CREATEB. WM_PAINTC. WM_DESTROYD. WM_CLOSE答案:A3. 在GDI中,哪个函数用于绘制文本?A. DrawTextB. TextOutC. ExtTextOutD. MessageBox答案:B4. 哪个函数用于获取设备上下文(DC)?A. GetDCB. ReleaseDCC. BeginPaintD. EndPaint答案:A5. 在Windows中,哪个函数用于设置窗口的标题?A. SetWindowTextB. GetWindowTextC. DrawTextD. MessageBox答案:A6. 哪个消息是当窗口被销毁时发送的?A. WM_CREATEB. WM_DESTROYC. WM_CLOSED. WM_PAINT答案:B7. 在Windows编程中,哪个函数用于创建一个位图?A. CreateBitmapB. CreateCompatibleBitmapC. LoadBitmapD. CreateDIBSection答案:B8. 哪个函数用于在窗口中绘制一个矩形?A. RectangleB. FillRectC. DrawRectD. InvertRect答案:A9. 在Windows中,哪个函数用于获取系统颜色?A. GetSysColorB. GetDCC. GetBkColorD. GetTextColor答案:A10. 哪个消息是当窗口大小改变时发送的?A. WM_SIZEB. WM_MOVEC. WM_PAINTD. WM_CLOSE答案:A二、多选题(每题3分,共15分)1. 在Windows编程中,以下哪些函数可以用来创建窗口?()A. CreateWindowB. CreateDialogC. MessageBoxD. LoadImage答案:A、B2. 以下哪些消息是与窗口生命周期相关的?()A. WM_CREATEB. WM_DESTROYC. WM_CLOSED. WM_PAINT答案:A、B、C3. 在GDI中,以下哪些函数可以用来绘制文本?()A. DrawTextB. TextOutC. ExtTextOutD. MessageBox答案:A、B、C4. 在Windows中,以下哪些函数可以用来设置窗口的属性?()A. SetWindowTextB. SetWindowPosC. InvalidateRectD. MessageBox答案:A、B5. 在Windows编程中,以下哪些函数可以用来处理键盘输入?()A. TranslateMessageB. DispatchMessageC. PeekMessageD. GetMessage答案:A、B、C、D三、判断题(每题2分,共20分)1. 在Windows编程中,CreateWindow函数用于创建一个窗口。
Windows编程大作业
W i n d o w s编程大作业-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KIIWindows编程课程作业(20 10 -20 11 学年第 2 学期)课程名称: Windows编程技术学号:学生姓名:专业班级:学院:学生成绩:1引言项目背景随着人们只是层次的提高,图书馆成为日常生活中不可缺少的一部分。
而图书馆的存书量和业务量庞大,仅仅靠传统的记账管理是不可行的。
图书管理系统应运而生,并逐渐成为信息化建设的重要组成部分。
图书管理系统为学校或社会型图书馆的管理员提供所有借阅者信息,以及管内图书库存信息。
对借书与还书两大功能进行合理操纵。
在很大程度上方便了图书管理工作。
于是在课程设计方面选择了图书管理系统作为Windows编程课程设计的题目。
2 需求分析2.1程序功能(1)读者信息的添加,删除,查找,修改,清空(2)图书信息的添加,查找(3)读者借书,还书功能2.2数据读者信息:读者编号,姓名,联系电话图书信息:图书编号,名称,数量,类别借阅信息:读者编号,图书编号2.3环境开发环境:Microsoft Visual C++6.0运行环境:(1)硬件要求:CPU奔腾4处理器以上(2)软件要求:XP/Vista操作系统3 总体设计3.1总体架构整个图书馆里系统分为四个模块。
分别为,读者信息模块,图书信息模块,图书借阅模块和读者还书模块。
各模块的主要功能如下:图书管理系统读者信息相关模块图书信息相关模块读者借书模块读者还书模块读者信息添加模块读者信息查找模块读者信息删除模块读者信息修改模块读者信息清空模块图书信息添加模块图书信息查找模块确认读者信息模块确认读者借书模块确认读者信息模块确认读者借书模块3.2模块划分(1)读者信息相关模块设计在此模块中,创建一个新类,命名为ReaderInfomation,顾名思义,用来编写进行对读者信息各种操作的代码。
函数及变量一览如下:实现读者信息相关操作,对于总对话框的设计如下图:读者信息添加模块此模块的功能是将借阅者信息保存到系统中,在这个模块中实现了对读者编号,姓名和联系电话的添加,并带有重号提醒功能。
windows大作业
pt[0].y -= pt[2].y / 2 ;
pt[1].x = pt[0].x + pt[2].x ;
pt[1].y = pt[0].y + pt[2].y ;
NULL, NULL, hInstance, NULL) ;
ShowWindow (hwnd, iCmdShow) ;
UpdateWindow (hwnd) ;
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
return msg.wParam ;
}
int CheckBottom (HWND hwnd, int cyClient, int iLine)
DeleteObject (hBrush) ;
}
// ------------------------------------------------------
// Window 2: Display increasing sequence of prime numbers
// ------------------------------------------------------
for (i = 0 ; i < iNum ; i++)
{
ptTemp.x = (int) (pt[i].x * cos (TWOPI * iAngle / 360) +
pt[i].y * sin (TWOPI * iAngle / 360)) ;
Windows大作业
题目1:基于MFC的学生学习成绩管理系统应用程序的实现学生学习成绩管理系统通常是涉及对学生信息、课程成绩及课程信息等内容的管理,开发此应用程序,具体要求如下:1、用数据库的方式管理系统中所涉及的数据;2、能进行数据记录的添加、删除、修改、查询和排序;3、能统计学生单科成绩分布情况,建议能根据统计的数据绘制相应的分布图;4、应用程序界面友好;提示:学生信息可包含姓名、学号、班级、性别、出生年月、专业、联系方式等;学生课程成绩信息可包含学号、课程号、成绩、学分等;课程信息可包含课程号、所属专业、课程名、课程类型、开课学期、课时树、学分等信息。
题目2:基于MFC的简易绘图软件应用程序的实现开发一简易绘图软件应用程序,至少应实现文字输入、直线、圆以及各类曲线的绘画,并可进行画笔画刷风格与颜色设定等功能;具体要求如下:1、用户可以利用拖动鼠标进行绘图;2、用户通过菜单或者工具箱选择绘图形状进行绘图;3、用户通过选择“颜色选择对话框”中的颜色进行绘图;4、用户可以通过对话框或者其他控件输出文字;5、用户可以保存和打开绘制的图形。
;6、应用程序界面友好;题目3:基于MFC的人事信息管理系统应用程序的实现人事信息管理系统通常是对企业员工基本信息进行录入、修改、删除、统计查询等信息化管理,开发此应用程序,具体要求如下:1、用数据库的方式管理系统中所涉及的数据;2、能进行数据记录的添加、删除、修改、查询和排序;3、能统计员工职称及学历等分布情况,建议能根据统计的数据绘制相应的分布图;4、应用程序界面友好;提示:员工信息可包含员工姓名、员工号、职务、部门、职称、学历、工资、个人照片等信息。
题目4:基于MFC的运动会运动员信息管理系统基本要求:1、系统框架可采用MFC 或利用SDK 自行设计;2、要求至少实现运动员姓名、年龄、性别、参赛项目(考虑多项以及名次)、等信息的管理;3、要求实现对运动员信息进行输入、添加、删除、修改、查询;4、在VC6.0 下利用ADO 数据访问方式连接Microsoft Access 数据库;5、界面布局合理、美观;题目5:基于MFC的数据结构模拟基本要求:1、实现链表,栈等数据结构演示2、用图的形式动态表示数据结构操作过程。
Windows 编程拼图游戏
大连民族学院计算机科学与工程学院大作业作业题目:简易拼图小游戏课程名称: Windows 编程实验类型:□演示性□验证性□操作性□设计性■综合性专业:计算计科学与技术班级:计科09学生姓名:学号:2009081实验日期: 2011年11月5日实验地点:多媒体机房实验学时:4 学时实验成绩:指导教师签字:年月日目录目录 (2)一.问题描述 (3)二.基本要求 (3)三. 概要设计 (3)1.系统需求分析 (3)1) 功能分析 (3)2)对象识别 (4)3)类关系图及类成员 (4)4)软件接口设计 (5)四.详细设计 (6)1.流程图 (6)2创建初始界面 (7)3.位图的读入和显示 (9)4.类关系图及成员函数 (11)五.编码与调试分析 (12)1.程序编码 (12)1)CspellPictureDlg类的编码 (12)2)游戏获胜GameWin()的编码 (12)3)选择图片Onmenustart()的编码 (13)2调试分析 (13)六.使用说明 (14)七.测试 (17)九.附录(部分源代码) (17)一.问题描述拼图游戏是同学们喜欢的益智游戏之一,带着浓厚的兴趣,我选择设计一个简易拼图小游戏作为此次设计的课题。
利用所学知识,并实现如下功能:①可以更换拼图背景图片;②可以区分等级,如3*3,4*4,5*5等;③根据用户需求,给予背景图提示;④实现背景音乐;二.基本要求①通过实践加强对程序设计语言课程知识点的理解和掌握,培养对课程知识综合运用能力、实际分析问题能力及编程能力,养成良好的编程习惯。
②通过实践进一步领会程序设计的特点和应用,提高运用C++ 以及面向对象知识解决实际问题的能力,初步掌握MFC变成的基本功能。
③通过实践掌握用C++ 编写面向对象的实用程序的设计方法,对面向对象方法和思想增加感性的认识;学会利用C++程序设计语言编写出一些短小、可靠的Windows实用程序,切实提高面向对象的程序设计能力,为后续的相关课程的学习打下基础。
Windows高级软件开发大作业题目及评分标准
Windows高级软件开发大作业及评分标准说明1.学生按照学号除5取余数+1完成对应的题目。
2.题目6和7为选做题,按照完成质量,酌情加分。
题目及评分标准题目1:简单计算器要求:实现一个简单计算器,其类似于Windows附件中自带的计算器。
要求界面简洁大方,具有一个菜单栏,一个编辑框及若干按键。
按钮控件具有对鼠标敏感的功能,当鼠标位于不同的位置和状态时,控件会显示不同的颜色。
1.编程思路清晰,结果正确(满分30分)2.代码书写规范,关键部分有注释(满分10分)3.功能实现全面(满分30分)4.文档书写规范完整(满分20分)5.实现按钮控件对鼠标的敏感处理功能(满分10分)题目2:保龄球分数计算要求:实现一个保龄球分数计算系统。
要求界面简洁大方,根据菜单命令获取某选手的信息,所打场数,每局得分,每场最后得分,选手得分排名等。
1.编程思路清晰,保龄球计分算法正确(满分35分)2.代码书写规范,关键部分有注释(满分10分)3.功能实现全面(满分30分)4.文档书写规范完整(满分20分)5.对计分系统功能有一定扩展(满分5分)题目3:模拟时钟要求:绘制合适的时钟外形并显示当前时间。
1.编程思路清晰,图像美观(满分30分)2.代码书写规范,关键部分有注释(满分10分)3.时间显示正确(满分30分)4.文档书写规范完整(满分20分)5.可实现时间的调整与重新显示(满分10分)题目4:井字游戏要求:练习响应鼠标消息,练习矩形的绘制,谁先连成三个在一条直线上就算赢。
1.编程思路清晰,结果正确(满分30分)2.代码书写规范,关键部分有注释(满分10分)3.功能实现全面(满分30分)4.文档书写规范完整(满分20分)5.实现视图内指定区域对鼠标的敏感处理功能(满分10分)题目5:动物数据库要求:练习最基本的Windows控件和对话框程序。
练习如何动态地添加菜单选项。
该程序存储不同的动物数据,允许用户增加动物信息,每增加一种就在菜单里增加一个条目,用户可以通过菜单选择不同的动物并显示它们的信息。
简易画图软件之大作业报告
“windows编程”大作业报告题目:绘图程序姓名:学号:班级:任课老师:日期:2012年5月31日1.系统概述本软件是利用VC++这个强大的可视化编程工具开发的。
软件主要功能包括图形的绘制、线型的设置、颜色的设置,图形文件的重绘和保存等功能。
本软件具有实用性、稳定性、易用性,和可维护性的特点,应该说它应是一个开放性的软件,用户可以根据需要对其功能进行扩充、晚上与修改,是其符合自己的要求。
总之。
本软件是一个逐步晚上的软件。
2.程序功能及操作说明(1)画点的实现:在编辑菜单里选择绘制菜单—>点(2)画直线的实现:选择画笔样式(线型)->选择画板(颜色)->点击编辑菜单上的直线选项形选项椭圆选项连续线选项(6)坐标的实现:在可编辑区域内显示鼠标所在的位置3.程序结构分析首先,新建一个单文档类型的MFC AppWizard(exe)工程,工程取名为:Graphic。
为次程序添加一个子菜单,菜单名称为“绘图”,并为其添加五个菜单项,分别用来控制不同图形的绘制。
当用户选择其中的一个菜单项后,程序将按照当前的选择进行和相应图形的绘制。
添加的五个菜单项的ID及名称如表1所示。
然后分别为这五个菜单项添加命令响应,本程序让视图(CCGraphic View)对这些菜单命令进行响应,这五个响应函数的名称分别如表1所示。
表格 1 添加的菜单项以便随后的绘图操作使用。
因此在CCGraphicView类中添加私有变量m_nDrawType;用来保存用户的选择,该变量的定义如下所述:private int m_nDrawType;接着,在视类的够着函数中将此变量初始化为0,程序代码如下:CGraphicView::CGaphicView(){//TODO:add construction code hereM_nDrawType=0;}利用switch/case语句,来分别完成相应图形的绘制。
当用户选择【绘图】菜单下的不同子菜单项时,将变量m_nDrawType设置为不同的值。
华北电力大学科技学院WINDOWS体系编程作业_图文.
Windows 体系及编程结课作业 ||||专业班级:学生姓名:学号:成绩:指导教师:王新颖提交日期:2014/6/8第页共页(结课作业如打印, 纸张用 A4, 左装订; 页边距:上下 2.5cm, 左 2.9cm, 右 2.1cm ;字体:宋体小四号, 1.25倍行距。
思考题:一、讨论编程语言工具的选择 (例如 Java 、 Delphi 、 C++Bulider 、 VC 、VB 、 C#、 PHP 、 Perl 、 Python 、 Ruby 、 JavaScript 、 JScript 、 VBScript 、PowerBuilder 、 MatLab 等等二、多线程同步和互斥有何异同,分别有几种实现方法,都是什么? 每种方法的优点和不足是什么?三、比较 Windows 的 GDI 、 GDI+和 WPF 等图形子系统。
四、探讨 MFC 框架,.NET 框架和 Win32/64API 的内容、特点、发展和比较。
五、 DLL 注入和 API 拦截的方法有几种,都是什么?六、 Windows 编程实践、体会及课程学习建议。
请回答上述思考题,要求内容较为详实,有独立的见解。
第页共页思考题解答:一、讨论编程语言工具的选择(例如 Java、Delphi、C++Bulider、VC、VB、C#、PHP、 Perl、Python、 Ruby、 JavaScript、 JScript、 VBScript、PowerBuilder、 MatLab 等等 Java :分为 JavaSE (标准版,面向初学者与桌面开发、JavaEE (企业版,也称 J2EE ,面向企业级开发、网络开发, 包括了为人熟知的 JSP , 并包含了 JavaSE 的所有内容、 JavaME (微型版, 为手机、 PDF 、机顶盒、消费家电等嵌入设备开发 , 目前还有正在发展的 JavaFX (一种富 Internet 应用程序开发的脚本语言。
windows大实验报告 (MFC扫雷游戏)
《Windows编程》大作业题目:基于MFC的扫雷游戏姓名:*******学号:**********班级:**********专业:软件工程院系:数学与计算机学院指导教师:***********基于MFC的小游戏实现基本要求:1、实现一个小游戏2、实现基本游戏控制功能3、具有游戏数据保存功能4、界面布局合理、美观;1.设计目的及要求1.1设计目的及问题描述利用VC++程序编写扫雷游戏,以检测自己一个学期对MFC学习的情况,以及了解自己在MFC学习中的不足,巩固和提高自己对MFC的理解和掌握。
掌握C++编程和调试的基本技能,进一步提高自己的动手能力,和运用C++解决实际问题的能力。
本次我做的是一个简单的扫雷的游戏,包括计算雷数、时间和扫雷的规则制定。
1.2设计要求找出所有的非地雷的地方。
如果在掀开方块的过程中,不小心翻开(踩到)藏有地雷的方块,则宣告失败(游戏结束),惟有将所有不含地雷的方块掀开,游戏才算成功。
(1)操作说明:开局:单击“开”字按钮挖雷:单击鼠标左键标记/取消标记:单击鼠标右键胜利:所有有雷的格子都被标记,其余格子都打开。
胜利后,会升起几颗信号弹,所有雷爆炸。
快捷操作:一个格子被打开后(显示数字),且周围8个格子已有对应数量的标记。
此时,鼠标左右键同时单击数字,周围未标记的格子都会打开。
(2)游戏主要功能:gamebox.cpp (.h) 游戏框架:游戏主要逻辑,动画控制,常量定义mybitmap.cpp (.h) 位图,按钮myclock.h 时钟处理mykey.h 工具包myqueue.cpp (.h) 数据结构:队列filereport.cpp (.h) 跟踪打印,用于调试程序stdafx.h 游戏常量定义说明文件:MFC部分:DlgHelp.cpp (.h) 操作说明对话框DlgSet.cpp (.h) 设置对话框DlgInput.cpp (.h) 输入姓名对话框DlgRank.cpp (.h) 排行榜对话框mine.cpp (.h) MFC应用程序类mineDlg.cpp (.h) MFC对话框类(3)制作要点1. 游戏界面怎样表示(即w*h个格子)2. 格子的状态表示:打开,被标记3. 打开一个空格子,与其相连的空格全部打开4. 信号弹,爆炸效果的动画处理。
刘文斌——Windows编程大作业
武汉轻工大学Windows编程大作业题目:基于MFC的图片浏览器的设计姓名:刘文斌。
院系:数学与计算机学院。
班级:软件工程1303班。
学号: 1305110050 。
老师:刘文涛。
2015.12.16一、题目介绍1、基本要去:能显示常用图片格式能实现基本图片操作功能,例如旋转,放大,缩小界面布局合理、美观;2、介绍:基于MFC的图片浏览器,能够打开常用格式的图片,如BMP、JPG等格式文件,能够实现一些基本的操作,如旋转,放大,缩小等功能。
二、系统分析1、技术分析:本次的大作业就是利用MFC强大而全面的类库,结合ActiveX控件资源开发一款简单而实用的图片浏览器软件。
本次课程设计制作的图片浏览器是利用Windows系统自带的图片控件控件实现,可以分别通过按钮和菜单实现图片的浏览,放大、缩小、旋转等功能。
所要实现的功能,以及各个控件的功能特点设计软件的流程图。
2、开发工具:工具:Visual C++ 6.0;3、开发环境:环境:Windows环境4、程序流程:三、功能实现1、基本界面:进入程序主界面选择相应的功能打开位图放大旋转缩小2、功能说明:2.1、打开位图功能;2.1.1、建立一个单文档:2.1.2、为单文档对话框添加位图控件:2.1.3、添加打开位图按钮:2.1.4:为打开位图功能添加相应的函数和代码:打开【MFC ClassWizard】,在Class name下选择CShowPicDlg类,Object IDs下选择按钮控件的ID:IDC_Open,在Message下选择BN_CLICKED,然后点击Add Function按钮,在弹出的对话框内填写OnBtnOpenBmp(这个是函数名),点击OK,然后点击EditCode编辑函数在打开的ShowPicDlg.cpp文件中OnBtnOpenBmp()位置添加以下代码:CFileDialogdlg(TRUE,"bmp",".bmp",OFN_HIDEREADONLY,"BMPFiles(*.bmp)|*.bmp||");if(dlg.DoModal() != IDOK){return;}m_path = dlg.GetPathName(); //获得图片路径UpdateData(false); //更新路径公共变量ShowPic(); //调用显示图片函数在头文件ShowPicDlg.h添加CShowPicDlg类需要的函数和成员变量声明public:void CShowPicDlg::ShowPic();private:CStringm_path;RECT rect;BITMAP bm;HBITMAP hBitmap;HDC hSrcDC;HDC hDesDC;CWnd *hwnd;继续转回ShowPicDlg.cpp文件中,编写ShowPic()函数体,代码如下:oidCShowPicDlg::ShowPic(){if(m_path=="") //判断图片路径是否存在{return;}hwnd = GetDlgItem(IDC_ShowImg);hDesDC = hwnd->GetDC()->m_hDC;hSrcDC = CreateCompatibleDC(hDesDC);hBitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),m_path,IMAGE_BITMA P,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);GetObject(hBitmap, sizeof(BITMAP), &bm);SelectObject(hSrcDC, hBitmap);hwnd->GetClientRect(&rect);::SetStretchBltMode(hDesDC,COLORONCOLOR);::StretchBlt(hDesDC, rect.left, rect.top, rect.right, rect.bottom, hSrcDC,0, 0, bm.bmWidth, bm.bmHeight,+SRCCOPY);UpdateData(false);}打开图片后效果如下:2.2、对图片进行缩小;2.2.1:添加一个缩小图片的功能按钮:2.2.2:为缩小功能添加相对应的函数和代码:Onpaint函数:voidCShowPicDlg::OnPaint(){if (IsIconic()){CPaintDCdc(this); // device context for paintingSendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);// Center icon in client rectangleintcxIcon = GetSystemMetrics(SM_CXICON);intcyIcon = GetSystemMetrics(SM_CYICON);CRectrect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// Draw the icondc.DrawIcon(x, y, m_hIcon);}else{CDialog::OnPaint();//更新windows窗口,如果无这步调用,图片显示还会出现问题CDialog::UpdateWindow();ShowPic(); //重绘图片函数}}显示图片函数;voidCShowPicDlg::ShowPic(){if(m_path=="") //判断图片路径是否存在{return;}hwnd = GetDlgItem(IDC_ShowImg);hDesDC = hwnd->GetDC()->m_hDC;hSrcDC = CreateCompatibleDC(hDesDC);hBitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(),m_path,IMAGE_BI TMAP,0,0,LR_LOADFROMFILE|LR_CREATEDIBSECTION);GetObject(hBitmap, sizeof(BITMAP), &bm);SelectObject(hSrcDC, hBitmap);hwnd->GetClientRect(&rect);::SetStretchBltMode(hDesDC,COLORONCOLOR);::StretchBlt(hDesDC, rect.left, rect.top, rect.right, rect.bottom, hSrcDC,0, 0, bm.bmWidth, bm.bmHeight,+SRCCOPY);UpdateData(false);}缩小图片函数:voidCShowPicDlg::Onnarrow(){// TODO: Add your control notification handler code hererect.left=rect.left+rect.right*0.01;rect.top=rect.top+rect.bottom*0.01;rect.right=rect.right*0.98;rect.bottom=rect.bottom*0.98;UpdateWindow();StretchBlt(hDesDC, rect.left, rect.top, rect.right, rect.bottom, hSrcDC,0, 0, bm.bmWidth, bm.bmHeight,+SRCCOPY);}缩小的核心在于,将位图的左上角的点,和右下角的点进行移动,以达到缩小的效果:rect.left=rect.left+rect.right*0.01;rect.top=rect.top+rect.bottom*0.01;rect.right=rect.right*0.98;rect.bottom=rect.bottom*0.98;UpdateWindow();StretchBlt(hDesDC, rect.left, rect.top, rect.right, rect.bottom, hSrcDC,0, 0, bm.bmWidth, bm.bmHeight,+SRCCOPY);2.3、对图片进行放大;2.3.1:添加一个放大图片按钮:2.3.2:为放大功能添加相对应的函数和代码:Onpaint函数和显示图片函数与缩小函数一样;核心显示代码如下:voidCShowPicDlg::Onmagnify(){// TODO: Add your control notification handler code hererect.left=rect.left-rect.right*0.012;rect.top=rect.top-rect.bottom*0.012;rect.right=rect.right*1.028;rect.bottom=rect.bottom*1.028;UpdateWindow();StretchBlt(hDesDC, rect.left, rect.top, rect.right, rect.bottom, hSrcDC,0, 0, bm.bmWidth, bm.bmHeight,+SRCCOPY);}放大函数的核心,在于将图片的左上角和图片的右下角的坐标进行移动,以达到放大的效果。
Windows高级软件开发-大作业报告
Windows高级软件开发报告题目:静态库动态库的实现与使用专业软件工程学生姓名班级学号指导教师王子元、张卫丰指导单位计算机学院/软件学院日期三、实验原理及内容正文格式:宋体(中文)Times New Roman(英文),小4号,不加粗,两端对齐,1.5倍行距1.将本次大作业的代码仓库clone到本地2.打开StrStaticLib项目,在StrcpyLib.cpp文件中,补充实现函数strcpy,函数功能为复制字符串。
完成后,进行代码仓库的提交工作。
commit信息:步骤1、补充实现函数strcpy3.在StrStaticLib项目中编译静态库,编译完成后,打开StrFuncsExec项目,将静态库配置到项目中,保存项目。
完成后,进行代码仓库的提交工作。
commit信息:步骤2、将静态库配置到项目中。
4.在StrFuncsExec项目中,在StrFuncsExec.cpp文件中,按照提示调用静态库中的strcpy函数,将字符串"Windows"复制到str1,并输出str1。
完成后,进行代码仓库的提交工作。
commit信息:步骤3、调用静态库中的strcpy函数5.打开StrStaticLib项目,在StrcatLib.cpp文件中,补充实现函数strcat,函数功能为字符串拼接。
完成后,进行代码仓库的提交工作。
commit信息:步骤4、实现函数strcat6. 再次编译静态库,编译完成后,在StrFuncsExec项目的StrFuncsExec.cpp文件中,按照提示调用静态库中的strcat函数,将字符串"World!"拼接到str2后面,并输出str2。
完成后,进行代码仓库的提交工作。
commit信息:步骤5、调用函数strcat7.在StrFuncsExec项目中,在StrFuncsExec.cpp文件中,调用静态库中的strcpy函数,分别将 NULL 和 "" 复制到str2,并输出str2;调用静态库中的strcat函数,分别将 NULL 和 "" 拼接到str2,并输出str2。
Windows编程大作业
Windows编程课程作业(20 10 -20 11 学年第 2 学期)课程名称: Windows编程技术学号:学生姓名:专业班级:学院:学生成绩:1引言项目背景随着人们只是层次的提高,图书馆成为日常生活中不可缺少的一部分。
而图书馆的存书量和业务量庞大,仅仅靠传统的记账管理是不可行的。
图书管理系统应运而生,并逐渐成为信息化建设的重要组成部分。
图书管理系统为学校或社会型图书馆的管理员提供所有借阅者信息,以及管内图书库存信息。
对借书与还书两大功能进行合理操纵。
在很大程度上方便了图书管理工作。
于是在课程设计方面选择了图书管理系统作为Windows编程课程设计的题目。
2 需求分析2.1程序功能(1)读者信息的添加,删除,查找,修改,清空(2)图书信息的添加,查找(3)读者借书,还书功能2.2数据读者信息:读者编号,姓名,联系电话图书信息:图书编号,名称,数量,类别借阅信息:读者编号,图书编号2.3环境开发环境:Microsoft Visual C++6.0运行环境:(1)硬件要求:CPU奔腾4处理器以上(2)软件要求:XP/Vista操作系统3 总体设计3.1总体架构整个图书馆里系统分为四个模块。
分别为,读者信息模块,图书信息模块,图书借阅模块和读者还书模块。
各模块的主要功能如下:图书管理系统读者信息相关模块图书信息相关模块读者借书模块读者还书模块读者信息添加模块读者信息查找模块读者信息删除模块读者信息修改模块读者信息清空模块图书信息添加模块图书信息查找模块确认读者信息模块确认读者借书模块确认读者信息模块确认读者借书模块3.2模块划分(1)读者信息相关模块设计在此模块中,创建一个新类,命名为ReaderInfomation,顾名思义,用来编写进行对读者信息各种操作的代码。
函数及变量一览如下:实现读者信息相关操作,对于总对话框的设计如下图:读者信息添加模块此模块的功能是将借阅者信息保存到系统中,在这个模块中实现了对读者编号,姓名和联系电话的添加,并带有重号提醒功能。
windows编程大作业jsl
《Windows编程》大作业题目:基于MFC的小游戏实现(贪吃蛇小游戏)姓名:江师朗学号:1205110619班级:软工1202班专业:软件工程院系:数学与计算机学院指导老师:刘文涛一、题目介绍这是一款比较需要耐心的游戏,用游戏把子上下左右控制蛇的方向,寻找吃的东西,每吃一口就能得到一定的积分,而且蛇的身子会越吃越长,身子越长玩的难度就越大,不能碰墙,更不能咬自己的尾巴,等到了一定的分数,就能过关,然后继续玩下一关!二、系统分析一、要解决的问题我们设计的这个贪食蛇小游戏应该有以下几个功能:1、要求有比较友好的界面,界面应该包括得分显示,游戏状态(运动,暂停,结束),游戏难易程度显示(容易,较难,困难),关于游戏(包括教初玩者如何操作,及游戏规则)。
另外,在界面显示的效果应该简洁大方,尽量能够很快吸引玩者。
2 、当游戏刚开始的时候,先应该产生一条蛇和随机产生一个食物。
当按某个键的时候,蛇就开始移动,按照按键的方向运动。
3 、蛇可以运动,随着难易程度的不同,蛇的速度也不同;在界面里可以随机产生一个食物,但应该注意不能和蛇身体一致,然后当蛇就移动然后吃掉这个食物(覆盖),然后蛇的身体应该相应地增加,同时界面中显示分数一栏应该相应地增加分值;当蛇在移动的过程中头部碰到墙壁,游戏结束。
二、提出的要求1 按键的时候可以控制蛇移按照设置的方向移动;2 当选择游戏的难易程度不同时,蛇体的速度应该也是不同的;3 当游戏开始时候,应该有一个初始化,设置蛇身,食物等;4 当游戏结束时,会有相应的处理,比如提示;三可以实现的要求1 简单友好的界面2 蛇的移动和控制3 对蛇的状态的监听,及对得分的显示;4 蛇的状态的变化四应该有的对象及其他们之间的关系1 Game对象2 Wall对象3 Snake对象4 Food对象它们之间的关系:Game对象中应该包括其他三个对象;Snake对象和Food 对象应该有相同的形状。
这几个对象差不多可以反映上面的要求。
windows大作业
《Windows编程》大作业题目:学生学习成绩管理系统姓名:夏先益学号:1205110621班级:1203专业:软件工程院系:数学与计算机学院指导教师:刘文涛2014年12月27日一、题目介绍基于MFC的学生学习成绩管理系统应用程序的实现,学生学习成绩管理系统通常是涉及对学生信息、课程成绩及课程信息等内容的管理,开发此应用程序,具体要求如下:1、用数据库的方式管理系统中所涉及的数据;2、能进行数据记录的添加、删除、修改、查询和排序;3、能统计学生单科成绩分布情况,建议能根据统计的数据绘制相应的分布图;4应用程序界面友好;提示:学生信息可包含姓名、学号、班级、性别、出生年月、专业、联系方式等;学生课程成绩信息可包含学号、课程号、成绩、学分等;课程信息可包含课程号、所属专业、课程名、课程类型、开课学期、课时树、学分等信息。
二、系统分析技术分析:由于这是第一次做系统,太过复杂的程序还做不出来所以本实验是基于对话框来对此系统来进行实现,没有设计登录界面而是直接来对学生成绩进行管理。
其运行界面比较简洁,就是在基本对话框中添加各种所需的控件然后对他们一一命名并进行功能实现从而达到能够统计学生的学习成绩这一目的,此过程并没有具体区分学生还是老师来对次系统进行操作,只是简单的增加了一个修改数据权限功能,其默认密码为1234,当老师进行添加、修改、删除学生成绩时需要输入密码,否则没有权限对成绩信息进行修改。
开发工具:VisualC++6.0;Visual studio.开发环境:Windows7,xp,windows8等。
三、功能实现模块分析:“学生成绩管理信息系统”包括三个模块:成绩录入、班级统计、年级统计。
这三个模块既相互联系又相互独立,班级统计、年级统计模块必须以成绩录入为基础。
(1)成绩录入模块:主要功能用来对学生的成绩进行收集和修改。
具体包括学生成绩录入、修改、增加、删除、查询等功能,成绩录入需要分班级、分年级以及某个时间考试的各门功课的成绩。
Windows编程大作业报告
大连民族学院计算机科学与工程学院大作业作业题目:俄罗斯方块小游戏课程名称: Windows编程实验类型:□演示性□验证性□操作性□设计性■综合性专业:计算计科学与技术班级:计科094学生姓名:李玥学号:2009081408实验日期:2011年11月12日实验地点:多媒体机房实验学时:4 学时实验成绩:指导教师签字:年月日目录1.问题描述 (3)2. 基本要求 (3)3. 概要设计 (3)4. 详细设计 (3)4.1 添加资源 (3)4.2 设置应用程序外观 (4)4.3 实现客户区函操作 (5)4.4 设计COptionDlg类 (15)5. 编码与调试分析 (16)6. 使用说明 (16)7. 测试 (17)8. 心得体会 (18)9. 附录(源代码) (18)1.问题描述实现了一个简单的俄罗斯方块游戏,用键盘进行游戏操作,可以设置游戏级别、播放背景音乐、选择方块样式。
2. 基本要求开始菜单栏和工具栏可以进行“开始”“暂停”“结束”“设置”等操作;菜单栏中的“选项”可以选择游戏级别和是否播放音乐;游戏设置可以对游戏区域大小、游戏级别选择、方块样式选择进行选择,还可以选择是否添加网格背景和是否播放音乐。
3. 概要设计3.1 添加菜单栏、位图、对话框等资源。
3.2在MainFrame下OnCreate函数中实现自定义的工具栏外貌,在PreCreateWindow函数中设置窗口大小。
3.3 在View下添加所需成员变量、成员函数、常用消息响应函数和菜单对应的消息响应函数。
3.4 创建COptionDlg类并添加成员变量与成员函数。
4. 详细设计4.1 添加资源4.1.1 菜单栏添加顶层菜单“游戏(G)”及下拉菜单“S.开始游戏”“P.游戏暂停”“E.游戏结束”“O.游戏设计”“X.退出游戏”;添加顶层菜单“选项(O)”及下拉选项“I.游戏级别”“M.音乐”,“I.游戏级别”属性选择“弹出”再添加如下几个级别“第一级:入门级”“第二级:初级”“第三级:中级”“第四级:高级”4.1.2 添加位图rect.bmp,ID为默认值4.1.3 添加对话框“游戏设置”,修改ID为“IDD_DLG_OPTION”,并添加静态文本“游戏区域大小”与对应ID为IDC_COMBO_AREA的组合框(级别与样式与之雷同),添加“网格背景”“背景音乐”复选框4.2 设置应用程序外观4.2.1 在OnCreate函数中修改工具栏外观(1) 定义CImageList类型变量 img和CString类型变量 str(2) 修改创建工具栏代码如下:if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC)) {return -1;}(3) 修改工具栏属性//设置按钮的宽度和长度m_wndToolBar.GetToolBarCtrl().SetButtonWidth(40, 100);//改变属性m_wndToolBar.ModifyStyle(0, TBSTYLE_FLAT |CBRS_TOOLTIPS |TBSTYLE_TRANSPARENT|TBBS_CHECKBOX );//设置按钮数为4m_wndToolBar.SetButtons(NULL,4);(4) 添加图像//设置"热/hot"状态的的位图img.Create(28, 28, ILC_COLOR8|ILC_MASK,2,2);img.SetBkColor(RGB(0, 0, 102));//顺序增添按键的图标img.Add(AfxGetApp()->LoadIcon(IDI_ICON_START));img.Add(AfxGetApp()->LoadIcon(IDI_ICON_PAUSE));img.Add(AfxGetApp()->LoadIcon(IDI_ICON_END));img.Add(AfxGetApp()->LoadIcon(IDI_ICON_SET));m_wndToolBar.GetToolBarCtrl().SetHotImageList(&img);img.Detach();//设置"冷/cold"状态的位图img.Create(32, 32, ILC_COLOR8|ILC_MASK, 2,2);img.SetBkColor(::GetSysColor(COLOR_BTNFACE));//顺序增添按键的图标img.Add(AfxGetApp()->LoadIcon(IDI_ICON_START));img.Add(AfxGetApp()->LoadIcon(IDI_ICON_PAUSE));img.Add(AfxGetApp()->LoadIcon(IDI_ICON_END));img.Add(AfxGetApp()->LoadIcon(IDI_ICON_SET));m_wndToolBar.GetToolBarCtrl().SetImageList(&img);img.Detach();(5) 设置文字m_wndToolBar.SetButtonInfo(0, ID_GAME_START, TBSTYLE_BUTTON, 0);m_wndToolBar.SetButtonText(0, "开始");m_wndToolBar.SetButtonInfo(1, ID_GAME_PAUSH, TBSTYLE_BUTTON, 1);m_wndToolBar.SetButtonText(1, "暂停");m_wndToolBar.SetButtonInfo(2, ID_GAME_END, TBSTYLE_BUTTON,2);m_wndToolBar.SetButtonText(2, "结束");m_wndToolBar.SetButtonInfo(3, ID_GAME_OPTION, TBSTYLE_BUTTON,3);m_wndToolBar.SetButtonText(3, "设置");CRect rectToolBar;//得到按钮的大小m_wndToolBar.GetItemRect(0, &rectToolBar);//设置按钮的大小m_wndToolBar.SetSizes(rectToolBar.Size(), CSize(32,32));4.2.2 在PreCreateWindow函数中设置窗口大小cs.cx = 500;//设置窗口大小cs.cy = 500;4.3 实现客户区函操作4.3.1 定义宏变量在RussianRect1408View.h中添加如下宏变量:// 宏变量:白色和黑色#define WHITE RGB(255,255,255)#define BLACK RGB(0,0,0)#define BLUE RGB(0,0,255)//中断操作的运动趋势#define LEFT 0 //向左移动#define RIGHT 1 //向左移动#define UP 2 //向上(变形)#define DOWN 3 //向下移动(加速)//游戏区域地图最大限制#define MAX_ROW 100 //地图的最大行数#define MAX_COL 100 //地图的最大列数//地图状态#define MAP_STATE_EMPTY 0 //空(未被占据)#define MAP_STATE_NOT_EMPTY 1 //被占据4.3.2 添加头文件在RussianRect1408View.h中添加游戏设置对话框头文件和音乐播放相关头文件:#include "OptionDlg.h"//音乐播放#include "mmsystem.h"#pragma comment(lib,"Winmm.lib")4.3.3 添加成员变量在View类下添加如下成员变量并设置为protected://用于记录当前区域大小与当前级别的字符串,用于显示在屏幕上提示用户当前状态CString m_strLevel;CString m_strArea;CPen * m_pBlackPen;//黑色画笔CBrush *m_pGrayBrush;//灰色画刷指针CBrush * m_pBlackBrush;//黑色画刷指针int m_nWidth;//子窗口的宽度int m_nHeight;//子窗口的高度//内存绘图设备的处理CBitmap m_memBmp;//内存位图CDC m_memRectDC; //方块内存设备环境CDC m_memDC; //内存设备环境int m_iStartY; //游戏区域左上角的坐标int m_iStartX;bool m_isBottom; //标识方块已到底的变量,到底为TRUEint m_iPerformance;//游戏总成绩int m_iLevel; //当前的级别,换算成速度的算法为:1500 - m_iLevel*200int m_iLarge; //小方块的大小,它会随着行与列的不同而不同,具体为:// 12行10列,30个象素的正方形// 18行15列,20// 24行20列,15// 30行25列,12int m_inextStatus; //下一个将会出现的样式int m_icurrentStatus;//当前的样式int m_iRow; //列数int m_iCol; //行数int m_iBlockSytle; //当前选择的方块显示样式HBITMAP m_hMemRectBmp;//方块内存位图句柄int m_currentRect; //当前的方块形状BOOL m_bMusic; //是否插放背景音乐bool m_bGamePaush; //游戏是否暂停bool m_bGameEnd; //游戏是否已结束,为FALSE表示开始,否则为结束int m_bFistPlay; //是否是第一次开始游戏BOOL m_bDrawGrid;//是否画网格线int InterFace[74][4];//接触面二维数组,记录1~7种下坠物的1~4种形态的接触面信息//我们把该下坠物的某种形态种的4个方块,有接触面则记录方位,无则为-1标识。
Windows编程大作业
Windows编程课程作业(20 10 -20 11 学年第 2 学期)课程名称: Windows编程技术学号:学生姓名:专业班级:学院:学生成绩:1引言项目背景随着人们只是层次的提高,图书馆成为日常生活中不可缺少的一部分。
而图书馆的存书量和业务量庞大,仅仅靠传统的记账管理是不可行的。
图书管理系统应运而生,并逐渐成为信息化建设的重要组成部分。
图书管理系统为学校或社会型图书馆的管理员提供所有借阅者信息,以及管内图书库存信息。
对借书与还书两大功能进行合理操纵。
在很大程度上方便了图书管理工作。
于是在课程设计方面选择了图书管理系统作为Windows编程课程设计的题目。
2 需求分析程序功能(1)读者信息的添加,删除,查找,修改,清空(2)图书信息的添加,查找(3)读者借书,还书功能数据读者信息:读者编号,姓名,联系电话图书信息:图书编号,名称,数量,类别借阅信息:读者编号,图书编号环境开发环境:Microsoft Visual C++运行环境:(1)硬件要求:CPU奔腾4处理器以上(2)软件要求:XP/Vista操作系统3 总体设计总体架构整个图书馆里系统分为四个模块。
分别为,读者信息模块,图书信息模块,图书借阅模块和读者还书模块。
各模块的主要功能如下:图书管理系统读者信息相关模块图书信息相关模块读者借书模块读者还书模块读者信息添加模块读者信息查找模块读者信息删除模块读者信息修改模块读者信息清空模块图书信息添加模块图书信息查找模块确认读者信息模块确认读者借书模块确认读者信息模块确认读者借书模块模块划分(1)读者信息相关模块设计在此模块中,创建一个新类,命名为ReaderInfomation,顾名思义,用来编写进行对读者信息各种操作的代码。
函数及变量一览如下:实现读者信息相关操作,对于总对话框的设计如下图:读者信息添加模块此模块的功能是将借阅者信息保存到系统中,在这个模块中实现了对读者编号,姓名和联系电话的添加,并带有重号提醒功能。
windows编程大作业_简单计算器
实验报告(2013 / 2014 学年第一学期)课程名称windows 编程实验名称简单计算器实验时间2023 年12 月20 日指导单位计算机、软件学院指导教师王子元学生姓名班级学号学院(系) 计算机学院、软件学院专业计算机软件与服务外包实验报告三、实验原理及内容[实验内容]1. 工程的创建。
使用MFC 创建一个基于对话框的工程;2. 界面设计。
使用控件工具栏为对话框添加所需控件,并设置控件属性;使用界面布局工具栏调整控件布局,完成应用程序界面设计。
3. 创建对话框成员变量和成员函数。
使用ClassWizard为控件添加相关联的对话框成员变量和消息相应函数;在Workspace窗口的ClassView页中,根据需要为对话框添加其他成员变量和成员函数。
4.编写代码。
5.编译、调试程序;运行程序,并对程序功能进行测试功能设计(1)支持加减乘除运算(2+3=5)(2)支持输入正确的乘方运算(如2^3=8)(3)支持混合四则运算(如2+3*2=8)(4)支持正确的表达式运算(如2+3*(2-4/2)=2)(5)计算器的输入方式:支持鼠标点击输入和键盘输入本计算器支持鼠标点击操作和键盘输入。
(鼠标输入是点击按钮,编辑框即显示点击的结果和计算结果,键盘输入是点击编辑框锁定光标后从键盘输入的)。
(6)使用图形界面中的事件委托机制来处理事件响应计算器计算结果的输出方式:在计算器窗口的显示。
(7)本计算器应该要支持退格和清零。
点击C按钮将编辑框清零,点击backspace按钮,退格,清除编辑框中最后一个输入字符。
(8)算术运算的数据类型:整数和浮点数本计算器支持的精度是6位小数,支持的运算是32位,超出即位溢出,同时显示的结果仅保留6位小数。
本计算器默认诸如“(8)=”的表达式有效,不设置错误提示。
出现运算异常的情况为:①.被除数为0的情况,提示用户被除数不能为零!②.输入的表达式不正确时,提示出错。
(9)点击等号按钮,或者键盘输入等号时,计算器在编辑框显示计算结果。
操作系统大作业
报告:用C++编程模拟实现文件夹以及文件的建立、改名、复制、移动和删除等功能一、概述本报告描述了如何使用C++编程模拟实现文件夹以及文件的建立、改名、复制、移动和删除等功能。
在这个程序中,我们将使用C++中的文件流和目录操作函数来实现这些功能。
二、程序设计1. 文件夹和文件的建立在C++中,我们可以使用文件流中的ofstream和ifstream类来进行文件的输入和输出操作。
为了创建一个文件夹或者文件,我们需要调用Windows API中的CreateDirectory和CreateFile函数。
下面是一个创建文件夹的例子:-----------------------------------------------------------------C++#include <windows.h>#include <iostream>#include <string>using namespace std;int main(){string dirName = "C:\\testDir";if (CreateDirectory(dirName.c_str(), NULL)){cout << "Directory created successfully." << endl;}else{cout << "Error creating directory." << endl;}return 0;}-----------------------------------------------------------------下面是一个创建文件的例子:-----------------------------------------------------------------C++#include <windows.h>#include <iostream>#include <string>using namespace std;int main(){string fileName = "C:\\testFile.txt";HANDLE hFile = CreateFile(fileName.c_str(), GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);if (hFile != INVALID_HANDLE_VALUE){cout << "File created successfully." << endl;CloseHandle(hFile);}else{cout << "Error creating file." << endl;}return 0;}-----------------------------------------------------------------2. 文件的改名要改变文件名,我们需要使用Windows API中的MoveFile函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Windows编程课程作业(20 10 -20 11 学年第 2 学期)课程名称: Windows编程技术学号:学生姓名:专业班级:学院:学生成绩:1引言项目背景随着人们只是层次的提高,图书馆成为日常生活中不可缺少的一部分。
而图书馆的存书量和业务量庞大,仅仅靠传统的记账管理是不可行的。
图书管理系统应运而生,并逐渐成为信息化建设的重要组成部分。
图书管理系统为学校或社会型图书馆的管理员提供所有借阅者信息,以及管内图书库存信息。
对借书与还书两大功能进行合理操纵。
在很大程度上方便了图书管理工作。
于是在课程设计方面选择了图书管理系统作为Windows编程课程设计的题目。
2 需求分析2.1程序功能(1)读者信息的添加,删除,查找,修改,清空(2)图书信息的添加,查找(3)读者借书,还书功能2.2数据读者信息:读者编号,姓名,联系电话图书信息:图书编号,名称,数量,类别借阅信息:读者编号,图书编号2.3环境开发环境:Microsoft Visual C++6.0运行环境:(1)硬件要求:CPU奔腾4处理器以上(2)软件要求:XP/Vista操作系统3 总体设计3.1总体架构整个图书馆里系统分为四个模块。
分别为,读者信息模块,图书信息模块,图书借阅模块和读者还书模块。
各模块的主要功能如下:图书管理系统读者信息相关模块图书信息相关模块读者借书模块读者还书模块读者信息添加模块读者信息查找模块读者信息删除模块读者信息修改模块读者信息清空模块图书信息添加模块图书信息查找模块确认读者信息模块确认读者借书模块确认读者信息模块确认读者借书模块3.2模块划分(1)读者信息相关模块设计在此模块中,创建一个新类,命名为ReaderInfomation,顾名思义,用来编写进行对读者信息各种操作的代码。
函数及变量一览如下:实现读者信息相关操作,对于总对话框的设计如下图:读者信息添加模块此模块的功能是将借阅者信息保存到系统中,在这个模块中实现了对读者编号,姓名和联系电话的添加,并带有重号提醒功能。
添加成功的读者信息可以在读者信息总览列表框中显示出来。
参考程序段如下:void CReaderItem::OnBottonAddReader() //添加读者信息{// TODO: Add your control notification handler code hereCString f_reader_name,f_reader_num,f_reader_phone,f_add_whole;CString /*读者编号校验变量*/check_reader_num;//在编辑框中获取读者信息GetDlgItem(IDC_EDIT_READER_NUM)->GetWindowText(f_reader_num);//读者编号校验变量获得输入的编号check_reader_num=f_reader_num;//插入重号处理操作for(int i=0;i<reader_num;i++){if(reader[i].GetReaderNum()==check_reader_num){MessageBox("该读者编号已存在,请核对!");//清空读者编号校验变量check_reader_num="&&&&&&&&&";return;}}GetDlgItem(IDC_EDIT_READER_NAME)->GetWindowText(f_reader_name) ;GetDlgItem(IDC_EDIT_READER_PHONE)->GetWindowText(f_reader_phon e);//添加读者信息-并保存到读者信息对象中reader[reader_num].SaveReaderInformation(f_reader_num,f_reader _name,f_reader_phone);//初始化读者可借书籍数目reader[reader_num].InitReader_borrow_book_num();//初始化后,读者可借书籍数目总数为10//读者总数+1reader_num++;//读者总数+1//连接总串f_add_whole=f_reader_num+" "+f_reader_name+""+f_reader_phone;//在添加读者信息列表框显示m_all_reader_show.AddString(f_add_whole);MessageBox("添加成功!");}读者信息查找模块此模块的功能实在已添加的读者信息中通过输入的读者编号找到想要查找对应的读者信息。
并带有刷新查找列表框,排除在同一列表框显示多人混淆目标的情况,以及对查无对应读者信息的提示处理。
具体程序段如下:void CReaderItem::OnBottonFindReader() //查找读者信息{// TODO: Add your control notification handler code hereCString f_reader_num,f_add_whole;CString /*读者编号校验变量*/check_reader_num;int check_flag=0;//查找结果标志,0为没找到,1为找到//清空列表框m_find_reader_show.ResetContent();//在编辑框中获取读者信息GetDlgItem(IDC_EDIT_READER_NUM)->GetWindowText(f_reader_num);//读者编号校验变量获得输入的编号check_reader_num=f_reader_num;for(int i=0;i<reader_num;i++)//进行查找{if(reader[i].GetReaderNum()==check_reader_num){//获取读者信息reader[i].GetReaderItem(f_add_whole);//显示在列表框中m_find_reader_show.AddString(reader[i].GetReaderItem(f_add_whole) );//置找到标志为1check_flag=1;//清空读者编号校验变量check_reader_num="&&&&&&&&&";}}if(check_flag==0)MessageBox("对不起,查无此读者!");}读者信息删除模块此模块对要清除的读者信息进行删除,不但从列表框能清楚对应读者的信息,也能在内存中实际删除信息,实现显示与控制同步的过程。
并带有提示请使用者确定是否删除的选择权。
具体程序段如下:void CReaderItem::OnBottonDelReader2() //删除读者信息函数{// TODO: Add your control notification handler code hereint cursel=m_all_reader_show.GetCurSel();//光标锁定if(cursel==-1){MessageBox("没有选中");return;}else{if(IDYES==MessageBox("是否删除","删除对话框",MB_ICONHAND|MB_YESNO)){for(int k=cursel;k<reader_num-1;k++)reader[k]=reader[k+1];m_all_reader_show.DeleteString(cursel);reader_num--;}}}读者信息修改模块此模块是对读者信息进行修改,通过选中列表框的读者信息条目,用双击鼠标消息响应来弹出修改窗口,让使用者将修改的数据重新填入,并将修改后的数据重新显示在列表框内。
具体程序段如下:void CReaderItem::OnDblclkAllReaderList() //修改读者信息引入函数{// TODO: Add your control notification handler code here UpdateData();CString stradd;cursel_ch=m_all_reader_show.GetCurSel();//选定的行CChange change;change.DoModal();m_all_reader_show.DeleteString(cursel_ch);//删除原行m_all_reader_show.AddString(reader[cursel_ch].GetReaderItem(st radd));//显示新信息UpdateData(false);}//双击后,将弹出新对话框,如下图:对于上图中修改对话框的程序段,如下:void CChange::OnBottonChange(){// TODO: Add your control notification handler code hereCString f_reader_name,f_reader_num,f_reader_phone,f_add_whole;CString /*读者编号校验变量*/check_reader_num;//在编辑框中获取读者信息GetDlgItem(IDC_EDIT_READER_NUM)->GetWindowText(f_reader_num);//读者编号校验变量获得输入的编号check_reader_num=f_reader_num;//插入重号处理操作for(int i=0;i<reader_num;i++){if(reader[i].GetReaderNum()==check_reader_num&&(i!=cursel_ch)) {MessageBox("该读者编号已存在,请核对!");//清空读者编号校验变量check_reader_num="&&&&&&&&&";return;}}GetDlgItem(IDC_EDIT_READER_NAME)->GetWindowText(f_reader_name) ;GetDlgItem(IDC_EDIT_READER_PHONE)->GetWindowText(f_reader_phon e);//将新信息存到读者对象中reader[cursel_ch].SetReaderItem(f_reader_num,f_reader_name,f_r eader_phone);CDialog::OnOK();}读者信息清空模块此模块只清空除读者信息总览列表框以外的控件内信息。