C結構化程序設計計_第1頁
C結構化程序設計計_第2頁
C結構化程序設計計_第3頁
C結構化程序設計計_第4頁
C結構化程序設計計_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

模塊2-2結構化程序設計結構化程序設計本講要點:

順序結構

選擇結構

循環(huán)結構單選按鈕與復選按鈕列表框與組合框Timer控件

PictureBox控件數(shù)組任何程序都是由順序、選擇、循環(huán)三種基本控制結構進行構造。3C#程序設計實用教程2.1順序結構

2.1.1順序結構的概念:

有些簡單的程序是按程序語句的編寫順序依次執(zhí)行的,這種結構稱為順序結構。任務1:情境2-1歡迎軟件Label控件稱為標簽,它是最簡單又最常用的控件,用來顯示信息。

常用屬性

Text屬性:設置控件的文本內容:

label1.Text=”姓名”;

AutoSize屬性:設置控件是否能夠自動調整大小:label1.AutoSize=true;Location屬性:設置控件在容器中的位置。

label1.Location=newPoint(100,200);Size屬性:設置控件的大小:

label1.Size=newSystem.Drawing.Size(20,30);BackColor屬性:設置控件的背景顏色。label1.BackColor=System.Drawing.Color.Red;ForeColor屬性:設置控件的前景顏色。BorderStyle屬性:設置控件的邊框風格。

Font屬性:設置字體。Cursor屬性:設置鼠標光標在控件上的形狀。2.1.1標簽Label任務2:文檔編輯小程序2.1.2文本框TextBox3、TextBox控件稱為文本框,主要用來接受用戶的輸入,當然也可以用于輸出信息。

常用屬性

Multiline屬性:設置文本框是否可以多行顯示或輸入。例如:textBox1.Multiline=true;ScrollBars屬性:設置文本框的滾動條。

None:無滾動條。

Vertical:有垂直滾動條。

Horizontal:有水平滾動條。

Both:兩者都有。ReadOnly屬性:設置文本框是否只讀。例如:textBox1.ReadOnly=true;2.1.2文本框TextBox3、TextBox常用屬性

PasswordChar屬性:設置在文本框中輸入口令時的掩蓋字符。例如:textBox1.PasswordChar=’*’;SelectionLength屬性:設置或獲取文本框中選擇文本的字符個數(shù)。使用語法如下:Object.SelectionLength=n; //使文本框從頭開始選中n個字符intn=Object.SelectionLength;//獲取文本框中選中的字符個數(shù)例如:if(textBox1.SelectionLengt>0)……SelectedText屬性:獲取文本框中選擇的字符串舉例如下:label1.Text=textBox1.SelectedText;SelectionStart:選擇的起始位置(光標位置)2.1.2文本框TextBox3、TextBox常用方法Clear()方法:從文本框中清除所有文本。以下兩行程序代碼是等效的:

textBox1.Clear();textBox1.Text=””;Copy()方法:將文本框中選定的內容復制到剪貼板中。例如:textBox1.Copy();Cut()方法:將文本框中選定的內容剪切到剪貼板中。例如:

textBox1.Cut();Paste()方法:用剪貼板中的內容替換文本框中當前選定的內容。例如:

textBox1.Paste();Select()方法:選定文本框的一部分文字。語法格式為:

textBox1.Select(intstart,intLength);2.1.2文本框TextBox3、TextBox常用方法SelectAll()方法:選定文本框的全部文字。例如:

textBox1.SelectAll();Focus()方法:將輸入焦點置于文本框內。例如:

textBox1.Focus();Undo()方法:撤消在文本框中的上一次編輯操作。例如:

textBoxEdit.Undo();2.1.2文本框TextBox任務3:小學生10以內加法練習軟件常用屬性

Image屬性:設置命令按鈕上顯示的圖片。Enabled屬性:設置命令按鈕的可用性使用語法如下:

Object.Enabled=true(或false);常用事件常用的只有click,單擊鼠標左鍵時發(fā)生2.1.3按鈕ButtonParse()方法:

