當前位置:首頁 » 編程語言 » c語言實訓的前言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言實訓的前言

發布時間: 2022-08-01 03:41:09

c語言經典編程282例的前言

學會站在巨人的肩膀上!
軟體開發的終極目標是完成滿足用戶需求的軟體。一個軟體往往包含復雜的功能,作為一名程序員,需要在有限的時間內實現它們,這對於新手而言並不容易。為什麼富有開發經驗的程序員編程效率非常高呢?答案就是他們做過類似的程序,適當修改以前的代碼,就可以滿足現在的要求。因此,如何快速積累編程經驗就成了新手的當務之急。顯然,單單依靠項目來積累編程經驗是非常慢的。
本書圖文並茂、難易並舉,匯集了282個日常開發中應用廣泛的實例,內容涵蓋了C語言編程的方方面面。每個實例分為實例說明、實現過程和技術要點3部分進行講解。通過對本書的學習,不僅能快速掌握相關知識點,還可以逐步提升編程能力。
本書內容
本書以C語言的基礎知識結構為框架,給出了每部分知識中可能遇到的疑難問題或開發技巧。本書共分17章,主要包括初識C語言、簡單的C程序、演算法入門、常用數據類型、運算符與表達式、數據輸入與輸出函數、選擇和分支結構程序設計、循環結構、數組、函數編程基礎、指針、常用數據結構、位運算操作符、存儲管理、預處理和函數類型、文件讀寫、圖形圖像處理。
為了更清晰地闡述問題和給出問題的解決方案,本書設置了以下欄目。
* 實例說明:詳細描述本實例的用途,並給出實例的運行結果圖。
* 實現過程:逐步講解如何解決本實例的問題,並給出關鍵代碼、注意事項等。
* 技術要點:對本實例使用的關鍵技術進行總結,方便日後使用。
本書特色
* 貼近應用。本書精選的實例都真正來自開發一線。以實例形式進行講解,使其更容易被讀者接受。
* 橫向鏈接。本書知識框架與《C語言開發入門及項目實戰》一書相對應,可以在學習完《C語言開發入門及項目實戰》一書的基礎上使用本書,以提高自己的技能。
* 解析透徹。本書對每個問題的相關知識進行細致地講解,並進行知識拓展,使讀者不僅知其然而且知其所以然。
* 授人以漁。本書在講解技術的同時,還注重對讀者能力的培養,使讀者掌握分析問題與解決問題的能力。
本書配套資源
本書提供了內容豐富的配套資源,包括源程序、素材,以及模塊庫、案例庫、題庫、素材庫等多項輔助內容,讀者朋友可以通過如下方式獲取。
第1種方式:
(1)登錄清華大學出版社的網站,在網頁右上角的搜索文本框中輸入本書書名(注意區分大小寫和留出空格),或者輸入本書關鍵字,或者輸入本書ISBN號(注意去掉ISBN號間隔線「-」),單擊「搜索」按鈕。
(2)找到本書後單擊超鏈接,在該書的網頁下側單擊「網路資源」超鏈接,即可下載。
第2種方式:
訪問本書的新浪微博C語言圖書,找到配套資源的鏈接地址進行下載。
讀者人群
本書非常適合以下人員閱讀:
? C語言編程行業的開發人員
? 有一定語言基礎,想進一步提高技能的人員
? 大中專院校的老師和學生
? 即將走向工作崗位的大學畢業生
? 相關培訓機構的老師和學員
? C語言編程愛好者

② c語言實訓心得3000字

你可以這樣寫:
下面是我的實訓心得:

一、明確學習目的
學習編程對大多數IT業人員來說都是非常有用的。學編程,做一名編程人員,從個人角度講,可以解決在軟體使用中所遇到的問題,改進現有軟體,可以為自己找到一份理想的工作添加重要得砝碼,有利於在求職道路上謀得一個好的職位;從國家的角度,可以為中國的軟體產業做出應有的貢獻,一名優秀的程序員永遠是被爭奪的對象。學習編程還能鍛煉思維,使我們的邏輯思維更加嚴密;能夠不斷享受到創新的樂趣,將一直有機會走在高科技的前沿,因為程序設計本身是一種創造性的工作。知識經濟時代給我們帶來了無限的機會,要想真正掌握計算機技術,並在IT行業里干出一番事業來,有所作為,具有一定的編程能力是一個基本條件和要求。

二、打好基礎
學編程要具備一定的基礎,總結之有以下幾方面:
1、數學基礎 從計算機發展和應用的歷史來看計算機的數學模型和體系結構等都是有數學家提出的,最早的計算機也是為數值計算而設計的。因此,要學好計算機就要有一定的數學基礎,出學者有高中水平就差不多了。
2、邏輯思維能力的培養學程序設計要有一定的邏輯思維能力,「邏思力」的培養要長時間的實踐鍛煉。要想成為一名優秀的程序員,最重要的是掌握編程思想。要做到這一點必須在反復的實踐、觀察、分析、比較、總結中逐漸地積累。因此在學習編程過程中,我們不必等到什麼都完全明白了才去動手實踐,只要明白了大概,就要敢於自己動手去體驗。誰都有第一次。有些問題只有通過實踐後才能明白,也只有實踐才能把老師和書上的知識變成自己的,高手都是這樣成材的。

