c语言函数分块化 C语言实现分段函数

如何分块进行C语言编程(详细)?

#include stdio.h

创新互联建站是一家专注于网站建设、网站设计与策划设计,兴山网站建设哪家好?创新互联建站做网站,专注于网站建设10年,网设计领域的专业建站公司;建站业务涵盖:兴山等地区。兴山做网站价格咨询:028-86922220

#include stdlib.h

#include string.h

const char filename[]="查询结果.txt";

FILE *fp;

struct ticket

{

char banci[20]; //班次

char shifadi[20]; //始发地

char zhongdian[20];//终点站

int date; //日期

int rest; //剩余票数

struct ticket *next;

}Node;

//1、创建链表

struct ticket *creat(int n)

{

struct ticket *head,*tail,*newnode;

int i;

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

head-next=NULL;

tail=head;

printf("车辆班次、始发地、终点站、日期(月 日 如九月六日0906)、剩余票数\n");

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

{

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

printf("请输入第%d次的数据:\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始发地\t终点地\t日期\t剩余票数 \n");

fprintf(fp,"班次\t始发地\t终点地\t日期\t剩余票数 \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("输入增加的车辆班次、始发地、终点站、日期(月 日 如九月六日09 06)、剩余票数\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("你所预定的班次不存在");

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("未找到你要删除的班次!~、\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始发地\t终点地\t日期\t剩余票数 \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始发地\t终点地\t日期\t剩余票数 \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始发地\t终点地\t日期\t剩余票数 \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("=============================车票查询订购系统===============================\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("请输入要使用的业务前相应的数字:\t");

scanf("%d",i);

if(i==7)

break;

else

switch(i)

{

case 1: printf("输入录入的个数:\t");

scanf("%d",n);;

head=creat(n);

break;

case 2:

insert(head);

break;

case 3:

printf("输入要删除的班次:\t");

scanf("%s",e);

del(head,e);

break;

case 4:

print(head);

break;

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

printf("2、按始发站查询:\t");

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

scanf("%d",x);;

switch(x)

{

case 1:printf("输入要查询班次:\t");

scanf("%s",d);

chaxun1(head,d);break;

case 2:printf("输入要查询的始发站(请查询后输入有效的始发站):\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;

}

}

}

看了这个C语言版的车票订购查询系统吧,想必楼主会非常明白什么叫分块了,一个三百多行的程序 ,而主函数就占了50行左右,函数功能分工明确,各负其职,连在一起就可以组成一个有着增、删、改、查等功能的一个简单系统。分工其实就是把某一功能的代码放一起,避免重复使用,也使主函数简单明了。楼主觉得呢?

理解,谈谈C语言函数的作用以及如何做模块化程序设计

C语言中的模块化体现在两个方面:

1 函数。函数是C语言的最小单位,每个函数均实现一个独立的功能,于是每个函数均可以当做是一个最小的功能模块。这样,C语言就实现了最基本的模块化。

2 文件。在C语言中,支持一个程序由多个源文件编译,所以可以把类似功能的一组函数写在同一个文件中,以源文件为单位,实现模块化。当模块较大时,可以写在多个头文件中,然后编译成一个库文件,以库文件为单位,实现模块化。

C语言,分块

可以,使用文件包含就可以了,比如你的主文件(包含main函数的)叫main.c,你可以写一个文件专门放置函数,叫func.h,然后在main.c中添加#include "func.h",编译时只需要编译main.c就可以了..举一反三,你想分成几个文件都可以,

注意,func.h这个文件名,其实你也可以叫做func.c,甚至不加任何后缀,直接使用func也是可以的,但是后缀.h更能体现此文件的性质..

c语言中如何实现模块化?

C语言中用函数来实现程序模块。

模块化程序设计是将一个大的任务分解成若干个小任务,再将小任务分解成更小的任务,直到每一个任务都只完成一个独立功能。这样的每个任务都叫做模块,C语言中模块是用函数来实现的。

借助函数来实现程序模块化,把你想实现的功能用函数来实现,不同功能的就用不同的函数来实现,而且,函数在一定程度上可以被复用,所以称为模块,搜索零基础学通C语言系列大全之线程_模块儿_静态库_循环总结视频教程就可以看了。


标题名称:c语言函数分块化 C语言实现分段函数
文章链接:http://azwzsj.com/article/doodcdg.html