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

c語言小型項目開發

發布時間: 2022-05-21 20:19:32

1. 有哪些c語言的小項目適合新手練習的,幾百到幾千行的那種

所有初學者面臨的第一個問題便是:如何選擇教材。好的開始是成功的一半,選擇一本優秀的教材是事半功倍的關鍵因素。不幸的是,學校通常會幫你指定一本很差勁的C語言課本;而幸運的是,你還可以再次選擇。大名鼎鼎的譚浩強教授出了一本《C語言程序設計》,據說發行量有超過400萬,據我所知,很多學校都會推薦這本書作為C語言課本。雖然本人的名字(譚浩宇)跟教授僅僅一字之差,但我是無比堅定地黑他這本書的。這本書不是寫給計算機專業的學生的,而是給那些需要考計算機等級考試的其它專業學生看的。這本書的主要缺點是:例子程序非常不專業,不能教給你程序設計應該掌握的思考方式;程序風格相當地不好,會讓你養成亂寫代碼的惡習;錯誤太多,曾經有人指出過這本書的上百個錯誤,其中不乏關鍵的概念性錯誤。好了,這本書我也不想說太多了,有興趣大家可以網路一下:)Kernighan和Ritchie的《TheCProgrammingLanguage》(中譯名《C程序設計語言》)堪稱經典中的經典,不過舊版的很多內容都已過時,和現在的標准C語言相去甚遠,大家一定要看最新的版本,否則不如不看。另外,即使是最經典最權威的書,也沒有法面面俱到,所以手邊常備一本《C語言參考手冊》是十分必要的。《C語言參考手冊》就是《CReferenceManual》,是C語言標準的詳細描述,包括絕大多數C標准庫函數的細節,算得上是最好的標准C語言的工具書。順便提一句,最新的《C程序設計語言》是根據C89標准修訂的,而《C語言參考手冊》描述的是C99標准,二者可能會有些出入,建議按照C99標准學習。還有一本《C和指針》,寫得也是相當地不錯,英文名是《PointersonC》,特別地強調指針的重要性,算是本書的一個特點吧。不過這本書並不十分適合初學者,如果你曾經學過C語言,有那麼一些C語言的基礎但又不是很扎實,那麼你可以嘗試一下這本書。我相信,只要你理解了指針,C語言便不再神秘。如果你已經啃完了一本C語言教材,想要更進一步,那麼有兩本書你一定要看。首先是《CTrapsandPitfalls》(中譯名《C陷井與缺陷》),很薄的一本小冊子,內容非常非常地有趣。要注意一點,這本書是二十多年前寫成的,裡面提到的很多C語言的缺陷都已被改進,不過能夠了解一些歷史也不是什麼壞事。然後你可以挑戰一下《ExpertCProgramming》(中譯名《C專家編程》),書如其名,這本書頗具難度,一旦你仔細讀完並能透徹理解,你便可以放心大膽地在簡歷上寫「精通C語言」了。切記一個原則,不要讀自己目前還看不懂的書,那是浪費生命。如果你看不懂,那你一定是缺失了某些必需基礎知識。此時,你要仔細分析自己需要補充哪些內容,然後再去書店尋找講述的這些內容的書籍。把基礎知識補充完畢再回頭來學習,才會真正的事半功倍。Unix/Linux還是Windows,這是個很大的問題不同的編程環境會造就出不同思維的程序員。Windows的程序員大多依賴集成開發環境,比如VisualStudio,而Unix程序員更加鍾愛Makefile與控制台。顯而易見,集成開發環境更容易上手,在Windows上學習C語言,只需要會按幾個基本的VisutalC++工具欄按鈕就可以開始寫Hello,World!了,而在Unix下,你需要一些控制台操作的基本知識。有人也許認為Unix的環境更簡潔,但習慣的力量是很大的,大家都很熟悉Windows的基本操作,而為了學習C語言去專門裝一個Unix系統,似乎有點不劃算。對於一個只懂得Windows基本操作、連DOS是什麼都不知道的新手而言,盡快做一些有趣而有意義的事情才是最重要的。用C語言寫一個小程序遠比學習ls、cat等命令有趣,況且我們要專注於C語言本身,就不得不暫時忽略一些東西,比如編譯鏈接的過程、Makefile的寫法等等等等。所以我建議初學者應該以VisualC++6.0(不是VisualC++.NET)或者DevC++作為主要的學習環境,而且千萬不要在IDE的使用技巧上過多糾纏,因為今後你一定要轉向Unix環境的。VisualC++6.0使用很方便,調試也很直觀,但其默認的編譯器對C標準的支持並不好,而DevC++使用gcc編譯器,對C99的標准都支持良好。使用順帶提一下,很多大學的C語言課程還在使用TurboC2.0作為實驗環境,這是相當不可取的,原因其一是TC2.0對C標准幾乎沒有支持,其二是TC2.0編譯得到的程序是16位的,這對今後理解32位的程序會造成極大的困擾(當然,用djgpp之類的東西可以使TC2.0編譯出32位程序,不過那過於復雜了)。等你學完一本C語言的教材,你一定要轉向Unix平台繼續學習,幾乎所有的C語言高級教程都是基於Unix平台的(比如《C專家編程》)。轉變的過程是痛苦的,你需要面對的是各種紛繁復雜的命令,完全不同於Windows平台的思考方式,但是這種痛苦是值得的。Unix與C是共生的,Unix的思考方式和習慣更加符合C語言的思考方式和習慣。在Unix下,你可以找到無數優秀的源代碼供你盡情閱讀,你可以方便地查看某個庫函數的聯機手冊,還可以看到最優秀的代碼風格歸結起來就是一句話:初學C語言,建議使用Windows系統和集成開發環境,在准備向「高手」方向努力時,請先轉向Unix平台。書已選定,環境配置完成,正所謂萬事俱備,只欠你自己的努力了。請從書的前言開始,仔細地閱讀手頭的教材,很多人看書喜歡直接從第一章開始看,這是錯誤的做法。前言是作者對整本書的大體介紹,作者一般會告訴你需要什麼基礎才能夠順利閱讀本書,這可以幫助你檢驗自己的基礎知識是否已經具備。看完前言,還要瀏覽一下目錄,了解一下書的整體結構,順便給自己安排一下學習計劃。學習C語言,必需注意每一個細節,書上的例子代碼一定要自己親自敲一遍,編譯執行輸出都跟書上說的一致才能算是學完了一個例子,如果不一致,就要仔細找原因。出了書本上有的例子,自己還要「創造」一些例子,比如學習運算符優先順序的時候,可以寫幾個相同的表達式,在不同的位置加上括弧,看看有哪些不同的行為,比如*p++和(*p)++,又比如a=b==c、(a=b)==c和a=(b==c)等等。自己抄的書上的例子以及改造之後的例子,還有自己「創造」的例子,都應該仔細地歸類保存,並且要在源代碼中寫上簡短的注釋,闡述這個例子的意圖。例子之後就是習題了,我建議初學者把所有的習題都獨立做一遍,然後對照答案的代碼,看看自己的代碼有那些不足,再試著修改自己的代碼。很多人不重視習題,這是極大的錯誤,因為作者通常會在習題中說明一些重要的道理,而不是單純地檢驗前面的知識。也許你認為這樣學習太慢,其實不然。學得細致就不用走回頭路,等你學到後面才發現自己前面沒搞清楚,那才是真的得不償失。一般說來,整本書讀完,你應該完成數千行乃至上萬行的代碼,無論是原封不動照抄書上的,還是自己心血來潮寫就的,都是今後繼續學習的一筆財富。以我自己舉例,閱讀《Windows核心編程》時(我只閱讀了3/4的內容),除了抄書上的代碼,還自己寫了很多例子,一共有5574行(用unix下的wc工具統計),時隔多日,我早已記不清Windows的系統編程了,但只要花幾分鍾翻出以前的代碼看看,便會重新瞭然於胸。所謂好記性不如爛筆頭,就是這個道理。仔細讀書、認真抄寫源代碼、獨立完成習題外加更進一步的實驗,最後將所有的代碼留下,成為自己的經驗和財富,絕對的辛苦,也絕對的事半功倍。當然,這種方式只適合學習需要精通的技術,如果不是學習C語言,你還要具體情況具體分析。