三、注意理解一些重要概念
一本程序設計的書看到的無非就是變數、函數、條件語句、循環語句等概念,但要真正能進行編程應用,需要深入理解這些概念,在理解的基礎上應用,不要只簡單地學習語法、結構,而要吃透針這些語法、結構的應用例子,做到舉一反三,觸類旁通。

四、掌握編程思想
學習一門語言或開發工具,語法結構、功能調用是次要的,最主要是學習它的思想。關鍵是學一種思想,有了思想,那麼我們就可以觸類旁通。

五、多實踐、多交流
掌握編程思想必須在編程實際工作中去實踐和體會。編程起步階段要經常自己動手設計程序,具體設計時不要拘泥於固定的思維方式,遇到問題要多想幾種解決的方案。這就要多交流,各人的思維方式不同、角度各異,各有高招,通過交流可不斷吸收別人的長處,豐富編程實踐,幫助自己提高水平。親自動手進行程序設計是創造性思維應用的體現,也是培養邏輯思維的好方法。

六、養成良好的編程習慣
編程入門不難,但入門後不斷學習是十分重要的,相對來說較為漫長。在此期間要注意養成一些良好的編程習慣。編程風格的好壞很大程度影響程序質量。良好的編程風格可以使程序結構清晰合理,且使程序代碼便於維護。如代碼的縮進編排、變數命令規則的一致性、代碼的注釋等。

七、上網學編程
在網上可以學到很多不同的編程思想、方法、經驗和技巧,有大量的工具和作品及相關的輔導材料供下載。

八、加強計算機理論知識的再學習
學編程是符合「理論→實踐→再理論→再實踐」的一個認識過程。一開始要具有一定的計算機理論基礎知識,包括編程所需的數學基礎知識,具備了入門的條件,就可以開始編程的實踐,從實踐中可以發現問題需要加強計算機理論知識的再學習。程序人人皆可編,但當你發現編到一定程度很難再提高的時候,就要回頭來學習一些計算機科學和數學基礎理論。學過之後,很多以前遇到的問題都會迎刃而解,使人有豁然開朗之感。因此在學習編程的過程中要不斷地針對應用中的困惑和問題深入學習數據結構、演算法、計算機原理、編譯原理、操作系統原理、軟體工程等計算機科學的理論基礎和數理邏輯、代數系統、圖論、離散數學等數學理論基礎知識。這樣經過不斷的學習,再努力地實踐,編程水平一定會不斷提高到一個新高度。

③ C語言高級編程及實例剖析的前言

