实验五Windows应用程序设计DOC.docx

上传人:b****5 文档编号:14782601 上传时间:2023-06-27 格式:DOCX 页数:24 大小:96.16KB
下载 相关 举报
实验五Windows应用程序设计DOC.docx_第1页
第1页 / 共24页
实验五Windows应用程序设计DOC.docx_第2页
第2页 / 共24页
实验五Windows应用程序设计DOC.docx_第3页
第3页 / 共24页
实验五Windows应用程序设计DOC.docx_第4页
第4页 / 共24页
实验五Windows应用程序设计DOC.docx_第5页
第5页 / 共24页
实验五Windows应用程序设计DOC.docx_第6页
第6页 / 共24页
实验五Windows应用程序设计DOC.docx_第7页
第7页 / 共24页
实验五Windows应用程序设计DOC.docx_第8页
第8页 / 共24页
实验五Windows应用程序设计DOC.docx_第9页
第9页 / 共24页
实验五Windows应用程序设计DOC.docx_第10页
第10页 / 共24页
实验五Windows应用程序设计DOC.docx_第11页
第11页 / 共24页
实验五Windows应用程序设计DOC.docx_第12页
第12页 / 共24页
实验五Windows应用程序设计DOC.docx_第13页
第13页 / 共24页
实验五Windows应用程序设计DOC.docx_第14页
第14页 / 共24页
实验五Windows应用程序设计DOC.docx_第15页
第15页 / 共24页
实验五Windows应用程序设计DOC.docx_第16页
第16页 / 共24页
实验五Windows应用程序设计DOC.docx_第17页
第17页 / 共24页
实验五Windows应用程序设计DOC.docx_第18页
第18页 / 共24页
实验五Windows应用程序设计DOC.docx_第19页
第19页 / 共24页
实验五Windows应用程序设计DOC.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

实验五Windows应用程序设计DOC.docx

《实验五Windows应用程序设计DOC.docx》由会员分享,可在线阅读,更多相关《实验五Windows应用程序设计DOC.docx(24页珍藏版)》请在冰点文库上搜索。

实验五Windows应用程序设计DOC.docx

实验五Windows应用程序设计DOC

 

大理学院课程教案

(实验教学)

 

课程名称:

C#面向对象程序设计

课程类型:

(1)1、必修;2、选修;3、其它

授课对象:

计算机科学与技术专业(本、专科)2013级1、2班

授课时间:

2014至2015学年第3学期

计划学时:

36学时(其中:

理论36,实验:

36)

任课教师:

杜英国

所属学院:

数学与计算机学院

课程管理部门(教研室):

软件教研室

 

大理学院教务处制

 

课程名称:

C#面向对象程序设计

教材:

C#程序设计实用教程黄兴荣李昌领李继良编著清华大学出版社

授课人1:

杜英国专业技术职务:

讲师

学历:

研究生学位:

硕士

授课人2:

专业技术职务:

学历:

学位:

实验题目:

Windows应用程序设计计划学时:

3

实验类型:

(4)1、演示性2、验证性3、综合性4、设计性

每组实验的学生人数:

1人

教学目的和要求:

熟悉C#集成开发环境;了解各功能的菜单命令;显示所有的可见窗口和所有工具栏(箱),随后再将上述的窗口和工具栏(箱)进行隐藏;了解工具栏(箱)中有哪些主要控件;了解控件的属性及事件;掌握控制台应用程序的输入输出方法的使用。

实验方法(包括实验中需要注意的问题等):

1.在VS下,创建一个窗体应用程序。

2.在解决方案资源管理其中创建子窗体。

3.在窗体上搭建相关控件。

4.编写代码。

5.注意个窗体之间的数据回传。

实验重点(主要解决的问题和达到的目的):

1.窗体、控件的使用。

2.理解窗体间数据回传。

3.掌握分级信息的处理。

实验难点(预计实验过程中会遇到的问题和解决方案):

1.窗体间数据回传。

2.分级信息的处理。

教学方法(实验前的教学和实验过程中的指导方法):

实验前教师先讲解完9章内容,学生认真复习9章内容;在实验过程中结合实验环境教师可先提示性讲解实验内容,再由学生自己完成实验。

如果实验完成情况较差,教师统一辅导。

实验仪器和材料:

计算机,WindowsXP,VS2008

实验报告要求和思考题:

教师现场检查评价本次实验。

参考资料:

《C#程序设计项目教程—实验指导与课程设计》黄兴荣编著清华大学出版社 

实验5Windows应用程序设计

完成具有如下层次结构节点信息的添加与显示。

例如:

大学

—>楚雄师范院

—>大理学院

—>文学院

—>数学与计算机学院

—>计算机科学与技术专业

2010级计算机科学与技术专业2班

2010级计算机科学与技术专业1班

序号

学号

姓名

性别

1

2009162201

涂桂江

2

2010162102

何芹芹

3

2010162130

张康

4

2010162131

章雕

—>信息与计算科学专业

—>通信专业

根节点使用Root类来表示,参考代码如下:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Text;

