C語(yǔ)言程序的設(shè)計(jì)說(shuō)明書_第1頁(yè)
C語(yǔ)言程序的設(shè)計(jì)說(shuō)明書_第2頁(yè)
C語(yǔ)言程序的設(shè)計(jì)說(shuō)明書_第3頁(yè)
已閱讀5頁(yè),還剩10頁(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)介

1、C語(yǔ)言程序設(shè)計(jì)說(shuō)明書一、C語(yǔ)言概述1、C語(yǔ)言出現(xiàn)的歷史背景:C語(yǔ)言是國(guó)際上廣泛流行的計(jì)算機(jī)咼級(jí)語(yǔ)言,既可用來(lái)寫系統(tǒng)軟件,也可用 來(lái)寫應(yīng)用軟件。C語(yǔ)言是在B語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的,它的根源可以追溯到ALGOI60°1960 年出現(xiàn)的ALGOL 60是一種面向問(wèn)題的高級(jí)語(yǔ)言,它離硬件比較遠(yuǎn),不宜用來(lái)編 寫系統(tǒng)程序。1963年英國(guó)的劍橋大學(xué)推出了CPL (combined programmingIan guage) 語(yǔ)言。CPL語(yǔ)言在ALGOL 60的基礎(chǔ)上接近硬件一些,但規(guī)模比較大, 難以實(shí)現(xiàn)。1967年英國(guó)劍橋大學(xué)的Matin Richards對(duì)CPL語(yǔ)言做了簡(jiǎn)化,推出 了 BCPL

2、(basic combined programming Ianguage) 語(yǔ)言。1970 年美國(guó)貝爾實(shí)驗(yàn) 室的Ken Thompson以BCPL語(yǔ)言為基礎(chǔ),又做了進(jìn)一步簡(jiǎn)化,設(shè)計(jì)出了很簡(jiǎn)單的而且很接近硬件的B語(yǔ)言(取BCPL的第一個(gè)字母),并用B語(yǔ)言寫了第一 個(gè)UNIX操作系統(tǒng),在PDP 7上實(shí)現(xiàn)。1971年在PDP 11/20上實(shí)現(xiàn)了 B語(yǔ)言, 并寫了 UNIX操作系統(tǒng)。但B語(yǔ)言過(guò)于簡(jiǎn)單,功能有限。1972年至1973年間,貝爾實(shí)驗(yàn)室的在B語(yǔ)言的基礎(chǔ)上設(shè)計(jì)出 了 C語(yǔ)言(取BCPL的第二個(gè)字母)。C語(yǔ)言既保持了 BCPL和B語(yǔ)言的優(yōu)點(diǎn)(精練, 接近硬件),又克服了它們的缺點(diǎn)(過(guò)于簡(jiǎn)單,數(shù)據(jù)

3、無(wú)類型等)。最初的C語(yǔ)言只 是為描述和實(shí)現(xiàn)UNIX操作系統(tǒng)提供一種工作語(yǔ)言而設(shè)計(jì)的。1973年, K.Thompson 和兩人合作把UNIX的90%以上用C改寫,即UNIX第5版。原來(lái)的 UNIX操作系統(tǒng)是1969年由美國(guó)的貝爾實(shí)驗(yàn)室的 K.Thompson和開 發(fā)成功的,是用匯編語(yǔ)言寫的。后來(lái),C語(yǔ)言多次做了改進(jìn),但主要還是在貝爾實(shí)驗(yàn)室內(nèi)部使用。直到1975年UNIX第6版公布后,C語(yǔ)言的突出優(yōu)點(diǎn)才引起人們的普遍注意。1977年出現(xiàn) 了不依賴于具體機(jī)器的C語(yǔ)言編譯文本可移植C語(yǔ)言編譯程序,使C移植到 其他機(jī)器時(shí)所需做的工作大大簡(jiǎn)化了,這也推動(dòng)了UNIX操作系統(tǒng)迅速地在各種機(jī)器上實(shí)現(xiàn)。例如 V

