⑴ 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語言說課稿
《C語言程序設計》說課教案
授課班級:07應用電子
授課課時:2課時
授課地點:計算機實驗室
課題 製作數字電子時鍾―――循環嵌套
一、教學目標
1、通過本次課教學,學生能進一步理解順序、分支和循環三種基本結構,特別是While、Do-While、for三種循環循環語句的使用;
2、掌握循環嵌套概念;
3、掌握多種循環程序設計方法並根據任務要求 「製作數字電子時鍾」;
4、通過本次任務,了解gotoxy()和Clrscr()函數的作用,並掌握這兩個函數在實際應用程序中的使用方法。
5、技能目標:培養學生邏輯思維能力、綜合運用知識的能力和自主學習能力;
二、教材分析
選用教材為李志球、劉昊編著的《C語言程序設計教程》(第二版),該教材由電子工業出版社出版,教材特點如下:
1、在內容上體現科學性、時代性、實用性,編排上面向應用,理論與實踐有機結合;
2、採用任務驅動、項目教學等教學手段,全書圍繞項目「學生成績管理系統」作為案例,貫穿整個課程進行難點講解,以實際應用作為突破口,使學生能夠真實體驗到知識的實際應用,提高興趣,促進理解;教學與項目開發融為一體,淺顯易懂,符合高職學生認知規律。
3、實驗實訓環節結合教學內容,實驗項目豐富。課程設計中案例學生熟悉。
本節課教學內容參考教材第4章的4.4節:循環嵌套。
三、學生分析
07應用電子是普招類(高中畢業生)學生,它們高中期間文化基礎較扎實,但計算機專業知識薄弱,C語言程序設計是他們學習的第一門計算機語言類課程,開始學習時較困難,但入門提高較快。本次課的教學內容中循環嵌套概念他們很容易理解,簡單的多重循環編程對他們不難,但循環嵌套在實際應用中的編程較為困難,如本次課的任務「製作數字電子時鍾」牽涉許多知識,如屏幕定位、輸入初始時間等。
另外,高職學生對於上機實際操作要比學習理論知識更為有興趣;簡單的實驗項目都能完成,但解決實際應用問題的能力也較差。因此,在教學中通過演示讓學生有感性認識,提高學習興趣;通過提出問題讓學生討論議一議,主動思考如何解決;通過一個教學任務讓學生動手做一做。
四、教學重點、難點及解決辦法
1、本次課教學重點
1)循環嵌套概念;
2)gotoxy()和Clrscr()函數使用方法;
3)循環嵌套結構程序設計方法及實際應用。
在教學過程的敘述中,要抓住教學的重點、最能體現教學理念的內容和最能展示教學藝術的環節,作較為詳細的敘述。
2、本次課教學難點
1)循環嵌套編程
2)演算法分析及程序結構
3)編程完成「製作數字電子時鍾」
3、難點解決辦法
1)通過演示讓學生有感性認識,並從for語句基本語法入手,逐步引入循環嵌套概念,弱化實用性不強的細節;
2)圍繞任務「製作數字電子時鍾」程進行難點講解,以實際應用作為突破口,使學生能理解循環嵌套在實際中的應用,提高學習興趣;
3)針對難點設置上機實際操作內容,進一步掌握循環嵌套程序設計方法。
4)在實驗實訓過程中布置任務項目,通過實踐環節進一步理解和掌握重點難點,達到學習目的。
五、教學理念、方法及手段
本次課採用理(論)實(踐)一體化教學理念通過任務驅動(項目教學)、講練結合等教學手段。
1、任務驅動:通過「製作數字電子時鍾」這一任務,掌握循環嵌套程序設計認方法。並掌握相應知識點,突出重點,分解難點。
2、講練結合:授課地點為計算機實驗室,採用邊講邊練的教學互動形式。教學過程中,適當安排學生在計算機上進行進行實際程序設計,通過運行調試自己設計的程序,讓學生親自觀察和體驗程序設計的成功感受,加深知識的理解。
六、教學設計(時間分配)
1、任務提出,演示成果程序,明確目標,提出要求。(2分鍾)
(1)演示成果程序,在屏幕固定位置顯示「製作數字電子時鍾」。
(2)任務分析:完成本次課的任務所需知識―――三種基本程序設計結構。
2、知識回顧(2分鍾)
循環結構概念、三種循環語句(while、do-while、for)、當型和直到型循環、重點語句for語句應用、注意事項。
3、上機實訓1(2分鍾)
簡單程序:用for語句編程,實現在屏幕上顯示0、1、2……59。
(上機技能訓練的操作、指導、輔導過程,以學生實際操作動手為主,教師進行輔導指導、師生共同探討完成,應充分體現學生的主體地位)
思考提問:如何讓0-59重復變化,以接近實際生活中秒的變化情況。
4、導入新課(6分鍾)
(1)通過練習1,分析在屏幕上顯示秒的變化程序中存在的問題。一是數字「0-59」以滾動卷屏方式顯示;二是每個數字顯示速度太快,如何實現以實際一秒時間顯示一個數。
第一個問題使用gotoxy()函數或clrscr()函數解決;第二個問題在程序中每顯示一秒後都設置一個時間延遲,時間延遲用方法空循環結構實現,它的位置在循環內屏幕每顯示一個數值後。通過講解解決第二個問題的程序結構,引入本次課新知識―――循環嵌套概念。
for(s=0;s<=59;s++)
{printf("\%2d",s);
for (i=1;i<=200000000;i++); }
(2)循環嵌套概念、結構和程序設計時注意事項。
5、上機實訓2(5分鍾)
使用循環嵌套結構編程,在屏幕固定位置能以分秒變化的時鍾:
10:11
編程和上機操作時要理解兩點:一是gotoxy()函數的使用,二是空循環實現延時循環終值的調試,以接近實際生活中時間變化。
本部分內容所用到知識是本次課的核心,是基本的能力目標,所以教學時要以重點內容處理。
6、程序設計講解(4分鍾)
編程完成本次課任務,製作一個帶有時、分、秒變化的數字電子時鍾。(四重循環)。
(1)演算法分析
(2)定義變數及類型
(3)程序結構設計
(3)源程序核心結構編程
7、上機實訓3(5分鍾)
(1)調試程序時要注意觀察程序運行情況,調整空循環變數i的終值,盡量與實際運轉時間一致。計算機運行速度越快,則這個數值越大。
(2)本程序需運行24小時才能結束,如果要停止程序運行,可以按Ctrl-C或連續按兩次Ctrl-Break強制中斷程序運行。
(3)修改變數i類型,將它定義為整形後再次運行程序,觀察運行結果,分析程序出錯原因,提醒以後編程時注意。
8、提出問題,任務完善―――源程序提高與擴展 之一(4分鍾)
前面的程序每次運行都從0點0分0秒開始,不能從當前實際時間開始運行。解決問題的辦法可以在程序第一次循環開始時輸入一次當前實際時間。為了只在開始運行時設置一次初始時間,可以引入一個邏輯變數first,其初始值為0 ,輸入初始時間後,將其值置為非0。在後面程序運行中,通過if語句控制不再需要輸入初始時間。
9、上機實訓4(5分鍾)
上機修改程序,使數字電子鍾能從指定時間(輸入初始時間)開始運轉。
10、思考和作業(5分鍾)
(1)源程序提高與擴展 之二:本程序只能運行24小時,請同學們將程序進一步改進,使它能顯示年、月、日、星期、時、分、秒等數據的電子鍾。
(2)「九九乘法表」。
10、課堂小結及作業(5分鍾)
11、Question & Answer(1-2分鍾)
七、學法指導
1、鼓勵學生自主探索和合作交流。引導學生自主地從事觀察、分析、交流等活動,使學生形成對計算機語言知識有效的學習策略。
2、鼓勵與提倡解決問題的多樣性,引導學生在與他人的交流中去選擇合適的策略,豐富自己的思維方式,獲得成功的體驗和不同的發展。
3、引導學生將所學計算機知識應用到其他學科中去,使學生覺得計算機有很用,同時也培養了學生邏輯思維能力。
⑷ 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語言課程實訓報告
程序:
#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語言的實訓項目發幾個,謝謝
這個是沒有代碼的,只有文件,要你去真代碼,不過電路圖及。hex文件都有,你可以直接運行看結果,但自已要試程序的話,必須自已打上去!~
建議買一本吧!學pic單片機,這本書不錯。也就七十來塊,如果這點錢都捨不得,還是別要了!知識是無價的,只你你學到了東西,這本書就值了,