C語言功能強大,具有豐富靈活的控制與數據結構、簡潔而高效的語句表達、清晰的程序結構、良好的移植性、較小的空間開銷等優點,已被廣泛應用於系統軟體與應用軟體的開發中。.
本書以深化程序設計語言C語言為目的,以具體常見的計算機硬體與操作系統為背景,講述在微機上編寫精巧、美觀、友好的應用軟體。本書內容與實例並進,對C語言編程做了深入和具體的探討。涉及的知識面廣,從內存管理,到文本屏幕界面設計,再到文件操作、圖形圖像操作、中斷、通信技術、基本匯流排介面編程和游戲開發應用,幾乎涵蓋了C語言編程的方方面面。通過對本書的學習,讀者將對C語言高級編程有一個深刻的理解和掌握。
本書在內容安排上採用內容與實例並進的方式。每一章中,先講述相關內容,然後通過實例解析講述內容的具體應用。實例解析注重對實例的分析,對方法的詳細講解,以及對知識點的歸納總結。本書對各個實例以需求分析、源代碼解析、運行結果和歸納總結為主線進行剖析,通過實例來講解知識點,又通過相應的知識點來分析實例。通過研讀,讀者可以很快掌握此方面的知識,並較快將其應用到工程開發中。在結構安排上,充分考慮了層次性和內容上的循序漸進。
本書包括9章,主要內容如下。
第1章為內存管理,主要針對優化內存使用、提高內存的使用效率、提高程序運行速度。該章介紹了PC的存儲器結構和基本的堆管理函數,包括學生信息資料庫實例和巧用內存管理創建通信錄實例。通過本章的學習,讀者將對亡語言的內存管理有一個清晰的了解和認識。
第2章為文本屏幕界面設計,包括文本方式控制、窗口設置和文本屏幕輸出函數、清屏和游標操作函數、屏幕移動與存取函數、狀態查詢函數等內容。該章還詳細剖析了創建彈出式菜單實例、文本方式下拉式菜單和將屏幕分為兩個窗口進行對話的實例。通過本章的學習,讀者可以掌握如何對文本屏幕界面進行操作。..
第3章為文件高級操作,介紹標准文件的基本輸入輸出操作和一些實用的文件處理方法,包括文件的加密與解密、文件的分割與合並等。通過本章的學習,讀者將會逐步掌握一些實用的文件處理技巧。
第4章為圖形圖像,介紹如何使用Turbo C提供的圖形函數繪制基本的圖形(包括畫點、線、矩形和條形圖,畫圓、橢圓和扇形圖等)、對圖形的顏色控制函數、封閉圖形的填色函數及有關畫圖函數、屏幕操作函數、圖形方式下的文本輸出函數、動畫技術、菜單生成技術、圖形程序使用環境、直接存儲存取和SVGA編程,還介紹使用這些基本圖形的實際應用,圖形圖像綜合應用——用動畫演示排序演算法。通過本章的學習,讀者將逐步掌握如何使用C語言繪制圖形。
第5章為中斷,介紹中斷的基本概念、滑鼠中斷編程的應用、鍵盤中斷編程的應用和用中斷方式製作的菜單等。通過本章的學習,讀者將掌握對滑鼠和鍵盤的中斷控制。
第6章為通信技術,主要介紹Winsock編程基礎、Cscoket編程技術、串並口編程,雙機連接方法等,並通過雙機並口通信實例和網路通信編程實例的剖析講述了通信技術的實際應用。通過本部分的學習,讀者將逐步掌握通信技術。
第7章為基本匯流排介面編程,主要介紹ISA匯流排、PCI匯流排、PCI匯流排配置和採用中斷方式的信號採集程序。通過本章的學習,讀者將對匯流排介面編程有一定了解。
第8章為游戲開發,介紹DOS環境下的C語言游戲編程,是綜合實例。魔方游戲實例,實際上是對直接寫屏、中斷、多任務、內存技術、動畫技術、顯示技術和優化演算法等各種編程技術,及內存、音效卡、鍵盤、滑鼠等各種硬體原理和硬體編程的綜合應用。
第9章是綜合開發實例——信息管理系統。本部分將重點向讀者介紹如何採用模塊化程序設計思想來設計一個綜合的C程序,提高讀者編寫大型程序的能力。
本書主要針對C語言程序設計的高級讀者,適合已經熟悉和掌握了C語言的基礎知識,想用C語言開發更完美的軟體,更為深入地了解C語言的一些細節和使用技巧的讀者。本書可以使學習過C語言語法的初學者快速成長為C語言編程高手,也可以作為工程人員的參考手冊。
本書由王為青、劉變紅編著,參與本書編輯和修改的還有徐強、劉艷偉、吳洋、房明浩、嚴雨、王亮、梅樂夫、劉艷褘等同志。在此,對以上人員致以誠摯的謝意!
由於本書涉及的范圍比較廣泛,作者的經驗有限,書中難免有不足或錯誤之處,敬請各位讀者批評指正。

④ 大一第一學期C語言實訓心得500字左右,急 急 急,在線等

樓主在這中間加減點東西,就可以用

過C語言實訓,讓我加深了對C語言的了解,而不只是單單的在課本中學到的那些理論,平時乏味的課程,通過自己動手親自編寫,變的生動有趣,而在自己動手的過程中,出現的問題很多,比理論要難的多,當一個程序寫完以後,經常會有很多錯誤而沒法解決。不過,通過幾天的實訓,逐漸積攢了一些經驗,有些錯誤可以很快就看出來。

