面向?qū)ο蟪绦蛟O(shè)計(jì)-第2章_第1頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)-第2章_第2頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)-第2章_第3頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)-第2章_第4頁(yè)
面向?qū)ο蟪绦蛟O(shè)計(jì)-第2章_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

面向?qū)ο蟪绦蛟O(shè)計(jì)(C#)第二章C#語(yǔ)法基礎(chǔ)2/12目錄任務(wù)2.1利用C#實(shí)現(xiàn)系統(tǒng)歡迎菜單界面任務(wù)2.2編寫(xiě)C#分支結(jié)構(gòu)程序任務(wù)2.3編寫(xiě)C#循環(huán)結(jié)構(gòu)程序3/12任務(wù)2.1利用C#實(shí)現(xiàn)系統(tǒng)歡迎菜單界面21知識(shí)目標(biāo)能力目標(biāo)C#程序結(jié)構(gòu)輸出語(yǔ)句搭建開(kāi)發(fā)環(huán)境完成菜單制作4/122.1.1情境描述Jack承接了Jam運(yùn)動(dòng)商城的信息化系統(tǒng)建設(shè),作為信息化系統(tǒng)建設(shè)而言,采取具體的計(jì)算機(jī)語(yǔ)言對(duì)管理系統(tǒng)進(jìn)行實(shí)現(xiàn)是不可逾越的環(huán)節(jié)。Jack決定采取C#語(yǔ)言完成系統(tǒng),在他成功搭建了C#開(kāi)發(fā)環(huán)境之后,他決定采取C#控制臺(tái)項(xiàng)目來(lái)編寫(xiě)運(yùn)動(dòng)商城歡迎菜單界面,為了實(shí)現(xiàn)C#控制臺(tái)菜單界面,他需要完成以下任務(wù):1)設(shè)計(jì)運(yùn)動(dòng)商城進(jìn)入界面2)利用搭建的環(huán)境新建C#項(xiàng)目3)認(rèn)識(shí)C#程序基本結(jié)構(gòu)4)編寫(xiě)C#語(yǔ)句5)編譯及運(yùn)行C#程序第1章目錄5/12提到C#語(yǔ)言是伴隨微軟.NET平臺(tái)問(wèn)世,是一個(gè)全新的開(kāi)發(fā)體系,任何一個(gè)初學(xué)者,學(xué)習(xí)C#語(yǔ)言就的搭建開(kāi)發(fā)平臺(tái)及開(kāi)發(fā)環(huán)境,采用安裝VisualStudio2010開(kāi)發(fā)工具,能夠成功實(shí)現(xiàn).NET4.0平臺(tái)搭建及C#程序的編寫(xiě)、編譯工作。利用VisualStudio2010工具,可以創(chuàng)建C#控制臺(tái)項(xiàng)目、窗體項(xiàng)目、Web項(xiàng)目等不同應(yīng)用場(chǎng)景。利用C#控制臺(tái)程序進(jìn)行運(yùn)動(dòng)商城歡迎界面,首先需要設(shè)計(jì)運(yùn)動(dòng)商城歡迎界面,設(shè)計(jì)的界面初步可以顯示歡迎界面,并提示系統(tǒng)的進(jìn)入操作及退出操作等功能。具體設(shè)計(jì)界面如下圖2-1所示。而作為菜單界面,主要功能就是利用C#的輸出方法將菜單顯示到顯示器中,因此歡迎菜單界面的主要知識(shí)點(diǎn)僅僅是輸出方法。C#中,輸出方法主要通過(guò)控制臺(tái)類Console類的Write及WriteLine方法實(shí)現(xiàn)界面顯示。作為初學(xué)者,開(kāi)始需要掌握在什么地方編寫(xiě)相應(yīng)的程序代碼。第1章目錄2.1.2問(wèn)題分析1)安裝VisualStudio2010開(kāi)發(fā)工具。2)在VisualStudio2010下創(chuàng)建C#控制臺(tái)項(xiàng)目

打開(kāi)VisualStudio2010,選擇“文件菜單”->新建項(xiàng)目,進(jìn)入新建項(xiàng)目頁(yè)面,選擇VisualC#下的控制臺(tái)應(yīng)用程序,項(xiàng)目名稱修改為EPOS(若有需要,則可選擇更改存儲(chǔ)位置),點(diǎn)擊“確定”按鈕。如圖2-2所示:第1章目錄2.1.3解決方案7/123)新建CMainMenu類,用于實(shí)現(xiàn)主要的系統(tǒng)菜單界面及菜單操作。

選中右邊的解決方案資源管理器中的EPOS項(xiàng)目,右鍵->添加->類,進(jìn)入新建類的頁(yè)面,名稱修改為“CMainMenu.cs”,點(diǎn)擊確定按鈕完成新建類操作。如圖2-3所示:第1章目錄2.1.3解決方案8/124)添加主函數(shù),并輸出主菜單