namespaceWindowsApplication1

{

classRoot

{

stringrootName;

publicstringRootName

{

set

{

rootName=value;

}

get

{

returnrootName;

}

}

publicListuniversityList=newList();//存储root节点的子节点,这里是university节点

}

}

主界面设计如下:

树图控件(TreeView)、列表视图控件(ListView)、上下文菜单(ContextMenuStrip),同学还可以自己添加主菜单来实现上下文菜单功能。

主要功能:

通过上下文菜单实现节点信息的添加,每一类信息的添加都在一个单独的界面下完成。

之后,把所添加的信息回传给Form1窗体。

窗体之间的数据回传(通信)通过事件机制实现。

树图控件(TreeView)显示所有节点的层次信息。

列表视图控件(ListView)显示当前节点的子节点的详细信息。

部分程序参考代码:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Text;

usingSystem.Windows.Forms;

namespaceWindowsApplication1

{

publicdelegatevoidUniversityDelegate(objectsender,UniversityEventArgse);//学校回传数据事件使用的代理

publicdelegatevoidInstituteDelegate(objectsender,InstituteEventArgse);//学院回传数据事件使用的代理

publicpartialclassForm1:

Form

{

TreeNodenode;

Rootroot;//根节点

ListViewItemitem;

///

///初始化Form1窗体,初始化树视图

///

publicForm1()

{

InitializeComponent();

root=newRoot();

root.RootName="大学";

node=newTreeNode(root.RootName);

treeView1.Nodes.Add(node);

}

///

///学校事件回调函数

///

///University窗体

///UniversityEventArgs实例

publicvoidReceiveUniversityData(objectsender,UniversityEventArgse)

{

if(treeView1.SelectedNode==null)

{

MessageBox.Show("请选择一个节点","提示信息",MessageBoxButtons.OK,MessageBoxIcon.Information);

return;

}

else

{

node=newTreeNode(e.XiaoMing);

treeView1.SelectedNode.Nodes.Add(node);

e.FuJieDian="Root";

root.universityList.Add(e);//同学注意这条语句的作用,

//由于在选中根节点的时候要在列表视图里面

//显示根节点的所有子节点即大学节点信息

//所以要记录所有大学的信息

treeView1.SelectedNode=node;

}

}

publicvoidReceiveInstitute(objectsender,InstituteEventArgse)

{

if(treeView1.SelectedNode==null)

{

MessageBox.Show("请选择一个节点","提示信息",MessageBoxButtons.OK,MessageBoxIcon.Information);

return;

}

else

{

node=newTreeNode(e.XueYuanMing);

treeView1.SelectedNode.Nodes.Add(node);

treeView1.ExpandAll();

e.FuJieDian=treeView1.SelectedNode.Text;//设置新创建节点的父节点

foreach(UniversityEventArgsueainroot.universityList)//设置选中节点的子节点

{

if(uea.XiaoMing==treeView1.SelectedNode.Text)

{

uea.ziJieDianJiHe.Add(e);

}

}

treeView1.SelectedNode=node;

}

}

///

///上下文菜单事件回调函数

///

///事件源

///事件相关信息描述

privatevoid学校ToolStripMenuItem_Click(objectsender,EventArgse)

{

Universityuniversity=newUniversity();

university.UniversityData+=newUniversityDelegate(ReceiveUniversityData);//绑定事件

university.ShowDialog();

university.UniversityData-=newUniversityDelegate(ReceiveUniversityData);//不再使用该事件,撤销它

}

privatevoid学院ToolStripMenuItem_Click(objectsender,EventArgse)

{

Instituteinstitute=newInstitute();

institute.InstituteData+=newInstituteDelegate(ReceiveInstitute);

institute.ShowDialog();

institute.InstituteData+=newInstituteDelegate(ReceiveInstitute);

}

///

///选中树图节点后触发事件的回调函数,动态添加表头,加载信息

///

///

///

privatevoidtreeView1_AfterSelect(objectsender,TreeViewEventArgse)

{

listView1.Items.Clear();//清空listView1内容

listView1.Columns.Clear();//清除listView1表头

if(treeView1.SelectedNode.Text=="大学")//选中是根节点则加载所有大学节点

{

listView1.Columns.Add("校名",150,HorizontalAlignment.Center);

listView1.Columns.Add("地址",200,HorizontalAlignment.Center);

listView1.Columns.Add("主管部门",150,HorizontalAlignment.Center);

listView1.Columns.Add("学校性质",100,HorizontalAlignment.Center);

foreach(UniversityEventArgsueainroot.universityList)

{

item=newListViewItem(uea.XiaoMing);

item.SubItems.Add(uea.DiZhi);

item.SubItems.Add(uea.ZhuGuanBuMen);

item.SubItems.Add(uea.XueXiaoXingZhi);

listView1.Items.Add(item);

 

}

}

else

{

foreach(UniversityEventArgsueainroot.universityList)//选中是大学节点则加载该大学下的所有学院

{

if(uea.XiaoMing==treeView1.SelectedNode.Text)

{

listView1.Columns.Add("学院名",150,HorizontalAlignment.Center);

listView1.Columns.Add("地址",200,HorizontalAlignment.Center);

listView1.Columns.Add("主管部门",150,HorizontalAlignment.Center);

listView1.Columns.Add("学院概况",100,HorizontalAlignment.Center);

foreach(InstituteEventArgsinstinuea.ziJieDianJiHe)

{

item=newListViewItem(inst.XueYuanMing);

item.SubItems.Add(inst.DiZhi);

item.SubItems.Add(inst.ZhuGuanBuMen);

item.SubItems.Add(inst.XueYuanGaiKuang);

listView1.Items.Add(item);

}

}

}

}

}

privatevoidForm1_Load(objectsender,EventArgse)

{

listView1.FullRowSelect=true;

listView1.View=View.Details;

listView1.Scrollable=true;

listView1.MultiSelect=false;

}

}

}