這次實訓有很大的收獲,讓我對C語言有了更深的認識,平時在課堂上學到的東西可以自己動手編寫,將其轉化成一些實用的技能。如果是一個程序寫完一處錯誤也沒有,會有種成就感,於是興趣就來了,興趣來了,自然學的東西也就多了,能把理論變成實際的技能,讓我對C語言有了濃厚的興趣和更深層的認識。
C語言是一個有序的學習,學了最基本的替換,然後擴展到循環,嵌套,條理很清楚,不是一個零散的知識,實際上所有的課程都如此,不過通過實訓我也知道了自己的不足,存在的很多問題。
比如自己寫的寫的小程序出了問題,不會解決了就叫老師幫忙,雖然說一定意義上增加了師生之間的感情,但是會養成一種依賴的心理,碰到問題了個想到的是求助而不是自己獨立解決,所以以後要多多鍛煉自己的信心和增加自己的能力,爭取做到老師不在身邊的時候也可以完成一些簡單的程序編寫與錯誤排除。
還有自己的基礎知識不扎實,遇到的問題,沒有很好的邏輯思維,親自編寫一個陌生的程序的時候會有種無法下手的感覺,找不到突破口。通過實訓,逐漸理清了順序,對於簡單的程序和一些相對比較繁瑣的嵌套,循環,不在是看著一頭霧水。其實只要理清了思路,把基礎知識掌握了,然後有條不紊的分析,一步一步理解,C語言還是很有意思的課程。
自己親自動手編寫程序讓我增加了對C語言程序開發環境的了解,在上課的時候老師就講,學習C語言最重要的是學習C語言的邏輯思維,不管以後從事什麼行業,學習C語言都對自己的職業很有幫助,如果是從事編程工程工作的話,就更有幫助了,即使以後的編程工作可能不用C語言,但是擁有扎實的C語言基礎是對工作很有用的。
當初在初步接觸C語言的時候,看著一堆「奇形怪狀」的符號,覺得甚是無聊,通過這次實訓,擺脫了那種似懂非懂的狀態!
感謝學校安排這次實訓和老師的耐心講解,讓我學到了很多知識,在實訓過程中,同學之間的相互探討,老師的循循善誘,最終讓我們達到了舉一反三的效果,在學知識的同時,也增加了同學老師之間的感情。希望以後還會有更多類似的實訓課程,在有限的大學時間內學到更多的實用技能,為以後的工作打下一個良好的基礎

⑤ c語言程實訓報告模板

C/C++面向對象程序設計實訓報告

系部名稱 計算機工程系 專業 網路安全 指導教師
學生姓名 班級
實訓
時間 年 月 日---------- 年 月 日
實訓項目和地點:
實訓項目:C++程序的設計與應用

地點:
實訓目的:
在實踐過程中,使我們進一步鞏固C++程序設計課程所學知識,更加深入地了解面向對象程序設計的主要技術特點以及C++語言的強大編程功能指導學生利用獲取信息的手段進一步獲取新知識,以解決實訓過程中遇到的技術難點,從中提高自學能力;按照軟體開發的基本要求引導我們完成實訓課題,以便我們了解軟體開發的幾個重要環節;提高我們的編程技術,使程序的編寫更趨於專業化,為從業打下良好的基礎、培養我們分工協作的團隊精神。

實訓設備及器材:
1、計算機配置:Celeron cpu 2.66GHz 1G內存 計算機一台
2、操作系統平台: Windows XP
3、軟體開發平台:Visual C++ 6.0
4、其它應用軟體:Microsoft Access / SQL Server 、Word、Visio等

實訓的步驟和內容:
設計題目:輸入4個整數,要求按由大到小的順序輸出
第1步、問題描述:
輸入4個整數,要求按由大到小的順序輸出。
第2步、基本思路:
利用選擇法進行排序。
第3步、編寫程序:
#include<stdio.h>
void main()
{
int a,b,c,d,t;
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
if(a<b)
{t=a;
a=b;
b=t;}
if(a<c)
{t=a;
a=c;
c=t;}
if(a<d)
{t=a;
a=d;
d=t;}
if(b<c)
{t=b;
b=c;
c=t;}
if(b<d)
{t=b;
b=d;
d=t;}
if(c<d)
{t=c;
c=d;
d=t;}
printf("%d,%d,%d,%d",a,b,c,d);
}
第4步、運行結果:_
輸入:5,7,9,4
輸出:9,7,5,4

實訓結果分析及其心得體會:
通過C++實訓,讓我加深了對C語言的了解,而不只是單單的在課本中學到的那些理論,平時乏味的課程,通過自己動手親自編寫,變的生動有趣,而在自己動手的過程中,出現的問題很多,比理論要難的多,當一個程序寫完以後,經常會有很多錯誤而沒法解決。不過,通過幾天的實訓,逐漸積攢了一些經驗,有些錯誤可以很快就看出來。
這次實訓有很大的收獲,讓我對C語言有了更深的認識,平時在課堂上學到的東西可以自己動手編寫,將其轉化成一些實用的技能。如果是一個程序寫完一處錯誤也沒用,會有種成就感,於是興趣就來了,興趣來了,自然學的東西也就多了,能把理論變成實際的技能,讓我對C語言有了濃厚的興趣和更深層的認識。
C語言是一個有序的學習,學了最基本的替換,然後擴展到循環,嵌套,條理很清楚,不是 一個零散的知識,實際上所有的課程都如此,不過通過實訓我也知道了自己的不足,存在的很多問題。
比如自己寫的寫的小程序出了問題,不會解決了就叫老師幫忙,雖然說一定意義上增加了師生之間的感情,但是會養成一種依賴的心理,碰到問題了第一個想到的是求助而不是自己獨立解決,所以以後要多多鍛煉自己的信心和增加自己的能力,爭取做到不在身邊的時候也可以完成一些簡單的程序編寫與錯誤排除。
還有自己的基礎知識不扎實,遇到的問題,沒有很好的邏輯思維,親自編寫一個陌生的程序的時候會有種無法下手的感覺,找不到突破口。通過實訓,逐漸理清了順序,對於簡單的程序和一些相對比較繁瑣的嵌套,循環,不在是看著一頭霧水。其實只要理清了思路,把基礎知識掌握了,然後有條不紊的分析,一步一步理解,C語言還是很有意思的課程。
自己親自動手編寫程序讓我增加了對C語言程序開發環境的了解,不管以後從事什麼行業,學習C語言都對自己的職業很有幫助,如果是從事編程工程工作的話,就更有幫助了,即使以後的編程工作可能不用C語言,但是擁有扎實的C語言基礎是對工作很有用的。
當初在初步接觸C語言的時候,看著一堆「奇形怪狀」的符號,覺得甚是無聊,通過這次實訓,擺脫了那種似懂非懂的狀態!
感謝學校安排這次實訓和老師的耐心講解,讓我學到了很多知識,在實訓過程中,同學之間的互相探討,老師的循循善誘,最終讓我們達到了舉一反三的效果,在學知識的同,也增加了同學老師之間的感情。希望以後還會有更多類似的實訓課程,在有限的大學時間內學到更多的實用技能,為以後的工作打下一個良好的基礎。