主要用于將數(shù)字的字符串表示形式轉換為它的等效的其他基本數(shù)值類型。例:strings=“18”;inta=int.Parse(s)-10;//a=8intb=a+int.Parse(Console.ReadLine());

strings="13.3";doubled=double.Parse(s);2.1.4字符串與數(shù)值類型的轉換Convert類:Conver.靜態(tài)方法名(字符串)例如:strings="13";inta=Convert.ToInt32(s);doubled=Convert.ToDouble(s);要轉換成的數(shù)據類型2.1.4字符串與數(shù)值類型的轉換其他類型轉換成字符串類型ToString()方法doubleradius=2.67;strings;s=radius.ToString():2.1.4字符串與數(shù)值類型的轉換提示:用Random類產生一個隨機數(shù)對象,然后是用該對象的Next方法生成一個整型隨機數(shù)。

Randomrn=newRandom();intx=rn.Next(100);任務3:小學生10以內加法練習軟件rn.Next():產生隨機整數(shù)rn.Next(100);產生0~100之間的隨機整數(shù)rn.Next(100,200);產生100~200之間的隨機數(shù)rn.NextDouble();產生0.0~1.0之間的隨機數(shù)選擇結構,是一種常用的主要基本結構,是計算機根據所給定選擇條件為真或否,而決定從各實際可能的不同操作分支中執(zhí)行某一分支的相應操作。2.2選擇結構的概念if語句一般用于簡單選擇,即選擇項中有一個或兩個分支。格式為:

if(布爾條件表達式){

語句塊1;}else{

語句塊2;}2.2.1單分支選擇結構(if語句)必須是布爾類型的可以是單語句,也可以是多語句可以省略2.用if語句實現(xiàn)多分支選擇結構

[格式]:if(表達式1){語句塊1;}elseif(表達式2){語句塊2;}elseif(表達式3){語句塊3;}……else{語句塊n;}2.2.2switch結構C#中的switch語句switch(int/char/string表達式){case常量表達式1:

語句1;break;//必須有

case常量表達式2:

語句2;break;//必須有

……default:

語句n;break;//必須有}C#C#中的switch結構小結條件判斷的表達式類型

——整型或字符型或字符串break語句的要求:每個case都有breakdefault也要有break特殊情況://示例6中的代碼stringtime;…switch(time){case6:case7:case8:case9:case10:Console.WriteLine("上午好");break;//…default:Console.WriteLine("休息時間");break;}case中沒有其他語句時,不需要break語句任務4:水果價格任務5:設計Windows應用程序,單擊【計算】按鈕,根據對單選按鈕的選擇,計算加、減、乘、除中的一種運算。

結果如圖:1、單選按鈕(RadioButton)單選按鈕也叫選項按鈕,為用戶提供從多個選項中選擇一個選項的功能,因此單選按鈕顧名思義是一種“多選一”的控件。常用屬性

Checked屬性:設置和獲取控件的選中狀態(tài)。使用的語法為:object.Checked=true;//使控件被選中例如:if(radioButton1.Checked==true) ……Text屬性:圓圈旁邊的指示性文字2.2.3使用單選按鈕與復選框控件任務6:設計Windows應用程序,單擊【計算】按鈕,根據對復選框的選擇,計算加、減、乘、除運算。2.2.3使用單選按鈕與復選框控件2、復選按鈕(CheckBox)

可以在窗口同時選中多個復選框,這是其和單選按鈕的區(qū)別。

檢查框與單選鈕共享大多數(shù)的常用屬性、方法和事件。2.2.3使用單選按鈕與復選框控件

分組框的作用是將一些控件捆綁成一個組,使用戶界面清晰明了。設計控件時,要先將GroupBox控件拖入窗體內,然后再向框內加入其他控件。GroupBox控件一般只修改其Text屬性,Text是框頭的提示性文字。

