c語言函數(shù)分塊化 C語言實(shí)現(xiàn)分段函數(shù)

如何分塊進(jìn)行C語言編程(詳細(xì))?

#include stdio.h

創(chuàng)新互聯(lián)建站是一家專注于網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),興山網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)建站做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:興山等地區(qū)。興山做網(wǎng)站價(jià)格咨詢:028-86922220

#include stdlib.h

#include string.h

const char filename[]="查詢結(jié)果.txt";

FILE *fp;

struct ticket

{

char banci[20]; //班次

char shifadi[20]; //始發(fā)地

char zhongdian[20];//終點(diǎn)站

int date; //日期

int rest; //剩余票數(shù)

struct ticket *next;

}Node;

//1、創(chuàng)建鏈表

struct ticket *creat(int n)

{

struct ticket *head,*tail,*newnode;

int i;

head=(struct ticket *)malloc(sizeof(Node));

head-next=NULL;

tail=head;

printf("車輛班次、始發(fā)地、終點(diǎn)站、日期(月 日 如九月六日0906)、剩余票數(shù)\n");

for(i=0;in;i++)

{

newnode=(struct ticket *)malloc(sizeof(Node));

printf("請輸入第%d次的數(shù)據(jù):\n",i+1);

scanf("%s",newnode-banci);

scanf("%s",newnode-shifadi);

scanf("%s",newnode-zhongdian);

scanf("%d",newnode-date);

scanf("%d",newnode-rest);

tail-next=newnode;

tail=newnode;

}

tail-next=NULL;

return(head);

}

//4、瀏覽

void print(struct ticket *head)

{

struct ticket *p;

p=head-next;

fp=fopen(filename,"ab+");

printf("班次\t始發(fā)地\t終點(diǎn)地\t日期\t剩余票數(shù) \n");

fprintf(fp,"班次\t始發(fā)地\t終點(diǎn)地\t日期\t剩余票數(shù) \n");

while(p!=NULL)

{

fprintf(fp,"%s\t%s\t%s\t%d\t%d \n",p-banci,p-shifadi,p-zhongdian,p-date,p-rest);

printf("%s\t%s\t%s\t%d\t%d \n",p-banci,p-shifadi,p-zhongdian,p-date,p-rest);

p=p-next;

}

fclose(fp);

}

//2、增加班次

struct ticket *insert (struct ticket *head)

{

struct ticket *newnode,*p, *q;

printf("輸入增加的車輛班次、始發(fā)地、終點(diǎn)站、日期(月 日 如九月六日09 06)、剩余票數(shù)\n");

scanf("%s",Node.banci);

scanf("%s",Node.shifadi);

scanf("%s",Node.zhongdian);

scanf("%d",Node.date);

scanf("%d",Node.rest);

newnode=(struct ticket *)malloc(sizeof(Node));

strcpy(newnode-banci,Node.banci);

newnode-date=Node.date;

newnode-rest=Node.rest;

strcpy(newnode-shifadi,Node.shifadi);

strcpy(newnode-zhongdian,Node.zhongdian);

p=head-next;

if (p==NULL)

{

head-next=newnode;

newnode-next=NULL;

}else{

while(p!=NULL)

{

q=p;

p=p-next;

}

q-next=newnode;

newnode-next=NULL;

}

return (head);

}

//6、訂票

struct ticket *book(struct ticket *head,char b[],int n)

{

struct ticket *p;

p=head-next;

if(n==1)

{

while(p!=NULLstrcmp(b,p-banci)!=0){

p=p-next;

}

if(p==NULL)

printf("你所預(yù)定的班次不存在");

if(strcmp(b,p-banci)==0)

{

if(p-rest0)

{

p-rest=p-rest-1;

printf("訂票成功");

}

else{

printf("票已售完");

}

}

}

if(n==2)

{

while(p!=NULLstrcmp(b,p-banci)!=0){

p=p-next;

}

if(p==NULL){

printf("你所退定的班次不存在");

}

if(strcmp(b,p-banci)==0)

{

if(p-rest0)

{

p-rest=p-rest+1;

printf("退票成功");

}

}

}

return (head);

}

