《C结构化程序设计计.pptx》由会员分享,可在线阅读,更多相关《C结构化程序设计计.pptx(74页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、任何程序都是由顺序、选择、循环三种基本控制结构进行构造。1C#程序设计实用教程第1页/共74页2.1 顺序结构 2.1.1 顺序结构的概念:有些简单的程序是按程序语句的编写顺序依次执行的,这种结构称为顺序结构。第2页/共74页任务1:情境2-1欢迎软件第3页/共74页 Label控件称为标签,它是最简单又最常用的控件,用来显示信息。常用属性常用属性 Text属性:设置控件的文本内容:label1.Text=”姓名”;AutoSize属性:设置控件是否能够自动调整大小:label1.AutoSize=true;Location属性:设置控件在容器中的位置。label1.Location=new
2、Point(100,200);Size属性:设置控件的大小:label1.Size=new System.Drawing.Size(20,30);BackColor属性:设置控件的背景颜色。label1.BackColor=System.Drawing.Color.Red;label1.BackColor=System.Drawing.Color.Red;ForeColorForeColor属性:设置控件的前景颜色。BorderStyleBorderStyle属性:设置控件的边框风格。Font属性:设置字体。Cursor属性:设置鼠标光标在控件上的形状。2.1.1 标签Label第4页/共74
3、页任务2:文档编辑小程序2.1.2 文本框TextBox第5页/共74页3、TextBox控件称为文本框,主要用来接受用户的输入,当然也可以用于输出信息。常用属性常用属性 MultilineMultiline属性:设置文本框是否可以多行显示或输入。例如:textBox1.Multiline=textBox1.Multiline=truetrue;ScrollBarsScrollBars属性:设置文本框的滚动条。NoneNone:无滚动条。VerticalVertical:有垂直滚动条。HorizontalHorizontal:有水平滚动条。BothBoth:两者都有。ReadOnlyReadO
4、nly属性:设置文本框是否只读。例如:textBox1.ReadOnly=true;textBox1.ReadOnly=true;2.1.2 文本框TextBox第6页/共74页3、TextBox常用属性常用属性 PasswordCharPasswordChar属性:设置在文本框中输入口令时的掩盖字符。例如:textBox1.PasswordChar=textBox1.PasswordChar=*;SelectionLengthSelectionLength属性:设置或获取文本框中选择文本的字符个数。使用语法如下:Object.SelectionLength=n;Object.Selectio
5、nLength=n;/使文本框从头开始选中n n个字符int int n=n=Object.SelectionLength;Object.SelectionLength;/获取文本框中选中的字符个数例如:if(textBox1.SelectionLengt0)if(textBox1.SelectionLengt0)SelectedTextSelectedText属性:获取文本框中选择的字符串 举例如下:label1.Text=textBox1.SelectedText;label1.Text=textBox1.SelectedText;SelectionStart:SelectionStart
6、:选择的起始位置(光标位置)2.1.2 文本框TextBox第7页/共74页3、TextBox常用方法常用方法Clear()Clear()方法:从文本框中清除所有文本。以下两行程序代码是等效的:textBox1.Clear();textBox1.Clear();textBox1.Text=textBox1.Text=”;Copy()Copy()方法:将文本框中选定的内容复制到剪贴板中。例如:textBox1.Copy();textBox1.Copy();Cut()Cut()方法:将文本框中选定的内容剪切到剪贴板中。例如:textBox1.Cut();textBox1.Cut();Paste()
7、Paste()方法:用剪贴板中的内容替换文本框中当前选定的内容。例如:textBox1.Paste();textBox1.Paste();Select()Select()方法:选定文本框的一部分文字。语法格式为:textBox1.Select(int start,int Length);textBox1.Select(int start,int Length);2.1.2 文本框TextBox第8页/共74页3、TextBox常用方法常用方法SelectAll()SelectAll()方法:选定文本框的全部文字。例如:textBox1.SelectAll();textBox1.SelectAl
8、l();Focus()Focus()方法:将输入焦点置于文本框内。例如:textBox1.Focus();textBox1.Focus();Undo()Undo()方法:撤消在文本框中的上一次编辑操作。例如:textBoxEdit.Undo();textBoxEdit.Undo();2.1.2 文本框TextBox第9页/共74页任务3:小学生10以内加法练习软件第10页/共74页常用属性常用属性 Image属性:设置命令按钮上显示的图片。Enabled属性:设置命令按钮的可用性 使用语法如下:Object.Enabled=true(或false);常用事件常用事件常用的只有clickclic
9、k,单击鼠标左键时发生2.1.3 按钮Button第11页/共74页Parse()方法:主要用于将数字的字符串表示形式转换为它的等效的其他基本数值类型。例:string s=“18”;int a=int.Parse(s)-10;/a=8 int b=a+int.Parse(Console.ReadLine();strings=13.3;doubled=double.Parse(s);2.1.4字符串与数值类型的转换字符串与数值类型的转换第12页/共74页Convert类:Conver.静态方法名(字符串)例如:string s=13;int a=Convert.ToInt32(s);doubl
10、e d=Convert.ToDouble(s);要转换成的数据类型2.1.4 字符串与数值类型的转换第13页/共74页其他类型转换成字符串类型ToString()方法doubleradius=2.67;strings;s=radius.ToString():2.1.4 字符串与数值类型的转换第14页/共74页提示:用Random类产生一个随机数对象,然后是用该对象的Next方法生成一个整型随机数。Random rn=new Random();int x=rn.Next(100);任务3:小学生10以内加法练习软件rn.Next():产生随机整数rn.Next(100);产生0100之间的随机整
11、数rn.Next(100,200);产生100200之间的随机数rn.NextDouble();产生0.01.0之间的随机数第15页/共74页选择结构,是一种常用的主要基本结构,是计算机根据所给定选择条件为真或否,而决定从各实际可能的不同操作分支中执行某一分支的相应操作。2.2选择结构的概念第16页/共74页if语句一般用于简单选择,即选择项中有一个或两个分支。格式为:if(布尔条件表达式)语句块1;else 语句块2;2.2.1 单分支选择结构(if语句)必须是布尔类型的可以是单语句,也可以是多语句可以省略第17页/共74页2用用if语句实现多分支选择结构语句实现多分支选择结构 格式:if(
12、if(表达式1)1)语句块1;1;else if(else if(表达式2)2)语句块2;2;else if(else if(表达式3)3)语句块3;3;else else 语句块n;n;第18页/共74页 2.2.2 switch 结构C#中的 switch 语句switch(int/char/string表达式表达式)case常量表达式常量表达式1:语句语句1;break;/必须有必须有case常量表达式常量表达式2:语句语句2;break;/必须有必须有default:语句语句n;break;/必须有必须有C#第19页/共74页 C#中的 switch 结构小结条件判断的表达式类型 整型
13、或字符型或字符串break 语句的要求:每个 case 都有 breakdefault 也要有 break特殊情况:/示例示例6中的代码中的代码stringtime;switch(time)case6:case7:case8:case9:case10:Console.WriteLine(上午好上午好);break;/default:Console.WriteLine(休息时间休息时间);break;case中没有其他语句时,中没有其他语句时,不需要不需要break语句语句第20页/共74页任务4:水果价格第21页/共74页任务5:设计Windows应用程序,单击【计算】按钮,根据对单选按钮的选
14、择,计算加、减、乘、除中的一种运算。结果如图:第22页/共74页1、单选按钮(RadioButton)单选按钮也叫选项按钮,为用户提供从多个选项中选择一个选项的功能,因此单选按钮顾名思义是一种“多选一”的控件。常用属性常用属性 CheckedChecked属性:设置和获取控件的选中状态。使用的语法为:object.Checked=true;object.Checked=true;/使控件被选中例如:if(radioButton1.Checked=true)if(radioButton1.Checked=true)Text属性:圆圈旁边的指示性文字2.2.3使用单选按钮与复选框控件第23页/共7
15、4页任务6 6:设计Windows应用程序,单击【计算】按钮,根据对复选框的选择,计算加、减、乘、除运算。2.2.3 使用单选按钮与复选框控件第24页/共74页2、复选按钮(CheckBox)可以在窗口同时选中多个复选框,这是其和单选按钮的区别。检查框与单选钮共享大多数的常用属性、方法和事件。2.2.3 使用单选按钮与复选框控件第25页/共74页 分组框的作用是将一些控件捆绑成一个组,使用户界面清晰明了。设计控件时,要先将GroupBoxGroupBox控件拖入窗体内,然后再向框内加入其他控件。GroupBox控件一般只修改其Text属性,Text是框头的提示性文字。2.2.4 使用分组框控件
16、(GroupBox)第26页/共74页任务7 7:设计一个以0.10.1秒为单位的秒表,单击【开始】按钮开始计时,单击【停止】按钮停止计时。第27页/共74页Timer控件称计时器,它用来计时。常用属性常用属性 EnabledEnabled属性:设置计时器的可用性例如:timer1.Enabled=true;timer1.Enabled=true;IntervalInterval属性:设定计时器的时间间隔,单位为毫秒例如:timer1.Interval=1000;timer1.Interval=1000;常用的事件常用的事件TimerTimer控件的事件只有一个TickTick,它在指定的时间
17、间隔发生 2.2.5 Timer控件 第28页/共74页【开始开始】按钮的按钮的ClickClick事件代码为:事件代码为:private private void void btnStart_Click(object btnStart_Click(object sender,sender,EventArgs e)EventArgs e)txtSeconds.Text=0;txtSeconds.Text=0;tmrWatch.Enabled=true;tmrWatch.Enabled=true;【停止停止】按钮的按钮的ClickClick事件代码为:事件代码为:private private
18、void void btnStop_Click(object btnStop_Click(object sender,sender,EventArgs e)EventArgs e)tmrWatch.Enabled=false;tmrWatch.Enabled=false;第29页/共74页计时器控件tmrWatchtmrWatch的TickTick事件代码为:private void tmrWatch_Tick(object sender,EventArgs e)private void tmrWatch_Tick(object sender,EventArgs e)txtSeconds.Te
19、xt txtSeconds.Text=(double.Parse(txtSeconds.Text)(double.Parse(txtSeconds.Text)+0.1)0.1)+;第30页/共74页任务8:移动的文字Point p;private void Form1_Load(object sender,EventArgs e)timer1.Enabled=true;p=label1.Location;private void timer1_Tick(object sender,EventArgs e)p.X+=19;if(p.X this.Width)p.X=0;label1.Locati
20、on=p;第31页/共74页任务9:电子相册制作一个照片自动展示程序,程序启动后将循环显示照片,每张照片在屏幕上停留0.5秒。当用户单击照片时将显示一个提示框,询问用户是否停止展示,如果用户回答“是”将停止展示,回答“否”将接着展示。第32页/共74页1、图片框控件PictureBox 图片框控件PictureBox用来在窗体上显示一个图片。常用属性常用属性 ImageImage属性:用来指定图片源。单击浏览按钮。设置该属性常用以下两种方式:设计时单击Image属性。通过Image.FromFile方法直接从文件中加载。形式如下:pictureBox对象名.Image=Image.FromFi
21、le(图像文件名);2.2.6 PictureBox控件的使用第33页/共74页常用属性常用属性 SizeModeSizeMode属性:设置图片框的尺寸模式,默认值为Normal。Value的取值如表3-2所示。值值含含 义义NormalNormal正常模式。图片显示在控件的左上角,若图片比控件大,只显示图片的左上部分,其余部分被剪裁掉StretchImageStretchImage伸缩模式。控件中的图片被收缩或拉伸,以适应控件的大小AutoSizeAutoSize自动大小模式。控件能自动调整大小以适应图片的尺寸CenterImageCenterImage居中模式。如果图片比控件小,图片显示于
22、控件的中心,如果图片比控件大,只显示图片的中心部分,边缘部分被剪裁掉第34页/共74页常用属性常用属性 EnabledEnabled属性:设置控件的可用性。使用语法为:Object.Enabled=trueObject.Enabled=true(或falsefalse);VisibleVisible属性:设置控件的可见性。使用语法为:Object.Enabled=trueObject.Enabled=true(或falsefalse);图片框的BorderStyleBorderStyle属性可设置其边框样式:值None表示没有边框;FixedSingle表示单线边框;Fixed3D表示立体边框
23、。第35页/共74页 循环是指在指定的条件下多次重复执行一组语句。被重复执行的一组语句称为循环体。2.3循环结构概念第36页/共74页2.3 循环结构概念 C#中提供了4种循环语句:while循环dowhile循环 for循环foreach循环第37页/共74页2.3.1 while循环语句 格式格式 :while(条件表达式)循环体;不要加“;”第38页/共74页2.3.1 dowhile循环语句 格式:do 循环体;while(条件表达式);必须必须有有“;”第39页/共74页2.3.1 for循环语句 for循环常常用于已知循环次数的情况。语法格式:语法格式:for(初始化表达式;循环条
24、件;迭代表达式)循环语句序列;第40页/共74页 2.3.1 foreach 循环结构foreach循环一般用于遍历整个集合或数组foreach(元素类型元素类型变量名变量名in集合或者数组名集合或者数组名)/语句语句例5-15:输入一个字符串,输出其中的每个字符第41页/共74页 关键代码分析staticvoidMain(stringargs)Console.WriteLine(请输入一个字符串请输入一个字符串:);/输入提示输入提示/从控制台读入字符串从控制台读入字符串stringline=Console.ReadLine();/循环输出字符串中的字符循环输出字符串中的字符foreach(
25、charcinline)Console.WriteLine(c);Console.ReadLine();依次循环字符串中依次循环字符串中的每个字符的每个字符第42页/共74页任务:10:实现如下效果:第43页/共74页1、列表框(ListBox)ListBox控件为用户提供了选项的列表,用户可以从列表中进行选择输入。如果项目数目超过列表框可显示的数目,控件上将自动出现滚动条,它是一种规范输入的好工具。1 1、列表框、列表框(ListBox)(ListBox)的常用属性的常用属性DataSource属性:列表框获取列表项的数据源。Items属性:列表框中的各项。例如:listBox1.Items
26、.Add(“北京”);MultiColumn属性:设置列表框是否可以多列显示。例如:listBox1.MultiColumn=true2.3.2 列表框和组合框第44页/共74页 SelectedIndex属性:列表框中第一个选定项的索引号。属性值为int类型,从0开始,未选中任何项时为-1。例如:int n=listBox1.SelectedIndex;/获取选择项的索引号 if(listBox1.SelectedIndex=-1)/表示列表框listBox1中若无选择项时该如何处理 SelectedItem属性:列表框中的选定项。例如语句:textBox1.Text=listBox1.Se
27、lectedItem.ToString();Text属性:列表框中选定项的文本。于是:listBox1.SelectedItem.ToString()与listBox1.Text等价。2.3.2 列表框和组合框第45页/共74页2 2、列表框、列表框(ListBox)(ListBox)的常用事件的常用事件DoubleClick事件:双击控件时发生。SelectedIndexChange事件:列表框中选择项的索引号变化时发生。2.3.2 列表框和组合框第46页/共74页3 3、ItemsItems集合的常用方法和属性集合的常用方法和属性 Add方法:向Items添加列表项。例如:listBox2
28、.Items.Add(listBox1.Text);Remove方法:从Items移除指定对象 RemoveAt方法:从Items移除指定索引号的某项。例如:listBox1.Items.RemoveAt(listBox1.1);Insert方法:向Items插入列表项到指定索引处。例如:listBox1.Items.Insert(2,南京);Clear方法:从Items移除所有列表项 例如:listBox1.Items.Clear();Count属性:Items的项数。例如:for(int i=0;ilistBox1.Items.Count;i+)2.3.2 列表框和组合框第47页/共74页
29、参考程序:private void tbtnRight_Click(object sender,EventArgs e)if(lstLeft.SelectedIndex!=-1)lstRight.Items.Add(lstLeft.SelectedItem);lstBottom.Items.Add(lstLeft.SelectedItem.ToString()+被移至右侧);lstLeft.Items.Remove(lstLeft.SelectedItem);第48页/共74页参考程序:private void bbtnLeft_Click(object sender,EventArgs e)
30、if(lstRight.SelectedItems.Count=0)return;else lstLeft.Items.Add(lstRight.SelectedItem);lstBottom.Items.Add(lstRight.SelectedItem.ToString()+被移至左侧);lstRight.Items.RemoveAt(lstRight.SelectedIndex);第49页/共74页参考程序:private void btnRightAll_Click(object sender,EventArgs e)for(int i=0;i lstLeft.Items.Count;
31、i+)lstLeft.SelectedIndex=i;lstRight.Items.Add(lstLeft.SelectedItem);lstBottom.Items.Add(左侧列表项全部被移至右侧);lstLeft.Items.Clear();第50页/共74页参考程序:private void btnLeftAll_Click(object sender,EventArgs e)foreach(object item in lstRight.Items)lstLeft.Items.Add(item);lstBottom.Items.Add(右侧列表项全部被移至左侧);lstRight.I
32、tems.Clear();第51页/共74页任务11:实现如下运行效果:第52页/共74页 ComboBox ComboBox控件称为组合框,它是文本框和列表框的组合,既可以接受用户的输入,也可以接受用户的选择。2、组合框第53页/共74页1 1、常用属性、常用属性DropDownStyleDropDownStyle属性:控制组合框的外观。Object.DropDownStyle=Object.DropDownStyle=System.Windows.Forms.System.Windows.Forms.ComboBoxStyle.ValueComboBoxStyle.Value;DropDo
33、wnStyleDropDownStyle属性的取值ValueValue由ComboBoxStyleComboBoxStyle枚举量确定,如表所示。2 2、组合框(ComboBoxComboBox)值值含含 义义SimpieSimpie控件的列表框部分总是可见的,且用户可以编辑文本框中的文本DropDownDropDown控件的列表框部分是隐藏的,且用户可以编辑文本框中的文本。默认风格DropDownListDropDownList控件的列表框部分是隐藏的,且用户不可以编辑文本框中的文本第54页/共74页2 2、常用事件、常用事件DropDownDropDown事件:展开下拉列表时发生。Sele
34、ctedIndexChangedSelectedIndexChanged事件:组合框中选择项的索引号变化时发生。TextChangedTextChanged事件:组合框中的文本变化时发生。第55页/共74页主要程序:private void cboCountry_SelectedIndexChanged_1(object sender,EventArgs e)switch(cboCountry.SelectedIndex)case 0:cboCity.Items.Clear();cboCity.Items.Add(北京);cboCity.Items.Add(上海);cboCity.Items.
35、Add(天津);cboCity.SelectedIndex=0;break;case 1:cboCity.Items.Clear();cboCity.Items.Add(华盛顿);cboCity.Items.Add(纽约);cboCity.Items.Add(芝加哥);cboCity.SelectedIndex=0;break;case 2:cboCity.Items.Clear();cboCity.Items.Add(伦敦);cboCity.Items.Add(曼彻斯特);cboCity.Items.Add(考文垂);cboCity.SelectedIndex=0;break;default
36、:cboCity.Items.Clear();break;第56页/共74页2.3.3 break和continue语句 在C#中可以用跳转语句来改变程序的执行顺序。在程序中采用跳转语句,可以避免可能出现的死循环。C#中的跳转语句有break语句、continue语句、goto语句和return语句等。1.break语句语句 使用break语句时,将结束循环,执行循环的后续语句。2.continue语句语句 continue语句作用是结束本次循环,跳过该语句之后的循环语句,返回到循环的起始处,并根据循环条件决定是否执行下一次循环。第57页/共74页 流程控制进阶在循环结构中,continue
37、和 break怎样跳转?for()continue;for()break;跳出循环结构跳出循环结构跳到下次循环跳到下次循环在循环中会怎样呢?在循环中会怎样呢?第58页/共74页2.4.1 数组的概念 C#的数组是一种数据结构,它包含若干相同类型的变量。包含在数组中的变量,也称为数组元素。在C#中,数组有一维(只有一个下标)或者多维(有多个下标)。对于每一维中,数组中数组元素的个数叫这个维的数组长度。2.4数组第59页/共74页2.4.2 一维数组 1一维数组的定义 格式:数组类型 数组名;例:int a;string arr;char carr;合法的标识符第60页/共74页 2动态初始化 格
38、式:数组名数组名=new=new 数据类型数据类型 数组长度数组长度;例:a=new int6;数值类型初始化为数值类型初始化为0 0,布尔类型初始化为,布尔类型初始化为falsefalse,字符串类,字符串类型初始化为型初始化为nullnull。也可以将定义和动态初始化写在一起:例:double a=new double10;string arr=new string3“as”,”vb”,”23”;用new关键字可以没有第61页/共74页 3静态初始化 静态初始化数组的格式如下:数据类型数据类型 数组名数组名=元素元素11,元素,元素2.2.;例如:int IntArr=-45,9,29,3
39、2,46;char StringArr=a,b,c,d;只有此唯一格式第62页/共74页4访问一维数组中的元素n 使用数组名与下标(索引)可以唯一确定数组中的某个元素,从而实现对该元素的访问。下标从0到数组长度减1。例如:int a=new int12;a0=4;a11=23;n在访问数组元素时,要注意不要使下标越界,例如:intA=newint5;A5=15;/下标越界第63页/共74页n每一个C#的数组都知道自己的长度,数组的长度由Length决定。inti=a.Length;/i=12 第64页/共74页【任务12】创建一个一维int数组,初始化数组元素并打印。int arr=new i
40、nt5;for(int i=0;i arr.Length;i+)arri=i*i;for(int i=0;i arr.Length;i+)Console.Write(“arri”+”);第65页/共74页【任务13】利用Array类的Sort方法将数组按从小到大的顺序输出。Array.Sort(QueArray);/对数组排序需排序的数组名练练练练 习习习习5 分钟第66页/共74页任务14定义一个包含12个元素的double类型数组score,保存学生的学习成绩,数组元素值为用户输入,将成绩按从小到大排序,并求平均成绩。第67页/共74页5.foreach循环语句 用foreach循环语句遍
41、历数组:foreachforeach循环语句的格式为:循环语句的格式为:foreach(类型名称 变量名称 in 数组名称)循环体;例如,可以将【任务1212】中的输出循环改为:foreach(int i in QueArray)foreach(int i in QueArray)Console.Write(i+Console.Write(i+”););是一个循环变量,类型必须与数组的类型一致,依次获取数组中各元素的值第68页/共74页2.4.3 二维数组 在多维数组中,二维数组是最简单也是最常用的数组。1二维数组的定义 数据类型,数组名;例如:例如:double,dArr;/定义一个doub
42、le型二维数组 第69页/共74页 2二维数组的初始化格式:数组名=new 数据类型数组长度1,数组长度2;例如:dArr=new double 3,4 ;也可以将二维数组的定义与动态初始化合并在一条语句中。例如:double,dArr=new double 3,4 ;初始化后,给每个元素赋上初值。第70页/共74页在动态初始化二维数组时,也可以直接为其赋予初始化值。例如:int,IntArr=new int,1,1,3,4,5,6;二维数组也可以进行静态初始化:char,c=a,b,c,x,y,z;第71页/共74页3.访问二维数组的元素二维数组也是通过数组名和下标值来访问数组元素的。下标值
43、也是从0开始的。二维数组需要两个下标才能唯一标识一个数组元素,其中第个下标表示该元素所在的行,第2个下标表示该元素所在的列。如intArr2,0代表数组名为intArr的二维数组中位于第3行、第1列的元素。根据二维数组的特点,访问二维数组中的元素通常需要一个二重循环。2023/3/2372C#程序设计实用教程第72页/共74页任务15:创建数组int ,A=32,61,28,39,58,23,29,10,69;输出该二维数组,并计算所有元素的平均值。staticvoidMain(stringargs)int,A=32,61,28,39,58,23,29,10,69;intsum=0;for(inti=0;i3;i+)for(intj=0;j3;j+)Console.Write(Ai,j+);sum+=Ai,j;Console.WriteLine();Console.WriteLine(二维数组的平均值为:+sum/A.Length);如何完成动态初始化?第73页/共74页感谢您的欣赏!第74页/共74页