當前位置:首頁 » 編程語言 » 塊c語言

塊c語言

發布時間: 2023-02-21 09:12:08

㈠ 如何分塊進行c語言編程(詳細)

#include <stdio.h>
#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;i<n;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!=NULL&&strcmp(b,p->banci)!=0){
p=p->next;
}

if(p==NULL)
printf("你所預定的班次不存在");
if(strcmp(b,p->banci)==0)
{
if(p->rest>0)
{
p->rest=p->rest-1;
printf("訂票成功");
}
else{
printf("票已售完");
}
}
}
if(n==2)
{
while(p!=NULL&&strcmp(b,p->banci)!=0){
p=p->next;
}

if(p==NULL){
printf("你所退定的班次不存在");
}

if(strcmp(b,p->banci)==0)
{
if(p->rest>0)
{
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!=NULL&&strcmp(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語言中的語句塊主要作用是實現作用域的概念。有了作用域的概念,才可以方便命名標識符。比如下面的代碼

inta;
intmain()
{
inta;
if(a!=0){inta=2;printf("%d ",a);
return0;
}

源碼中使用了3個變數a,如果沒有語句塊的分隔作用,則必須定義三個不同名字的變數名,如果一個很大的程序中沒有語句塊,則標識符的命名本身就是一個問題。

㈢ C語言中,塊是什麼

塊指的是一塊數據,是個抽象的概念,和C語言沒有關系,這種抽象的東西,別說其他語言也能用,就是日常生活中也會把東西分塊管理,C語言中沒有對塊進行定義,因為這只是個抽象的概念,塊可以是內存塊,數據塊,程序塊,哪怕是豆腐塊也能是塊。。。。。。 意思就是在管理中被劃分為一類的一個基本單位。。。

㈣ C語言,分塊

可以,使用文件包含就可以了,比如你的主文件(包含main函數的)叫main.c,你可以寫一個文件專門放置函數,叫func.h,然後在main.c中添加#include "func.h",編譯時只需要編譯main.c就可以了..舉一反三,你想分成幾個文件都可以,
注意,func.h這個文件名,其實你也可以叫做func.c,甚至不加任何後綴,直接使用func也是可以的,但是後綴.h更能體現此文件的性質..

㈤ C語言中的塊是什麼意思

就是兩個大括弧中間的都可以叫做「塊」

熱點內容
u盤免費加密 發布:2024-11-08 07:34:51 瀏覽:351
英雄聯盟登錄密碼在哪裡修改 發布:2024-11-08 07:25:16 瀏覽:515
努比亞有沒有免費雲存儲 發布:2024-11-08 07:08:18 瀏覽:569
主機什麼配置可以打絕地求生 發布:2024-11-08 07:08:18 瀏覽:988
方舟手游如何請入火影伺服器 發布:2024-11-08 07:05:57 瀏覽:311
ip6根伺服器最新消息 發布:2024-11-08 07:05:56 瀏覽:334
探探存儲的圖片在哪裡找 發布:2024-11-08 07:04:32 瀏覽:224
slp用什麼編譯器 發布:2024-11-08 07:04:16 瀏覽:413
三一重工天泵參數密碼是什麼 發布:2024-11-08 06:59:45 瀏覽:660
攻擊伺服器資料庫 發布:2024-11-08 06:45:57 瀏覽:909