2. 推薦一些學完C語言可以完成的小項目

貪吃蛇游戲
計算器
黑白棋游戲
迷宮問題
掃地雷游戲
通訊錄
學生成績管理
圖書借閱管理等等……

3. 怎麼用C語言做項目

所謂項目,在一定的時間內,利用有限的資源和時間,完成特定的目的,這就是項目。

Turbo C 是一種工具,它有它擅長的地方,也有它不擅長的地方

我98年接過一個項目,用TC開發,結果失敗,前前後後寫了10000多行代碼,只完成了一個圖形化界面的部分,當時Win 95已經出來了,我寫了一個學期的東西,人家用VB一下午就出來了。

但是我也知道TC是完全可以做項目的,我畢業後找工作,一家軟體公司差點就要我了,他們就是用TC做項目的,寫驅動程序,TC+匯編

寫了這么多,不知你看明白了沒有,TC能不能做項目,答案是肯定的。至於你要代碼,我只能說,要到的可能性不大。因為項目的特性之一就是獨特性,每一個項目都有它自己的特點,別人的代碼給你也用不上,最多隻是起個學習作用。但是對於別人來說,那是職業道德問題,哪個公司的源代碼也不會允許拿給外人的。

4. C語言怎麼做項目

和所有的項目開發一樣,首先進行可行性分析,然後進行需求分析,完成之後進行概要設計,這些工作都和使用的語言無關;再往後,就要給出詳細設計,此時開始和開發語言開始建立聯系啦,調試,完成後發布。
所以說,項目和語言開發工具有一定的聯系,這種聯系這發生在軟體的開發過程中。