//3、刪除班次

struct ticket *del(struct ticket *head,char b[])

{

struct ticket *p,*q;

p=head-next;

while(p!=NULLstrcmp(b,p-banci))

{

q=p;

p=p-next;

}

if (p==NULL)

{

printf("未找到你要?jiǎng)h除的班次!~、\n");

}else{

if((p==head-next)(strcmp(b,p-banci)==0))

{

if (p-next==NULL)

{

free(p);

head-next=NULL;

}else{

head-next=p-next;

free(p);

}

printf("刪除成功!~、\n");

}else if((p!=head-next)(strcmp(b,p-banci)==0))

{

if (p-next==NULL)

{

free(p);

q-next=NULL;

}else{

q-next=p-next;

free(p);

}

printf("刪除成功!~、\n");

}

}

return (head);

}

//5、查詢

struct ticket *chaxun1(struct ticket *head,char a[])

{

struct ticket *p;

p=head-next;

printf("班次\t始發(fā)地\t終點(diǎn)地\t日期\t剩余票數(shù) \n");

while(p!=NULL)

{

if(strcmp(p-banci,a)==0)

{

printf("%s\t%s\t%s\t%d\t%d \n",p-banci,p-shifadi,p-zhongdian,p-date,p-rest);

break;

}

else

p=p-next;

}

if(p==NULL){

printf("查詢班次不存在\n");

}

return(head);

}

struct ticket *chaxun2(struct ticket *head,char a[])

{

struct ticket *p;

p=head-next;

printf("班次\t始發(fā)地\t終點(diǎn)地\t日期\t剩余票數(shù) \n");

while(p!=NULL)

{

if(strcmp(p-shifadi,a)==0)

{

printf("%s\t%s\t%s\t%d\t%d \n",p-banci,p-shifadi,p-zhongdian,p-date,p-rest);

break;

}

else

p=p-next;

}

return(head);

}

struct ticket *chaxun3(struct ticket *head,int m)

{

struct ticket *p;

p=head-next;

printf("班次\t始發(fā)地\t終點(diǎn)地\t日期\t剩余票數(shù) \n");

while(p!=NULL)

{

if(p-date==m)

{

printf("%s\t%s\t%s\t%d\t%d \n",p-banci,p-shifadi,p-zhongdian,p-date,p-rest);

break;

}

else

p=p-next;

}

return(head);

}

void main()

{

printf("=============================車票查詢訂購系統(tǒng)===============================\n");

printf("1、讀入車輛班次初始化信息\n");

printf("2、增加班次信息\n");

printf("3、刪除班次信息\n");

printf("4、瀏覽所有班次\n");

printf("5、查詢\n");

printf("6、訂票退票\n");

printf("7、退出\n");

while(1)

{

int i,n,m,x;

char a[20],d[20],e[20];

struct ticket *head;

printf("請輸入要使用的業(yè)務(wù)前相應(yīng)的數(shù)字:\t");

scanf("%d",i);

if(i==7)

break;

else

switch(i)

{

case 1: printf("輸入錄入的個(gè)數(shù):\t");

scanf("%d",n);;

head=creat(n);

break;

case 2:

insert(head);

break;

case 3:

printf("輸入要?jiǎng)h除的班次:\t");

scanf("%s",e);

del(head,e);

break;

case 4:

print(head);

break;

case 5:printf("1、按班次查詢:\t");

printf("2、按始發(fā)站查詢:\t");

printf("3、按日期查詢:\t");

scanf("%d",x);;

switch(x)

{

case 1:printf("輸入要查詢班次:\t");

scanf("%s",d);

chaxun1(head,d);break;

case 2:printf("輸入要查詢的始發(fā)站(請查詢后輸入有效的始發(fā)站):\t");

scanf("%s",d);

chaxun2(head,d);break;

case 3:printf("輸入要查詢的日期(格式0101):\t");

scanf("%d",m);;

chaxun3(head,m);break;

}

break;

case 6:

printf("訂票輸入1,退票輸入2:\t");

scanf("%d",m);;

printf("輸入你要訂或退的班次:\t");

scanf("%s",a);

book(head,a,m);

break;

}

}

}