⑥ C語言實訓

在初學C語言的一個學期後,我們進行了C語言實訓階段,嘗試自己編寫一個比較復雜的程序系統。在為期兩周的時間中,我們同組的同學共同的感受是:C語言實訓和平時上課所接觸的程序是有很大不同的,所經受的考驗和克服的困難是平時所無法比擬的。好在同組的搭檔們精誠合作,分工明確,有問題共同解決,攻克了C語言實訓的復雜程序。在這里,我作為其中的參與者,自然感觸良多。 剛開始接觸到C的時候,我已經學過一些有關VB的內容,這個在演算法和思維上稍微有點幫助。回想本學期的學習,首先,最基本的,是C的數據格式,讓我們知道整數,浮點數以及字元常量在C中的運用。然後,在學會了數據轉化,以及熟練的可以對各種數據處理之後,我開始進行有關數據結構,像數組,結構體等的學習,因為有的東西從現有的知識來看都是非常簡單的,還沒有聯繫到指針等等一些復雜的概念。可是,僅僅學會這些是遠遠不夠的,C語言中,還有很多更加經典、重要、實用的知識。 說說函數。雖說很多程序語言都有函數這一內容,但我覺得C語言的函數是最有魅力的了。學習函數的方法是比較簡單的,只有兩個字「牢記」,即:牢記函數的功能,牢記函數的用途以及如何輸入輸出。函數從本質上講是一段通用程序,用它可以幫助我們節約很多編程的時間,學習C語言的「高人」都說,一個聰明的編程者在編寫程序前往往總是先找自己所編寫的程序中有多少是可以用函數來代替的。比如,大家可以作一個比較字元串的實驗,用C語言中的strcmp()函數只要一句話,而自己編寫的話,30句都很難實現,可想而知函數的實用和快捷。在我們C語言實訓的代碼中,函數更是得到了充分的應用,可以說,實訓題目的復雜代碼,就是用無數個函數的調用和嵌套積累出來的。 要注意的是,有的同學剛剛開始的時候,都是被一些大的程序激勵的,所以當開始的時候看到繁瑣的數據轉化和簡單的演算法,都覺得很無聊,都想自己做幾個自己滿意的程序來看看,雖然這種想法很好,但是,我們說,沒有基礎,純粹是搬照一些現成設計方法,是不足取的。要知道,程序設計講究的是個人的思維的,假如剛開始就被一些現成的思想束縛住,以後就會覺得很無趣。 我們知道,指針其實是C語言的靈魂,許多的數據結構在我們學到這里之前都可以說是精通了。所以我們的任務就是,讓數據結構在指針中運行。當然,剛剛開始接觸到這些新的東西,是一件非常痛苦的事情,所以我們一定要用非常形象的思維去看待指針,不能太固化。所以,新的東西,比如結構體在指針中的表現方法,數組及多維數組在結構體中的運用,都一點一點的加了進來,同時豐滿了我們對原來C的數據機構,數據表示的理解。當我們完成了這三步的學習,我們已經可以自豪的說,我們的基礎都扎實了,可以進一步的學習有關演算法,設計概念等等深層次的東西了。 但是,指針,結構體,這些太抽象的東西,在學習C語言的時候我們就有點「似懂非懂」,可是在眼下的C語言實訓中,像這么重要的C語言知識,一定要達到能熟練掌握,實際運用的程度。在實訓的大程序中,結構體在指針中的表現方法,數組及在結構體中的運用等具體的技術環節,都得到了體現,不會指針,我們的工作是沒法展開的。所以,在實訓期間,大家在鞏固基本知識的基礎上,逐塊攻克實訓課題,克服了困難,自信心得到了提高。 最後,談談我們組的程序軟體。商店商品管理系統,是一個比較利於應用,解決實際問題,方便實際管理的程序。設計代碼比較復雜,結構比較嚴謹。在程序編寫的1周左右的時間里,組員們遇到了上述的困難,包括程序設計構思,甚至是指針等某些知識點的欠缺,導致的工作中出現的困難。但是,當大家一起團結協作,解決了這些困難之後,發現自己也可以編寫復雜的、應用性的程序了,更發現自己對C語言這門學科的興趣也提高了。 當然,我們編寫的商店商品管理系統,還存在很多疏漏和不合理之處。比如,程序復雜冗長,如果時間充裕,我們將在不改變程序運行結果的基礎上,簡化程序,使每一句更加精闢,總體上更加簡化。另外,在程序的外觀上,我們由於時間問題,沒有做更多的修飾,運行起來顯得比較死板、枯燥乏味。如果增添一些色彩和其他效果,我們的程序也許會更加完美。 以上就是我的C語言實訓個人總結

