日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

Dev-C++创建项目

發(fā)布時(shí)間:2024/1/1 c/c++ 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Dev-C++创建项目 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)據(jù)結(jié)構(gòu)寫自己的頭文件

寫此篇原因:數(shù)據(jù)結(jié)構(gòu)中,用具體算法實(shí)現(xiàn)時(shí),基本操作需要反復(fù)使用。建立自己的頭文件,可以在不同的項(xiàng)目中很方便的調(diào)用自己在頭文件中包含的基本操作函數(shù)。

鏈接:Dev-C++如何創(chuàng)建c++項(xiàng)目?

那么,Dev-C++如何創(chuàng)建c項(xiàng)目?
以下用約瑟夫問題舉例,其中運(yùn)用了數(shù)據(jù)結(jié)構(gòu)中的線性表以及其鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。

-約瑟夫main.c文件

#include<stdio.h> #include "list.h"//主函數(shù) int main() {//printf("------------ < 約瑟夫(Joseph)>----------------\n\n");LinkList head;int m,n;//printf("輸入\n請(qǐng)輸入報(bào)數(shù)上限值m和總?cè)藬?shù)n:");scanf("%d%d",&m,&n);head = CreateList(n);DeleteElem(head, m, n);return 0;}

注意:自己編寫的頭文件應(yīng)當(dāng)要用引號(hào) " " 括起來,
而庫文件的應(yīng)用尖括號(hào)< >括起來,不過庫文件用雙引號(hào)也可以。

  • list.h文件
#ifndef LIST_H #define LIST_Htypedef struct LNode LNode ; typedef struct LNode* LinkList; LinkList CreateList(int n); //建立一個(gè)帶頭結(jié)點(diǎn)的單向循環(huán)鏈表 (且有頭指針) void DeleteElem(LinkList pt,int m,int n);//從鏈表中依次刪除要出列的人的結(jié)點(diǎn),并且打印出列人的序號(hào)#endif

說明:該文件主要是包括了各種自定義的函數(shù)、自定義的結(jié)構(gòu)體類型的聲明等。

  • list.c文件
#include <stdio.h> #include "list.h"typedef struct LNode{int num; //數(shù)字序號(hào) int pass;//個(gè)人密碼 struct LNode *next;//指向下一個(gè)結(jié)點(diǎn)的指針 }LNode , *LinkList;LinkList CreateList(int n)//建立一個(gè)帶頭指針的單向循環(huán)鏈表 {LinkList L;int i;LNode *p1,*head;p1 = (LinkList)malloc(sizeof(LNode));L = p1; // printf("請(qǐng)依次輸入這%d個(gè)人持有的密碼(均小于30):",n);for(i = 1 ; i <= n ; ++i)//依次存入n個(gè)人的序號(hào)和密碼 {p1->next = (LinkList)malloc(sizeof(LNode));//p->next 是當(dāng)前要存入密碼的結(jié)點(diǎn) p1->next->num = i;scanf("%d",&p1->next->pass) ; p1 = p1->next; }p1->next = L->next ;head = L->next;free(L);return head; } void DeleteElem(LinkList pt,int m,int n)//從鏈表中依次刪除要出列的人的結(jié)點(diǎn),并且打印出列人的序號(hào) {int i;LinkList p; // printf("\n輸出\n出列的序號(hào)依次為:");while(pt->next != pt){for(i = 1 ; i<m ; ++i){p = pt;pt = pt->next;}printf("%d ",pt->num); //打印出列的人的序號(hào)m = pt->pass;p->next = pt->next ; //將出列人的前后結(jié)點(diǎn)進(jìn)行連接free(pt) ; //釋放出列人所在的結(jié)點(diǎn) pt = p->next;}printf("%d",pt->num); //直接打印最后一個(gè)人的序號(hào)free(pt); }

說明:該文件主要編寫了具體的函數(shù),以及結(jié)構(gòu)體類型(即對(duì)自定義的函數(shù)以及結(jié)構(gòu)體類型進(jìn)行了定義)

三個(gè)文件建立以后,我是放在了同一目錄下,當(dāng)然也可以按自己的需要放置。其中的.h.gch文件是自動(dòng)生成,目的是為了提高下次編譯時(shí)的速度。不過,如果我們修改了.h文件,.h.gch文件不會(huì)自動(dòng)更改。我們可以選擇刪除這個(gè)文件,或者將 Makefile文件 的 clean 目標(biāo)項(xiàng) 修改為 rm -f *.o *.h.gch, 然后重新編譯。

完成三個(gè)文件以后可以,可以建立項(xiàng)目,來解決約瑟夫問題了。

1.首先點(diǎn)擊文件->新建->項(xiàng)目

2.按圖選擇,項(xiàng)目名字可以自定義。確定以后,我將該項(xiàng)目與剛才的三個(gè)文件保存到了同一目錄下。

3.然后右擊籃框內(nèi)的“約瑟夫”,找到添加,將剛剛的三個(gè)文件添加到當(dāng)前的約瑟夫項(xiàng)目下。


4.這樣之后,刪除其中無用的“未命名”,再點(diǎn)擊籃框,即點(diǎn)擊主函數(shù),選擇編譯并運(yùn)行(F11),即可。


5.運(yùn)行主函數(shù)的結(jié)果

🆗,初步建立一個(gè)簡(jiǎn)單的項(xiàng)目就完成了。希望自己后續(xù)的數(shù)據(jù)結(jié)構(gòu)能用這種方法,建立自定義的數(shù)據(jù)結(jié)構(gòu)的基本操作函數(shù)文件。bye~

總結(jié)

以上是生活随笔為你收集整理的Dev-C++创建项目的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。