5. 怎麼用C語言開發軟體

語言本身是一種工具,真正要開發軟體還是需要掌握系統提供的API和具體的開發模式。
C語言在Linux可以開發出不錯的程序,如果是Windows的話,建議再學學C++,再看看一些關於Win32和MFC的書;

給你推薦幾本:《Windows程序設計》藍皮的,初學Windows編程比較不錯
《Windows核心編程》這本是國外寫的,再深入的話可以看看
Linux嘛:可以看看《Unix/Linux編程實踐教程》,深入的話看《UNIX環境高級編程》

6. C語言可以開發哪些項目

那就很多了,只不過C語言開發比較麻煩,驅動程序,系統底層,游戲引擎,嵌入式開發,單片機等等的都是C語言來開發的。CS就是C語言來開發的引擎

7. 我想用C語言開發一個小項目

很小的游戲,你可以試試貓捉老鼠,請盡量使用圖片進行製作。貓捉老鼠的難度還是挺簡單的,你可以試試對你生活中有幫助的,例如解方程,解應用題。
我現在正在開發一個游戲,類似於打磚塊,但有四個板都能動,就像SHATTER一樣。但還是得看自己的愛好,你喜歡什麼就做什麼。
如果LZ不嫌棄的話,就點一下我下面的最佳答案吧:)

8. 想做程序員,C語言可以開發哪些項目

C語言目前主要用於嵌入式,單片機和操作系統內核的開發,更上層的有更高級的語言代替

9. C語言開發入門及項目實戰的前言