staticvoidMain(string[]args){//輸出語(yǔ)句,在屏幕中輸出主菜單

Console.WriteLine(“**************運(yùn)動(dòng)商場(chǎng)EPOS系統(tǒng)********************");Console.WriteLine("1:登錄系統(tǒng)");Console.WriteLine("2:退出系統(tǒng)");Console.WriteLine(“**************************************************")Console.WriteLine("請(qǐng)選擇,輸入數(shù)字:");}

第1章目錄2.1.3解決方案9/125)運(yùn)行項(xiàng)目第1章目錄2.1.3解決方案10/122.1.4知識(shí)總結(jié)1、C#簡(jiǎn)介C#(讀作“CSharp”)是微軟公司開(kāi)發(fā)的一種基于.NET應(yīng)用的語(yǔ)言,是一種面向?qū)ο蟮木幊陶Z(yǔ)言(OOP)。它的功能強(qiáng)大、編程靈活,和其他所有的編程一樣,它也可以用于創(chuàng)建各種應(yīng)用程序。C#從C和C++派生而來(lái),但卻是完全重新開(kāi)發(fā)的。微軟公司借用了C和C++中一些已有的概念,并加入了新特性。這些特性使語(yǔ)言更容易使用,其中的許多特性與Java極其類似。此外,它還結(jié)合了Delphi和VisualBasic的很多優(yōu)秀特性。(1)簡(jiǎn)單。C#消除了諸如Java和C++等語(yǔ)言中復(fù)雜的東西和缺陷,其中包括宏、模板、多重繼承和可視化基類。(2)面向?qū)ο?。C#支持面向?qū)ο蟮?種編程原則:封裝、繼承和多態(tài)性。C#去掉了全局函數(shù)、全局變量和全局常數(shù),而是將它們都封裝在一個(gè)類中;C#去掉了多重繼承,利用多個(gè)接口隱式地實(shí)現(xiàn)多重繼承。(3)強(qiáng)大靈活。C#可用于創(chuàng)建字處理程序、圖形、電子表格,甚至其他語(yǔ)言的編譯器。(4)類型安全。C#去掉了指針,從根本上保證了程序的穩(wěn)定性和類型安全。第1章目錄11/122.1.4知識(shí)總結(jié)2、C#程序結(jié)構(gòu)在前面的任務(wù)中,創(chuàng)建一個(gè)控制臺(tái)應(yīng)用程序后,代碼編輯窗口中出現(xiàn)的代碼,是一個(gè)控制臺(tái)應(yīng)用程序的基本框架,它是VisualStudio.NET自動(dòng)生成的。usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;

