实验10 多文档界面程序设计
- 格式:doc
- 大小:182.00 KB
- 文档页数:3
VC++程序设计实验指导体系计算机教学实验中心2002目录第一部分基本实验 (4)实验一、Visual Studio集成环境及C++程序的输入、调试和运行 (4)实验二、面向对象程序设计(4学时,分2次完成) (5)实验三、基本WINDOWS应用程序编程(6学时,分3次完成) (5)第二部分综合实验 (7)实验四、文档/视图结构程序设计(6学时,分3次完成) (7)实验五、对话框应用程序设计(2学时,分2完成) (7)第三部分选作实验 (8)1.图示排序过程(冒泡排序法) (8)2.改进的人事管理系统 (8)3.编写一个公司产量图示程序。
(9)4.简单翻译程序 (9)5.编写一个绘图程序 (10)6.编写一个机械机构的运动仿真程序。
(10)7.编写一个赛车游戏程序。
(11)8.编写一个金鱼游戏程序。
(11)9.编写一个模拟录像机的程序。
(12)10.编写一个模拟时钟程序。
(12)11.设计一个壁球程序。
(13)12.编写一个接金子游戏程序。
(13)13.编写一个爆破人游戏程序。
(13)14.编写一个五子棋游戏程序。
(14)15.编写一个单项选择题的考试系统程序。
(14)16.编写一个猫捉老鼠游戏程序。
(15)17.编写一个改进的吹泡泡程序 (16)18.编写打字练习游戏 (16)19.编写一个赛马游戏程序。
(17)20.编写一个背单词程序。
(17)21.编写一个走迷宫游戏程序。
(18)22.编写一个苹果棋游戏程序。
(18)23.编写一个飞碟射击游戏程序。
(19)24.编写一个飞碟射击游戏程序。
(19)25.编写文本阅读器程序,可以显示文本文件(后缀名为TXT)的内容。
(20)26.编写一个简易俄罗斯方块游戏程序。
(20)27.贪吃的蛇(L V J UN) (21)28.图示梵塔过程 (21)29.人事管理 (22)30.编写简易C程序编辑器 (23)31.加减法判卷程序 (23)《程序设计》实验指导书使用说明教材《VC+ +面向对象与程序设计》的一个特色就是包含了实验指导书,其中每章的调试技术、程序设计举例、上机练习题目即为实验指导书的内容;调试技术:介绍Developer Studio集成开发环境的使用方法,以及如何调试、连接和运行Visual C++应用程序项目。
实验九界面设计一、实验目的1. 熟悉菜单、通用对话框、多文档界面(MDI)、工具栏等界面设计的方法。
2. 掌握界面的设计和对对象编写代码。
二、实验内容1. 设计制作普通菜单和弹出菜单。
2. 设计制作工具栏。
3. 利用“应用程序向导”制作多文档界面(MDI)应用程序。
三、实验步骤及指导1. 制作菜单将实验四(常用控件)和实验七(数组)中的部分实验项目合并为一个多窗体工程,在工程中设计一个含有菜单栏的主窗体,通过菜单统一管理各实验项目程序的运行。
(1)设计主窗体界面新建工程,将窗体Form1的名称改为frmMain作为主窗体,以“菜单.vbp”为名称保存工程。
用菜单编辑器为主窗体设计菜单,菜单结构如表9-1所示。
注意主菜单标题“弹出菜单”下的菜单项为菜单控件数组,名称为mnuSub,索引为0,标题为空。
表9-1 主窗体菜单结构(2)添加各实验项目窗体单击工具栏“添加窗体”按钮,在“添加窗体”对话框中选择“现存”选项卡,根据上述菜单结构,将实验四(常用控件)和实验七(数组)中有关实验项目的窗体添加到本工程中,注意不能有名称(Name)相同的窗体。
建议:为了对工程中的文件进行统一管理,减少程序移植运行时出错的机会,最好将本工程用到的所有文件存放在同一文件夹下。
(3)编写代码在菜单栏中,用于启动各实验项目窗体的菜单项分别位于主菜单标题“常用控件”和“数组”之下。
程序代码的任务主要是响应菜单栏中各菜单项的单击事件以及弹出式菜单的创建和激活。
响应菜单项单击事件。
菜单项单击事件过程的代码很简单,只需显示对应的窗体即可。
例如,在“秒表”菜单项的单击事件mnuTimer_Click过程中加入以下代码即可显示秒表窗体。
frmTimer.Show 创建弹出式菜单。
弹出式菜单只能显示位于同一个主菜单标题下的菜单项,要想在一个弹出式菜单中显示来自不同菜单标题的菜单项,需要进行特殊处理。
处理的方法很多,本例采用动态创建弹出式菜单项的方法。
一、实验目的1. 熟悉计算机操作系统的界面操作方法。
2. 掌握常用软件的界面布局和功能。
3. 提高计算机操作技能,提高工作效率。
二、实验内容1. 系统界面操作2. 常用软件界面操作3. 界面布局调整三、实验环境1. 操作系统:Windows 102. 显示器:19201080分辨率3. 主机:Intel Core i5处理器,8GB内存4. 常用软件:Microsoft Office、Adobe Photoshop、浏览器等四、实验步骤及结果1. 系统界面操作(1)桌面操作1)打开桌面,观察桌面布局,包括桌面图标、任务栏、系统托盘等。
2)对桌面图标进行操作,如新建、重命名、删除等。
3)调整桌面布局,如排列图标、调整任务栏位置等。
(2)开始菜单操作1)打开开始菜单,观察菜单内容,包括常用程序、所有程序、设置等。
2)启动常用程序,如计算器、记事本等。
3)打开所有程序,查看所有安装的程序。
(3)任务栏操作1)查看任务栏,了解任务栏的组成,如任务栏图标、通知区域等。
2)调整任务栏显示,如隐藏任务栏、固定任务栏等。
3)切换任务,如切换至其他应用程序。
2. 常用软件界面操作(1)Microsoft Office1)打开Word,观察界面布局,包括标题栏、菜单栏、工具栏、编辑区等。
2)创建文档,输入文字,保存文档。
3)调整文档格式,如字体、字号、段落等。
(2)Adobe Photoshop1)打开Photoshop,观察界面布局,包括菜单栏、工具箱、图层面板、历史记录面板等。
2)新建图片,调整图片大小、分辨率等。
3)使用工具箱中的工具进行图片编辑,如裁剪、填充、图层操作等。
(3)浏览器1)打开浏览器,输入网址,访问网页。
2)浏览网页内容,如阅读文章、观看视频等。
3)保存网页,如保存网页图片、保存网页链接等。
3. 界面布局调整1)调整窗口大小,如最大化、最小化、还原等。
2)调整窗口位置,如拖动窗口至屏幕边缘、使用窗口缩放功能等。
学习目标:✧理解文档视图结构处理的方式。
✧懂得.net下MDI程序的设计。
2.1多文档程序设计:2.1.1文档/视图结构:在文档视图结构里,文档是一个应用程序数据基本元素的集合,它构成应用程序所使用的数据单元,另外它还提供了管理和维护数据的手段。
文档对象负责来自所有数据源数据的管理。
数据源的分类:文档、磁盘文件、数据库等。
视图是数据的用户窗口,为用户提供了文档的可视的数据显示,它把文档的部分或全部内容在窗口中显示出来。
每个文档都会有一个或多个视图显示,一个文档可以有多个不同的视图。
在文档视图结构里,文档和视图分别进行独自的处理。
2.1.2文档/视图结构拘程序的类型:两种基于文档视图结构程序的程序:基于文档视图结构的单文档界面(SDI)应用程序。
基于文档视图结构的多文档界面(MDI)应用程序。
1.基于文档视图结构的单文档界面(SDI)应用程序:在单文档界面程序中(SDI)中,用户在同一时刻只能操作一个文档。
2.基于文档视图结构的多文档界面(MDI)应用程序:在多文档界面应用程序(MDI)中,但它允许同时操作多个文档。
2.1.3文档/视图结构拘的应用:1.文档视图结构(及程序)的优点:《1》简化了应用程序的设计开发过程;《2》将数据操作和数据显示、用户界面分离开,使模块划分更加合理、模块独立性更强,同时也简化了数据操作和数据显示、用户界面工作。
《3》便于系统扩展和重构。
程序文档主要负责数据管理,不涉及用户界面;视图主要负责数据输出和用户界面的交互。
2.文档视图结构的适用范围:有大量数据数据要进行处理的场合下。
中处理多文档程序的相关知识:2.2.1MDI父窗体和子窗体:在.NET中,多文档界面应用程序的基础是MDI父窗体,它是包括MDI子窗口的窗体,MDI子窗口是用户与MDI应用程序在其中进行交互的子窗口。
在.NET中MDI父窗体唯一的要求是将窗体的ISMdiContainer 属性设置为True。
2.2.2设置窗体为MDI主窗体:IsMdiContainer:该值指示窗体是否为多文档界面(MDI)子窗体的容器。
实验一:设计简单的VB 应用程序一、实验目的1.掌握Visual Basic 启动和退出的方法。
2.熟悉Visual Basic 的集成开发环境。
3.掌握Visual Basic 程序设计的基本步骤,了解VB 程序的编写、保存和编译的方法过程。
4.初步了解几个常用基本控件控件(标签、命令按钮和文本框)的使用方法。
二、实验类型综合三、实验时间:2012-3-9四、实验任务1、启动Visual Basic ,然后创建一个“标准 EXE ”工程(保存在D 盘以自己学号命名的文件夹中,文件名和窗体名均为SJT ),并了解Visual Basic 集成开发环境下各组成部分及其作用。
2、编一程序,计算任意输入的正整数的平方根。
3、编写一个应用程序,界面如图1-1所示。
窗体中文字“VB 应用程序!”为一标签控件,单击标题为“放大”的命令按钮,则“VB 应用程序!”的字号放大一号,单击“缩小”按钮则反之;同时,窗体中还有4个含某种指向图案的按钮,若单击某个按钮,则使“VB 应用程序!”向该按钮所指向的方向移动50Twip 。
(提示:四种指向的图案可以在Visual Basic 安装目录中的“…graphics\icon\Arrows ”子目录中找到,名称分别为arw07dn.ico 、arw07lt.ico 、arw07rt.ico 和arw07up.ico )五、实验要求 写出实验报告,内容是:1、第1小题的操作步骤2、第2、3题1).程序的界面设计。
2).程序主要代码。
3).运行结果(输入与输出)。
4).实验总结。
(写上你自己的总结。
可以从以下几个方面来总结:你在编程过程中花时多少?时间是怎么分配的?多少时间在思考问题?遇到了哪些难题?你是怎么克服的?你对你的程序的评价?你的收获有哪些?)图1-1 实验1-2程序运行实验二:数据的输入和输出一、实验目的1.掌握常量和变量、表达式的基本概念和正确书写格式。
2.掌握基本语句(Print语句、赋值语句、Dim语句等)的使用;3、掌握常用函数的正确使用方法;4、掌握数据的动态输入InputBox和信息提示MsgBox的基本使用方法。
精通C#与.NET4.0数据库开发实验报告实验题目:多文档窗体专业计算机科学与技术学生姓名班级学号教师指导单位日期教师评语教师签名:年月日成绩评定备注一、实验目的1. 学会在Visual Studio 2010中创建多文档应用程序。
2. 学会在多文档窗体添加子窗体到父窗体。
3. 学会操作、排列子窗体。
二、实验环境Visual Studio 2010三、实验内容例6-1:源代码:public partial class FrmMDIMain : Form{private int childFormNumber = 0;public FrmMDIMain( ){InitializeComponent( );}private void ShowNewForm(object sender, EventArgs e){Form childForm = new Form( );childForm.MdiParent = this;childForm.Text = "窗口 " + childFormNumber++;childForm.Show( );}private void OpenFile(object sender, EventArgs e){OpenFileDialog openFileDialog = new OpenFileDialog( );openFileDialog.InitialDirectory =Environment.GetFolderPath(Environment.SpecialFolder.Personal);openFileDialog.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";if (openFileDialog.ShowDialog(this) == DialogResult.OK){string FileName = openFileDialog.FileName;}}private void SaveAsToolStripMenuItem_Click(object sender, EventArgs e) {SaveFileDialog saveFileDialog = new SaveFileDialog( );saveFileDialog.InitialDirectory =Environment.GetFolderPath(Environment.SpecialFolder.Personal);saveFileDialog.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";if (saveFileDialog.ShowDialog(this) == DialogResult.OK){string FileName = saveFileDialog.FileName;}}private void ExitToolsStripMenuItem_Click(object sender, EventArgs e) {this.Close( );}private void CutToolStripMenuItem_Click(object sender, EventArgs e){}private void CopyToolStripMenuItem_Click(object sender, EventArgs e){}private void PasteToolStripMenuItem_Click(object sender, EventArgs e) {}private void ToolBarToolStripMenuItem_Click(object sender, EventArgs e) {toolStrip.Visible = toolBarToolStripMenuItem.Checked;}private void StatusBarToolStripMenuItem_Click(object sender, EventArgs e) {statusStrip.Visible = statusBarToolStripMenuItem.Checked;}private void CascadeToolStripMenuItem_Click(object sender, EventArgs e) {LayoutMdi(MdiLayout.Cascade);}private void TileVerticalToolStripMenuItem_Click(object sender, EventArgs e) {LayoutMdi(MdiLayout.TileVertical);}private void TileHorizontalToolStripMenuItem_Click(object sender, EventArgs e) {LayoutMdi(MdiLayout.TileHorizontal);}private void ArrangeIconsToolStripMenuItem_Click(object sender, EventArgs e) {LayoutMdi(MdiLayout.ArrangeIcons);}private void CloseAllToolStripMenuItem_Click(object sender, EventArgs e) {foreach (Form childForm in MdiChildren){childForm.Close( );}}private void optionsToolStripMenuItem_Click(object sender, EventArgs e) {}private void printPreviewToolStripMenuItem_Click(object sender, EventArgs e) {}private void tsmiCloseCurFrm_Click(object sender, EventArgs e){Form childForm = this.ActiveMdiChild; //获取当前活动的子窗体if (childForm != null){childForm.Close( ); //关闭子窗体}}}例6-2:(1)源代码:public partial class FrmMain : Form{private int childFormNumber = 0;public FrmMain( ){InitializeComponent( );}private void ShowNewForm(object sender, EventArgs e){Form childForm = new Form( );childForm.MdiParent = this;childForm.Text = "窗口 " + childFormNumber++;childForm.Show( );}private void OpenFile(object sender, EventArgs e){OpenFileDialog ofdlg = new OpenFileDialog( ); //创建OpenFileDialog 对象ofdlg//设置打开文件对话框的默认路径为“我的文档”ofdlg.InitialDirectory =Environment.GetFolderPath(Environment.SpecialFolder.Personal);ofdlg.Filter = "文本文件(*.txt)|*.txt"; //设置只接受txt为扩展名的文件if (ofdlg.ShowDialog(this) == DialogResult.OK) //显示打开文件对话框 {string fileName = ofdlg.FileName; //获取要打开的文件名 FrmReader frm = new FrmReader(fileName); //创建查看文件的子窗体frmfrm.MdiParent = this; //设置子窗体frm的父窗体为当前窗体frm.Show( ); //显示子窗体}}private void SaveAsToolStripMenuItem_Click(object sender, EventArgs e) {SaveFileDialog saveFileDialog = new SaveFileDialog( );saveFileDialog.InitialDirectory =Environment.GetFolderPath(Environment.SpecialFolder.Personal);saveFileDialog.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";if (saveFileDialog.ShowDialog(this) == DialogResult.OK){string FileName = saveFileDialog.FileName;}}private void ExitToolsStripMenuItem_Click(object sender, EventArgs e){this.Close( );}private void CutToolStripMenuItem_Click(object sender, EventArgs e){}private void CopyToolStripMenuItem_Click(object sender, EventArgs e){}private void PasteToolStripMenuItem_Click(object sender, EventArgs e){}private void ToolBarToolStripMenuItem_Click(object sender, EventArgs e) {toolStrip.Visible = toolBarToolStripMenuItem.Checked;}private void StatusBarToolStripMenuItem_Click(object sender, EventArgs e) {statusStrip.Visible = statusBarToolStripMenuItem.Checked;}private void CascadeToolStripMenuItem_Click(object sender, EventArgs e) {LayoutMdi(MdiLayout.Cascade);}private void TileVerticalToolStripMenuItem_Click(object sender, EventArgs e) {LayoutMdi(MdiLayout.TileVertical);}private void TileHorizontalToolStripMenuItem_Click(object sender, EventArgs e) {LayoutMdi(MdiLayout.TileHorizontal);}private void ArrangeIconsToolStripMenuItem_Click(object sender, EventArgs e) {LayoutMdi(MdiLayout.ArrangeIcons);}private void CloseAllToolStripMenuItem_Click(object sender, EventArgs e) {foreach (Form childForm in MdiChildren){childForm.Close( );}}private void aboutToolStripMenuItem_Click(object sender, EventArgs e){AboutBox dlg = new AboutBox( );dlg.ShowDialog(this);}private Color _ViewBackColor = Color.White; //阅读的背景色字段及默认值private Color _ViewForeColor = Color.Black; //阅读的前景色字段及默认值private Font _ViewFont = SystemFonts.DefaultFont; //阅读的字体字段及默认值//"选项"菜单处理函数,打开SettingDlg,并将新参数更新到已打开的子窗体private void optionsToolStripMenuItem_Click(object sender, EventArgs e) {SettingDlg dlg = new SettingDlg(this._ViewBackColor, //用当前阅读参数创建SettingDlg对象dlgthis._ViewForeColor,this._ViewFont);if (dlg.ShowDialog(this) == DialogResult.OK) //显示参数设置对话框,并等待用户设置{this._ViewBackColor = dlg.GetBackColor( ); //获取用户最新的阅读参数this._ViewFont = dlg.GetFont( );this._ViewForeColor = dlg.GetForeColor( );foreach (Form frm in this.MdiChildren) //遍历所有子窗体 {FrmReader frmRd = frm as FrmReader; //如果子窗体是FrmReader类型if (frmRd != null) //则更新最新参数到子窗体{frmRd.SetViewSettings(this._ViewBackColor,this._ViewForeColor, this._ViewFont);}}}}}(2)源代码:namespace MultiTextReader{partial class AboutBox : Form{public AboutBox( ){InitializeComponent( );this.Text = String.Format("关于 {0} {0}", AssemblyTitle);belProductName.Text = AssemblyProduct;belVersion.Text = String.Format("版本 {0} {0}", AssemblyVersion);belCopyright.Text = AssemblyCopyright;belCompanyName.Text = AssemblyCompany;this.textBoxDescription.Text = AssemblyDescription;}}}四、实验总结通过此次实验,我学会了在Visual Studio 2010中创建多文档应用程序;也基本掌握了在多文档窗体添加子窗体到父窗体的具体方法;对于操作、排列子窗体进行了相应的练习。
实验10 多文档界面程序设计
实验目的:
1、了解MDI窗体和子窗体的特点;
2、掌握简单的多文档界面程序的设计。
实验内容:
1、实验要求
设计一个多文档界面的应用程序,能够新建多个子窗体,实现子窗体之间的复制,并对子窗体进行排列。
2、分析设计
(1)先设计一个主界面,单击右键选择进入MDIForm1;
(2)创建MDI窗体,并添加窗体菜单:“文件”、“编辑”、“窗口”等;
(3)在窗口菜单中,显示打开的子窗体列表,并实现子窗体的层叠、平铺、排列图标的排列方式。
3
4、窗体设计
5、源代码
主界面代码:
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then PopupMenu kjcd
End Sub
Private Sub pcontinue_Click()
Me.Hide
MDIForm1.Show
End Sub
Private Sub pend_Click()
End
End Sub
MDI窗体代码:
Dim no%
Private Sub arrangicon_Click()
MDIForm1.Arrange 3
End Sub
Private Sub cd_Click()
MDIForm1.Arrange 0
End Sub
Private Sub copy_Click()
Clipboard.SetText Me.ActiveForm.ActiveControl.SelText
End Sub
Private Sub exit_Click()
Unload Me
FrmMain.Show
End Sub
Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Cancel = -1
End Sub
Private Sub new_Click()
Dim Newform As New Form1
no = no + 1
Newform.Caption = "子窗体" & no
Newform.Show
End Sub
Private Sub paste_Click()
Me.ActiveForm.Text1.SelText = Clipboard.GetText
End Sub
Private Sub pp_Click()
MDIForm1.Arrange 1
End Sub
实验思考:
试与实验9内容合并,完成一个类似WORD的应用程序。