2.2.4使用分組框控件(GroupBox)任務7:設計一個以0.1秒為單位的秒表,單擊【開始】按鈕開始計時,單擊【停止】按鈕停止計時。Timer控件稱計時器,它用來計時。

常用屬性Enabled屬性:設置計時器的可用性例如:timer1.Enabled=true;Interval屬性:設定計時器的時間間隔,單位為毫秒例如:timer1.Interval=1000;常用的事件Timer控件的事件只有一個Tick,它在指定的時間間隔發(fā)生

2.2.5Timer控件

【開始】按鈕的Click事件代碼為:privatevoidbtnStart_Click(objectsender,EventArgse){txtSeconds.Text="0";tmrWatch.Enabled=true;}【停止】按鈕的Click事件代碼為:privatevoidbtnStop_Click(objectsender,EventArgse){tmrWatch.Enabled=false;}計時器控件tmrWatch的Tick事件代碼為:privatevoidtmrWatch_Tick(objectsender,EventArgse){txtSeconds.Text=(double.Parse(txtSeconds.Text)+0.1)+"";}任務8:移動的文字Pointp;private

voidForm1_Load(objectsender,EventArgse){timer1.Enabled=true;p=label1.Location;}

private

voidtimer1_Tick(objectsender,EventArgse){p.X+=19;

if(p.X>this.Width)p.X=0;label1.Location=p;}任務9:電子相冊制作一個照片自動展示程序,程序啟動后將循環(huán)顯示照片,每張照片在屏幕上停留0.5秒。當用戶單擊照片時將顯示一個提示框,詢問用戶是否停止展示,如果用戶回答“是”將停止展示,回答“否”將接著展示。1、圖片框控件PictureBox

圖片框控件PictureBox用來在窗體上顯示一個圖片。常用屬性

Image屬性:用來指定圖片源。單擊瀏覽按鈕。設置該屬性常用以下兩種方式:

設計時單擊Image屬性。通過Image.FromFile方法直接從文件中加載。形式如下:pictureBox對象名.Image=Image.FromFile(圖像文件名);2.2.6PictureBox控件的使用常用屬性

SizeMode屬性:設置圖片框的尺寸模式,默認值為Normal。Value的取值如表3-2所示。值含