大学窗体界面设计如下:

代码:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Text;

usingSystem.Windows.Forms;

namespaceWindowsApplication1

{

publicpartialclassUniversity:

Form

{

publiceventUniversityDelegateUniversityData;

publicUniversity()

{

InitializeComponent();

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

if(UniversityData!

=null)

{

UniversityEventArgsue=newUniversityEventArgs();

ue.XiaoMing=textBox1.Text;

ue.DiZhi=textBox2.Text;

ue.ZhuGuanBuMen=textBox3.Text;

ue.XueXiaoXingZhi=textBox4.Text;

UniversityData(this,ue);

this.Close();

}

}

privatevoidbutton2_Click(objectsender,EventArgse)

{

this.Close();

}

}

}

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Text;

namespaceWindowsApplication1

{

///

///描述学校信息

///

publicclassUniversityEventArgs:

EventArgs

{

stringxiaoMing;

publicstringXiaoMing

{

set

{

xiaoMing=value;

}

get

{

returnxiaoMing;

}

}

stringdiZhi;

publicstringDiZhi

{

set

{

diZhi=value;

}

get

{

returndiZhi;

}

}

stringzhuGuanBuMen;

publicstringZhuGuanBuMen

{

set

{

zhuGuanBuMen=value;

}

get

{

returnzhuGuanBuMen;

}

}

stringxueXiaoXingZhi;

publicstringXueXiaoXingZhi

{

set

{

xueXiaoXingZhi=value;

}

get

{

returnxueXiaoXingZhi;

}

}

stringfuJieDian;

publicstringFuJieDian

{

set

{

fuJieDian=value;

}

get

{

returnfuJieDian;

}

}

publicListziJieDianJiHe=newList();//存储学校下属学院的节点集合

}

}

学院窗体设计如下:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Text;

usingSystem.Windows.Forms;

namespaceWindowsApplication1

{

publicpartialclassInstitute:

Form

{

publiceventInstituteDelegateInstituteData;

publicInstitute()

{

InitializeComponent();

}

privatevoidbutton1_Click(objectsender,EventArgse)

{

if(InstituteData!

=null)

{

InstituteEventArgsiea=newInstituteEventArgs();

iea.XueYuanMing=textBox1.Text;

iea.DiZhi=textBox2.Text;

iea.ZhuGuanBuMen=textBox3.Text;

iea.XueYuanGaiKuang=textBox4.Text;

InstituteData(this,iea);

this.Close();

}

}

privatevoidbutton2_Click(objectsender,EventArgse)

{

this.Close();

}

}

}

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Text;

namespaceWindowsApplication1

{

///

///描述学院信息

///

publicclassInstituteEventArgs:

EventArgs

{

stringxueYuanMing;

publicstringXueYuanMing

{

set

{

xueYuanMing=value;

}

get

{

returnxueYuanMing;

}

}

stringdiZhi;

publicstringDiZhi

{

set

{

diZhi=value;

}

get

{

returndiZhi;

}

}

stringzhuGuanBuMen;

publicstringZhuGuanBuMen

{

set

{

zhuGuanBuMen=value;

}

get

{

returnzhuGuanBuMen;

}

}

stringxueYuanGaiKuang;

publicstringXueYuanGaiKuang

{

set

{

xueYuanGaiKuang=value;

}

get

{

returnxueYuanGaiKuang;

}

}

stringfuJieDian;

publicstringFuJieDian

{

set

{

fuJieDian=value;

}

get

{

returnfuJieDian;

}

}

//用List<>定义子节点集合

}

}

运行效果图:

实验要求:

1.先搭建上述程序界面,并进行调试。

2.参考上述程序完成,班级、专业、学生信息的添加。

(以本班学生为例)

3.增加节点类型信息,在上下文菜单中添加修改子菜单,实现节点信息的修改。

4.完成删除功能。

5.每位同学提交本次实验电子文档。

说明:

在程序中,没有对程序进行异常处理,同学自己添加异常处理的代码。

另外,对树的加载是通过层次判断实现的,如果层次较多,显然行不通。

而应采用递归遍

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2