namespaceConsoleApplication1{classProgram{staticvoidMain(string[]args){//}}}第1章目錄12/122.1.4知識(shí)總結(jié)(1)關(guān)鍵字在C#代碼中常常使用關(guān)鍵字,也叫保留字,是對(duì)C#有特定意義的字符串。關(guān)鍵字在VisualStudio.NET環(huán)境的代碼視圖中默認(rèn)以藍(lán)色顯示。如代碼中的using、namespace、class、static、void等,均為C#的關(guān)鍵字。(2)命令空間命名空間提供了一種組織相關(guān)類和其他類型的方式,與文件和組件不同,命名空間是一種邏輯組合。命名空間有兩種:一種是系統(tǒng)命名空間,一種是用戶自定義命名空間。系統(tǒng)命名空間是在VisualStudio.NET平臺(tái)提供的系統(tǒng)預(yù)定義的基本數(shù)據(jù)類型和類(包括方法成員)類型資源,以供用戶進(jìn)行程序設(shè)計(jì)時(shí)使用。系統(tǒng)命名空間使用using關(guān)鍵字導(dǎo)入,上述代碼中的System就是VisualStudio.NET中最基本的命名空間。用戶自定義命令空間使用namespace關(guān)鍵字聲明,上述程序中的“ConsoleApplication1”就是用戶自定義命名空間。第1章目錄13/122.1.4知識(shí)總結(jié)(3)類與C++核VB不同,C#是完全面向?qū)ο蟮木幊陶Z(yǔ)言,這意味著C#中的所有函數(shù)都必須封裝在一個(gè)類中。class語(yǔ)句聲明一個(gè)新的C#類。上述程序中的program類包含一個(gè)Main()函數(shù)。(4)Main方法C#程序必須包含一個(gè)Main方法,用于控制程序的開(kāi)始和結(jié)束。用戶可以在Main方法中創(chuàng)建對(duì)象和執(zhí)行其他方法。Main方法是一個(gè)靜態(tài)方法,可以具有void或int返回類型。聲明Main方法時(shí)既可以不使用參數(shù),也可以使用參數(shù),后一種形式使程序可以讀取命令行參數(shù)。(5)注釋注釋常被用來(lái)提供關(guān)于程序清單的描述性信息,以使程序具有可讀性。注釋語(yǔ)句不參與程序的執(zhí)行。第1章目錄14/122.1.4知識(shí)總結(jié)3、.NET與C#1)什么是.NETMicrosoft.NET是微軟推出的開(kāi)發(fā)平臺(tái),是一種面向網(wǎng)絡(luò)并能支持各種用戶終端的集成開(kāi)發(fā)環(huán)境。它的想法是:利用.NET將計(jì)算的重點(diǎn)由一個(gè)單獨(dú)的設(shè)備和Web站點(diǎn)通過(guò)Internet簡(jiǎn)單相連的世界轉(zhuǎn)變成一個(gè)由設(shè)備、服務(wù)程序和計(jì)算機(jī)協(xié)同工作的世界,以便為用戶提供更加豐富和完善的解決方案。Microsoft.NET方案由以下四個(gè)關(guān)鍵部分組成:.NET構(gòu)件塊服務(wù),即對(duì)某些特定服務(wù)程序的訪問(wèn),例如用于文件存儲(chǔ)的服務(wù)、日歷管理或Passport.NET。.NET設(shè)備軟件,是運(yùn)行于新型Internet設(shè)備之上的軟件。.NET用戶體驗(yàn),包括如自然界面、信息代表和智能標(biāo)簽這樣的功能,這些技術(shù)可以自動(dòng)建立超級(jí)鏈接,這些鏈接指向與用戶創(chuàng)建的文檔中的單詞或短語(yǔ)相關(guān)的信息。.NET基礎(chǔ)結(jié)構(gòu),由.NET框架、MicrosoftVisualStudio.NET、.NET企業(yè)服務(wù)器和MicrosoftWindows.NET組成。第1章目錄15/122.1.4知識(shí)總結(jié)2).NET框架.NET框架實(shí)際上是一個(gè)運(yùn)行在Windows系列操作系統(tǒng)上的一個(gè)系統(tǒng)應(yīng)用程序,它采用一種全新的網(wǎng)絡(luò)計(jì)算機(jī)模式,通過(guò)標(biāo)準(zhǔn)的Internet協(xié)議如XML和SOAP等,解決了異質(zhì)平臺(tái)上的分布式松耦合計(jì)算問(wèn)題。.NET框架體系結(jié)構(gòu)如圖2-1所示,它由以下四個(gè)主要部分組成:公共語(yǔ)言運(yùn)行時(shí)(CommonLanguageRuntime,簡(jiǎn)稱CLR);統(tǒng)一類庫(kù)(BaseClassLibrary);數(shù)據(jù)庫(kù)訪問(wèn)組件(ADO.NET和XML);活動(dòng)服務(wù)器頁(yè)面(ASP.NET)。第1章目錄16/122.1.5應(yīng)用實(shí)踐通過(guò)前面的學(xué)習(xí),我們知道了C#的程序結(jié)構(gòu)的組成元素,了解了C#開(kāi)發(fā)環(huán)境的一些知識(shí),那么我們就利用所知道的知識(shí)開(kāi)發(fā)一個(gè)簡(jiǎn)單的C#程序來(lái)鞏固所學(xué)知識(shí)。創(chuàng)建一個(gè)圖書(shū)管理系統(tǒng)登陸界面。第1章目錄17/12任務(wù)2.2編寫(xiě)C#分支結(jié)構(gòu)程序21知識(shí)目標(biāo)能力目標(biāo)If語(yǔ)句利用if語(yǔ)句控制菜單轉(zhuǎn)向18/122.2.1情境描述任務(wù)2.1僅僅完成了運(yùn)動(dòng)商城系統(tǒng)歡迎界面顯示功能,未能完成運(yùn)動(dòng)商城歡迎界面的界面功能選擇功能及相對(duì)應(yīng)的界面調(diào)整功能,為了歡迎菜單能夠正常運(yùn)行,為此他需要完成以下任務(wù):1)完善歡迎菜單界面中的操作功能2)實(shí)現(xiàn)登錄菜單設(shè)計(jì)與實(shí)現(xiàn)3)實(shí)現(xiàn)歡迎界面轉(zhuǎn)向到登錄界面;4)編譯及調(diào)試,保證系統(tǒng)正常運(yùn)行。第1章目錄19/122.2.2問(wèn)題分析完善歡迎菜單的操作,也就是實(shí)現(xiàn)人機(jī)交互,控制臺(tái)的人機(jī)交互功能需要通過(guò)鍵盤(pán)等輸入設(shè)備向計(jì)算機(jī)輸入數(shù)據(jù),計(jì)算機(jī)通過(guò)外界輸入的數(shù)據(jù),決定程序的執(zhí)行過(guò)程。在C#中可以通過(guò)Console.ReadLine或者Console.ReadKey實(shí)現(xiàn)輸入。對(duì)于歡迎菜單的操作,外界輸入的數(shù)據(jù)不同,執(zhí)行的操作也就不同,故需要使用分支語(yǔ)句來(lái)實(shí)現(xiàn)選擇。登錄菜單屬于系統(tǒng)的另外一個(gè)界面,就其登錄界面而言,需要用戶輸入登錄名及登錄密碼。故在界面設(shè)計(jì)時(shí),可以采取圖2-6的模式進(jìn)行設(shè)計(jì),從技術(shù)上講,登錄菜單充分應(yīng)用了輸入、輸出方法及分支語(yǔ)句。在完成了2個(gè)界面的設(shè)計(jì)及操作之后,需要實(shí)現(xiàn)2個(gè)界面的轉(zhuǎn)向操作,C#語(yǔ)言可以采取在同一個(gè)類中調(diào)用函數(shù)的模式實(shí)現(xiàn)界面的跳轉(zhuǎn)。第1章目錄20/122.2.3解決方案1、重構(gòu)形成FirstMenuDisplay方法打開(kāi)任務(wù)2.1的案例,選中Main函數(shù)中的代碼,選擇重構(gòu)菜單->提取方法(或者使用快捷方式Ctrl+R,Ctrl+M)進(jìn)入方法重構(gòu)窗體,修改方法名稱為:FirstMenuDisplay。如下圖2-7所示:第1章目錄21/122.2.3解決方案第1章目錄22/122.2.3解決方案2、編制登錄界面在登錄菜單中,除了計(jì)算機(jī)顯示的提示信息以外,還需要用戶從鍵盤(pán)輸入登錄的用戶名及密碼。從鍵盤(pán)輸入數(shù)據(jù)應(yīng)采用Console.ReadLine();或者Console.Read();具體代碼如下:第1章目錄23/122.2.3解決方案2、編制登錄界面第1章目錄24/122.2.3解決方案4、在FirstMenuDisplay方法中添加選擇控制

classCMainMenu{//略

privatestaticvoidFirstMenuDisplay(){stringctrl="";//控制變量,保存輸入的選擇項(xiàng)

Console.WriteLine(***************運(yùn)動(dòng)商場(chǎng)EPOS系統(tǒng)********************");Console.WriteLine("1:登錄系統(tǒng)");Console.WriteLine("2:退出系統(tǒng)");Console.WriteLine(****************************************************")Console.Write("請(qǐng)選擇,輸入數(shù)字:");

ctrl=Console.ReadLine();//接收來(lái)自鍵盤(pán)的輸入選項(xiàng)if(ctrl=="1")//判定輸入項(xiàng),轉(zhuǎn)入不同的菜單LoginDisplay();//調(diào)用用戶登錄菜單elseExitDisplay();//調(diào)用退出系統(tǒng)菜單}第1章目錄25/122.2.3解決方案5、調(diào)試及運(yùn)行

第1章目錄26/122.2.4知識(shí)總結(jié)1、數(shù)據(jù)類型在程序設(shè)計(jì)中,難免要對(duì)數(shù)據(jù)進(jìn)行處理,而數(shù)據(jù)又有不同的種類,如整數(shù)、小數(shù)、單個(gè)字符、多個(gè)字符、真假等等,這些種類不同的數(shù)據(jù)就叫數(shù)據(jù)類型。C#支持兩種數(shù)據(jù)類型:值類型和引用類型。值類型變量直接含有它們的數(shù)據(jù),而引用類型的變量存儲(chǔ)對(duì)數(shù)據(jù)的引用。這里重點(diǎn)介紹值類型,引用類型將在后面的任務(wù)中引出。C#的值類型可以分為三種:簡(jiǎn)單類型、結(jié)構(gòu)類型和枚舉類型。第1章目錄27/122.2.4知識(shí)總結(jié)2)結(jié)構(gòu)類型上面介紹的簡(jiǎn)單類型都只包含一種類型信息,可以進(jìn)行一些常用的數(shù)據(jù)運(yùn)算和文字處理。但在實(shí)際的處理對(duì)象中,有許多信息是由多個(gè)不同類型的數(shù)據(jù)組合在一起進(jìn)行描述的,而且這些不同類型的數(shù)據(jù)又互相聯(lián)系組成了一個(gè)有機(jī)的整體,此時(shí)就要用到結(jié)構(gòu)類型。例如,某單位要開(kāi)發(fā)一個(gè)人事管理系統(tǒng),一個(gè)人事記錄包括職工姓名、年齡、聯(lián)系電話、家庭住址等項(xiàng),這些數(shù)據(jù)項(xiàng)都是與某一個(gè)職工相聯(lián)系的。此時(shí),就可以定義一個(gè)職工worker結(jié)構(gòu)類型,在這個(gè)結(jié)構(gòu)類型中包括職工姓名、年齡、聯(lián)系電話、家庭住址,這樣就可以用一個(gè)結(jié)構(gòu)類型的變量來(lái)存放某個(gè)職工的所有相關(guān)信息。第1章目錄28/122.2.4知識(shí)總結(jié)2、變量與常量程序在處理數(shù)據(jù)時(shí),必須將數(shù)據(jù)保存在計(jì)算機(jī)的內(nèi)存中。保存在內(nèi)存中的數(shù)據(jù)從可變性看,分為常量和變量?jī)煞N。1)標(biāo)識(shí)符標(biāo)識(shí)符是用戶定義的名字,可以用作變量名、函數(shù)名以及類型名等。C#語(yǔ)言的標(biāo)識(shí)符名稱定義的要求與C++語(yǔ)言是基本一致的,必須遵守以下規(guī)則:(1)所有的標(biāo)識(shí)符只能由字母、數(shù)字和下劃線這三類字符組成,而且第一個(gè)字符必須為字母或下劃線。(2)標(biāo)識(shí)符中不能包含空格、標(biāo)點(diǎn)符號(hào)、運(yùn)算符等其他符號(hào)。(3)標(biāo)識(shí)符不能與C#關(guān)鍵字名相同。(4)標(biāo)識(shí)符區(qū)分大小寫(xiě)。(5)標(biāo)識(shí)符不能與C#中的類庫(kù)名相同。第1章目錄29/122.2.4知識(shí)總結(jié)2)變量變量時(shí)計(jì)算機(jī)內(nèi)存中被命名的數(shù)據(jù)存儲(chǔ)單元,其中存儲(chǔ)的值是可以改變的。在程序中通過(guò)變量名來(lái)引用其中存儲(chǔ)的信息。變量的類型決定了存儲(chǔ)在變量中的數(shù)值的類型。在程序中通過(guò)變量取值,實(shí)際上就是通過(guò)變量名找到相應(yīng)的內(nèi)存地址,再?gòu)闹凶x取數(shù)據(jù)或存入數(shù)據(jù)。(1)變量的命名通常,變量的命名只要符合標(biāo)識(shí)符的命名規(guī)則即可,但在實(shí)際應(yīng)用中,為了保證程序具有良好的風(fēng)格,變量名最好使用具有實(shí)際意義的英文單詞進(jìn)行組合,提高程序的可讀性。(2)聲明變量在C#中,變量必須先聲明后使用。事實(shí)上,在C#中所有的名稱都必須先聲明后使用,包括常量名、方法名、類名、對(duì)象名等標(biāo)識(shí)符。第1章目錄30/122.2.4知識(shí)總結(jié)2.運(yùn)算符與表達(dá)式表達(dá)式是用于計(jì)算的運(yùn)算符和操作數(shù)的組合,它用于提供特定的信息。一個(gè)表達(dá)式中通常包括一個(gè)或多個(gè)運(yùn)算符以及至少一個(gè)操作數(shù)。C#支持下列表達(dá)式:算術(shù)表達(dá)式、邏輯表達(dá)式、關(guān)系表達(dá)式、賦值表達(dá)式、條件表達(dá)式等。運(yùn)算符是代表一個(gè)操作的符號(hào),而操作數(shù)是參與運(yùn)算的對(duì)象。比如,在表達(dá)式“a+b”中,a和b是操作數(shù),“+”是運(yùn)算符。第1章目錄31/122.2.4知識(shí)總結(jié)3、分支控制語(yǔ)句一個(gè)C#的程序中包括許多的語(yǔ)句。在撰寫(xiě)C#應(yīng)用程序時(shí),可以使用“{”與“}”符號(hào)將這些語(yǔ)句分組。C#中用來(lái)控制分支結(jié)構(gòu)的語(yǔ)句有兩種:if語(yǔ)句和switch語(yǔ)句。1)if語(yǔ)句if語(yǔ)句的語(yǔ)法格式一般為:if(表達(dá)式)

語(yǔ)句1else

語(yǔ)句2

第1章目錄32/122.2.4知識(shí)總結(jié)2)switch語(yǔ)句當(dāng)分支情況很多時(shí),雖然if語(yǔ)句的多層嵌套可以實(shí)現(xiàn),但會(huì)使程序變得冗長(zhǎng)且不直觀。針對(duì)這種情況,C#提供了switch語(yǔ)句,用于處理多分支的選擇問(wèn)題。其語(yǔ)法格式為:switch(控制表達(dá)式){case常量表達(dá)式1:

語(yǔ)句塊1case常量表達(dá)式2:

語(yǔ)句塊2

……case常量表達(dá)式n:

語(yǔ)句塊ndefault:

語(yǔ)句塊n+1}

第1章目錄33/122.2.5應(yīng)用實(shí)踐在前面學(xué)習(xí)的基礎(chǔ)上,通過(guò)本實(shí)踐,充分理解并運(yùn)用分支結(jié)構(gòu)語(yǔ)句,創(chuàng)建C#應(yīng)用程序。使用分支控制語(yǔ)句,實(shí)現(xiàn)對(duì)成績(jī)等級(jí)的評(píng)定第1章目錄34/12任務(wù)2.3編寫(xiě)C#循環(huán)結(jié)構(gòu)程序21知識(shí)目標(biāo)能力目標(biāo)While循環(huán)For循環(huán)Dowhile循環(huán)利用循環(huán)完善菜單35/12內(nèi)容提要4IPO組成1235分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)符號(hào)繪制循環(huán)結(jié)構(gòu)流程圖36/122.3.1情境描述通過(guò)任務(wù)2.1、2.2及2.2擴(kuò)展聯(lián)系,Jack成功實(shí)現(xiàn)了多個(gè)界面菜單的界面及菜單操作,但他卻發(fā)現(xiàn),菜單的交互及菜單的轉(zhuǎn)向操作僅僅能夠操作一次,未能達(dá)到菜單的作用,為了實(shí)現(xiàn)操作界面的重復(fù)展示,他需要完成以下任務(wù):1)認(rèn)識(shí)循環(huán)機(jī)制2)完善系統(tǒng)菜單第1章目錄37/122.3.2問(wèn)題分析Jack的菜單之所有只能執(zhí)行一次,原因在于他在處理菜單操作時(shí)沒(méi)有能夠執(zhí)行重復(fù)操作的語(yǔ)句,所以他需要使用循環(huán)結(jié)構(gòu)的語(yǔ)句來(lái)實(shí)現(xiàn)菜單操作。以第一個(gè)菜單操作為例,只有當(dāng)用戶輸入2的情況下,系統(tǒng)才結(jié)束運(yùn)行,該循環(huán)屬于循環(huán)次數(shù)未知,故可以采用dowhile或者while循環(huán)來(lái)修改當(dāng)前菜單。第1章目錄38/122.3.3解決方案1、修改FirstMenuDisplay方法

打開(kāi)完成任務(wù)2.2應(yīng)用實(shí)踐練習(xí)之后的項(xiàng)目,在工作區(qū)中打開(kāi)CMenu.cs類文件,在FristMenuDisplay中添加循環(huán)控制操作。privatestaticvoidFirstMenuDisplay(){

stringctrl="";

do{

Console.Clear();//輸出語(yǔ)句,在屏幕中輸出主菜單Console.WriteLine(************運(yùn)動(dòng)商場(chǎng)EPOS系統(tǒng)*******************");Console.WriteLine("1:登錄系統(tǒng)");Console.WriteLine("2:退出系統(tǒng)");Console.WriteLine(************************************************")Console.Write("請(qǐng)選擇,輸入數(shù)字:");ctrl=Console.ReadLine();if(ctrl=="1")LoginDisplay();

}while(ctrl!="2");}第1章目錄39/122.3.3解決方案2、修改MainDisplay菜單將光標(biāo)移動(dòng)到MainDisplay方法中,在現(xiàn)有的代碼基礎(chǔ)上,添加循環(huán)語(yǔ)句,主菜單操作的模式與第一個(gè)菜單操作方式相同publicstaticvoidMainDisplay(){stringctrl;while(true){Console.Clear();Console.WriteLine("***************運(yùn)動(dòng)商場(chǎng)EPOS系統(tǒng)主界面***********");Console.WriteLine("*1:基礎(chǔ)信維護(hù)*");Console.WriteLine("*2:收銀結(jié)算*");Console.WriteLine("*3:真情回饋*");Console.WriteLine("*4:信息查詢及統(tǒng)計(jì)*");Console.WriteLine("*5:返回上級(jí)*");Console.WriteLine("*************************************************");Console.Write("請(qǐng)選擇,輸入數(shù)字:");ctrl=Console.ReadLine();switch(ctrl){case"1":BaseInfoDisplay();break;//調(diào)用基礎(chǔ)信息維護(hù)界面case"2":PosMenuDisplay();break;//調(diào)用收銀界面case"3":TestDisplay();break;//調(diào)用真情回饋界面case"4":SumDisplay();break;//調(diào)用統(tǒng)計(jì)界面

case"5":return;//輸入5是結(jié)束當(dāng)前方法,退回到調(diào)用該方法時(shí)}}},第1章目錄40/122.3.3解決方案3、修改主界面下的二級(jí)菜單界面針對(duì)BaseInfoDisplay、SumDisplay、FeedBackDisplay進(jìn)行菜單操作控制,按照菜單控制思想,修改具體操作菜單4、保存,運(yùn)行程序第1章目錄41/122.3.4知識(shí)總結(jié)C#提供while、do和for語(yǔ)句以執(zhí)行重復(fù)循環(huán)的程序代碼。使用這些語(yǔ)句在某個(gè)條件成立時(shí),會(huì)重復(fù)執(zhí)行特定的程序代碼。1、for當(dāng)要重復(fù)執(zhí)行某區(qū)段的程序代碼次數(shù)已知時(shí),可以使用for語(yǔ)句。語(yǔ)法如下:for(初始值;條件判斷式;更新值)

循環(huán)體for語(yǔ)句的執(zhí)行過(guò)程為:1)計(jì)算初始值。2)判斷條件判斷式的值,若為假,則結(jié)束for循環(huán),否則繼續(xù)執(zhí)行。3)執(zhí)行循環(huán)體,然后更新值,轉(zhuǎn)到第二步。第1章目錄42/122.3.4知識(shí)總結(jié)2、while在循環(huán)次數(shù)不固定時(shí),可以使用while循環(huán)。語(yǔ)法為:初始值while(條件式){

循環(huán)體}while循環(huán)的執(zhí)行過(guò)程為:計(jì)算初始值。判斷條件式的值,若為真,執(zhí)行循環(huán)體,然后返回第一步。若條件式的值為假,while循環(huán)結(jié)束。第1章目錄43/502.3.4知識(shí)總結(jié)3、do…whiledo循環(huán)通常搭配while一起使用。用法類似while循環(huán),唯一不同的地方在于while會(huì)先判斷條件,再?zèng)Q定要不要執(zhí)行

溫馨提示

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

評(píng)論

0/150

提交評(píng)論