第一篇:C語言上機實驗心得
C語言上機實驗心得
在科技高度發展的今天,計算機在人們之中的作用越來越突出。而C語言作為一種計算機的語言,學習它將有助于我們更好的了解計算機,與計算機進行交流,因此,我們一定要學好C語言,這對我們以后的發展是十分重要的。
說到這,上機實驗當然就是一個必不可少的環節了,C語言靈活、簡潔的特點,只有通過編程實踐才能真正了解,真正說懂。為了更好地學習語法規定、掌握程序設計方法、提高程序開發能力,我們必須實際上機、編寫程序。
通過實驗我也發現了自己不少的問題,這都是只看書上的程序而沒有自己親身上機編寫程序而無法得知的,假如我們只因看熟書上的程序就以為自己已經掌握了C語言那就大錯特錯了。
我主要存在以下的這些缺點:
1、學習耐心與細心不足,如scanf(“%d”,&n);中的“&”有時候會忘了。而在最后輸出時又錯寫成printf(“%d”,&n);從而錯誤得輸出了地址而不是我原來想要的答案。
2、編程思想不夠發散,看著題目有時想不出解答的方法,更不用說編寫程序來解題了。
3、4、基本功不夠,有些函數的表達不太精通,需要看書來核實,以致耗時較多。知識不夠廣,有些內容沒有學好,不能要用到時及時反映出來,認識程度不夠深刻。
5、6、有時候不夠精簡,有一點用處不大或者說沒有也可以的文字存在。
英語水平較差,對錯誤的地方雖然電腦有說,但由于是英文,理解上還是存在一點問題。
為了能更好地學好C語言,在今后學習中我要更多的動腦,綜合運用所學,多看相關東西,多上機練習,提高電腦水平,增強自學能力,把已會的東西掌握好。
實驗中我深刻意識到完成程序的編寫,決不意味著萬事大吉。認為萬無一失的程序,實際上機運行時可能會出現很多意想不到的問題。有時編譯程序檢測出一大堆錯誤,有時程序能夠順利運行,但是運行結果并不是你預期中想要的。因為開發環境所提供的編譯系統無法發現程序邏輯錯誤,或者是你原來所設計時的理論錯誤,這就只能靠自己的上機經驗來分析判斷錯誤的所在了。所以程序的調試是一個技巧性很強的工作,它可能比編一個程序耗時更多。由此可看出上機實踐的重要性。
通過本次C語言上機實驗,我對這個介于人類與非人類之間的計算機編程語言有了一定的體驗。編程的時候有因為順利編出程序而開心過、有因為做得比人家慢而郁悶過、有因為不知從何入手而無奈過、有因為不知錯出在哪而彷徨過??但隨著練習的增多,我對C語言比以前熟了很多,不再只是紙上談兵,我都有能力獨立做出一些程序,可能對于一些“高手來說這不算什么,或者他們早就會了,但我依然覺得很開心,因為我跟我自己比是進步了。
當然,我還得感謝老師的指導與幫助,如果沒有老師和其他同學的指點,我可能對C語言還是一籌莫展,在實驗中遇到的大大少少的問題與所犯過的錯誤將是我以后的要加以注意的地方與認真審查的部分,為我奠定堅固的基石。伴隨著學習的深入,我發現高深的東西還有很多很多,不懂不熟的知識還有很多,所以我不能停步,對C語言,我以后會更加努力學習的。
第二篇:erp上機實驗心得
ERP上機實驗心得
通過該實驗,對所學的知識有了進一步的了解。在實驗的過程中,出現了一些問題,不過最后都得以解決。然而通過這些錯誤,使我對這些知識點更加印象深刻。
ERP是一門十分有用的學科,通過對其認真學習,可以學習不少先進的管理思想。ERP是一門綜合性的學科,通過對其學習我感覺是對有些科目的一些回顧和綜合,像會計學、管理學等。
之所以對ERP的操作會遇到這樣或那樣的關卡,最大的問題在于缺乏經驗。通過對ERP的學習尤其是上機實驗我更發覺了自己的不足之處,動手操作能力比較弱,雖然理論上頭頭是道,可真正做到電腦跟前時,頭腦反應速度似乎很慢很慢,即便對里面的相關知識點都有相當的了解,操作起來感覺也是力不從心,這可能是與自己平時不注意鍛煉動手能力有著直接的聯系,另外經驗不足也是一個原因。
通過對ERP系統的學習,我已經對其管理理念與具體操作流程有了一定的了解,上機課上我們重點學習了采購系統和生產系統。
首先介紹ERP系統的有關概念:ERP是英文enterprise resources planning(企業資源計劃)的簡稱。
ERP系統是建立在信息技術基礎上的,以系統化的管理思想,為企業的決策層及員工提供決策運行手段的管理平臺.他是從MRP(物料需求計劃)發展而來的新一代集成化管理信息系統,他擴展了MRP的功能,其核心思想是供應鏈管理,他跳出了傳統企業邊界,從供應鏈范圍去優化企業資源,ERP技術集中信息技術和先進的管理系統與一身,成為現代企業的運行模式,反應時代對企業合理調配資源,最大化的創造財富的要求,成為企業在信息時代生存和發展的的基石,他對于改善企業業務流程,提高企業核心競爭力作用是顯而易見的。
ERP是將企業所有資源進行整合集成管理,簡單的說是將企業的三大流,物流,資金流,信息流進行全面一體化管理的管理信息系統,他不僅可以用于生產企業管理,而且許多其他類型的企業也可導入ERP系統進行資源計劃和管理.ERP系統具有集成性,先進性,統一性,完整性和開發性。
ERP系統的特點有:
1.企業內部管理所需的業務應用系統,主要是指財務、物流、人力資源等核心模塊。
2.物流管理系統采用了制造業的MRP管理思想;FMIS有效地實現了預算管理、業務評估、管理會計、ABC成本歸集方法等現代基本財務管理方法;人力資源管理系統在組織機構設計、崗位管理、薪酬體系以及人力資源開發等方面同樣集成了先進的理念。
3.ERP系統是一個在全公司范圍內應用的、高度集成的系統。數據在各業務系統之間高度共享,所有源數據只需在某一個系統中輸入一次,保證了數據的一致性。
4.對公司內部業務流程和管理過程進行了優化,主要的業務流程實現了自動化。
5.采用了計算機最新的主流技術和體系結構:B/S、INTERNET體系結構,WINDOWS界面。在能通信的地方都可以方便地接入到系統中來。
6.集成性、先進性、統一性、完整性、開放性。
在企業中,ERP管理主要包括三方面的內容:生產控制(計劃、制造)、物流管理(分銷、采購、庫存管理)和財務管理(會計核算、財務管理)。這三大系統本身就是集成 體,它們互相之間有相應的接口,能夠很好的整合在一起來對企業進行管理。另外,要特別一提的是,隨著企業對人力資源管理重視的加強,已經有越來越多的ERP廠商將人力資源管理納入了ERP系統的一個重要組成部分,對這一功能,我們也會進行一下簡要的介紹。這里我們將仍然以典型的生產企業為例子來介紹ERP的功能模塊,就針對我們專業需求而言,主要還是物流管理。物流管理包括分銷、采購、庫存管理。下面對ERP系統進行簡單描述:
(一)分銷管理
銷售的管理是從產品的銷售計劃開始,對其銷售產品、銷售地區、銷售客戶各種信息的管理和統計,并可對銷售數量、金額、利潤、績效、客戶服務做出全面的分析,這樣在分銷管理模塊中大致有三方面的功能。
1、對于客戶信息的管理和服務
它能建立一個客戶信息檔案,對其進行分類管理,進而對其進行針對性的客戶服務,以達到最高效率的保留老客戶、爭取新客戶。在這里,要特別提到的就是最近新出現的CRM軟件,即客戶關系管理,ERP與它的結合必將大大增加企業的效益。
2、對于銷售訂單的管理
銷售訂單是ERP的入口,所有的生產計劃都是根據它下達并進行排產的。而銷售訂單的管理是貫穿了產品生產的整個流程。它包括:
a.客戶信用審核及查詢(客戶信用分級,來審核訂單交易)。
b.產品庫存查詢(決定是否要延期交貨、分批發貨或用代用品發貨等)。c.產品報價(為客戶作不同產品的報價)。
d.訂單輸入、變更及跟蹤(訂單輸入后,變更的修正,及訂單的跟蹤分析)。e.交貨期的確認及交貨處理(決定交貨期和發貨事物安排)。
3、對于銷售的統計與分析
這時系統根據銷售訂單的完成情況,依據各種指標做出統計,比如客戶分類統計,銷售代理分類統計等等,再就這些統計結果來對企業實際銷售效果進行評價:
a.銷售統計(根據銷售形式、產品、代理商、地區、銷售人員、金額、數量來分別進行統計)。
b.銷售分析(包括對比目標、同期比較和訂貨發貨分析,來從數量、金額、利潤及績效等方面作相應的分析)。
c.客戶服務(客戶投訴紀錄,原因分析)。
(二)庫存控制
用來控制存儲物料的數量,以保證穩定的物流支持正常的生產,但又最小限度的占用資本。它是一種相關的、動態的、及真實的庫存控制系統。它能夠結合、滿足相關部門的需求,隨時間變化動態地調整庫存,精確的反映庫存現狀。這一系統的功能又涉及:
a.為所有的物料建立庫存,決定何時定貨采購,同時作為交與采購部門采購、生產部門作生產計劃的依據。
b.收到訂購物料,經過質量檢驗入庫,生產的產品也同樣要經過檢驗入庫。c.收發料的日常業務處理工作。
(三)采購管理
確定合理的定貨量、優秀的供應商和保持最佳的安全儲備。能夠隨時提供定購、驗收的信息,跟蹤和催促對外購或委外加工的物料,保證貨物及時到達。建立供應商的檔案,用最新的成本信息來調整庫存的成本。具體有:
a.供應商信息查詢(查詢供應商的能力、信譽等)。
b.催貨(對外購或委外加工的物料進行跟催)。
c.采購與委外加工統計(統計、建立檔案,計算成本)。
d.價格分析(對原料價格分析,調整庫存成本)。
總而言之,作為一名物流管理專業的學生,在扎實的專業理論知識的基礎上,如果結合上機實驗,熟悉ERP系統的話。這對我們以后參加工作是十分重要的。
第三篇:會計上機實驗心得
在這學期的會計模擬綜合實驗的學習中,讓我對其有了更深的認識和見解。從這次會計實驗中,我學到了不少的知識。通過本次實驗,讓我對會計整個流程的操作有了較好的認識,我學會了會計中各個環節的操作,以及更加懂得了細心、謹慎和責任對于一個會計來說是那么的重要。
在這次會計模擬實驗中,我們首先學習的是制作手工帳,這個手續相對繁瑣,從編制分錄、填制原始憑證和記賬憑證、登記明細賬、編寫T型賬戶和科目匯總表、填寫總賬,再到最后編制資產負債表利潤表。在課堂上,老師講授了每一個會計資料的填寫方法,然后我們根據實驗的企業—宏遠機械設備公司在2007年12月的業務進行編制。
在手工帳的實驗中我除了對會計工作有了進一步的認識,在取得實效的同時在實習過程中發現了自身的一些不足。比如自己不夠細心,經常抄錯數字或借貸寫反,導致核算結果出錯,引起不必要的麻煩;還有就是我自身的嚴謹性不夠,錯帳更正有時候做得相當的不規范,而且數字和文字的大小我經常忘了書寫占行距的一半,為錯帳更正帶來不必要的麻煩;在編制分錄方面還不夠熟練,今后還得加強練習,熟悉課本知識。還有,基礎的知識非常的重要,其實這一次實驗我清楚的了解到自己還有很多基礎知識不牢固特別是一些計算問題,基礎、中級財務會計的知識模糊不清楚。在實際操作的過程中,在發現有很多問題自己不知如何下手,沒有辦法解決問題。只有通過學習和實驗功過了,在課堂上認真的學習理論知識,在實踐的過程中把學到的理論知識應用到實踐中,才能夠更好更快地解決問題。
在手工記帳過程中,由于種種原因遇到了很多問題,但是通過對癥下藥,采用錯帳更正方法,一般有劃線更正法、補充登記法、紅字更正法三種,而不是填補、挖改。這是我在作帳時要注意的一點。在實驗中我也學會了原始憑證與證帳憑證、各明細帳與總帳核對等。這是非常繁瑣,也是非常重要的,否則會功虧一簣,徒勞無功。
手工帳完成后,我們就開始做會計的電子帳,這個過程相對手工帳來說會簡單很多。首先是建立帳套,建立核算單位、輸入核算單位基本信息,確定有關代碼級次及長度。之后再進入實驗軟件定義明細會計科目、輸入期初余額,在這里我就犯了錯,輸入期初余額時,把所有的貸方數字前都加了個“-”號,導致試
算不平衡,后來還是在同學的幫助下找出了錯誤。錄完期初余額后,就進入了實驗的重點——輸入記賬憑證,這是一個比較麻煩的過程,不過由于之前手工帳已經把憑證做好了,在這里就只用直接輸入就行。輸完記賬憑證后,要換人審核。最后生成報表,確定報表結構、定義運算公式,就出現了資產負債表和利潤表。
在手工實驗中最能體會的是計算辛苦,填寫麻煩,容易出錯!而電子實驗中會感覺輕松很多,只需要輸入憑證就行,總賬明細賬和報表都可以直接生成,大大減少了工作量和出錯的概率。另外,會計實驗軟件中對于憑證、賬簿、報表的收集匯總、歸類查詢都是很方便。我不由得感嘆會計電子化,有助于提高會計工作質量,減輕會計人員的負擔,提高了會計工作的效率,促進了會計工作的規范化。總之,這次上機實驗給我的印象就是電子化的會計操作能省時間、省人力、方便易行。
通過這學期的模擬實驗使我加強了對基礎會計各方面知識的記憶也讓我發現了自己在哪些方面的不足,發現問題及時補救是這一次實驗一大收獲。在實驗我學習到了許多在書本上不能學到的知識。這次實驗,讓我不僅經歷了對企業發生的業務審核并親自填寫記賬憑證,登記明細賬、編制科目匯總表、登總賬等一系統的操作,更明白作為一名會計所必須具備的優秀的品質,諸如細心和耐心。在實驗的過程中遇到問題除了問老師自己也意識到只有把書本上學到的會計理論知識應用于實際的會計實務操作中去,才能夠真正掌握這門知識。
會計學科是一門實踐操作性很強的學科,所以會計理論教學與會計模擬培驗如同車之兩輪、鳥之兩翼,兩者有機銜接、緊密配合,才能顯著提高我們掌握所學內容的質量。這次實驗中我非常感謝兩位老師的耐心指導和幫助,也感謝學校為我們提供了這樣一次會計的實驗課程,讓我充分參與到會計活動的每個過程,學習到了編制手工帳和電子帳,從而對企業的會計活動有了更深的了解和認識,這對于我們未來從事會計職業有著非常大的幫助。
第四篇:c語言上機實驗指導
第三部分 上機實驗指導
實驗一 C語言的運行環境和運行過程
一、實驗實訓目的及要求
1、C++語言的運行環境,了解所用的計算機系統的基本操作方法,學會獨立使用該系統。
2、了解在該系統上如何編輯、編譯、連接和運行一個C++程序。
3、通過運行簡單的C++程序,初步了解C++源程序的特點。
二、實驗內容
1、C++的啟動以及工作環境介紹。
2、在Visual C++環境中運行C++語言源程序
三、實驗實訓指導
Visual C++提供了一個集源程序編輯、代碼編譯與調試于一體的開發環境,這個環境稱為集成開發環境,對于集成開發環境的熟悉程度直接影響程序設計的效率。開發環境是程序員同Visual C++的交互界面,通過它程序員可以訪問C++源代碼編輯器、資源編輯器,使用內部調試器,并且可以創建工程文件。Microsoft Visual C++是多個產品的集成。Visual C++從本質上講是一個windows應用程序。Visual C++有兩個版本,對于每一個版本,都有對應的文檔:
(1)專業版本,它包括一個更高級的優化編譯器,更廣泛的文檔,并能設計基于DOS的應用程序。
(2)標準版本,其費用較低,沒有那么高級的編譯器,文檔較少,且不能設計基于DOS的應用程序。
用鼠標單擊“開始”、“程序”、“Microsoft Visual Studio 6.0”、“Microsoft Visual C++ 6.0”,然后打開一個工程文件,就會顯示如圖1.5.1所示的窗口,圖中標出了窗口中各組成部分的名稱,而且顯示了已裝入Graph工程文件的Visual C++ 6.0的開發環境,這是在建立了工程文件之后的結果。
菜單欄
1.File菜單 2.Edit菜單 3.View菜單 4.Insert菜單 5.Project菜單 6.Build菜單 7.Tools菜單
如下圖 編輯C++源程序
[例]一個C++源程序。#include
int a,b;
a=5;
b=7;
int c=add(a,b);
cout<<”a+b=”< return x+y;} 四、實驗實訓思考題 1、輸入并運行例題中程序,熟悉調試C程序的的方法與步驟。 2、寫出一個C程序的構成。 實驗二 C語言的基礎知識 一、實驗實訓目的及要求 1、掌握C++語言數據類型,熟悉如何定義一個整型、字符型、實型變量,以及對它們賦值的方法,了解以上類型數據輸出時所用的格式轉換符。 2、學會使用C++的有關算術運算符,以及包含這些運算符的表達式,特別是自加(++)和自減(--)運算符的使用。 3、進一步熟悉C++程序的編輯、編譯、連接和運行的過程。 二、實驗實訓內容 1、輸入程序,運行出結果。 mian(){ char c1 , c2; c1=97;c2=98; cout< 2、分析下程序,寫出運行結果,再輸入計算機運行,將得到的結果與你分析得到的結果比較對照。 main(){ int i , j , m , n;i=8;j=10; m=++i;n=j++; cout< 三、實驗實訓指導 1、在此基礎上 1)將第二行改為: int c1, c2; 再使之運行。 3)再將第三行改為: c1=300;c2=400; 再使之運行,分析其運行結果。 在該程序中,說明了字符型數據在特定情況下可作為整型數據處理,整型數據有時也可以作為字符型數據處理。 2、此程序主要考查自加、自減運算符以及復合運算符的用法。 四、實驗實訓思考題 1、“=”和“==”有什么區別? 2、“&”和“&&”、“|”和“||”有什么區別? 實驗三 簡單的C++程序設計 一、實驗實訓目的及要求 1.理解C++語言程序的順序結構 2.掌握常用的C++語言語句,熟練應用賦值、輸入、輸出語句。 二、實驗實訓內容 1、按格式要求輸入/輸出數據 #include “iostream.h” main(){ int a,b;flost x,y;char c1,c2;cin>>a>>b;cin>>x>>y;cin>>c1>>&c2; cout< 2、輸入三角形三邊長,求三角形面積。 #include “math.h” main(){ float a,b,c,s,area;cin>>a>>b>>c;s=1.0/2*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c));cout< 3、已知圓半徑,圓柱高,求圓周長,圓柱體積。 main(){ float r,h,l,v,pi;pi=3.1415926;cin>>r>>h;l=2*pi*r;v=pi*r*r*h;cout< 4、輸入一個攝氏溫度,要求輸出華氏溫度。公式為f=5/9*c+32.main(){ float c,f;cin>>c; f=5.0/9*c+32;cout< 三、實驗實訓指導 1、第一題運行程序,必須按如下方式在鍵盤上輸入數據 a=3,b=7 ↙ 8.5,71.82 ↙ a A ↙ 2、修改輸出格式控制符,觀察輸出結果的變化。 四、實驗實訓思考題 1、已知圓半徑r=1.5,圓柱高h=3, 求圓周長,圓面積,圓球表面積,圓球體積,圓柱體積。 2、輸入一個華氏溫度,要求輸出攝氏溫度。公式為c=5/9*(f-32)。 實驗四 選擇結構程序設計 一、實驗實訓目的及要求 1、了解C語句表示邏輯量的方法(以0代表“假”以1代表“真”); 2、學會正確使用邏輯運算符和邏輯表達式; 3、熟練掌握if語句和switch語句。 二、實驗實訓內容 編寫程序完成下列題目: 1、已知三個數a,b,c,找出最大值放于max中。 2、輸入某學生的成績,經處理后給出學生的等級,等級分類如下: 90分以上(包括90): A 80至90分(包括80):B 70至80分(包括70):C 60至70分(包括60):D 60分以下:E 3、有一函數: x?1?x ?1?x?10 y=?2x-1 ?3x-11 x?10 ?用scanf函數輸入x的值(分別為x<1,1~10,?10三種情況),求y值。 三、實驗實訓指導 1、分析:由已知可得在變量定義時定義四個變量a,b,c和max,a,b,c是任意輸入的三個數,max是用來存放結果最大值的。第一次比較a和b,把大數存入max中,因a,b都可能是大值,所以用if語句中if——else 形式。第二次比較max和c,把最大數存入max中,用if語句的第一種形式if形式。Max即為a,b,c中的最大值。 #include “iostream.h” main(){ int a,b,c,max; /*定義四個整型變量*/ cin>>a>>b>>c;if(a>=b) max=a; /*a>=b*/ else max=b; /*amax) max=c; /*c是最大值*/ cout<<“max=”< 若輸入下列數據,分析程序的執行順序并寫出運行結果 (1)a=1,b=2,c=3 (2)a=2,b=1,c=3 (3)a=3,b=2,c=1 (4)a=3,b=1,c=2 (5)a=3,b=3,c=2 (6)a=2,b=1,c=2 2、方法一:(用if嵌套`)分析: 由題意知如果某學生成績在90分以上,等級為A;否則,如果成績大于80分,等級為B;否則,如果成績大于70分,等級為C;否則,如果成績大于60分為D;否則,如果成績小于60分,等級為E;但當我們輸入成績時也可能輸錯,出現小于0或大于100,這時也要做處理,輸出出錯信息。因此,再用if嵌套前,應先判斷輸入的成績是否在0~100之間。 #include“iostream.h” main(){ int score; char grade; cout<<“nplease input a student score:”; cin>>score; if(score>100||score<0) cout<<“ninput error!”; else { if(score>=90) grade='A'; else { if(score>=80) grade='B'; else {if(score>=70) grade='C'; else { if(score>=60)grade='D';else grade='E'; } } } cout<<“nthe student grade:”< } } 輸入測試數據,調試程序。測試數據要覆蓋所有路徑,注意臨界值,例如此題中得100分,60分,0分以及小于0和大于100的數據。方法二:用switch語句 分析: switch 語句是用于處理多分支的語句。注意,case后的表達式必須是一個常量表達式,所以在以用switch語句之前,必須把0~100之間的成績分別化成相關的常量。所有A(除100以外),B,C,D類的成績的共同特點是十位數相同,此外都是E類。則由此可得把score除十取整,化為相應的常數。 #include“iostream.h” main(){ int g,s;char ch; cout<<“ninput a student grade:”;cin>>g;s=g/10; if(s<0||s>10) cout<<“ninput error!”;else { switch(s) { case 10: case 9: ch='A';break; case 8: ch='B';break; case 7: ch='C';break; case 6: ch='D';break; default: ch='E'; } cout<<“nthe student scort:”< } } 輸入測試數據,同方法一一樣調試程序并寫出結果。 3、分析:y是一個分段表達式。要根據x的不同區間來計算y的值。所以應使用If語句。 main(){ int x,y; cout<<”please input x :”;cin>>x;if(x<1){ y=x; cout<< “y=”< else if(x<10){ y=2*x-1; cout<<“y=”< else { y=3*x-11; cout<<“y=”< } 四、實驗實訓思考題 c語言如何表示“真”與“假”?系統如何判斷一個量的“真”與“假”? 實驗五 循環結構程序設計 一、實驗實訓目的及要求 熟練掌握while、do—while和for三種循環語句的應用。 二、實驗實訓內容 編寫程序,完成下列題目: 1、求5! 2、求和s=1!+2!+3! 3、求和s=1!+3!+5! 4、求和s= 3+33+333 5、有一數列:2/1,3/2,5/3,8/5,?求出這個數列的前10項之和。 6、打印500以內的“水仙花數”。“水仙花數”是一個三位數,其各位數立方和等于該數本身。 7、一個數如果恰好等于它的因子之和,這個數就稱為完數。求100之內的所有完數。 三、實驗實訓指導 1、程序清單: main(){ int n,t;n=1;t=1; while(t<=5){ n=n*t;t=t+1;} cout< 2、程序清單: main(){ int n,s=0,t=1; for(n=1;n<=3;n++){ t=t*n;s=s+t;} cout< 3、程序清單: main(){ int s=0,t,i,j; for(i=1;i<=3;i++){ t=1; for(j=1;j<=2*i-1;j++)t=t*j;s=s+t;} cout< 4、程序清單: main(){ int s=0,t=3,i;for(i=1;i<=3;i++){ s=s+t;t=10*t+3;} cout< 5、程序清單: main(){ int n,t,; float a=2,b=1,s=0;for(n=1;n<=10;n++){ s=s+a/b;t=a;a=a+b;b=t;} cout< 6、程序清單: main(){ int i,j,k,n; for(n=100;n<=500;n++){ i=n/100;j=n/10-i*10;k=n%10; if(n= =i*i*i+j*j*j+k*k*k)cout< 7、程序清單: main(){ int n,s,j; for(n=1;n<=100;n++){ s=0; for(j=1;j 四、實驗實訓思考題 求Sn=a+aa+aaa+?+aa?a 之值,其中a是一個數字。例如:2+22+222+2222+22222(此時n=5), n由鍵盤輸入(分別用while和for編程)。 實驗六 函數 一、實驗實訓目的及要求 1、掌握C語言函數的定義方法、函數的聲明及函數的調用方法。 2、了解主調函數和被調函數之間的參數傳遞方式。 二、實驗實訓內容 1、寫一個判斷素數的函數,在主函數輸入一個整數,輸出是否素數的信息。 2、寫一函數,是給定的一個二位數組(4×4)轉置,即行列互換。 3、寫兩個函數,分別求兩個正數的最大公約數和最小公倍數,用主函數調用這兩個函數并輸出結果。兩個正數由鍵盤輸入。 4、寫一函數,用“起泡法”對輸入的10個字符按由小到大順序排序。 三、實驗實訓指導 1、程序清單: mian(){ int number; cout<< “請輸入一個正整數:n”;cin>>number;if(prime(number)) cout<< “n %d是素數.”< cout<<“n %d不是素數.”< int prime(number)/*此函數用于判別素數*/ int number;{ int flag=1,n; for(n=2;n 判斷素數的算法,我們在以前學習循環的時候已經學過了,在這里只是把這個算法用函數的形式表示出來。這里我們要注意函數的 定義、聲明的方法和格式。 2、程序清單: /*矩陣的轉置*/ #define N 4 int array[N][N];convert(array)int array[4][4];{ int i,j,t; for(i=0;i t=array[i][j]; array[i][j]=array[j][i];array[j][i]=t;} } main(){ int i,j; cout<< “輸入數組元素:n”;for(i=0;i for(j=0;j cout< conver(array); cout<< “轉置數組是:n”;for(i=0;i for(j=0;j cout< 本例題用數組作為函數參數,大家要注意數組作為函數參數時的用法。 3、程序清單: #include “stdio.h” hcf(u,v)int u,v;{ int a,b,t,r;if(u>v){ t=u;u=v;v=t;} a=u;b=v; while((r=b%a)!=0){ b=a;a=r;} return(a);} lcd(u,v,h)int u,v,h;{ return(u*v/h);} main(){ int u,v,h,l;cin>>u>>v;h=hcf(u,v); cout<<“H.C.F=%dn”< cout<<“L.C.D=%dn”< 這是一個十分典型的算法,同學們一定要認真分析、學習。 4、程序清單: /*起泡法排序*/ #define N 10 char str[N];main(){ int i,flag; for(flag=1;flag = =1;){ cout<< “n輸入字符串,長度為10:n”;cin>>str; if(strlen(str)>N) cout<<“超過長度,請重輸!”;else flag = 0;} sort(str); cout<< “n排序結果:”;for(i=0;i sort(str)char str[N];{ int i,j;char t; for(j=1;j for(i=0;(i t=str[i]; str[i]=str[i+1];str[i+1]=t;} } 四、實驗實訓思考題 編寫一個程序,包括主函數和如下子函數。 (1)輸入10個無序的整數; (2)用起泡方法從大到小排序;(3)要求輸入一個整數,用折半查找法找出該數,若存在,在主函數中輸出其所處的位置,否則,插入適當位置。 分析:input函數完成10個整數的錄入。sort函數完成起泡法排序,search函數完成輸入數的查找。 實驗七 指針 一、實驗實訓目的及要求 1.掌握指針變量的定義與引用。 2.熟練使用函數指針、數組指針、字符串指針編寫應用程序。 二、實驗實訓內容 1、寫一函數,求一個字符串的長度。 2、編寫一個函數,將數組中n個數按反序存放。 3、設一個函數,調用它時,每次實現不同的功能:(1)求兩個數之和;(2)求兩個數之差;(3)求兩個數之積。 三、實驗實訓指導 1、分析: (1)本部分習題要求全部用指針完成; (2)在main函數中輸入字符串,并輸出其長度; (3)本題不能使用strlen()函數; 方法說明: 在主函數中定義一個指向字符串的指針變量pstr,并將輸入的字符串的首地址賦值給pstr,然后調用求字符串長度的函數strlenth(char*p),得到字符串的長度。在函數strlenth(char *p)中,判斷*p是否為’ 0’,如果不為’ 0’,則進行len++的操作,直到遇到’ 0’ 為止。然后返回len值。 求字符串長度的函數strlenth(char *p)算法如下: (1)定義int len=0; (2)當*p!=’ 0’ 時,重復執行(2.1)(2.2),否則算法終止。 len=len+1 p++(3)return(len) 2、分析: (1)在主函數中輸入10個數,并輸出排好序的數。 (2)編寫函數invert()將10個數按反序存放。 3、分析: (1)在主函數中輸入2個數a,b,并輸出a,b的和、差和乘積。 (2)分別編寫函數add()、sub()、mul()計算兩個數的和、差、積。(3)編寫函數process(),分別調用函數add()、sub()、mul()。 四、實驗實訓思考題 實現指針移動的幾種方法。 實驗八 一維數組 一、實驗實訓目的及要求 1、掌握一維數組的定義、賦值和輸入輸出的方法; 2、掌握字符數組的使用; 3、掌握與數組有關的算法(例如排序算法)。 二、實驗實訓內容 1、在鍵盤上輸入N個整數,試編制程序使該數組中的數按照從大到小的次序排列。 2、青年歌手參加歌曲大獎賽,有10個評委對她的進行打分,試編程求這位選手的平均得分(去掉一個最高分和一個最低分)。 3、輸入一串字符,計算其中空格的個數。 三、實驗實訓指導 1、分析:C++中數組長度必須是確定大小,即指定N的值。排序的方法有多種,我們取出其中兩種作為參考。 方法一:起泡排序 從第一個數開始依次對相鄰兩數進行比較,如次序對則不做任何操作;如次序不對則使這兩個數交換位置。第一遍的(N-1)次比 較后,最大的數已放在最后,第二遍只需考慮(N-1)個數,以此類推直到第(N-1)遍比較后就可以完成排序。 源程序如下: #define N 10 #include“iostream.h” main(){ int a[N],i,j,temp; cout<<“please input %d numbersn”< for(i=0;i if(a[j]>a[j+1]){ temp=a[j];a[j]=a[j+1];a[j+1]=temp;} } cout<<“the array after sort:n”;for(i=0;i 方法二:選擇排序 首先找出值最小的數,然后把這個數與第一個數交換,這樣值最小的數就放到了第一個位置;然后,在從剩下的數中找值最小的,把它和第二個數互換,使得第二小的數放在第二個位置上。以此類推,直到所有的值從小到大的順序排列為止。 #include“iostream.h” #define N 10 main(){ int a[N],i,j,r,temp; cout<<“please input %d numbersn”< for(i=0;i for(j=i+1;j r=j;if(r!=i){ temp=a[r];a[r]=a[i];a[i]=temp;} } cout<<“the array after sort:n”;for(i=0;i 2、分析:這道題的核心是排序。將評委所打的10個分數利用數組按增序(或降序)排列,計算數組中除第一個和最后一個分數以外 的數的平均分,其中排序部分這里用選擇法實現。 main(){int i,j,min; float temp,ave=0;float a[11]; cout<<“n輸入評委所打的分數:n”;for(i=1;i<=10;i++) cin>>a[i];for(i=1;i<=9;i++){ min=i; for(j=i+1;j<=10;j++)if(a[min]>a[j]){ min=j;temp=a[i];a[i]=a[min];a[min]=temp;} } for(i=2;i<=9;i++)/*注意i值的變化范圍*/ ave=ave+a[i]; cout<<“選手所得最后分數:”< 3、程序清單: #include for(i=0;i cout<<“空格數為:”< 四、實驗實訓思考題 已有一個已排好序的數組,今輸入一個數,要求按原來排序的規律將它插入數組中。 實驗九 二維數組 一、實驗實訓目的及要求 1、掌握二維數組的定義、賦值和輸入輸出的方法; 2、掌握字符數組的使用; 3、掌握與數組有關的算法(例如排序算法)。 二、實驗實訓內容 1、有一個3×4的矩陣,要求輸出其中值最大的元素的值,以及它的行號和列號。 2、打印以下圖案: * * * * * * * * * * * * * * * * * * * * * * * * * 3、求矩陣下三角形元素之和。 三、實驗實訓指導 1、程序清單: #define M 3 #define N 4 main(){ int max,i,j,r,c; static int a[M][N]={{123,94,-10,218},{3,9,10,-83},{45,16,44,-99}};max=a[0][0];for(i=0;i cout<< “max=”<< max<<” row =”< 2、程序清單: main(){ char a[5]={' * ' , ' * ' , ' * ' , ' * ' , ' * '};int i,j,k; char space=' '; for(i=0;i<5;i++)/*輸出5行*/ { cout<<“n”;/* 輸出每行前先換行* / cout<<“ ”;/* 每行前面留5個空格 */ for(j=1;j<=i;j++) cout< cout< 3、程序清單: #define N 6 main(){ int i,j,sum=0;int a[N][N]={0};cout<<“input 5×5 data:n”;for(i=1;i for(i=1;i cout< 四、實驗實訓思考題 求一個3×3矩陣對角線元素之和。 實驗十 結構體和共用體程序設計 一、實驗實訓目的及要求 1、掌握結構體類型和結構體變量的定義。 2、掌握結構類型變量的定義和使用; 3、掌握鏈表的概念,初步學會對鏈表進行操作; 4、掌握共用體的概念和使用。 二、實驗實訓內容 1、有五個學生,每個學生的數據包括學號,姓名,三門課的成績,從鍵盤輸入五個學生的數據,要求打印出每個學生的平均成績,以及最高分的學生的數據(包括學號,姓名,三門課的成績,平均分數)。 2、三個人圍成一圈,從第一個人開始順序報號1,2,3。凡報到“ 3” 者退出圈子,找出最后流在圈子中的人原來的序號。 3、建立一個鏈表,每個結點包括:學號,姓名,性別,年齡。輸入一個年齡,如果鏈表中的結點所包含的年齡等于此年齡,則將此 結點刪去。 三、實驗實訓指導 用一個函數輸入五個學生的數據;用一個函數求總平均分;用函數找出最高分學生數據,總平均分和最高分的學生的數據都在主函 數中輸出。 四、實驗實訓思考題 用鏈表實現排序。 實驗一 簡單的C程序設計和基本數據處理 實驗目的: 1.掌握C語言的運算符和表達式的正確使用以及C語言的幾種基本數據類型和基本輸入輸出函數的使用方法。 2.通過編程進一步理解和掌握運算符的確切含義和功能。3.理解和掌握運算符與運算對象的關系,優先級和結合方向。 1.通過編程,掌握C語言的幾種基本數據類型,int、char、flloat、double,以及由這些基本數據類型構成的常量和變量的使用方法。 2.掌握基本輸入/輸出函數的使用方法,包括printf()、scanf()、getchar()、putchar()。3.掌握簡單的C程序的查錯方法。實驗內容: 一、輸入程序,觀察輸出結果,并對語句做必要的注釋。1./* e1.c */ #include int x; x=27 printf(“%4d,%o,%Xn”,x,x,x);} 輸出結果: 解釋: 2./* e2.c */ #include char ch; int k; ch=’a’;k=10; printf(“%d,%x,%o,%c”,ch,ch,ch,ch,k); printf(“k=%%dn”,k); } 輸出結果: 解釋: 3./* e4.c */ #include float x=5/2,y=5.0/2; printf(“x=%f,y=%fn”,x,y);} 輸出結果: 解釋: 二、編寫程序。 1. 編程(c1.c)任意輸入3個整型變量x,y,z和一個實型變量avg,計算并輸出3個整數的平均值avg,從鍵盤輸入數據并驗證結果。觀察運行結果。源程序: 輸出結果: 解釋: 2. 輸入兩個個整數給a,b,然后交換它們的值,源程序: 輸出結果: 實驗報告要求 將以上各題的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。 實驗二 選擇結構程序設計與循環結構程序設計 實驗目的 1、了解C語句表示邏輯量的方法(以0代表“假”以1代表“真”); 2、學會正確使用邏輯運算符和邏輯表達式;理解循環條件和循環體 3、熟練掌握if語句和switch語句;熟練使用while、do-while語句實現循環程序設計 4、熟練掌握switch語句中break語句的作用。實驗內容 編程,輸入一個整數,求它的各位數字之和及位數。例如123的各位數字之和是6,位數是3.輸入輸出示例: 輸入一個整數:12345 12345有5位數,各位數字之和是15 提示:n表示一個整數,則n%10取個位數,n=n/10去掉個位數,組成一個新數。思考:如果要把每位數字轉換為字符輸出,如何編程。 3. 改錯,輸入2個正整數,分別將其逆向輸出。輸入輸出示例: 123的逆向是321 321的逆向是123 void main(){ int n,m=0; scanf(“%d”,n); while(n>0) { m=m+n%10; m=m*10; n=n/10;} printf(“%d的逆向是%dt”,n,m);} 4. 編程,找出200以內的所有完數,并輸出其因子。一個數如恰好等于它的因子之和,這個數稱為完數,如6=1+2+3,其中1、2、3為因子,6為因子和。輸入輸出示例: 1=1 6=1+2+3 28=1+2+4+7+14 main(){ int i,j n;printf();} 實驗報告要求 將以上各題的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。 實驗三 數組 實驗目的 1.熟練掌握數組的定義和初始化 2.熟練掌握使用數組元素的引用 3.繼續掌握排序算法 實驗內容 2.編程,輸入1個正整數n(1 輸入輸出示例: 輸入整數個數:5 輸入5個整數:5 2 1 10 9 2 5 9 10 提示:注意下標的變化。 思考:如果輸入的是實數,要求將絕對值最小的數與第1個數交換,絕對值最大的數與最后1個數交換,然后輸出交換后的n個數,如何編程。 3.編程,輸入1個正整數n(1 輸入輸出示例: 輸入整數個數:10 輸入10個整數:-11 2 8 5-3-16 9 7 6 10 排序后:2-3 5 6 7 8 9 10-11-16 5.編程,輸入一個n行m列(n<=4,m<=4)的數組,先以n行m列的格式輸出該數組,然后找出該數組中值最小的元素,輸出該元素及其行下標和列下標。 輸入輸出示例: 輸入數組行和列數n、m:2 3 輸入2行3列的數組元素: 12-7 15-18 9 11 12.00-7.00 15.00-18.00 9.00 11.00 a[1][0]=-18.00 思考: 1)如果不從鍵盤輸入數組元素,而是用初始化的方式給數組賦值,運行結果一樣嗎? 2)如何修改程序,求絕對值最大的元素? 3)將數組a的每一行均除以該行的主對角元素,然后最大值,試編制程序。 實驗報告要求 將以上各題的源程序、運行結果,以及實驗中遇到的問題和解決問題的方法,以及實驗過程中的心得體會,寫在實驗報告上。第五篇:VC6.0上機指導--- C語言實驗講義