⑦ 幫忙寫一份C語言課程實訓報告

程序:
#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>
#include<dos.h>
#define swap(x,y,t) ((t)=(x),(x)=(y),(y)=(t))
#define N 30
#define C 15
#define ok 1
#define error 0
typedef int status;
typedef struct stud
{
long num;
char name[C];
int high_math;
int english;
int physics;
int program;
int database;
int total;
int ave;
}student;
student chengji[N];
int number,ave[N];
status assert(int x)
{
if(x>=0&&x<=100)
return ok;
else
return error;
}
status create_chengjilist()
{
int num,i;
print("\n正在創建學生成績表,請稍等.........\n");
sleep(6);
print("請輸入學生的數目(<30):");
scanformat("%d",&num);
while(num>N)
{
print("\n你輸入的人數太多!");
print("\n請重新輸入:");
scanformat("%d",&num);
}
for(i=0;i<num;i++)
{
print("\n輸入第%d個學生的成績信息:\n",i+1);
print("學號:");
scanformat("%ld",&chengji[i].num);
print("\n姓名:");
scanformat("%s",chengji[i].name);
print("\n高等數學:");
scanformat("%d",&chengji[i].high_math);
while(!assert(chengji[i].high_math))
{
print("\n輸入非法格式.");
print("\n請重新輸入.");
scanformat("%d",&chengji[i].high_math);
}
print("\n英語:");
scanformat("%d",&chengji[i].english);
while(!assert(chengji[i].english))
{
print("\n輸入非法格式.");
print("\n請重新輸入.");
scanformat("%d",&chengji[i].english);
}
print("\n物理:");
scanformat("%d",&chengji[i].physics);
while(!assert(chengji[i].physics))
{
print("\n輸入非法格式.");
print("\n請重新輸入.");
scanformat("%d",&chengji[i].physics);
}
print("\n程序設計:");
scanformat("%d",&chengji[i].program);
while(!assert(chengji[i].program))
{
print("\n輸入非法格式.");
print("\n請重新輸入.");
scanformat("%d",&chengji[i].program);
}
print("\n資料庫:");
scanformat("%d",&chengji[i].database);
while(!assert(chengji[i].database))
{
print("\n輸入非法格式.");
print("\n請重新輸入.");
scanformat("%d",&chengji[i].database);
}
chengji[i].total=chengji[i].high_math+chengji[i].english+chengji[i].physics+chengji[i].program+chengji[i].database;
chengji[i].ave=chengji[i].total/5;
}
print("\n學生成績表創建成功!!!\n");
return num;
}
void show(int data)
{
int i;
print("\n學生成績表的所有信息:\n");
for(i=0;i<data;i++)
{
if(!(chengji[i].name[0]==''))
{
print("\n第%d個學生信息:",i+1);
print("\n學號:");
print("%ld",chengji[i].num);
print("\n姓名:");
print("%s",chengji[i].name);
print("\n高等數學:");
print("%d",chengji[i].high_math);
print("\n英語:");
print("%d",chengji[i].english);
print("\n物理:");
print("%d",chengji[i].physics);
print("\n程序設計:");
print("%d",chengji[i].program);
print("\n資料庫:");
print("%d",chengji[i].database);
print("\n總分:");
print("%d",chengji[i].total);
print("\n平均分:");
print("%d",chengji[i].ave);
}
}
}
status search_num(int v,long d)
{
int i;
for(i=0;i<v;i++)
{
if(chengji[i].num==d)
break;
}
if(i==v)
{
print("\n成績表中不存在該生.");
return;
}
else
{
print("\n查找學生的信息是:\n");
print("\n學號:");
print("%ld",chengji[i].num);
print("\n姓名:");
print("%s",chengji[i].name);
print("\n高等數學:");
print("%d",chengji[i].high_math);
print("\n英語:");
print("%d",chengji[i].english);
print("\n物理:");
print("%d",chengji[i].physics);
print("\n程序設計:");
print("%d",chengji[i].program);
print("\n資料庫:");
print("%d",chengji[i].database);
print("\n總分:");
print("%d",chengji[i].total);
print("\n平均分:");
print("%d",chengji[i].ave);
return i;
}
}
void search_name(int s)
{
int i;
char string[C];
print("\n請輸入要查找學生的姓名:");
scanformat("%s",string);
for(i=0;i<s;i++)
{
if(!strcmp(string,chengji[i].name))
break;
}
if(i==s)
{
print("\n成績表中不存在該生.");
return;
}
else
{
print("\n該生的成績記錄:\n");
print("\n學號:");
print("%ld",chengji[i].num);
print("\n姓名:");
print("%s",chengji[i].name);
print("\n高等數學:");
print("%d",chengji[i].high_math);
print("\n英語:");
print("%d",chengji[i].english);
print("\n物理:");
print("%d",chengji[i].physics);
print("\n程序設計:");
print("%d",chengji[i].program);
print("\n資料庫:");
print("%d",chengji[i].database);
print("\n總分:");
print("%d",chengji[i].total);
print("\n平均分:");
print("%d",chengji[i].ave);
}
}
void searchlist(int t)
{
int i;
long num;
char ch;
while(1)
{
print("\n1.學號.\n2.姓名");
print("\n你想通過什麼查詢.請選擇:");
scanformat("%d",&i);
switch(i)
{
case 1:
print("\n請輸入要查找學生的學號:");
scanformat("%ld",&num);
search_num(t,num);
break;
case 2:
search_name(t);
break;
default:
print("\n非法輸入.");
break;
}
print("\n想繼續查詢嗎?Y or N?:");
scanformat("%ch",&ch);
if(ch=='N'||ch=='n')
break;
}
}
void show_menu()
{
print("==================================");
print("\n1.顯示成績表中所有的學生成績信息.");
print("\n2.查詢學生的成績信息.");
print("\n3.加入學生的成績信息.");
print("\n4.刪除學生的成績信息.");
print("\n5.顯示各科目的平均分.");
print("\n6.顯示學生成績排名情況.");
print("\n7.退出學生成績管理系統.");
print("\n================================");
print("\n請選擇你想要的操作:");
}
status insertlist(int m)
{
char ch;
print("\n請輸入加入學生的成績信息:\n");
while(1)
{
print("\n輸入第%d個學生的成績信息:\n",m+1);
print("學號:");
scanformat("%ld",&chengji ­.num);
print("\n姓名:");
scanformat("%s",chengji ­.name);
print("\n高等數學:");
scanformat("%d",&chengji ­.high_math);
while(!assert(chengji ­.high_math))
{
print("\n輸入非法格式.");
print("\n請重新輸入.");
scanformat("%d",&chengji ­.high_math);
}
print("\n英語:");
scanformat("%d",&chengji ­.english);
while(!assert(chengji ­.english))
{
print("\n輸入非法格式.");
print("\n請重新輸入.");
scanformat("%d",&chengji ­.english);
}
print("\n物理:");
scanformat("%d",&chengji ­.physics);
while(!assert(chengji ­.physics))
{
print("\n輸入非法格式.");
print("\n請重新輸入.");
scanformat("%d",&chengji ­.physics);
}
print("\n程序設計:");
scanformat("%d",&chengji ­.program);
while(!assert(chengji ­.program))
{
print("\n輸入非法格式.");
print("\n請重新輸入.");
scanformat("%d",&chengji ­.program);
}
print("\n資料庫:");
scanformat("%d",&chengji ­.database);
while(!assert(chengji ­.database))
{
print("\n輸入非法格式.");
print("\n請重新輸入.");
scanformat("%d",&chengji ­.database);
}
chengji ­.total=chengji ­.high_math+chengji ­.english+chengji ­.physics+chengji ­.program+chengji ­.database;
chengji ­.ave=chengji ­.total/5;
print("\n成功的加入一個學生的成績信息.");
m=m+1;
print("\n想繼續嗎?Y or n?:");
scanf("%c",&ch);
if(ch=='N'||ch=='n')
return m;
}
}
void deletelist(int n)
{
char ch,string[C];
int i;
long xuehao;
string[0]='\0';
print("\n請輸入你想刪去的學生的學號:");
scanf("%ld",&xuehao);
print("\n你要刪去的學生的信息:\n");
i=search_num(n,xuehao);
print("\n你真的要刪去該生的成績信息嗎?Y or N ?:");
scanformat("%c",&ch);
if(ch=='Y'||ch=='y')
{
strcpy(chengji[i].name,string);
print("\n你已經成功的刪去了該生的成績信息!!\n");
return;
}
else
return;
}
void show_average()
{
int sum1=0,sum2=0,sum3=0,sum4=0,sum5=0,i;
print("\n正在計算各科目的平均分,請稍等.........");
sleep(5);
for(i=0;i<number;i++)
if(!(chengji[i].name[0]==' '))
{
sum1+=chengji[i].high_math;
sum2+=chengji[i].english;
sum3+=chengji[i].physics;
sum4+=chengji[i].program;
sum5+=chengji[i].database;
}
print("\n高等數學:%d",sum1/number);
print("\n英語:%d",sum2/number);
print("\n物理:%d",sum3/number);
print("\n程序設計:%d",sum4/number);
print("\n資料庫:%d",sum5/number);
}
status search_ave(int average)
{
int i;
for(i=0;i<number;i++)
{
if(chengji[i].name[0]==' ')
continue;
if(ave[i]==average)
{
ave[i]=0;
return i;
}
}
return -1;
}void search_paiming()
{
int numb[N],i,j,temp,k,m=0;/*??????*/
for(i=0;i<number;i++)
numb[i]=chengji[i].ave;
for(i=number;i>=0;i--)
{
for(j=i-1;j>=0;j--)
if(numb[j]<numb[i])
{
swap(numb[j],numb[i],temp);
i=j;
}
}
print("\n學生成績排名:\n");
print("名次 學號 姓名 平均分");
for(i=0;i<number;i++)
{
k=search_ave(numb[i]);
if(k>=0&&chengji[k].name[0]!=' ')
{
print("\n第%d名:",m+1);
print(" %ld",chengji[k].num);
print(" %s",chengji[k].name);
print(" %d",chengji[k].ave);
m++;
}
}
print("\n");
}
main()
{
int choice,i;
number=create_chengjilist();
while(1)
{
print("\n");
show_menu();
scanformat("%d",&choice);
switch(choice)
{
case 1:
show(number);
break;
case 2:
searchlist(number);
break;
case 3:
number=insertlist(number);
break;
case 4:
deletelist(number);
break;
case 5:
show_average();
break;
case 6:
for(i=0;i<number;i++)
ave[i]=chengji[i].ave;
search_paiming();
break;
case 7:
saveconsole("student.txt");
return;
default:
print("\n非法輸入!");
break;
}
}
}