歡迎來到C語言的世界,並通過本書學習C語言。本書內容反映了C語言的最新變化,其編排方式非常適合學習和講授這門語言。
C語言是一種面向過程的編程語言,可用於開發各種應用程序及系統軟體,近幾年,C語言的發展呈逐年上升趨勢,這也說明了C語言的簡單、現代特點正被更多人認同。 本書提供了C語言編程從入門到項目開發所必備的知識,並且分篇進行講解,使讀者的學習更有針對性。學習本書內容時,一定要熟練掌握入門篇的所有內容,以便為以後的應用開發打下扎實的基礎;然後可以有針對性地學習提高篇的內容,為開發專業軟體項目存儲必備的知識;最後學習一個項目的完整開發過程,為以後的實際項目開發積累一定的經驗。學習本書內容時,各篇內容需要花費的精力比例如下圖所示。
第1篇 入門篇(第1~11章):主要包括初識C語言、一個簡單的C語言程序、演算法入門、常用數據類型、運算符與表達式、數據輸入/輸出函數、選擇及分支結構程序設計、循環結構、數組、函數編程基礎、指針解析等內容。通過本篇的學習,讀者應熟練掌握C語言編程的基礎知識,並能開發一些小型的應用程序。
第2篇 提高篇(第12~17章):主要包括常用數據結構、位運算、存儲管理、預處理和函數類型、文件的讀寫操作、圖形圖像處理等內容。通過本篇的學習,讀者可以開發基本的應用程序,並能夠掌握開發綜合應用程序的方法。
第3篇 應用篇(第18章):本篇通過一個完整的圖書管理系統,運用軟體工程的設計思想,講解如何進行軟體項目的實踐開發。書中按照編寫項目計劃書→系統設計→資料庫設計→創建項目→實現項目→運行項目→解決開發常見問題的過程進行介紹,帶領讀者一步一步親身體驗開發項目的全過程。 ? 技術新穎,講解細致
使用Visual C++ 6.0和Turbo C 2.0進行講解,淋漓盡致地展示出了C語言的基礎知識,使讀者能夠真正掌握C語言初學者應該學習的知識。
? 實例豐富,貼近實際
對每個技術點進行詳細講解時,都提供了大量的示例和實例進行演示,這些示例和實例大部分來源於實際開發,讀者可以學為所用,快速提升自身開發技能,並有效解決實際開發中遇到的各類問題。
? 動手實踐,一體學習
每章都提供了大量的上機演練和實戰模擬,使讀者在學習技術的同時,能夠親自動手實踐,體驗編程帶來的成就感。另外,上機演練和實戰模擬的詳細講解及源碼與《C語言經典編程282例》中的實例相對應,讀者可以根據自身實際情況進行參考。
? 注釋詳盡,視頻講解
為了便於讀者更好地學習和使用本書,書中所有的代碼都提供了詳盡的注釋。而且,本書配套資源提供了覆蓋全書的語音視頻講解教學錄像,讀者可以通過視頻快速、直觀、輕松地學習。
本書配套資源
本書提供了內容豐富的配套資源,包括自學視頻、源程序、素材,以及模塊庫、案例庫、題庫、素材庫等多項輔助內容,讀者朋友可以通過如下方式獲取。
第1種方式:
(1)請登陸清華大學出版的網址,在網頁右上角的搜索文本框中輸入本書書名(注意區分大小寫和留出空格),或者輸入本書關鍵字,或者輸入本書ISBN號(注意去掉ISBN號間隔線「-」),單擊「搜索」按鈕。
(2)找到本書後單擊超鏈接,在該書的網頁下側單擊「網路資源」超鏈接,即可下載。
第2種方式:
訪問本書的新浪微博:C語言圖書,找到配套資源的鏈接地址進行下載。 ? 大中專院校師生 ? 面臨就業的學生
? 零基礎學習人員 ? 相關培訓機構的老師和學員
? 初、中級程序開發人員 ? 准備從事軟體開發工作的求職者
? 編程愛好者 ? 立志編程的其他專業人士

10. c語言做一個小項目(或稱大作業),解決一個實際問題。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void xieruwenjian(struct txgl stu[],int count,char wenjian[]);
void huanyuan(struct txgl stu[],char wenjian[]);
void txxxlr(struct txgl stu[],int &count);
void xianshi(struct txgl stu[],int count);
void chaxun(struct txgl stu[],int count);

struct txgl
{
char xinming[10];
char di[30];
int dianhua;
int youbian;
};
void main()
{

printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\t ----------------------------------------------------- \n");
printf("\t ----------------------------------------------------- \n");
printf("\n");
printf("\t \n");
printf("\t \n");
printf("\t 歡迎進入通訊管理系統 \n");
printf("\t \n");
printf("\t \n");

printf("\t ----------------------------------------------------- \n");
printf("\t ----------------------------------------------------- \n");
printf("\n");
printf("\n");
printf("\n");

system("PAUSE"); //清屏操作
system("CLS");
int a; //選擇使用
int count=0; //學生的個數
char wenjian[]={"stu.txt"};
struct txgl stu[100];
//huanyuan(stu,wenjian);
while(1)
{

printf("1 通訊的信息錄入\n");
printf("2 寫入文件\n");
printf("3 顯示所有信息\n");
printf("4 查詢\n");
printf("0 退出\n");
printf("請輸入你的選擇:");
scanf("%d",&a);
switch(a)
{
case 1:txxxlr(stu,count);break;
case 2:xieruwenjian(stu,count,wenjian);break;
case 3:xianshi(stu,count);break;
case 4:chaxun(stu,count);break;
case 0: exit(0);
default:{
printf("\n你輸入的選項有誤!請按照提示輸入\n");
printf("\n---------------------------------------------------\n");
printf("\n請選擇....\n");
printf("\n---------------------------------------------------\n");
}
}
}
}

