版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章数组《面向对象程序设计》
——上位机应用主要内容二、C#.NET中的一维数组三、C#.NET中的多维数组重点一、课堂引例:随机点名引例及目标四、Array类的静态方法重点五、课堂综合练习.NET环境专门处理随机数的类创建对象并实例化构造函数无参数:以当前系统时间作为随机数种子构造函数有参数:以参数作为随机数种子回顾:系统定义类—System.Random类Randomrnd=newRandom();Randomrnd=newRandom(seed);创建对象构造函数生成一个两位数的随机数 Randomrnd2=newRandom(); inta=rnd2.Next(10,100); label1.Text=a.ToString();例3-1用2位随机整数构成的7×7矩阵(窗体版)Randomrnd=newRandom();stringstr="";for(inti=0;i<7;i++){ for(intj=0;j<7;j++) { inta=rnd.Next(10,100); str+=a+""; } str+="\n";}label1.Text=str;例3-2以指定值为种子的随机数序列一、课堂引例:随机点名核心功能涉及哪些知识点?数组是相同数据类型变量的集合同一数组中的所有元素都可以通过相同的变量名来引用使用下标(Index)来区分不同的元素。例如:一维数组: a[0],a[1],a[2]二维数组: b[0,0],b[0,1],b[0,2],b[1,0],b[1,1],b[1,2]三维数组: c[1,1,1],c[1,1,2]二、C#.NET中的一维数组C#中定义一维数组的格式:
数据类型[]数组名;数据类型
C#中的各种数据类型,包括简单类型和引用类型方括号[]
声明数组的符号,表示其后面的变量是一个数组变量数组名
符合C#变量命名规则的任意字符串2.1定义一维数组的方法int[]a; //声明名为a的数组,元素类型为intstring[]b; //声明名为b的数组,元素类型为string定义数组的示例没有指明数组的长度,意味着没有为数组元素分配内存空间数组的初始化静态初始化数据类型[]数组名={元素1,元素2,……,元素n};静态初始化数组的语法成分必须与数组定义书写在同一个语句行上
例如:int[]a={2,4,6,8,10};string[]b={"篮球","足球","排球","网球","羽毛球","乒乓球"};
定义数组的同时为各数组元素赋值数据类型[]数组名=new数据类型[表达式];int[]a; //声明了整型数组aa=newint[10]; //在内存中分配10个元素动态初始化这种方法比较常用14例6.1
程序运行后,单击窗体,在数组a[]中存放10个2位随机正整数,存入数组a[],并在a[]中重新读出在窗体上显示运算结果。2.2一维数组的应用15程序代码privatevoidForm1_Click(objectsender,EventArgse){
label1.Text="随机数:";
Randomrnd=newRandom(); //声明随机数对象rnd
int[]a=newint[10]; //定义数组并初始化
for(inti=0;i<10;i++)
//循环结束的条件为i<10而不是i<=10
{
a[i]=rnd.Next(10,99); //给每个数组元素赋予随机数值
label1.Text+=a[i]+""; //10个随机数在窗体上输出成一行
}
label2.Text="数组:";//将记录的数组重新读取出来
for(inti=0;i<10;i++)
{label2.Text+=a[i]+""; }}162.3一维数组对象的属性和方法在C#中,数组是当作对象来实现的17例:查找最小元素例6.5(1)从一组给定的2位正整数中找出最小值,并在窗体上的标签内输出查找结果。18思考:怎样查找最小元素?privatevoidForm1_Click(objectsender,EventArgse){label1.Text="数组内容:";intmin;int[]a={73,69,82,51,77,19,28,92,86};min=a[0];for(inti=1;i<a.Length;i++){label1.Text+=a[i]+"";if(a[i]<min)min=a[i];}label1.Text+="\n\n最小值="+min;}关键是怎样比较判断19例:查找最大元素例6.5(2)从一组给定的2位正整数中找出最大值,并在窗体上的标签内输出查找结果。20程序代码privatevoidForm1_Click(objectsender,EventArgse){label1.Text="数组内容:";intmax;int[]a={73,69,82,51,77,19,28,92,86};max=a[0];for(inti=1;i<a.Length;i++){label1.Text+=a[i]+"";if(a[i]>max)max=a[i];}label1.Text+="\n\n最大值="+max;}21三、C#.NET中的多维数组223.1二维数组的定义
数据类型[,]数组名;例3-2
将表中的学生成绩数据预先保存到二维数组score中,把学生姓名预先保存到一维数组student中,并且在窗体上显示成7行×5列。数组中不能包含学生姓名,因为数据类型不同24privatevoidForm1_Click(objectsender,EventArgse){string[]student={"李晓强","何萍萍","郭晓薇","张超","艾小兰","周世平","何伟"};float[,]score={{70,85,92,74,62},{92,79,95,68,75},{93,83,89,76,90},{79,62,44,92,56},{61,77,91,57,72},{81,74,68,79,91},{83,90,86,85,82}}; label1.Text+="姓名语文数学外语物理化学"+"\n";for(inti=0;i<7;i++) {label1.Text+=student[i]+"";//显示一个学生的姓名
for(intj=0;j<5;j++)
{label1.Text+=score[i,j]+"";}label1.Text+="\n"; //换行转义符"\n"}}程序代码行列25数组对象的取值和赋值方法26例利用GetLength()方法分别测试数组a每个维的长度27privatevoidForm1_Click(objectsender,EventArgse){string[]student={"李晓强","何萍萍","郭晓薇","张超","艾小兰","周世平","何伟"};float[,]score={{70,85,92,74,62},{92,79,95,68,75},{93,83,89,76,90},{79,62,44,92,56},{61,77,91,57,72},{81,74,68,79,91},{83,90,86,85,82}}; label1.Text+="姓名语文数学外语物理化学"+"\n";for(inti=0;i<student.GetLength(0);i++) {label1.Text+=student[i]+"";//显示一个学生的姓名
for(intj=0;j<score.GetLength(1);j++)
{label1.Text+=score[i,j]+"";}label1.Text+="\n"; //换行转义符"\n"}}程序代码行列例3-3
在例3-2基础上,筛选出语文成绩大于90的学生姓名例3-3
for(inti=0;i<score.GetLength(0);i++) { if(score[i,0]>=90) label1.Text+=student[i]+""; }例3-4
在例3-2基础上,查询出"艾小兰"的语文成绩例3-4 for(inti=0;i<student.Length;i++) { if(student[i]=="艾小兰") { label1.Text="语文成绩:"+score[i,0]; } }30四、Array类的静态方法
31例
用一个随机2位整数序列为数组a各元素赋值,然后利用Sort()方法将其排序,并利用Reverse()方法将排序后的数组元素逆向排列。32程序代码
privatevoidForm1_Click(objectsender,EventArgse){Randomrnd=newRandom();int[]a=newint[10];label1.Text="排序前:\n";for(inti=0;i<a.Length;i++) //生成随机数序列并保存到数组a{a[i]=rnd.Next(10,100);label1.Text+=a[i]+"";}
Array.Sort(a);
//对数组a进行排序
label1.Text+="\n\n排序后:\n";for(inti=0;i<a.Length;i++)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年风能发电在建筑电气设计中的案例分析
- 2026年全球土木工程人才市场分析
- 2026春招:行政主管真题及答案
- 2026春招:销售代表题目及答案
- 2026春招:西部航空笔试题及答案
- 生物材料在骨科中的应用
- 2026年黑龙江农业职业技术学院高职单招职业适应性测试备考题库有答案解析
- 2026年广西建设职业技术学院单招综合素质考试备考题库带答案解析
- 货品进出安全培训课件
- 护理专业实习生教育实践
- 安全生产业务操作规程范文(2篇)
- GB/T 44748.1-2024筛分试验第1部分:使用金属丝编织网和金属穿孔板试验筛的方法
- 预制混凝土构件质量控制
- 德佑房屋买卖合同
- 健康管理方案设计案例分析
- 2024高考英语应用文写作真题手把手:2023全国乙卷素材
- 玻璃加工公司管理制度
- 七年级数学一元一次方程应用题复习题及答案
- 储能电站检修规程
- 离婚冷静期制度的构建与完善
- 外挂钢楼梯专项施工方案
评论
0/150
提交评论