⑧ c語言atm實訓報告前言

你只需要按那個模版就行,那些內容就改成你的作業 班級: 學號: 姓名: 實驗9 指針 一、實驗目的 (1)掌握指針概念,並定義與使用它。 (2)使用數組的指針和指向數組的指針變數。 (3)使用字元串的指針和指向字元串的指針變數。 二、實驗內容 1. 將一個3*3的矩陣轉置,用函數實現。 2. 有n個人圍成一圈,順序排號。

⑨ C語言課程設計前言

C語言作為一門最通用的語言,在過去很流行,將來依然會如此。幾乎每一個理工科或者其他專業的學生毫不例外地要學習它。記得大學里,很多學校都把譚浩強教授的《C程序設計》作為入門教材,這是絕佳的選擇。然而,要更進一步,更全面而深入地學習呢?顯然有點力不從心。本書正是為了彌補這個缺憾而寫的,希望能對想比較全面而深入學習C語言程序設計的人有所幫助。

從C語言產生到現在,它已經成為最重要和最流行的編程語言之一。在各種流行編程語言中,都能看到C語言的影子,如Java的語法與C語言基本相同。學習、掌握C語言是每一個計算機技術人員的基本功之一。

C語言具有高級語言的強大功能,卻又有很多直接操作計算機硬體的功能(這些都是匯編語言的功能),因此,C語言通常又被稱為中級語言。學習和掌握C語言,既可以增進對於計算機底層工作機制的了解,又為進一步學習其他高級語言打下了堅實的基礎
從入門到精通:本書分上下兩篇,上篇針對初學者,從C語言的基礎開始,使略有計算機基礎的人都能容易地學會C語言編程。下篇則介紹了C語言的高級程序設計技巧,包括常用演算法、底層控制滑鼠、繪圖、加密、壓縮等應用。

適用多種操作系統:本書實例都通過GCC編譯器調試,讀者不僅可在Windows環境下使用本書學習C語言,也可在Linux環境下使用本書學習C語言。循序漸進:本書編寫順序按C語言的知識點循序漸進地介紹。例如,先介紹數據的存儲,再介紹數據的輸入/輸出;先介紹簡單的程序設計概念,再介紹指針等C語言的難點。重點突出:指針是C語言的重點和難點,本書用了大量的篇幅,從不同方面對其進行講解,並列舉了大量的實例,幫助讀者理解並掌握指針。

然後在加點這本書分幾章,各是什麼內容,主要針對的是C語言什麼功能,最後寫些祝福大家學習進步之類的話就可以了