Windows程序设计实践报告
- 格式:doc
- 大小:437.50 KB
- 文档页数:12
windows的实验报告(完整版)实验标题:Windows的实验报告一、实验目的本实验旨在深入了解Windows操作系统的基本原理和功能,并掌握Windows操作系统的安装、配置和使用方法。
二、实验内容1. Windows操作系统的安装通过制作启动盘或使用光盘安装,选择适当的版本和安装选项进行Windows操作系统的安装。
2. Windows操作系统的配置进行系统设置,包括语言和区域设定、时区设定、键盘和鼠标设置等。
3. Windows操作系统的使用掌握Windows操作系统的基本操作,包括桌面管理、文件和文件夹管理、应用程序的安装和卸载、系统设置等。
4. Windows操作系统的网络配置了解并设置Windows操作系统的网络连接,包括有线网络和无线网络的配置。
三、实验步骤1. Windows操作系统的安装按照安装引导界面的指示,选择合适的选项完成安装过程。
注意选择适配的驱动程序并进行相应设置。
2. Windows操作系统的配置在系统设置中,选择适当的语言和区域,设定正确的时区。
根据个人需求,进行键盘和鼠标相关设置。
3. Windows操作系统的使用3.1 桌面管理:了解和使用桌面的基本布局,包括桌面图标的添加、删除、移动等操作。
3.2 文件和文件夹管理:学习使用资源管理器对文件和文件夹进行管理,包括创建、复制、粘贴、删除等操作。
3.3 应用程序的安装和卸载:了解如何通过Windows商店或第三方应用程序进行安装,并学会使用控制面板进行软件的卸载。
3.4 系统设置:掌握系统设置的方法,包括背景壁纸的更换、屏幕分辨率的调整、电源管理等。
4. Windows操作系统的网络配置4.1 有线网络的配置:了解如何通过网线连接计算机和局域网以及设置IP地址、子网掩码等网络参数。
4.2 无线网络的配置:学习如何连接无线网络并进行密码设置,了解无线网络的高级配置选项。
四、实验结果经过以上实验步骤的操作,成功完成了Windows操作系统的安装、配置和使用。
竭诚为您提供优质文档/双击可除windows课程设计心得体会篇一:windows程序设计(c语言)实训报告hubeIunIVeRsITYoFAuTomoTIVeTechnoLogYc语言程序设计实训报告实训题目:汽车零部件采购管理程序专业:电气与信息工程学院计算机系班级:T1323-1姓名:王俊成绩:完成日期:20XX-5-25指导教师:史旅华目录1.实训题目与要求.系统设计.程序测试与运行结果.实训总结.程序源代码1.实训题目与要求汽车零部件采购管理程序题目描述已知在汽车生产时,需要向零部件生产厂商采购零部件,设计一个汽车零部件采购管理程序,以方便采购管理部门对采购零部件的管理。
该单位每次采购都有一个采购编号,每次采购一种零部件。
该程序应该具有如下功能(1)能从键盘输入采购信息。
(2)指定采购编号,显示采购的零部件信息。
(3)指定零部件名称,显示该零部件的所有采购信息。
(4)给定采购编号,修改采购信息。
(5)给定采购编号,删除采购信息。
题目要求:(1)按照分析、设计、编码、调试、测试的软件过程完成这个应用程序。
(2)采购信息包括:采购编号、零部件名称、采购日期、采购员、采购数量、采购单价、供货单位。
(3)为程序设计windows窗口,在该窗口上以按钮的形式为用户提供“菜单”,通过点击各个功能项对应的按钮完成操作。
输入要求:(1)用户可以根据需求,选定相应的操作项目。
进入每个操作后,通过窗口的文本框,从键盘输入相应的信息。
程序根据用户输入的信息完成相应的处理,实现要求的功能。
(2)能对输入的数据进行简单的校验,例如,采购日期必须是一个合法的日期格式,采购编号是唯一的(一次采购对应一个采购编号)。
输出要求:(1)应用程序运行后,要在屏幕上显示一个按钮形式的“菜单”。
(2)要求用户输入数据时,给出清晰、明确的提示信息,包括输入的数据内容、格式以及结束方式等。
(3)在程序完成处理后,要清楚地给出程序的处理结果。
Windows编程实验二实验报告一、实验目的本次 Windows 编程实验的目的在于深入了解和掌握 Windows 应用程序的开发流程,通过实际编程操作,提高对 Windows 消息机制、窗口处理、图形绘制等方面的理解和应用能力。
二、实验环境操作系统:Windows 10开发工具:Visual Studio 2019编程语言:C++三、实验内容1、窗口创建与消息处理创建一个基本的 Windows 窗口,并实现对窗口消息(如WM_CREATE、WM_PAINT、WM_DESTROY 等)的处理。
通过响应这些消息,完成窗口的初始化、绘制和关闭操作。
2、图形绘制在窗口客户区进行简单的图形绘制,如直线、矩形、圆形等。
掌握GDI(图形设备接口)的基本绘图函数和操作方法。
3、菜单与控件添加菜单到窗口,并处理菜单命令消息。
同时,尝试在窗口中添加一些基本的控件,如按钮、编辑框等,并实现相应的交互功能。
四、实验步骤1、创建项目打开 Visual Studio 2019,创建一个新的 Windows 桌面应用程序项目。
选择 C++作为编程语言,并按照向导进行设置,包括项目名称、存储位置等。
2、窗口类定义定义一个窗口类(WNDCLASS),设置窗口的样式、窗口过程函数指针等属性。
```cppWNDCLASS wndClass ={ 0 };wndClasslpfnWndProc = WndProc;wndClasshInstance = hInstance;wndClasslpszClassName = L"MainWindowClass";RegisterClass(&wndClass);```3、窗口创建与显示使用`CreateWindow` 函数创建窗口,并通过`ShowWindow` 和`UpdateWindow` 函数显示窗口。
```cppHWND hWnd = CreateWindow(L"MainWindowClass",L"Windows Programming Experiment",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT, CW_USEDEFAULT,NULL, NULL, hInstance, NULL);ShowWindow(hWnd, nCmdShow);UpdateWindow(hWnd);```4、消息循环在主函数中,通过一个无限循环来获取和分发窗口消息。
Windows计算机科学与技术学院计算机科学与技术专业班姓名学号目录Windows (1)实验一、熟悉visual c++的编程环境 (3)实验二、对话框的使用 (5)实验三、调整线程优先级 (8)实验4内存实验 (10)实验一、熟悉visual c++的编程环境一实验目的1.了解和使用VC集成开发环境2.熟悉VC环境的基本命令和功能键,3.熟悉常用的功能菜单命令4.学习使用VC++环境的帮助5.学习完整的C++程序开发过程6.理解简单的C++程序结构7.了解用Visual C++开发Windows MFC应用程序的过程二实验内容1.熟悉Visual C++实验环境(1) 启动Developer Studio, 看看初始化界面由哪些部分组成(2) 查看各菜单项, 看看都有哪些子菜单和命令(3) 将鼠标放置于各工具条图标上, 系统会自动显示该图标代表的命令含义, 了解一下都有哪些命令。
(4) 在任意工具条上单击鼠标右键, 弹出式菜单上将显示所有可用的工具条, 选择其中没有对号(√)的项, 看看有什么效果, 再选择有对号的项, 又有什么效果?(5) 将鼠标移动到任意工具条上, 将鼠标放到图标间隙, 按下鼠标左键不放,移动鼠标到屏幕中间, 有什么现象发生?再将它拖回到原来位置, 有什么现象发生?(6) 将鼠标移动到左边的工作区窗口, 按下鼠标左键不放, 移动鼠标到屏幕中间, 有什么现象发生?再将它拖回到原来位置, 有什么现象发生?7) 将鼠标移动到下边的输出窗口, 按鼠标右键, 弹出一个菜单, 选择其中的菜单项"Hide", 结果如何?要重新显示该窗口, 选择菜单View|Output, 窗口是不是又显示出来了?(8) 学习使用帮助系统。
如果你用的是Visual C++5.0, 则在工作区窗口的InfoView中选择你感兴趣的内容, 双击它, 在文档区显示具体的帮助信息。
如果你用的是Visual C++6.0, 选择菜单Help|Contents, 启动MSDN联机帮助系统, 学习使用该帮助系统。
windows 操作实训报告一、实训背景和目的Windows 操作系统是当今最常用的计算机操作系统之一,具有广泛的应用领域和功能。
为了更好地掌握和应用Windows操作系统,提高个人计算机操作和管理能力,本次实训旨在通过实践操作和实际应用,深入了解Windows操作系统的各项功能和使用技巧。
二、实训过程和内容1. 系统安装与升级首先进行系统的安装与升级操作,根据实际需求选择合适的版本和安装方式,了解系统安装的基本流程和注意事项。
在此过程中,掌握系统安装过程中的分区与格式化、驱动程序的安装以及必要的系统设置。
2. 操作界面和桌面布局熟悉Windows操作系统的操作界面和桌面布局,掌握桌面图标的添加、删除和排序,个性化设置如壁纸、主题和屏幕保护等。
同时了解开始菜单的使用和各个系统工具的快捷方式,以便于快速访问和使用。
3. 文件和文件夹管理学习使用Windows资源管理器进行文件和文件夹的管理,包括创建、复制、移动、删除和重命名等操作。
了解文件属性和权限设置,掌握文件搜索和筛选的方法,提高文件管理的效率和准确性。
同时学习使用回收站进行文件的恢复和彻底删除操作。
4. 系统设置和管理深入了解Windows系统的设置和管理,包括用户账户和权限管理、系统更新和补丁安装、网络设置和连接以及防火墙和杀毒软件的配置等。
学习系统性能监测和故障排除技巧,提高系统的稳定性和安全性。
5. 常用应用程序的使用掌握常用的办公软件、浏览器、邮件客户端等应用程序的基本使用方法和技巧。
学习网络资源的访问和下载,掌握在线视频播放和音乐收听的操作,提高多媒体应用的体验和效果。
三、实训效果与感想通过本次实训,我对Windows操作系统的各项功能和使用技巧有了更深入的了解和掌握。
在实践操作和实际应用中,我发现Windows操作系统的稳定性和易用性非常出色,提供了丰富的功能和工具来满足各种需求。
同时,通过对文件和文件夹的管理和系统设置的学习,我提高了计算机操作和管理的能力,更加熟练地处理和组织文件,有效地保护和维护系统的安全和稳定。
第1篇一、实验目的1. 熟悉电脑设计应用的基本操作和功能。
2. 掌握电脑设计软件的使用方法,提高设计水平。
3. 培养学生的创新思维和实际操作能力。
二、实验内容1. 实验环境:Windows 10操作系统,Adobe Photoshop CC 2019版本。
2. 实验内容:(1)界面熟悉打开Photoshop CC,观察并熟悉软件界面,了解工具栏、菜单栏、面板等基本元素。
(2)图层操作创建一个新文件,设置画布大小、分辨率和颜色模式。
创建图层,学习图层的创建、编辑、合并、删除等操作。
(3)绘图工具学习使用钢笔工具、矩形工具、椭圆工具等绘图工具,绘制简单图形。
(4)文字编辑使用文字工具输入文字,调整文字的字体、字号、颜色、对齐方式等。
(5)滤镜效果应用滤镜效果,如模糊、锐化、颜色变换等,对图像进行美化处理。
(6)图片合成导入两张图片,学习使用图层蒙版、混合模式等技巧进行图片合成。
(7)导出作品将设计好的作品导出为常用格式,如JPG、PNG等。
三、实验步骤1. 打开Photoshop CC,创建一个新文件。
2. 熟悉软件界面,了解工具栏、菜单栏、面板等基本元素。
3. 创建图层,学习图层的创建、编辑、合并、删除等操作。
4. 使用钢笔工具、矩形工具、椭圆工具等绘图工具,绘制简单图形。
5. 使用文字工具输入文字,调整文字的字体、字号、颜色、对齐方式等。
6. 应用滤镜效果,如模糊、锐化、颜色变换等,对图像进行美化处理。
7. 导入两张图片,使用图层蒙版、混合模式等技巧进行图片合成。
8. 将设计好的作品导出为常用格式,如JPG、PNG等。
四、实验结果与分析1. 通过本次实验,掌握了Photoshop CC的基本操作和功能。
2. 熟练使用图层、绘图工具、文字编辑、滤镜效果等功能,提高了设计水平。
3. 在图片合成过程中,学会了使用图层蒙版、混合模式等技巧,提高了作品的整体效果。
4. 实验过程中,遇到了一些问题,如图层蒙版的使用、混合模式的选择等,通过查阅资料和请教同学,成功解决了问题。
windows程序设计实验报告《Windows程序设计》实验报告实验室: S306(308)学院:计算机科学与技术专业:计算机科学与技术⽬录实验⼀、熟悉visual c++的编程环境 (3)⼀、实验⽬的和要求: (3)⼆、实验内容、程序清单及运⾏结果: (3)1.编辑第⼀个C++程序 (3)2. ⽤AppWizard建⽴⼀个MFC Windows应⽤ (3)3. 编写简单的计算程序 (4)运⾏结果: (4)三、⼼得体会: (4)实验⼆、对话框的使⽤ (5)⼀、实验⽬的和要求: (5)⼆、实验内容、程序清单及运⾏结果 (5)实验步骤: (5)实验结果: (7)三、⼼得体会: (7)实验三、创建⼀个进程来运⾏⼀个应⽤程序 (8)⼀、实验要求和⽬的 (8)⼆、实验内容、程序清单及运⾏结果 (8)实验步骤: (8)实验结果: (9)三、实验⼼得 (9)实验四、调整线程优先级 (10)⼀、实验要求和⽬的 (10)⼆、实验内容、程序清单及运⾏结果 (10)实验步骤: (10)实验结果: (11)三、实验⼼得 (11)实验⼀、熟悉visual c++的编程环境⼀、实验⽬的和要求:1.了解和使⽤VC集成开发环境2.熟悉VC环境的基本命令和功能键,3.熟悉常⽤的功能菜单命令4.学习使⽤VC++环境的帮助5.学习完整的C++程序开发过程6.理解简单的C++程序结构7.了解⽤Visual C++开发Windows MFC应⽤程序的过程⼆、实验内容、程序清单及运⾏结果:1.编辑第⼀个C++程序源程序代码://hello world example#includeint main() {cout << "hello!"<< endl ;return 0; //正常返回}运⾏结果:2. ⽤AppWizard建⽴⼀个MFC Windows应⽤在窗⼝中输出"Hello,World!",修改OnDraw函数的定义,在最后⼀⾏加⼀句:pDC->TextOut(50,50,"Hello, World");运⾏结果:3. 编写简单的计算程序输⼊圆的半径,计算圆的周长和⾯积并输出。
windows的实验报告(完整版)中南民族⼤学计算机科学学院实验报告课程 Windows程序设计年级专业学⽣学号指导⽼师实验⼀实验标题:按钮控件使⽤⽅法⼀、实验⽬的:学会使⽤按钮控件的使⽤⽅法。
⼆、实验内容及步骤:1.新建项⽬,设置对话框如下所⽰:2.双击头⽂件“ankjDlg.h”,在类构造函数class CankjDlg : public CDialog中定义public:CButton game1,game2,game3,game4,game5,game6;CButton addr1,addr2,addr3,addr4;3.双击⽂件“ankjDlg.cpp”,在void CankjDlg::DoDataExchange(CDataExchange* pDX)中添加ID与变量之间的映射。
DDX_Control(pDX, IDC_RADIO1, addr1);DDX_Control(pDX, IDC_RADIO2, addr2);DDX_Control(pDX, IDC_RADIO3, addr3);DDX_Control(pDX, IDC_RADIO4, addr4);DDX_Control(pDX, IDC_CHECK1, game1);DDX_Control(pDX, IDC_CHECK2, game2);DDX_Control(pDX, IDC_CHECK3, game3);DDX_Control(pDX, IDC_CHECK4, game4);DDX_Control(pDX, IDC_CHECK5, game5);DDX_Control(pDX, IDC_CHECK6, game6);4.在⽂件“ankjDlg.cpp”的BOOL CankjDlg::OnInitDialog()中的“// TODO: 在此添加额外的初始化代码”后⾯添加初始化代码:this->addr1.SetCheck ( BST_CHECKED ) ;this->game1.SetCheck ( BST_CHECKED ) ;this->game2.SetCheck ( BST_CHECKED ) ;this->game3.SetCheck ( BST_CHECKED ) ;this->game4.SetCheck ( BST_CHECKED ) ;this->game5.SetCheck ( BST_CHECKED ) ;this->game6.SetCheck ( BST_CHECKED ) ;5. 双击“确定”按钮,添加代码:CString szMsg ;szMsg += L"您的所在地:" ;if ( this->addr1.GetCheck () == BST_CHECKED )szMsg += L"北京\n" ;else if ( this->addr2.GetCheck () == BST_CHECKED ) szMsg += L"上海\n" ;else if ( this->addr3.GetCheck () == BST_CHECKED ) szMsg += L"厦门\n" ;else if ( this->addr4.GetCheck () == BST_CHECKED ) szMsg += L"杭州\n" ;szMsg += L"您的兴趣爱好:" ;if ( this->game1.GetCheck() == BST_CHECKED )szMsg += L"体育运动" ;if ( this->game2.GetCheck() == BST_CHECKED )szMsg += L"影视娱乐" ;if ( this->game3.GetCheck() == BST_CHECKED )szMsg += L"⿊客技术" ;if ( this->game4.GetCheck() == BST_CHECKED )szMsg += L"旅游观光" ;if ( this->game5.GetCheck() == BST_CHECKED )szMsg += L"休闲棋牌" ;if ( this->game6.GetCheck() == BST_CHECKED )szMsg += L"⽹络游戏" ;this->MessageBox ( szMsg, L"您的选择" ) ;三、调试及结果:①调试的初始界⾯:②选择后的输出:实验⼼得:实验⼆实验标题:组合框⼀、实验⽬的:了解组合框的概念,并掌握组合框的概念。
江苏大学《Windows程序设计》实验报告———记事本所在学院:计算机学院所在班级:软件1001学生姓名:张建彬学生学号:3100608024指导教师:曹汉清2012年 12 月Windows程序设计报告一、选题原因Notepad文本文档是我们工作生活中经常用到的文件编辑器,因此了解它也很必要,所以选择了用windows窗体编辑一个Notepad。
Notepad记事本,实现了Windows自带的记事本的部分功能外,并且还可以任意更改字体的字体类型、大小和颜色,并在状态栏中显示时间。
为了方便用户的操作,还在程序的窗体上放置了一个工具栏。
Notepad记事本程序具有文件的新建、打开、保存功能;文字的复制、粘贴、删除功能;字体类型、格式的设置功能;查看日期时间等功能,并且用户可以根据需要显示或者隐藏工具栏和状态栏。
接下来将详细的介绍记事本程序的设计与实现的步骤和方法。
二、设计思想及框架新建好“Notepad”项目后,定位到记事本程序的窗体设计器窗口,然后依次在窗体上放置以下控件(各1个):(1)MenuStrip(菜单控件)。
(2)ToolStrip(工具栏控件)。
(3)RichTextBox(多格式文本框控件)。
(4)StatusStrip(状态栏控件)。
(5)OpenFileDialog(打开对话框)。
(6)SaveFileDialog(保存对话框)。
(7)FontDialog(字体对话框)。
(8)Timer(计时器控件)。
最终的用户界面如图所示(设置好属性后),其中MenuStrip控件、ToolStrip 控件、StatusStrip控件、OpenFileDialog对话框、SaveFileDialog对话框、FontDialog 对话框和Timer控件显示在窗体设计器下方的组件板上。
记事本用户界面窗体的属性设置将菜单控件MenuStrip的Name属性设为“mnusNotepad”,按照第6章介绍的方法设计好下拉菜单,它共有【文件(F)】、【编辑(E)】、【格式(O)】、【查看(V)】和【帮助(H)】5个下拉子菜单。
windows的实验报告(完整版)实验名称:Windows的实验报告实验目的:通过对Windows操作系统的学习和实践,了解并熟悉Windows操作系统的基本功能、操作方法及常用工具,提高计算机操作和应用能力。
实验要求:熟悉Windows操作系统的基本操作方法、文件管理及常用工具的使用。
实验设备:一台装有Windows操作系统的计算机。
实验步骤:1. Windows操作系统的启动与登录a. 按下计算机的电源按钮,等待计算机启动。
b. 在Windows登录界面输入正确的用户名和密码,点击登录。
2. Windows桌面的基本组成a. 熟悉桌面的各个元素,包括桌面图标、任务栏、开始菜单等。
b. 学习桌面图标的创建、删除、移动和重命名等操作。
3. 文件和文件夹管理a. 学习使用资源管理器打开文件和文件夹。
b. 创建新的文件夹,进行文件和文件夹的复制、剪切、粘贴和删除操作。
c. 学习使用搜索功能在计算机中查找文件和文件夹。
4. 常用工具的使用a. 学习使用文本编辑器编辑文本文件。
b. 学习使用画图工具创建简单的图形。
c. 了解并使用系统自带的计算器、记事本、画图、粘贴板等工具。
5. 网络连接与浏览器使用a. 熟悉网络连接的设置,连接到无线网络或有线网络。
b. 打开浏览器,访问常用的网站,搜索信息等。
6. Windows系统设置a. 了解并设置桌面背景、屏幕保护和分辨率等显示设置。
b. 了解并设置日期、时间和时区等时间设置。
c. 学习设置打印机和其他外部设备的配置。
7. 系统维护与安全a. 学习使用杀毒软件进行病毒扫描和清理。
b. 学习使用Windows自带的系统维护工具,如磁盘清理、磁盘碎片整理等。
8. 实验总结通过本次实验,我对Windows操作系统的基本功能和使用方法有了更深入的了解。
掌握了Windows桌面的基本组成,文件和文件夹的管理方法,以及常用工具的使用。
还学会了网络连接与浏览器的操作,Windows系统的基本设置,以及系统维护与安全等知识点。
第1篇实验名称:计算机基本操作与常用软件应用实验日期:2023年3月15日实验地点:计算机实验室实验目的:1. 掌握计算机的基本操作,包括开关机、文件管理、系统设置等。
2. 熟悉常用软件的使用,如文字处理软件、电子表格软件、演示文稿软件等。
3. 提高计算机应用能力,为后续课程学习打下基础。
实验内容:一、计算机基本操作1. 开关机操作(1)打开计算机,等待系统启动完成。
(2)使用鼠标点击屏幕左下角的“开始”按钮,选择“关机”选项。
(3)系统提示是否保存更改,根据实际情况选择保存或取消保存。
(4)点击“确定”按钮,等待计算机完全关闭。
2. 文件管理(1)打开文件资源管理器,了解文件结构。
(2)创建文件夹:点击“文件”菜单,选择“新建”->“文件夹”,输入文件夹名称,按“确定”按钮。
(3)重命名文件或文件夹:选中文件或文件夹,右击鼠标,选择“重命名”,输入新名称,按“Enter”键。
(4)删除文件或文件夹:选中文件或文件夹,右击鼠标,选择“删除”,在弹出的对话框中选择“是”。
3. 系统设置(1)打开“控制面板”,了解系统设置。
(2)调整屏幕分辨率:在“控制面板”中找到“显示”选项,调整分辨率。
(3)设置网络连接:在“控制面板”中找到“网络和共享中心”,设置网络连接。
二、常用软件应用1. 文字处理软件(Microsoft Word)(1)创建新文档:点击“开始”按钮,选择“所有程序”->“MicrosoftOffice”->“Microsoft Word”,打开Word软件。
(2)输入文字:在文档中输入文字,可以使用“格式”工具栏进行文字格式设置。
(3)保存文档:点击“文件”菜单,选择“保存”或“另存为”,设置保存路径和文件名,点击“保存”按钮。
2. 电子表格软件(Microsoft Excel)(1)创建新工作簿:点击“开始”按钮,选择“所有程序”->“Microsoft Office”->“Microsoft Excel”,打开Excel软件。
windows 操作实训报告在我所就读的大学中,计算机专业的学生们都要进行一些实际操作的实训课程,以提高我们的实践能力和解决问题的能力。
其中,Windows 操作实训是我们必须完成的一项任务。
在这篇文章中,我将分享我在 Windows 操作实训中的经验和体会。
首先,我想谈谈我对 Windows 操作系统的认识。
Windows 操作系统是由微软公司开发的一种常见的个人电脑操作系统。
它具有用户友好的界面和丰富的功能,被广泛应用于各个领域。
在实训课程中,我们需要掌握 Windows 操作系统的基本操作,例如文件管理、软件安装和网络设置等。
在实训的第一阶段,我们学习了 Windows 操作系统的基本操作。
我们了解了桌面的组成和功能,学会了打开和关闭程序、创建和删除文件夹、复制和粘贴文件等基本操作。
这些基本操作对于我们日常使用电脑非常重要,它们使我们能够更高效地管理和处理文件。
在实训的第二阶段,我们学习了 Windows 操作系统的高级功能。
我们学会了如何使用任务管理器来结束无响应的程序,以及如何设置系统的自动更新和安全防护。
此外,我们还学习了如何使用系统还原功能来恢复系统到之前的状态,以及如何备份和还原文件和文件夹。
这些高级功能使我们能够更好地保护我们的电脑和数据安全。
在实训的第三阶段,我们学习了如何使用 Windows 操作系统进行网络设置。
我们学会了如何连接无线网络、设置网络共享和配置防火墙。
这些网络设置对于我们在学校或家庭中使用互联网非常重要。
通过学习这些网络设置,我们能够更好地保护我们的网络安全,并更好地利用互联网资源。
在实训的最后阶段,我们进行了一些综合实践操作。
我们需要完成一些实际的任务,例如安装和卸载软件、设置打印机和扫描仪、创建和管理用户账户等。
这些任务涉及到更多的操作和技巧,需要我们综合运用之前学到的知识和技能。
通过完成这些实训任务,我不仅学到了Windows 操作系统的基本知识和技能,还提高了我的问题解决能力。
操作系统实验报告实验3_1一、实验目的本次实验的主要目的是深入理解操作系统中进程管理的相关概念和原理,通过实际操作和观察,掌握进程的创建、调度、同步与互斥等关键机制,提高对操作系统内核工作原理的认知和实践能力。
二、实验环境本次实验在装有 Windows 10 操作系统的计算机上进行,使用了Visual Studio 2019 作为开发工具,编程语言为 C++。
三、实验内容与步骤(一)进程创建1、编写一个简单的 C++程序,使用系统调用创建一个新的进程。
2、在父进程和子进程中分别输出不同的信息,以区分它们的执行逻辑。
```cppinclude <iostream>include <windowsh>int main(){DWORD pid;HANDLE hProcess = CreateProcess(NULL, "childexe", NULL, NULL, FALSE, 0, NULL, NULL, NULL, &pid);if (hProcess!= NULL) {std::cout <<"Parent process: Created child process with PID "<< pid << std::endl;WaitForSingleObject(hProcess, INFINITE);CloseHandle(hProcess);} else {std::cerr <<"Failed to create child process" << std::endl;return 1;}return 0;}```(二)进程调度1、设计一个多进程并发执行的程序,通过设置不同的优先级,观察操作系统对进程的调度情况。
2、记录每个进程的执行时间和等待时间,分析调度算法的效果。
```cppinclude <iostream>include <windowsh>DWORD WINAPI ProcessFunction(LPVOID lpParam) {int priority =(int)lpParam;DWORD start = GetTickCount();std::cout <<"Process with priority "<< priority <<"started" << std::endl;for (int i = 0; i < 100000000; i++){//执行一些计算操作}DWORD end = GetTickCount();DWORD executionTime = end start;std::cout <<"Process with priority "<< priority <<" ended Execution time: "<< executionTime <<" ms" << std::endl;return 0;}int main(){HANDLE hThread1, hThread2;int priority1 = 1, priority2 = 2;hThread1 = CreateThread(NULL, 0, ProcessFunction, &priority1, 0, NULL);hThread2 = CreateThread(NULL, 0, ProcessFunction, &priority2, 0, NULL);if (hThread1!= NULL && hThread2!= NULL) {SetThreadPriority(hThread1, THREAD_PRIORITY_LOWEST);SetThreadPriority(hThread2, THREAD_PRIORITY_NORMAL);WaitForSingleObject(hThread1, INFINITE);WaitForSingleObject(hThread2, INFINITE);CloseHandle(hThread1);CloseHandle(hThread2);} else {std::cerr <<"Failed to create threads" << std::endl;return 1;}return 0;}```(三)进程同步与互斥1、实现一个生产者消费者问题的程序,使用信号量来实现进程之间的同步与互斥。
windows实践报告引言:Windows操作系统是目前全球最广泛使用的操作系统之一,它的用户界面友好、功能强大,适用于个人和商业使用。
本文将从个人实践的角度出发,分享我对Windows操作系统的使用体验和相关技巧。
一、个人使用体验作为一名普通用户,我使用Windows操作系统已有多年的经验。
总体而言,Windows系统给我留下了深刻的印象。
首先,Windows的用户界面设计简洁明了,菜单、图标和任务栏的布局都很直观,使得我能够快速找到所需的功能。
其次,Windows系统的稳定性和兼容性也非常出色,我能够顺利运行各种软件和应用程序,无论是办公工具还是娱乐软件。
此外,Windows系统还提供了丰富的个性化设置,我可以根据自己的喜好调整桌面背景、主题颜色等,使得使用过程更加愉悦。
二、实用技巧分享在长期的使用过程中,我积累了一些实用的Windows技巧,以下是其中几个值得分享的:1. 快捷键的应用Windows系统提供了丰富的快捷键,可以大大提高工作效率。
例如,Win + D可以快速显示桌面,Win + E可以打开资源管理器,Ctrl + Shift + Esc可以直接打开任务管理器等等。
熟练掌握这些快捷键,能够让操作更加高效快捷。
2. 文件管理技巧Windows系统的文件管理功能非常强大,合理利用可以提高工作效率。
我经常使用的技巧包括:利用快速访问功能将常用文件和文件夹固定在任务栏上,使用文件搜索功能快速定位需要的文件,以及使用文件夹和文件的属性功能进行分类和整理等等。
3. 多任务处理Windows系统支持多任务处理,使得我能够同时进行多项工作。
通过任务栏上的标签页,我可以轻松切换不同的应用程序,提高工作效率。
此外,Windows系统还提供了虚拟桌面功能,我可以将不同的任务分配到不同的桌面上,避免窗口混乱,更好地组织工作。
三、面临的挑战与解决方案尽管Windows系统有诸多优点,但也面临着一些挑战。
windows实践报告为了完成这篇关于Windows的实践报告,我将会涵盖以下主题:Windows的历史与背景,重要特性,主要组件,以及常见应用。
同时,我还将分享一些关于使用Windows的最佳实践和技巧。
希望你能在阅读的过程中学到更多有关于Windows操作系统的知识。
Windows的历史与背景Windows是一款由微软公司制造的操作系统,首次发布于1985年。
最初的版本是基于DOS操作系统的图形化用户界面,它迅速成为全球最为广泛使用的操作系统之一。
如今,Windows已经发展成为一个强大的操作系统平台,包括了丰富的应用程序和工具,跨足了计算机、电视、手机、平板电脑、游戏机等领域。
重要特性Windows的重要特性包括:多任务处理、虚拟内存、多用户支持、图形用户界面(GUI)、驱动程序以及支持各种硬件和软件。
这些特性使得Windows成为一个多用途、强大的操作系统,满足了各种不同用户的需求。
主要组件Windows由许多不同的组件组成,包括操作系统内核、网络和安全子系统、图形用户界面、应用程序、系统工具等。
其中最重要的组件是操作系统内核,它管理计算机的内存和进程,还负责与硬件和软件交互。
网络和安全子系统负责计算机网络的连接和安全性,图形用户界面则允许用户与计算机进行交互。
Windows的众多应用程序包括了办公套件、媒体播放器、游戏等等。
常见应用Windows是一个强大的操作系统,支持各种不同类型的应用程序和工具。
一些常见的Windows应用程序包括:1. Microsoft Office:包括Word、Excel和PowerPoint等应用程序。
2. Windows Media Player:用于播放音频和视频文件。
3. Internet Explorer和Microsoft Edge:用于浏览互联网。
4. Windows Defender:用于保护计算机免受恶意软件的攻击。
5. Windows应用商店:包括用于在Windows上运行的各种商业和免费的应用程序。
Window程序设计报告(1)通讯录应用程序一、设计目标与内容:1. 了解Windows编程的基础知识,掌握MFC应用程序的基本知识;2. 基本掌握面向对象程序设计的基本思路和方法;3. 掌握用VC++开发应用程序的的一般步骤和方法;4. 能够利用所学的基本知识,设计一个简单的通讯录应用程序,具有以下功能:①用文件来保存通讯录信息(必须实现的功能)②编程实现通讯录记录的添加、删除、修改、浏览和查询(必须实现的功能)。
二,设计要求:用VC++进行编码,实现应用程序的功能。
注重编码质量,代码要有适当的注释;功能描述创建一个通讯录应用程序,可以通过文件导入导出成员的信息,实现成员信息的添加、删除、修改、浏览和查询的功能(基本功能),改变背景颜色,添加动画,添加背景音乐(添加功能)。
基本思路利用VisualC++,通过对一些常用控件的使用实现程序的一些常见的功能,通过对文件的操作来保存和删除一些信息,通过对按钮消息的响应,实现一些基本的功能主要步骤项目的创建本例使用VisualC++6.0创建一个基于单文档的MFC AppWizard(exe)项目,项目的名字为Address,其中最后一步选择CFormView。
界面设计按如下对话框资源的界面布置对话框如后面的(图一)再添加一个对话框资源,当响应添加消息是弹出该对话框,添加你所想添加的信息,其对话框的见面如图所示,当然了我们也可以再添加一个用户登陆的对话框资源如下所示代码的实现1 定义一个CPerson类在Person.h中编辑代码class CPerson : public CObject{public:CPerson();virtual ~CPerson();CPerson(CString name,CString phone,CString adr,CString qq);void Serialize(CArchive&ar);public:CString m_name;//姓名CString m_phone;//电话CString m_addr;//公司CString m_qq;//QQ号DECLARE_SERIAL(CPerson)//对类进行串行化宏定义};在Person.cpp中编辑代码CPerson::CPerson(CString name,CString phone,CString adr,CString qq){m_name=name;m_phone=phone;m_addr=adr;m_qq=qq;}IMPLEMENT_SERIAL(CPerson,CObject,1)void CPerson::Serialize(CArchive&ar){if(ar.IsStoring())ar<<m_name<<m_phone<<m_addr<<m_qq;elsear>>m_name>>m_phone>>m_addr>>m_qq;}2在AddressDoc.h中编辑代码public:virtual ~CAddressDoc();CObArray m_stuObArray;int GetAllRecNum(void);CPerson* GetSTUDENTINFORAt(int nIndex);#ifdef _DEBUGvirtual void AssertValid() const;virtual void Dump(CDumpContext& dc) const;在AddressDoc.cpp中编辑代码void CAddressDoc::Serialize(CArchive& ar){if (ar.IsStoring()){// TODO: add storing code herem_stuObArray.Serialize(ar) ;}else{// TODO: add loading code herem_stuObArray.Serialize(ar) ;}}int CAddressDoc::GetAllRecNum(){return m_stuObArray.GetSize() ;}3 定义一个列表控件的变量CListCtrl m_list_ctrl; AddressView.cpp中的初始化函数OnInitialUpdate() void CAddressView::OnInitialUpdate(){CFormView::OnInitialUpdate();GetParentFrame()->RecalcLayout();ResizeParentToFit();m_gif2.Load(MAKEINTRESOURCE(IDR_GIF2),_T("gif"));//加载动画,m_gif2为图像控件的变量m_gif2.Draw();m_gif.Load(MAKEINTRESOURCE(IDR_GIF1),_T("gif"));//加载动画m_gif.Draw();if(IsFirst)//判断是否是第一次打开,在CAddressView()中初始化IsFirst=TRUE;{IsFirst=FALSE;m_list_ctrl.SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_ FULLROWSELECT|LVS_EX_ONECLICKACTIV ATE);CString strHeader[4] = {"姓名","电话","地址","QQ"} ;int nWidth[4] = {110,110,110,110} ;for(int nCol=0;nCol<4;nCol++)m_list_ctrl.InsertColumn(nCol,strHeader[nCol],LVCFMT_LEF T,nWidth[nCol]) ;UpdateData(FALSE) ;}}响应添加按钮的代码单击添加按钮时弹出如图所示的界面,(添加自己想添加的信息)void CAddressView::OnButtonAdd(){// TODO: Add your control notification handler code hereCdlgADD dlg;dlg.DoModal();int n=m_list_ctrl.GetItemCount();m_list_ctrl.InsertItem(m_list_ctrl.GetItemCount(),"");m_list_ctrl.SetItemText(n,0,dlg.m_strname);m_list_ctrl.SetItemText(n,1,dlg.m_strphone);m_list_ctrl.SetItemText(n,2,dlg.m_straddress);m_list_ctrl.SetItemText(n,3,dlg.m_strqq);UpdateData(TRUE) ;CAddressDoc* pDoc = GetDocument();CPerson*pStudent=newCPerson(dlg.m_strname,dlg.m_strphone,dlg.m_straddress,dlg.m_strq q);pDoc->m_stuObArray.Add(pStudent) ;pDoc->SetModifiedFlag() ;pDoc->UpdateAllViews(NULL) ;}添加完后再列表控件中显示的响应删除按钮的代码首先在列表控件中选择你想要删除的那一列,然后选侧删除,代码如下,定义一个public int item;的变量,先让列表控件响应NM_CLICK消息void CAddressView::OnClickList1(NMHDR* pNMHDR, LRESULT* pResult){// TODO: Add your control notification handler code hereLV_HITTESTINFO* pHitTestInfo = (LV_HITTESTINFO*)pNMHDR;item = pHitTestInfo->iItem;*pResult = 0;}void CAddressView::OnButtonDelete(){CAddressDoc* pDoc = GetDocument();if(item!=LB_ERR){m_list_ctrl.DeleteItem(item);delete (CPerson*)pDoc->m_stuObArray.GetAt(item) ;pDoc->m_stuObArray.RemoveAt(item);}elsereturn ;pDoc->SetModifiedFlag() ;}响应修改按钮的代码首先打开上次保存的信息,然后点击浏览,此时所有以保存的信息将会显示在列表控件中,在列表控件中选择你要修改的选项,点击修改弹出如图示的对话框,更改你要修改的对象CdlgADD dlg;CAddressDoc*pDoc =GetDocument();POSITION pos = m_list_ctrl.GetFirstSelectedItemPosition();if (pos == NULL){MessageBox("没有选中项!");}else{while (pos){int nItem = m_list_ctrl.GetNextSelectedItem(pos);m_list_ctrl.DeleteItem(nItem);dlg.m_strname = ((CPerson*)pDoc->m_stuObArray.GetAt(nItem))->m_name;dlg.m_strphone=((CPerson*)pDoc->m_stuObArray.GetAt(nItem))->m_phone;dlg.m_straddress = ((CPerson*)pDoc->m_stuObArray.GetAt(nItem))->m_addr;dlg.m_strqq = ((CPerson*)pDoc->m_stuObArray.GetAt(nItem))->m_qq;dlg.DoModal();UpdateData(FALSE);if(IDOK){UpdateData();((CPerson*)pDoc->m_stuObArray.GetAt(nItem))->m_name = dlg.m_strname;((CPerson*)pDoc->m_stuObArray.GetAt(nItem))->m_phon e = dlg.m_strphone;((CPerson*)pDoc->m_stuObArray.GetAt(nItem))->m_addr = dlg.m_straddress;((CPerson*)pDoc->m_stuObArray.GetAt(nItem))->m_qq = dlg.m_strqq ;pDoc->SetModifiedFlag();m_list_ctrl.InsertItem(nItem , dlg.m_strname);m_list_ctrl.SetItemText(nItem , 1 , dlg.m_strphone);m_list_ctrl.SetItemText(nItem , 2 , dlg.m_straddress);m_list_ctrl.SetItemText(nItem , 3 , dlg.m_strqq);}}}}响应浏览按钮的代码void CAddressView::OnButtonScan(){// TODO: Add your control notification handler code here m_list_ctrl.DeleteAllItems() ;CAddressDoc* pDoc = GetDocument();for(int n=0;n<pDoc->GetAllRecNum();n++){m_list_ctrl.InsertItem(n,pDoc->GetSTUDENTINFORAt(n)->m_name);m_list_ctrl.SetItemText(n,1,pDoc->GetSTUDENTINFORAt( n)->m_phone) ;m_list_ctrl.SetItemText(n,2,pDoc->GetSTUDENTINFORAt( n)->m_addr) ;m_list_ctrl.SetItemText(n,3,pDoc->GetSTUDENTINFORAt( n)->m_qq) ;}}响应查找按钮的代码输入你要查询的电话号码(如135963)点击查找void CAddressView::OnButtonSearch(){// TODO: Add your control notification handler code here CAddressDoc* pDoc = GetDocument();UpdateData(TRUE) ;for(int n=0;n<pDoc->GetAllRecNum();n++){if(((CPerson*)pDoc->m_stuObArray.GetAt(n))->m_phone= =m_strserach){CString str;str.Format("号码为%s的基本信息为:\n\t姓名:%s\n\t电话:%s\n\t住址:%s\n\tQQ:%s\n\n",m_strserach,((CPerson*)pDoc->m_stuObArray.GetAt(n))-> m_name,m_strserach,((CPerson*)pDoc->m_stuObArray.GetAt(n))->m_addr,((CP erson*)pDoc->m_stuObArray.GetAt(n))->m_qq) ;MessageBox(str) ;break ;}}if(n==pDoc->GetAllRecNum()){CString str ;str.Format("没有该学生的信息!") ;MessageBox(str) ;}}(2)学生信息管理应用程序课程设计题目2:一个简单的学生信息管理应用程序一、设计目标与内容:1了解Windows编程的基础知识,掌握MFC应用程序的基本知识;2基本掌握面向对象程序设计的基本思路和方法;3掌握用VC++开发应用程序的的一般步骤和方法;4能够利用所学的基本知识, 设计一个简单的学生信息管理应用程序,具有以下功能:①实现学生信息的存储,可以用文件来实现。
windows实践报告Windows 实践报告一、概述Windows 操作系统是由微软公司开发的一款常见的电脑操作系统,广泛应用于个人电脑和商业领域。
本报告旨在对Windows操作系统进行实践研究和评估,探讨其功能和优点,并提供一些建议和改进建议。
二、安装与配置1. 安装过程对于Windows操作系统的安装,用户可以选择不同版本和版本号,根据自己的需求和硬件要求安装合适的版本。
安装过程通常简单明了,只需按照提示逐步操作,耐心等待即可完成。
2. 初始设置安装完成后,系统会要求进行一些初始设置,例如选择区域、键盘布局、网络连接等。
用户可以根据自己的需求进行个性化设置,以提高系统的适用性。
三、界面与功能1. 界面设计Windows操作系统具有直观友好的用户界面,包括任务栏、开始菜单、桌面图标等。
用户可以自由地调整和设置界面,以适应不同的使用习惯和需求。
2. 多任务处理Windows操作系统支持多任务处理,用户可以同时打开多个程序窗口并切换,提高工作效率和信息处理能力。
此外,Windows还提供了窗口管理功能,如分屏显示和虚拟桌面,使操作更加方便和灵活。
3. 文件管理Windows操作系统内置了强大的文件管理功能,包括文件浏览器、文件搜索、复制、剪切、粘贴等。
用户可以轻松管理和操作文件,提高工作效率。
四、应用程序与工具1. 办公套件Windows操作系统支持各种办公软件,如Microsoft Office套件(Word、Excel、PowerPoint等),这些软件提供了丰富的功能和模板,满足用户的办公需求。
2. 多媒体工具Windows操作系统内置了各种多媒体工具,如Windows Media Player、Windows 媒体中心等,用户可以轻松播放音频、视频和图片文件,提供了丰富的娱乐和媒体体验。
3. 系统工具Windows操作系统还提供了多种实用的系统工具,如安全防护工具、系统优化工具、磁盘清理工具等,帮助用户保持系统的稳定性和安全性。
~Windows程序设计实践报告;BY:08级空间信息与数字技术 60020马腾目录任务一:Windows消息循环机制及API程序设计实践 (3)一、实践目的 (3)二、任务概述 (3)三、windows消息循环 (3)四、学习收获 (3)任务二:基于MFC的对话框程序设计 (4)一、任务概述 (4)二、MFC消息映射 (4)三、计算器程序的设计思路 (4)四、遇到困难及解决 (5)五、关键代码 (5)六、运行情况 (6)七、收获 (6)任务三:基于MFC的单文档绘图程序设计 (7)一、任务概述 (7)二、模块设计及封装 (7)三、设计的优点 (8)四、程序风格 (8)五、运行情况 (8)六、使用方式 (9)七、困难及解决 (12)任务一:Windows消息循环机制及API程序设计实践一、实践目的通过实践充分理解Windows的消息循环机制,了解Windows的API函数族的分类及大致功能,并在此基础上了解基本Windows API方式开发的窗口程序的基本过程。
任何框架开发环境归根结底都是对Windows API函数的封装与调用。
在利用一个框架环境开发Windows程序的过程中,应该明白所使用的框架模块调用了Windows API中的那些功能函数。
二、任务概述用visual C++开发一个Win32窗口程序,并实现如下功能:实现菜单功能;点击某两个菜单可在主窗口中显示或清除文字(文字内容不做要求);点击某个菜单可弹出一个自定义的对话框(对话框中的元素不做要求),单击对话框中的“确定”或“取消”按钮,可结束对话框。
三、windows消息循环Windows多进程的窗口图形操作系统与DOS操作系统最大的区别就是:DOS 采用顺序执行的过程,而Windows采用事件的消息驱动。
用户进行的鼠标操作,键盘输入等操作和各个应用程序之间,应用程序和系统之间的操作都作为一个事件,产生消息,进入到指定的消息队列中,等待取出进行处理。
这打破了顺序执行,而采用事件驱动的形式。
四、学习收获1.了解了Windows的消息循环机制2.了解了一个窗口程序的生存的始末,从窗口类的定义,注册窗口类,创建窗口,到程序运行的消息循环的主函数。
3.了解了句柄的概念,每个菜单项,窗口都有一个句柄作为自己的标示,作为消息的一部分,告诉系统处理哪个窗口,菜单项的消息。
4.了解了一些简单的API:CheckMenuItem,DialogBox等。
5.了解了消息分类,处理消息的函数里,将消息分为了WM_COMMAND、WM_PAINT等分别处理窗口命令、窗口的绘制等消息。
以及他们之间的关系。
任务二:基于MFC的对话框程序设计一、任务概述用MFC开发一个计算器程序:对话框类型的程序;能够实现浮点数值的加减乘除运算;界面由一个编辑框和若干按钮组成,编辑框负责表达按钮输入及计算的结果,按钮负责输入数字、加减乘除以及等于等动作的输入;程序的核心功能由标准C++方式实现,并通过MFC框架代码调用其功能;二、MFC消息映射方法:在MFC的类库中有些事继承了CCmdTarget类的类,这些类和消息有关,可以处理消息。
然后为每一个能处理消息的类建立一个消息映射表,就像一张Message Map,将消息和表格中的元素比较,然后调用对应的处理程序,这种操作就叫消息映射。
其中消息映射表的建立使用了几个定义好的宏实现的。
DECLARE_MESSAGE_MAP()BEGIN_MESSAGE_MAP(theClass,baseClass)ON_COMMAND(id,memberFxn)......END_MESSAGE_MAP()来实现对 DECLARE_MESSAGE_MAP定义的结构体的填写。
消息表条目就以ON_COMMAND (id,memberfxn)的格式宏定义不同类型的消息,其中对应消息的句柄,memberfxn表示消息引发的要处理的函数。
将要实现的消息写在BEGIN_MESSAGE_MAP与END_MESSAGE_MAP之间。
然后再编写消息实现的动作在对应的memberfxn函数中。
优点:可以使代码更有条理,要实现的具体功能函数写在一个单独的函数中。
三、计算器程序的设计思路1.确定实现计算功能类的具体结构,需要的成员变量,成员函数等2.在MFC中实现计算器程序的UI3.为UI中的按钮添加事件,并到调用C++功能类中的函数。
4.调试程序,修改BUG四、遇到困难及解决1.对于小数点等符号的处理,输入一个小数点后,不允许再输入,用了一个text1的标识符进行判断。
2.其他符号的重复输入等。
也是利用了定义的变量进行控制texti和text2进行对加减乘除和等号的控制。
五、关键代码功能类声明的成员函数和属性内容,其中constr1 constr2分别储存两个操作数,symb储存符号,result存结构。
外部通过三个send开头的函数传递参数。
Compute是计算函数,其中通过一个switch判断Symb是哪种类型,执行相应的计算语句。
实现了UI上的即使更新。
在输入符号时表示一个操作数的输入完成,所以调用sendconstr方法把参数传入。
同时在输入符号时要判断,是否之前已经连续输入过。
通过text来控制。
六、运行情况由于之前是按照实际的计算器来设计的,没有参照windows里的计算器程序,所以没有设计连乘,连减等功能。
由于之前忘记了考虑负号的问题,所以之后的设计可以用减号来代替负号。
七、收获了解到了MFC中消息映射的实现机制,和如何写消息实现的具体函数,如何修改消息映射表。
通过这次的程序设计体会到了程序设计之初算法设计的重要性,由于之前没有很好的考虑算法,以至于到后面的编写,修改十分的困难,特别是在符号的重复输入,用户的异常处理这一方面,程序应有很大的改进。
虽然很多的BGU最后克服了,但是代码看起来很乱,使用的标识符有时自己也无法分辨。
所以在以后的程序设计中一定会注意做好第一步的设计,不会再盲目的拿来题目就写。
争取在设计之初就把所有可能出现的情况都考虑全面。
任务三:基于MFC的单文档绘图程序设计一、任务概述用MFC开发一个单文档的绘图程序:通过鼠标左键的点击在视图中绘制不同的图形,可绘制的图形包括折线、多边形,并且折线的线宽、颜色以及线形都是可以改变的,多边形的填充方式也可以定制;绘制的图形可以以保存为矢量(矢量格式自定义)文件,并且可以在程序中再次打开,矢量数据的线宽、线形、颜色以及填充模式都要保存在矢量数据文件中,重新打开的矢量数据文件应该是可以再次编辑、修改的。
二、模块设计及封装1.绘制模块:包括动态绘制方法和绘制方法。
其中动态绘制是实现鼠标移动期间的动态绘制。
2.存储模块:包括存储成.mc文件和打开.mc文件两个方法。
3.图形文件格式:直线,椭圆,矩形等绘制均存储两个顶点的方式,折线。
4.编辑模块:包括画笔宽度设置,画笔颜色设置,画刷颜色设置和撤销。
模块的封装:三、设计的优点1.绘制等函数都采用虚函数,对于不同的图形实现各自独特的绘制函数。
这样在就可以用Shape指针的数组来统一的存储图形,在绘制时动态的调用相对的函数。
2.通过上边的方法很好的解决了不同的图形叠加在一起里的问题,使得最后的绘制只需要按照一个for循环的遍历就可以完成。
3.绘制的功能函数与MFC框架很好的分离,功能更函数等类用的是C++的格式,其中的绘制函数用的是Windows API,可以很好的实现代码的复用,在其他框架下也能使用。
四、程序风格1.有时标识符会拼音与英文混用2.喜欢把动态变化的东西设置为静态的成员变量3.代码不够简洁,喜欢把类似功能的代码COPY到另一个地方做修改,所以看起来有些乱。
4.将所有自己写的类的声明写在一个总的头文件中,这样引入到MFC中比较方便5.使用指针,而忽略了引用。
以后应该多使用引用,看起来比较简单。
6.注释喜欢写在声明部分五、运行情况程序可以正常的运行,完成各项功能:六、使用方式1.属性设置单击属性中的画笔颜色或者画刷颜色进行颜色属性的设置。
单击属性中的画笔宽度,弹出对话框,可以滑动滚动条对宽度进行设置。
2.绘图单击绘图可以选择相应的图形对齐进行绘制。
3.编辑部分单击编辑中的撤销,可以撤回上一步,删除最顶层的图形,对于新打开的文件一样适用单击文件中的打开或新建或询问是否保存文件选择.mc格式的文件,即可打开。
保存按钮可以存储现在正在编辑的文件。
七、困难及解决1.在最初的编写功能类时实现了一些设置各种属性的函数,发现到后面的设计绘制中用不到,没有很好的了解软件的使用实现流程。
2.对于颜色模式的认识不够清楚导致了很长一段时间绘不上去,却找不出BUG发现最初的默认画笔的颜色不正确。
3.函数名的冲突,椭圆函数名与API中的函数名产生了冲突,又重新再之前加了MY4.动态绘制时,临时文件的存储位置,由于为了与MFC的完全分离,所以在Shape类中加了几个静态的变量用来存储动态的内容,发现这样做让程序很难看懂,所以以后这些东西还是写在MFC中比较好5.内存的溢出,最初使用的数组是存储shape类的实例,而原来new的未删除,效率很低,后来该做存储指针来避免空间的浪费。
启示:设计一个软件时最初的功能流程图的设计,绘制很重要,要在功能数据流程图设计好的情况下,再去设计类图,类和类之间的关系。
—。