void xieruwenjian(struct txgl stu[],int count,char wenjian[])
{
FILE *fp;
if(count<=0)
{
printf("\n沒有任何信息無法寫入文件\n");
printf("\n---------------------------------------------------\n");
printf("\n請選擇....\n");
printf("\n---------------------------------------------------\n");
return;
}
fp=fopen(wenjian,"w");
for(int i=0;i<count;i++)
{
fprintf(fp,"%s","姓名:");
fprintf(fp,"%s",stu[i].xinming);
fprintf(fp,"%s","地址:");
fprintf(fp,"%s",stu[i].di);
fprintf(fp,"%s","電話:");
fprintf(fp,"%d",stu[i].dianhua);
fprintf(fp,"%s","郵編:");
fprintf(fp,"%d",stu[i].youbian);
fprintf(fp,"\n");
}
fclose(fp);
printf("\n文件寫入成功\n");
printf("\n---------------------------------------------------\n");
printf("\n請選擇....\n");
printf("\n---------------------------------------------------\n");
}
void huanyuan(struct txgl stu[],char wenjian[])
{
int i=0;
FILE *fp;
fp=fopen(wenjian,"r");
if(fp==NULL)
printf("沒有任何信息讀取\n");
else
{
while(!feof(fp)) //feof是文件結束標志的文件,feof(fp)有兩個返回值:如果遇到文件結束,函數feof(fp)的值為1,否則為0
{
//fscanf(fp,"%s","姓名:");
fscanf(fp,"%s",stu[i].xinming);
printf("%s\n",stu[i].xinming);
//fscanf(fp,"%s","地址:");
fscanf(fp,"%s",stu[i].di);
printf("%s\n",stu[i].di);
//fscanf(fp,"%s","電話:");
fscanf(fp,"%d",&stu[i].dianhua);
printf("%d\n",stu[i].dianhua);
//fscanf(fp,"%s","郵編:");
fscanf(fp,"%d",&stu[i].youbian);
printf("%d\n",stu[i].youbian);
i++;
//fprintf(fp,"\n");
printf("文件讀出成功\n");
}
}
fclose(fp);

}

void txxxlr(struct txgl stu[],int &count)
{
char a;//選擇退出使用
printf("\n錄入的通訊信息,包括,姓名,地址,電話,郵編\n");
do{
printf("\n請輸入%d個人的姓名:",count+1);
scanf("%s",stu[count].xinming);
printf("\n請輸入%d個人的地址:",count+1);
scanf("%s",stu[count].di);
printf("\n請輸入%d個人的電話:",count+1);
scanf("%d",&stu[count].dianhua);
printf("\n請輸入%d個人的郵編:",count+1);
scanf("%d",&stu[count].youbian);
count++;
printf("\n請問你還要輸入嗎?按y確認,按n取消\n");
scanf("%s",&a);
}while(a=='y');
printf("\n---------------------------------------------------\n");
printf("\n請選擇....\n");
printf("\n---------------------------------------------------\n");

}
void xianshi(struct txgl stu[],int count)
{
int i;
if(count<=0)
{
printf("沒有任何數據不能顯示\n");

printf("\n---------------------------------------------------\n");
printf("\n請選擇....\n");
printf("\n---------------------------------------------------\n");
return;
}
for(i=0;i<count;i++)
{
printf("\n\n\n");
printf("第%d個人的資料\n",i);
printf("姓名:");
printf("%s\n",stu[i].xinming);
printf("地址:");
printf("%s\n",stu[i].di);
printf("電話:");
printf("%d\n",stu[i].dianhua);
printf("郵編:");
printf("%d\n",stu[i].youbian);
printf("\n");
}
printf("\n---------------------------------------------------\n");
printf("\n請選擇....\n");
printf("\n---------------------------------------------------\n");
}
void chaxun(struct txgl stu[],int count)
{
char xm[10];
int i;
if(count<=0)
{
printf("沒有任何信息不能實現查詢\n");
printf("\n---------------------------------------------------\n");
printf("\n請選擇....\n");
printf("\n---------------------------------------------------\n");
return;
}
printf("請按姓名查詢,請輸入姓名:\n");
scanf("%s",xm);
for(i=0;i<count;i++)
{
if(strcmp(xm,stu[i].xinming)==NULL) break;
}

printf("\n查詢到%s的信息如下:\n",xm);
printf("姓名:%s\n",stu[i].xinming);
printf("地址:%s\n",stu[i].di);
printf("電話:%d\n",stu[i].dianhua);
printf("郵編:%d\n",stu[i].youbian);
printf("\n---------------------------------------------------\n");
printf("\n請選擇....\n");
printf("\n---------------------------------------------------\n");
}