CH06-课中复习与体验套餐项目实战
CH06-课中复习与体验套餐项目实战本章目标
针对前五章内容的知识点梳理和复习
完成项目:体验套餐
本章内容1、课程回顾
第一章:深入.NET平台
.NET 框架组件
CLR的作用及组成
.NET 程序编译过程
.NET 核心类库及命名空间
第二章:C#封装
类、对象、属性、封装
封装的概念是什么
如何实现封装
封闭的访问器有那些?
第三章:深入C#的数据类型
C#数据类型中的值类型和引用类型
结构
装箱和拆箱操作
枚举
可空类型、静态类型、动态类型
第四章:C#中的集合
操作集合实现元素的增、删、查、遍历
ArrayList
Hashtable
操作泛型集合
实现元素的增、删、查、遍历
List、Dictionary<K,V>
理解泛型方法和泛型类
第五章:深入类的方法
构造函数
方法重载
类之间的通信
2、综合练习:体检套餐管理系统
需求说明:
新建体检套餐
输入套餐名称,添加到套餐集合
体检套餐维护
查看套餐检查项目
添加检查项目
删除检查项目
阶段实战练习:
阶段1:实现窗体搭建
需求说明:搭建体检套餐管理 ...
CH07-继承
CH07-继承本章目标
理解继承的概念
熟练使用继承建立父类和子类
本章内容1、理解继承的概念
为什么要使用继承?
回顾:在前面章节讲到了PM和SE两大类,将两大类作对比如下 :
问题:当程序中又加入了CEO,CTO等角色,出现了相同的属性,如何减少代码冗余,实现代码重用?
继承可以实现
具体思路:
将相同的属性提取到一个父类中
将SE,PM类继承于父类
现实生活中的继承
问题:请同学们列出你认为在生活中的继承有那些?
继承的概念
什么是继承?
在C#中,子类继承父类,那么子类就拥有了父类除私有(private)成员外的所有成员。
简单理解:
在 C# 中,类可以继承自另一个类
衍生的类(子类)继承父类的方法和数据成员
子类继承父类,父类派生子类
父类又叫基类
子类又叫派生类
继承是面向对象的一个重要特性,继承指出两个类符合“A 是 B”的关系(is-a关系)
例如,哺乳动物 属于(IS-A) 动物,狗 属于(IS-A) 哺乳动物,因此狗 属于(IS-A) 动物。
或
例如:SE is a Employee
语法:
12345678<访 ...
CH04-集合
CH04-集合本章目标
理解集合的概念
会使用集合初始化器
熟练使用集合访问数据理
解泛型的概念
熟练使用各种泛型集合
本章内容1、理解集合的概念
为什么要使用集合?
回顾:当需要保存多个相同类型数据的时候,之前使用的是数组,那么数组有什么特点呢?
存储数据个数固定,当需要在数组中添加新元素时,则需要重新添加长度更大的突间,从数组中间删除数据的时候,则需要大量做数据移动,不然浪费空间。
有没有更好的方式解决以上问题呢?集合
什么是集合?
集合(Collection)类是专门用于数据存储和检索的类。
2、动态数组集合:ArrayList
概念:动态数组(ArrayList)代表了可被单独索引的对象的有序集合。它基本上可以替代一个数组。但是,与数组不同的是,您可以使用索引在指定的位置添加和移除项目,动态数组会自动重新调整它的大小。它也允许在列表中进行动态内存分配、增加、搜索、排序各项。
ArrayList常用属性和方法:
常用属性:
属性
描述
Capacity
获取或设置 ArrayList 可以包含的元素个数。
Count
获取 ArrayLis ...
CH01-深入了解.NET平台
CH01-深入了解.NET平台本章目标 1. 了解.NET平台及相关优势
2. 理解.NET框架组成
3. 理解.NET框架的基本原理
本章内容1、深入了解.NET平台1、.NET的基本概念:
.NET框架是由微软开发的一套软件开发工具,它包括了一个运行时环境(Common Language Runtime,简称CLR)和一个丰富的类库。CLR负责管理应用程序的执行,包括内存管理、安全性、异常处理等。类库提供了大量的预定义类和方法,使开发人员能够快速构建应用程序。
2、.NET框架的优势:
跨平台性:.NET框架支持多种操作系统,包括Windows、Linux和macOS。开发人员可以使用相同的代码和工具在不同的平台上构建应用程序,提高了开发效率和可移植性。
多语言支持:.NET框架支持多种编程语言,如C#、VB.NET和F#等。开发人员可以选择自己熟悉的语言进行开发,而不需要学习新的语言。这种灵活性使得团队合作更加方便,并且可以重用现有的代码资源。
强大的工具和库:.NET框架提供了丰富的工具和库,包括开发环境(如Visual Stu ...
CH02-封装
CH02-封装本章目标
理解封装的概念
C#实现封装
掌握C#中的访问修饰符
本章内容1、为什么要使用封装?
案例:编写学生类,属性有姓名和年龄,然后代码如下
123456789101112131415161718public class Student{ public string name; public int age; public void SayHi(){ Console.WriteLine("大家好,我叫:{0},今年:{1}岁",name,age); }}public class Test{ void Main(){ Student stu=new Student(); stu.name="张三"; stu.age=-20;//当年龄赋值为-20时,则出现的结果年龄为负,不适合现实情况,如何解决 stu.Sa ...
CH03-深入CSharp的数据类型
CH03-深入CSharp的数据类型
理解C#中的值类型和引用类型的概念
理解装箱和拆箱操作
理解值类型和引用类型作为方法参数的区别
值类型转换成引用类型传参的关键字ref和out
理解C#中的结构
理解C#中的枚举
理解C#中的可空类型
理解C#中的静态类型var和动态类型dynamic
本章内容1、C#中的值类型和引用类型
数据类型的分类:
数据类型按存储方式可分为两类:值类型和引用类型
值类型的概念:
值类型:不同的变量会分配不同的存储空间,存储空间中存储的是该变量的值,改变一个变量值不会影响另一个变量值。
【案例:】张三和李四去年身高都是170cm,今年李四长到了180cm,张三没有变化,输出去年和今年两人身高。
分析:定义两个变量保存身高,修改变量的值,输出变量的值,观察最终结果。
123456789int zhangSan = 170;int liSi = zhangSan;Console.WriteLine("去年张三和李四的身高分别为:{0},{1}",zhangSan,liSi); ...
CH15-项目:影院售票系统
CH15-项目:影院售票系统本章目标
完成影院售票系统
本章内容
项目技能训练点:
能够分析系统功能并合理提取对象和类
会使用类图理解类关系
会使用属性和方法构建类
会使用继承、多态实现良好复用和扩展性
会使用泛型集合
会使用枚举
会读取XML文件
会使用文件保存和恢复信息
任务描述:
“广创影院”开始营业,需要一个售票系统
影院每天更新放映列表,系统支持实时查看:电影放映场次时间、电影概况
影院提供3类影票:普通票、赠票和学生票(赠票免费、学生票有不同折扣)
允许用户查看某场次座位售出情况
支持购票,并允许用户选座
用户可以选择场次、影票类型以及空闲座位进行购票,并打印电影票
系统可以保存销售情况,并允许对其进行恢复
整体开发思路
系统开发步骤
难点分析:
业务理解
系统如何获得最新的放映列表?
如何实现?如何进行售票?流程是什么?
如何动态显示放映厅座位?如何控制颜色的变化体现座位“卖出”和“待卖”状态?
类关系(抽象出类)
电影类:Movie
放映日程类:Schedule
放映场次类:ScheduleItem
电影院类:Cinema
座位类:Se ...
第7章:数据绑定
第7章:数据绑定本章目标
理解路由事件
掌握键盘输入事件
掌握鼠标输入事件
掌握多点触控输入事件
数据绑定概述什么是数据绑定 将WPF中的至少一个带有依赖项属性的两个对象的两个属性进行绑定,使某一个依赖项属性可以更新和它绑定的属性的功能。
数据绑定涉及两个方面:一个是绑定源,再一个是绑定目标。绑定源即空间绑定所使用的源数据,绑定目标即数据显示的控件。
对于绑定源,在WPF中可以是以下4种:
CLR对象:可以绑定到CLR类的公开属性/子属性/索引器上
ADO.net 对象:例如DataTable/DataView 等。
XML文件:使用XPath 进行解析
DependencyObject: 绑定到依赖项属性上,即控件绑定控件。
对于绑定目标,必须是WPF中的DependencyObject,将数据绑定到其依赖项属性上。
数据绑定的绑定源
使用接口 INoitfyPropertyChanged
使用依赖属性 DependecyProperty
数据绑定的语法1{Binding ElementName=元素名,Path=属性, ...
第四章:使用ListView控件展示数据
第四章:使用ListView控件展示数据本章目标
会使用ImageList控件存放图片
会使用ListView控件展示数据
会使用ContextMenuStrip实现快捷操作
本章内容ListView :列表视图控件
什么是ListView控件:以特定样式或视图类型显示列表项
在Windows系统中显示硬盘则使用此控件,如下图:
ListView控件的常用属性:
(1)FullRowSelect:设置是否行选择模式。(默认为false) 提示:只有在Details视图该属性才有意义。
(2) GridLines:设置行和列之间是否显示网格线。(默认为false)提示:只有在Details视图该属性才有意义。
(3)AllowColumnReorder:设置是否可拖动列标头来对改变列的顺序。(默认为false)提示:只有在Details视图该属性才有意义。
(4)View:获取或设置项在控件中的显示方式,包括Details、LargeIcon、List、SmallIcon、Tile(默认为 LargeIcon),具体解释如下:
...
第三章:菜单栏、工具栏及窗体布局
第三章:菜单栏、工具栏及窗体布局本章目标
掌握Windows常用的菜单控件和工具栏控件
会使用基本控件对窗体进行布局
本章内容菜单和工具栏
菜单控件:MenuStrip
普通菜单项:ToolStripMenuItem
命名规则:tsmi开头
常用属性:
DisplayStyle:显示方式(文本,图像或文本及图像)
ImageAndText(默认)
Image
Text
Image:图片
内容分割线:ToolStripSeparator
为各级菜单添加分隔符
菜单快捷键
菜单的快捷键:&+字母,例如:&F
ShortcutKeys:设置快捷键
ShowShortcutKeys:是否显示快捷键
工具栏:ToolStrip作用:
在此容器中,我们可以添加多个子控件,按钮、标签、分割符、下拉框、文本框、进度条等控件,通常为与页面顶部,通过设置其Dock属性可以控制其横向排列、纵向排列等。
实现效果图:
控件效果:
常用属性:
属性名称
说 明
DisplayStyle
是否显示图像和文本
Image ...