4、AX AT&T等計(jì)算機(jī)系統(tǒng)都相繼開發(fā)了 UNI%隨著UNIX的 日益廣泛使用,C語(yǔ)言也迅速得到推廣。C語(yǔ)言和UNIX可以說(shuō)是一對(duì)孿生兄弟, 在發(fā)展過(guò)程中相輔相成。1978年以后,C語(yǔ)言已先后移植到大、中、小、微型機(jī) 上,已獨(dú)立于UNIX和PDP了。現(xiàn)在C語(yǔ)言已風(fēng)靡全世界,成為世界上應(yīng)用最廣 泛的幾種計(jì)算機(jī)語(yǔ)言之一。以1978年發(fā)表的UNIX第7版中的C編譯程序?yàn)榛A(chǔ), Brian W.Kernighan和Dennis M.Ritchie (合稱K&R合著了影響深遠(yuǎn)的名著The C Programming Language,這本書中介紹的C語(yǔ)言成為后來(lái)廣泛使用的 C語(yǔ)言 版本的基

5、礎(chǔ),它被稱為標(biāo)準(zhǔn) Co 1983年,美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)(ANSI)根據(jù)C語(yǔ)言 問(wèn)世以來(lái)各種版本對(duì)C的發(fā)展和擴(kuò)充,制定了新的標(biāo)準(zhǔn),稱為 ANSI Co ANSI C 比原來(lái)的標(biāo)準(zhǔn)C有了很大的發(fā)展。K & R在1988年修改了他們的經(jīng)典著作The C Programming Language,按照 ANSI C 標(biāo)準(zhǔn)重新寫了該書。1987年,ANSI又 公布了新標(biāo)準(zhǔn)87 ANSIC。1990 年,國(guó)際標(biāo)準(zhǔn)化組織 ISO(International Standard Organization)接受87 ANSI C為ISO C的標(biāo)準(zhǔn)(ISO 9899 1990)。目前流行的C編譯系統(tǒng)都是以它

