中职语文出版社《面向对象程序设计C#》单元11 ATM系统重构账户管理模块教案

资源下载
  1. 二一教育资源

中职语文出版社《面向对象程序设计C#》单元11 ATM系统重构账户管理模块教案

资源简介

单元11 ATM系统重构账户管理模块
课 时
本章目标:
使用System.Array操作数组
使用System.ArrayList对象
理解泛型集合类List对象
掌握Dictionary
本章重点:
使用System.ArrayList对象
理解泛型集合类List对象
掌握Dictionary
本章难点:
掌握Dictionary
内容讲解:
文件操作
1、知识点引入
在之前我们接触过Array类操作数组,进行排序。该类是基类,不能实例化该类。但是提供了CreateInstance()方法来构建数组
2、知识点
语法:
Array arr=Array.CreateInstance(typeof(数据类型),长度)
添加数组值:arr.SetValue(“值”,索引)
获取数组中元素:getVale(下标)
Array arr = Array.CreateInstance(typeof(string),5);
arr.SetValue("金庸",0);
arr.SetValue("古龙", 1);
arr.SetValue("黄易", 2);
arr.SetValue("梁羽生", 3);
arr.SetValue("诸葛青云", 4);
Console.WriteLine("数组元素总个数:" + arr.Length);
Console.WriteLine("\n数组元素是:");
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine("第{0}个元素是:{1}",i+1,arr.GetValue(i));
}
Array.Sort(arr);
Console.WriteLine("\n排序后数组为:");
for (int i = 0; i < arr.Length; i++)
{
Console.WriteLine("第{0}个元素是:{1}", i + 1, arr.GetValue(i));
}
}
和数组相似的是c#集合,集合提供管理对象数组的高级功能,并且是一个特殊化的类,可以通过索引去访问集合成员。但是集合大小可以动态改变,并添加与删除元素
集合提供的类很多:
类 描 述
ArrayList 提供适用于多数用途的一般集合功能,它允许动态添加和删除
HashTable 存储键值对,这些键值对是根据键编码来安排的
接 口 描 述
ICollection 为所有集合定义大小、枚举器和同步方法
IEnumerator 对整个集合的简单循环和列举
IList 通过索引进行单独访问的对象的集合
结 构 描 述
DictionaryEntry 定义可以设置或检索的字典键值对
我们了解ArryList类,该类是ArrayList的优化版本,区别在于ArrayList提供了大部分集合具有而Array没有,比如:
ArrayList是可以改变元素个数,而Array不能
ArrayList可以以通过ArrayList提供的方法在某个时间追加、插入或移出一组元素,而在Array中一次只能对一个元素进行操作
Array可以通过下标设置,而ArrayList下标始终未0
Array可以多维,而ArryList始终是一维
ArrayList的语法:
ArrayList 对象名称 = new ArrayList(初始容量);
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace ArrayTest
{
class ArrayListTest
{
static void Main(string[] args)
{
ArrayList alName = new ArrayList();
alName.Add("金庸");
alName.Add("古龙");
alName.Add("黄易");
Console.WriteLine("\n数组列表容量为:{0},元素个数为:{1}",
alName.Capacity,alName.Count);
Console.WriteLine("\n请输入你想添加的武侠小说家:");
string flag = null;
while(true)
{
string newNanme = Console.ReadLine();
alName.Add(newNanme);
Console.WriteLine("要继续吗?(y/n)");
flag = Console.ReadLine();
if (flag.Equals("n"))
{
break;
}
}
Console.WriteLine("\n请输入你想查找的武侠小说家:");
while (true)
{
string findName = Console.ReadLine();
if (alName.Contains(findName))
{
Console.WriteLine("数组列表中包含{0}.", findName);
}
else
{
Console.WriteLine("数组列表中不包含你要查找的人");
}
Console.WriteLine("要继续吗?(y/n)");
flag = Console.ReadLine();
if (flag.Equals("n"))
{
break;
}
}
Console.WriteLine("\n数组列表中共包含下列武侠小说家:");
foreach (string name in alName)
{
Console.WriteLine(name);
}
}
}
}
但是ArrayList是不安全,所以为了解决,c#提供了泛型集合,在放入集合的对象,是需要检查数据类型,发现不特定的会报错,其次泛型会提高性能,由于明确了数据类型,所以在存取数据时不会发生类型转换,特别是存取值类型时不会发生装箱和拆箱操作。
泛型在Systeam.Collection.Generic的命名空间下,提供很多泛型
泛型集合类 描 述
List 一般用于替代ArrayList类,与ArrayList很相似
Dictionary 存储键值对的集合泛型类
SortedList 类似于Dictionary,但按键自动排序
LinkedList 双向链表
Queue 先进先出的队列类
Stack 后进先出的堆栈类
这里我们了解Dictionary泛型
语法:Dictionary<数据类型, 数据类型> 实例名 = new Dictionary <数据类型, 数据类型>() ;
其中,TKey表示键的数据类型,TValue表示值的数据类型。
下面的示例演示了Dictionary类的用法:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace Demo
{
class Program
{
static void Main(string[] args)
{
Dictionary dicstu = new Dictionary();
//实例化四个学生类对象
Student stu1 = new Student("张微", 1);
Student stu2 = new Student("叶子", 2);
Student stu3 = new Student("姚岚", 3);
Student stu4 = new Student("刘琴", 4);
//四个学生类对象添加到泛型集合类中
dicstu.Add(stu1.Name,stu1);
dicstu.Add(stu2.Name,stu2);
dicstu.Add(stu3.Name,stu3);
dicstu.Add(stu4.Name,stu4);
foreach (string name in dicstu.Keys)
{
Console.WriteLine(dicstu[name].ToString());
}
}
}
class Student
{
private string name; //学生姓名
private int id; //学号
public Student(string stuname, int stuid)
{
this.name = stuname;
this.id = stuid;
}
public string Name
{
get
{
return name;
}
set
{
this.name = value;
}
}
public int Id
{
get
{
return id;
} }
public override string ToString()
{
return "姓名:" + name + ",学号:" + id;
}
}
}
教育改变生活(We Are Changing)

展开更多......

收起↑

资源预览