義Normal正常模式。圖片顯示在控件的左上角,若圖片比控件大,只顯示圖片的左上部分,其余部分被剪裁掉StretchImage伸縮模式??丶械膱D片被收縮或拉伸,以適應控件的大小AutoSize自動大小模式??丶茏詣诱{整大小以適應圖片的尺寸CenterImage居中模式。如果圖片比控件小,圖片顯示于控件的中心,如果圖片比控件大,只顯示圖片的中心部分,邊緣部分被剪裁掉常用屬性

Enabled屬性:設置控件的可用性。使用語法為:Object.Enabled=true(或false);Visible屬性:設置控件的可見性。使用語法為:

Object.Enabled=true(或false);圖片框的BorderStyle屬性可設置其邊框樣式:值None表示沒有邊框;FixedSingle表示單線邊框;Fixed3D表示立體邊框。

循環(huán)是指在指定的條件下多次重復執(zhí)行一組語句。被重復執(zhí)行的一組語句稱為循環(huán)體。

2.3循環(huán)結構概念2.3循環(huán)結構概念C#中提供了4種循環(huán)語句:while循環(huán)do…while循環(huán)

for循環(huán)foreach循環(huán)

while循環(huán)語句[格式]:

while(條件表達式){

循環(huán)體;

}不要加“;”do……while循環(huán)語句

[格式]:

do{

循環(huán)體;

}while(條件表達式);必須有“;”for循環(huán)語句for循環(huán)常常用于已知循環(huán)次數(shù)的情況。

語法格式:

for(初始化表達式;循環(huán)條件;迭代表達式){

循環(huán)語句序列;}①③④②foreach循環(huán)結構foreach循環(huán)一般用于遍歷整個集合或數(shù)組foreach(元素類型

變量名in集合或者數(shù)組名){//語句}例5-15:輸入一個字符串,輸出其中的每個字符

關鍵代碼分析staticvoidMain(string[]args){Console.WriteLine("請輸入一個字符串:");//輸入提示//從控制臺讀入字符串stringline=Console.ReadLine();//循環(huán)輸出字符串中的字符foreach(charcinline){

Console.WriteLine(c);}Console.ReadLine();}依次循環(huán)字符串中的每個字符任務:10:實現(xiàn)如下效果:1、列表框(ListBox)

ListBox控件為用戶提供了選項的列表,用戶可以從列表中進行選擇輸入。如果項目數(shù)目超過列表框可顯示的數(shù)目,控件上將自動出現(xiàn)滾動條,它是一種規(guī)范輸入的好工具。1、列表框(ListBox)的常用屬性DataSource屬性:列表框獲取列表項的數(shù)據源。

Items屬性:列表框中的各項。例如:listBox1.Items.Add(“北京”);MultiColumn屬性:設置列表框是否可以多列顯示。例如:listBox1.MultiColumn=true2.3.2列表框和組合框SelectedIndex屬性:列表框中第一個選定項的索引號。屬性值為int類型,從0開始,未選中任何項時為-1。例如:intn=listBox1.SelectedIndex;//獲取選擇項的索引號

if(listBox1.SelectedIndex==-1)//表示列表框listBox1中若無選擇項時該如何處理

……SelectedItem屬性:列表框中的選定項。例如語句:textBox1.Text=listBox1.SelectedItem.ToString();Text屬性:列表框中選定項的文本。于是:listBox1.SelectedItem.ToString()與listBox1.Text等價。2.3.2列表框和組合框2、列表框(ListBox)的常用事件DoubleClick事件:雙擊控件時發(fā)生。SelectedIndexChange事件:列表框中選擇項的索引號變化時發(fā)生。2.3.2列表框和組合框3、Items集合的常用方法和屬性

Add方法:向Items添加列表項。例如:listBox2.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的項數(shù)。例如:for(inti=0;i<listBox1.Items.Count;i++)2.3.2列表框和組合框參考程序:

privatevoidtbtnRight_Click(objectsender,EventArgse){if(lstLeft.SelectedIndex!=-1){lstRight.Items.Add(lstLeft.SelectedItem);lstBottom.Items.Add(lstLeft.SelectedItem.ToString()+"被移至右側");lstLeft.Items.Remove(lstLeft.SelectedItem);}}參考程序:

privatevoidbbtnLeft_Click(objectsender,EventArgse){if(lstRight.SelectedItems.Count==0){return;}else{lstLeft.Items.Add(lstRight.SelectedItem);lstBottom.Items.Add(lstRight.SelectedItem.ToString()+"被移至左側");lstRight.Items.RemoveAt(lstRight.SelectedIndex);}}參考程序:

privatevoidbtnRightAll_Click(objectsender,EventArgse){for(inti=0;i<lstLeft.Items.Count;i++){lstLeft.SelectedIndex=i;lstRight.Items.Add(lstLeft.SelectedItem);}lstBottom.Items.Add("左側列表項全部被移至右側");lstLeft.Items.Clear();}參考程序:privatevoidbtnLeftAll_Click(objectsender,EventArgse){foreach(objectiteminlstRight.Items){lstLeft.Items.Add(item);}lstBottom.Items.Add("右側列表項全部被移至左側");lstRight.Items.Clear();}任務11:實現(xiàn)如下運行效果:ComboBox控件稱為組合框,它是文本框和列表框的組合,既可以接受用戶的輸入,也可以接受用戶的選擇。2、組合框1、常用屬性DropDownStyle屬性:控制組合框的外觀。Object.DropDownStyle=System.Windows.Forms.ComboBoxStyle.Value;DropDownStyle屬性的取值Value由ComboBoxStyle枚舉量確定,如表所示。2、組合框(ComboBox)值含

義Simpie控件的列表框部分總是可見的,且用戶可以編輯文本框中的文本DropDown控件的列表框部分是隱藏的,且用戶可以編輯文本框中的文本。默認風格DropDownList控件的列表框部分是隱藏的,且用戶不可以編輯文本框中的文本2、常用事件DropDown事件:展開下拉列表時發(fā)生。SelectedIndexChanged事件:組合框中選擇項的索引號變化時發(fā)生。TextChanged事件:組合框中的文本變化時發(fā)生。

主要程序:privatevoidcboCountry_SelectedIndexChanged_1(objectsender,EventArgse){switch(cboCountry.SelectedIndex){case0:{cboCity.Items.Clear();cboCity.Items.Add("北京");cboCity.Items.Add("上海");cboCity.Items.Add("天津");cboCity.SelectedIndex=0;}break;case1:{cboCity.Items.Clear();cboCity.Items.Add("華盛頓");cboCity.Items.Add("紐約");cboCity.Items.Add("芝加哥");cboCity.SelectedIndex=0;}break;case2:{cboCity.Items.Clear();cboCity.Items.Add("倫敦");cboCity.Items.Add("曼徹斯特");cboCity.Items.Add("考文垂");cboCity.SelectedIndex=0;}break;default:cboCity.Items.Clear();break;}}2.3.3break和continue語句

在C#中可以用跳轉語句來改變程序的執(zhí)行順序。在程序中采用跳轉語句,可以避免可能出現(xiàn)的死循環(huán)。C#中的跳轉語句有break語句、continue語句、goto語句和return語句等。1.break語句使用break語句時,將結束循環(huán),執(zhí)行循環(huán)的后續(xù)語句。

2.continue語句

continue語句作用是結束本次循環(huán),跳過該語句之后的循環(huán)語句,返回到循環(huán)的起始處,并根據循環(huán)條件決定是否執(zhí)行下一次循環(huán)。

流程控制進階在循環(huán)結構中,continue和break怎樣跳轉?for(…){…………continue;…………}……for(…){…………break;…………}……跳出循環(huán)結構跳到下次循環(huán)在循環(huán)中會怎樣呢?2.4.1數(shù)組的概念

C#的數(shù)組是一種數(shù)據結構,它包含若干相同類型的變量。包含在數(shù)組中的變量,也稱為數(shù)組元素。在C#中,數(shù)組有一維(只有一個下標)或者多維(有多個下標)。對于每一維中,數(shù)組中數(shù)組元素的個數(shù)叫這個維的數(shù)組長度。2.4數(shù)組2.4.2一維數(shù)組

1.一維數(shù)組的定義

格式:數(shù)組類型[]數(shù)組名;例:int[]a;

string[]arr;

char[]carr;

合法的標識符

2.動態(tài)初始化

格式:數(shù)組名=new數(shù)據類型[數(shù)組長度];例:a=newint[6];數(shù)值類型初始化為0,布爾類型初始化為false,字符串類型初始化為null。也可以將定義和動態(tài)初始化寫在一起:例:double[]a=newdouble[10];string[]arr=newstring[3]{“as”,”vb”,”23”};用new關鍵字可以沒有

3.靜態(tài)初始化靜態(tài)初始化數(shù)組的格式如下:

數(shù)據類型[]數(shù)組名={元素1[,元素2...]};

例如:

int[]IntArr={-45,9,29,32,46};char[]StringArr={‘a’,’b’,‘c’,‘d’};只有此唯一格式4.訪問一維數(shù)組中的元素使用數(shù)組名與下標(索引)可以唯一確定數(shù)組中的某個元素,從而實現(xiàn)對該元素的訪問。下標從0到數(shù)組長度減1。例如:

int[]a=newint[12];a[0]=4;

a[11]=23;

在訪問數(shù)組元素時,要注意不要使下標越界,例如:

int[]A=newint[5];A[5]=15;//下標越界

每一個C#的數(shù)組都知道自己的長度,數(shù)組的長度由Length決定

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論