看了這個(gè)C語言版的車票訂購查詢系統(tǒng)吧,想必樓主會(huì)非常明白什么叫分塊了,一個(gè)三百多行的程序 ,而主函數(shù)就占了50行左右,函數(shù)功能分工明確,各負(fù)其職,連在一起就可以組成一個(gè)有著增、刪、改、查等功能的一個(gè)簡單系統(tǒng)。分工其實(shí)就是把某一功能的代碼放一起,避免重復(fù)使用,也使主函數(shù)簡單明了。樓主覺得呢?

理解,談?wù)凜語言函數(shù)的作用以及如何做模塊化程序設(shè)計(jì)

C語言中的模塊化體現(xiàn)在兩個(gè)方面:

1 函數(shù)。函數(shù)是C語言的最小單位,每個(gè)函數(shù)均實(shí)現(xiàn)一個(gè)獨(dú)立的功能,于是每個(gè)函數(shù)均可以當(dāng)做是一個(gè)最小的功能模塊。這樣,C語言就實(shí)現(xiàn)了最基本的模塊化。

2 文件。在C語言中,支持一個(gè)程序由多個(gè)源文件編譯,所以可以把類似功能的一組函數(shù)寫在同一個(gè)文件中,以源文件為單位,實(shí)現(xiàn)模塊化。當(dāng)模塊較大時(shí),可以寫在多個(gè)頭文件中,然后編譯成一個(gè)庫文件,以庫文件為單位,實(shí)現(xiàn)模塊化。

C語言,分塊

可以,使用文件包含就可以了,比如你的主文件(包含main函數(shù)的)叫main.c,你可以寫一個(gè)文件專門放置函數(shù),叫func.h,然后在main.c中添加#include "func.h",編譯時(shí)只需要編譯main.c就可以了..舉一反三,你想分成幾個(gè)文件都可以,

注意,func.h這個(gè)文件名,其實(shí)你也可以叫做func.c,甚至不加任何后綴,直接使用func也是可以的,但是后綴.h更能體現(xiàn)此文件的性質(zhì)..

c語言中如何實(shí)現(xiàn)模塊化?

C語言中用函數(shù)來實(shí)現(xiàn)程序模塊。

模塊化程序設(shè)計(jì)是將一個(gè)大的任務(wù)分解成若干個(gè)小任務(wù),再將小任務(wù)分解成更小的任務(wù),直到每一個(gè)任務(wù)都只完成一個(gè)獨(dú)立功能。這樣的每個(gè)任務(wù)都叫做模塊,C語言中模塊是用函數(shù)來實(shí)現(xiàn)的。

借助函數(shù)來實(shí)現(xiàn)程序模塊化,把你想實(shí)現(xiàn)的功能用函數(shù)來實(shí)現(xiàn),不同功能的就用不同的函數(shù)來實(shí)現(xiàn),而且,函數(shù)在一定程度上可以被復(fù)用,所以稱為模塊,搜索零基礎(chǔ)學(xué)通C語言系列大全之線程_模塊兒_靜態(tài)庫_循環(huán)總結(jié)視頻教程就可以看了。

網(wǎng)站標(biāo)題:c語言函數(shù)分塊化 C語言實(shí)現(xiàn)分段函數(shù)
URL鏈接:http://www.muchs.cn/article16/doodcdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站Google、網(wǎng)站改版、建站公司、做網(wǎng)站、企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名