6、為基礎(chǔ)的。本書的敘述基本上以 ANSI C為基礎(chǔ)。目前廣泛流行的各種版本 C語(yǔ) 言編譯系統(tǒng)雖然基本部分是相同的,但也有一些不同。在微型機(jī)上使用的有Microsoft C 、Turbo C、Quick C、BORLAND (等,它們的不同版本又略有差 異。因此,讀者應(yīng)了解所用的計(jì)算機(jī)系統(tǒng)所配置的 C編譯系統(tǒng)的特點(diǎn)和規(guī)定(可 以參閱有關(guān)手冊(cè))。C語(yǔ)言的發(fā)展過(guò)程:20世紀(jì)60年代 1970 年1972 年1970年在繼承和1972 年 D.M.Ritc20世紀(jì)60年代產(chǎn)生的 BCPL語(yǔ)言是計(jì)算機(jī)軟件 人員在開發(fā)系統(tǒng)時(shí)為記 述語(yǔ)言使用的一種程序發(fā)展BCPL語(yǔ)言的hie進(jìn)一步充實(shí)和特點(diǎn)基礎(chǔ)上,提 出了一

7、種計(jì)算機(jī)完善了 B語(yǔ)言,設(shè)計(jì)出一種新的程語(yǔ)言 “ B語(yǔ)言”。序設(shè)計(jì)語(yǔ)言語(yǔ)言。2、C語(yǔ)言的特點(diǎn): 、語(yǔ)言簡(jiǎn)潔、緊湊、使用方便、靈活。 、運(yùn)算符豐富,適合的范圍廣泛。 、數(shù)據(jù)結(jié)構(gòu)豐富,具有現(xiàn)代化語(yǔ)言的各種數(shù)據(jù)結(jié)構(gòu)。 、具有結(jié)構(gòu)化的控制語(yǔ)句 (如ifelse語(yǔ)句、dowhile語(yǔ)句、while 語(yǔ)句、switch 語(yǔ)句、for語(yǔ)句)。 、編程數(shù)據(jù)少,程序設(shè)計(jì)自由度大。 、可直接對(duì)硬件操作。 、生成目標(biāo)代碼質(zhì)量高,程序執(zhí)行效率高。 、用C語(yǔ)言寫的程序可移植性好。以上所述的是C語(yǔ)言的一般特點(diǎn),至于其內(nèi)部的其他特點(diǎn)將結(jié)合各章節(jié)內(nèi)容逐一進(jìn)行介紹。反正C語(yǔ)言的這些特點(diǎn),使得它的應(yīng)用非常廣泛, 許多大的軟件都用

8、C語(yǔ)言編寫,這主要是由于C語(yǔ)言的可移植性好和對(duì)硬件的控制能力強(qiáng),表達(dá)和運(yùn)算能力強(qiáng),許多以前只能用匯編語(yǔ)言處理的冋題現(xiàn)在都在改用C語(yǔ)言來(lái)處理了??傊珻語(yǔ)言對(duì)編程者要求高。由于使用 C語(yǔ)言編寫程序會(huì)感到很少限制, 靈活性大,功能強(qiáng),可以編寫出任何類型的程序,因此學(xué)習(xí)和使用C語(yǔ)言是學(xué)習(xí) 計(jì)算機(jī)編程的基礎(chǔ)。、超市管理系統(tǒng)模塊介紹1、系統(tǒng)說(shuō)明部分、本系統(tǒng)中所包含的函數(shù):struct sth int nu mber;char n ame20;float price;int count; goods20;/* 學(xué)生結(jié)構(gòu)體*/int n=0;/* 商品種類計(jì)數(shù)*/#include <stdio.h&g

9、t;/* 包含各種信息 */ #include <string.h>是TC特有的,用于輸入輸出圖形方面,該系統(tǒng)#in clude vconi o.h>/*c oni o.h.專業(yè).專注.至今沒有使用里面的函數(shù),等待擴(kuò)展#include "f1.c" /*#include "f2.c" /*#in clude "f3.c" /*#include "f4.c" /*#include "f5.c" /*/包含所有模塊*/ 商品的上柜模塊*/ 商品的查詢模塊*/ 商品的購(gòu)買模塊*/ 商

10、品的展示模塊*/、系統(tǒng)提示文字說(shuō)明。(含流程圖) 流程圖:void init()/*超市系統(tǒng)說(shuō)明性文字*/prin tf("Choose your choice: n");printf("t1.ININ(Press '0' to finish)n");prin tf("t2.SEEKn");printf("t3.COUNT(Press '0' to finish)n");prin tf("t4.DISPLAYn");prin tf("t5.EXITn&q

11、uot;);2、菜單模塊。、功能說(shuō)明:該系統(tǒng)程序的開始他提示在該程序里面的 一些必要的簡(jiǎn)單操作步驟以及怎么退出該程序。、流程圖:*4*牛* "屮*#*審* + 十武lu 口 ro已Bto my 目#目予耳m、程序代碼:#include "myhead.h"/*包含頭文件 */void main() 清楚記錄*/int choice; clrscr();/*prin tf("t*n");prin tf("tttWELCOME TO USE MY SYSTEM!n");prin tf("t*n");do in

12、it();/*調(diào)用超市系統(tǒng)說(shuō)明性文字模塊*/scanf("%d",&choice);/*提供選擇 */if(choice=1) inin();/*選 1,添加超市的商品 */選2,查詢商品*/選3,購(gòu)買商品*/選4,打印現(xiàn)存所有商品信息*/選5,退出*/else if(choice=2) seek();/*else if(choice=3) coun t();/*else if(choice=4) prin t();/*else if(choice=5) break;/*elseprin tf("I nput error!n");while(1)

13、;、效果截圖:3、上柜模塊。、功能說(shuō)明:給超市的貨架上添加貨物、流程圖:、程序代碼:void inin()/* 添加超市的商品*/float t;do/*循環(huán)輸入商品信息*/輸入商品的號(hào)碼*/prin tf("No.:t");sca nf("%d",&goods n.nu mber);/*if(goodsn.number=0)/* 如果商品號(hào)碼為 0,則用 break 退出循環(huán) */ break;printf("Name:t");/* 輸入商品的名稱 */ scanf("%*c%s",

14、);printf("Price:t");/* 提示輸入商品的單價(jià) */ scanf("%f",&t);goodsn.price=t;printf("count:t");scanf("%d",&goodsn.count);/* 輸入商品的數(shù)量 */ n+;/*n 為全局變量,用于計(jì)數(shù)商品的種類數(shù)量 , 注意 n 的值從 0 計(jì),始終比 實(shí)際物品多 1,最后一個(gè)商品的編號(hào)為 0*/while(1);、效果截圖:3 、購(gòu)物模塊、功能說(shuō)明:選購(gòu)你所需要的商品、流程圖:、程序代碼:void count()/*

15、 購(gòu)買商品 */int no,n 1,i;float sum=0;/* 給 sun 賦予初值 0*/doprintf("No.:t");scanf("%d",&no);/*輸入需要購(gòu)買商品的號(hào)碼 */if(no=0)/* 商品號(hào)碼為0則退出*/break;for(i=0;i< n; i+)/*利用商品號(hào)在系統(tǒng)中查詢所需商品*/if(no=goodsi.number)/*判斷是否為該商品 */break;if(i!=n)/*查找成功*/printf("count:t");scanf("%d",&

16、n 1);/*輸入想要購(gòu)買該商品的數(shù)量 */.專業(yè)專注.goodsi.count-=n1;/* 將庫(kù)存商品數(shù)量相應(yīng)剪掉 */ sum+=goodsi.price*n1;/* 計(jì)算購(gòu)買的商品金額 */ else/* 查詢失敗 */printf("Input error!n");/* 輸出錯(cuò)誤提示信息 */while(1);/* 控制循環(huán)變量 */printf("f*n");printf("ttSUM=%fn",sum);/* 輸出購(gòu)買的商品金額 */printf("f*n");、效果截圖:4、搜索模塊、功能說(shuō)明:查詢

17、超市還有些什么商品 、流程圖:.專業(yè).專注.古訶陽(yáng)17=始4軸出 input goo ds numb er右粘出 can&xd thlw iiutiiLer!愉*I lainc.Price:CavntShjl1j=亡口 tiiLtJ胡出也詞詁車、程序代碼:void seek()/* 查詢商品 */int nu m,i;char c;do/*循環(huán)查詢商品*/i=0;prin tf("I nput goods nu mber:");/*按照輸入的商品號(hào)碼查詢?cè)撋唐沸畔?/scan f("%d",&nu m);do/*循環(huán)查詢系統(tǒng)內(nèi)是否有輸入的

18、商品號(hào)碼*/if(num=goodsi+.number)/*如果查找成功則退出查找循環(huán)*/i-;break;/* 退出該循環(huán)*/while(i<n);/*如果沒有查找到則i+,繼續(xù)匹配,直到找遍所有商品*/if(i=n)/* 如果i=n說(shuō)明查找失敗*/prin tf("Ca n not find this nu mber!n");else/*查找成功,則輸出該商品的信息*/prin tf("No.tNametPricetCo un tn");prin tf("%dt%st%.3ft%dn",goodsi. nu mber,goo

19、dsi. name,goodsi.price,goodsi.co un t);輸入任何值繼續(xù)查詢,輸入n或N退出查prin tf("C on tin ue?(Y/N)n");/* 詢功能*/scan f("%*c%c",&c);while(c!=' n'&&c!='N');、效果截圖:5、展示模塊、功能說(shuō)明:主要是方便管理員查看現(xiàn)在還有多少貨物,以便好進(jìn)貨 最主要的是給顧客帶來(lái)一種方便,不會(huì)因?yàn)槿必洝?、流程圖:void print()/* 打印現(xiàn)存所有商品信息 */int i;printf(&quo

20、t;No.tNametPricetCountn");/* 輸出商品的號(hào)碼、 名稱、價(jià)格和 數(shù)量 */for(i=0;i<n;i+)printf("%dt%st%.3ft%dn",goodsi.number,,goodsi .price,goodsi.count);/* 根據(jù)以上的順序依次輸出商品的號(hào)碼、名稱、價(jià)格 和數(shù)量 */、效果截圖:6. 程序清單:myhead.hstruct sth/*inin()*/printf("t2.SEEKn");#include"f3.c"int number;/

21、*seek()*/printf("t3.COUNT(Presschar name20;#include"f4.c"'0' to finish)n");float price;/*count()*/int count;#include"f5.c"printf("t4.DISPLAYn") goods20;/*print()*/Jint n=0;f1.cprintf("t5.EXITn");#include <stdio.h>void init()#include <

22、;string.h>f2.c#include <conio.h>printf("Chooseyourvoid inin()#include"f1.c"choice:n");/*init()*/printf("t1.ININ(Pressfloat t;#include"f2.c"'0' to finish)n");do.專業(yè) .專注 .goodsi.count-=n1;sum+=goodsi.price*n1;elseprintf("Inputerror!n");

23、while(1);printf(*n");printf("ttSUM=%fn",sum);printf(H*n");f5.cvoid print()int i;printf("No.tNametPric etCountn");for(i=0;i<n;i+)printf("%dt%st%.3ft% dn",goodsi.number,go ,goodsi.pr ice,goodsi.count);main1.c#include "myhead.h"void main()in

24、t choice;clrscr();次次次次次次次次次次次次次printf("No.:t");scanf("%d",&goodsn.number);if(goodsn.number=0)break;printf("Name:t");scanf("%*c%s",);printf("Price:t");scanf("%f",&t);goodsn.price=t;printf("count:t");scanf("%

25、d",&goodsn.count)Jn+;while(1);f3.cvoid seek()int num,i;char c;doi=0;printf("Input goodsnumber:");scanf("%d",&num);doif(num=goodsi+.number)i-;break;while(i<n);if(i=n)printf("Can not find this number!n");elseprintf("No.tNametPric etCountn");print

26、f("%dt%st%.3ft% dn",goodsi.number,go ,goodsi.pr ice,goodsi.count);n");scanf("%*c%c",&c);while(c!='n'&&c!='N');f4.cvoid count()int no,n1,i;float sum=0;doprintf("No.:t");scanf("%d",&no);if(no=0)break;for(i=0;i<n;i

27、+)if(no=goodsi.number)break;if(i!=n)printf("count:t");scanf("%d",&n1);*n");printf("tttWELCOMETO USE MY SYSTEM!n");printf("t*n");doinit();scanf("%d",&choice);if(choice=1) inin();elseif(choice=2)seek();elseif(choice=3)count();elseif(choice=4)print();elseif(choice=5)break;elseprintf("Inputerror!n");while(1);三、結(jié)論和體會(huì)。隨著計(jì)算機(jī)軟件技術(shù)的發(fā)展,尤其是進(jìn)入21世紀(jì)以來(lái),C語(yǔ)言從172 年出現(xiàn)到現(xiàn)在,

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論