欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

停車場計時收費函數(shù)c語言 c語言停車場收費系統(tǒng)管理

C語言 停車場記錄停車時間與收費

printf("time is %f s\n",difftime(t_end,t_end));difftime中兩個都是t_end,注定為0。

網站建設哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網頁設計、網站建設、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網站建設等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了索縣免費建站歡迎大家使用!

如何在C語言中實現(xiàn)計時

以前做那個停車場管理系統(tǒng)的時候,也是需要計時,因為要收費..好像就這么記得.每個上機的人,應該有一個結構體,在結構體里設個計時的變量,可以是個只有兩個元素的數(shù)組.當然這樣會很不方便了.(因為需要你自己輸入上機時間,和下機時間,并保存在變量里.)....ANSIC里有一個time函數(shù),在time.h頭文件里.這個函數(shù),傳遞一個參數(shù),返回的是系統(tǒng)時間(單位我不清楚),返回的系統(tǒng)時間保存在你傳遞的參數(shù)里...你可以試試這個.貌似這個可能就有點麻煩了.因為需要測試程序...你不可能等個1,2個小時,再看看輸出結果是不是對的...測試的時候,乘個數(shù)放大一下應該就可以了..也就是說,你設一個結構體,里面有一個記錄時間的數(shù)組time[2],數(shù)組只含兩個元素,這兩個元素的值,由time函數(shù)來獲得.(這里獲得的是系統(tǒng)時間)..這個結構體里應該還含有的其他元素,應該要包括,電腦標號ID(每個電腦對應一個號碼),和一個bool型變量status,來標識是該電腦的狀態(tài),已有人上機或者處于空閑狀態(tài).status為true(有人使用該機器)時,把系統(tǒng)時間付給time[0],該機器的status變?yōu)閒alse(有人下機)后,在把一個系統(tǒng)時間付給time[1].計算時間差和收費額...那些一個小時,半個小時,等等,不同時間的不同收費標準,一般用if,什么的來搞定.

C語言停車場管理系統(tǒng)

/*----------------------------------------------------------------

// Copyright (C) 2009 沈陽工程學院信息安全工作室

// 版權所有。

//

// 文件名:模擬停車場問題.cpp

// 文件功能描述:模擬停車場問題

//

//

// 創(chuàng)建標識:20091214

//

// 修改標識:20091218

// 修改描述:完成編碼

//----------------------------------------------------------------*/

//頭文件

#include iostream

#include malloc.h

#include string

#include windows.h

//常量定義

#define MAX_STOP 4 //定義停車場最大停車數(shù)

#define MAX_PLATE 10 //定義車牌號最大長度

#define TIME_COUNT "秒" //定義時間單位

#define TIME_MS_TO_CONUT 1000 //定義時間進制,意為由TIME_COUNT到毫秒的進制

#define UNIT_PRICE 10 //定義單位時間收費標準

using namespace std; //使用std命名空間

//數(shù)據(jù)結構定義

//定義存儲汽車信息的結構體

typedef struct

{

char license_plate[MAX_PLATE]; //汽車牌照號碼,定義為一個字符指針類型

char state; //汽車當前狀態(tài),字符p表示停放在停車位上,字符s表示停放在便道上,每輛車的初始狀態(tài)用字符i來進行表示

int time; //汽車停入停車場時的時間,用來計時收費

}CAR;

//定義模擬停車場的棧結構

typedef struct

{

CAR STOP[MAX_STOP]; //汽車信息的存儲空間

int top; //用來指示棧頂位置的靜態(tài)指針

}SeqStack;

//定義模擬便道的隊列結構

typedef struct node

{

CAR WAIT; //汽車信息的存儲空間

struct node *next; //用來指示隊列位置的動態(tài)指針

}QNode; //鏈隊列節(jié)點的類型

//定義鏈隊列的收尾指針

typedef struct

{

QNode *front,*rear;

}LQueue; //將頭尾指針封裝在一起的鏈隊

//函數(shù)聲明

int Empty_LQueue(LQueue *q); //判隊空

int LeaveCheck(SeqStack parking , char *license_plate); //檢查離開的車是否在停車場中

int QueueLength(LQueue *q); //判隊長度

int Out_LQueue(LQueue *sidewalk , char *license_plate); //出隊操作

int StackEmpty(SeqStack parking); //判斷棧是否為空

int StackFull(SeqStack parking); //判斷棧是否為滿

int StackPop(SeqStack parking); //出棧操作

int StackTop(SeqStack parking , char *license_plate , int time);//取棧頂元素

void Car_come(SeqStack parking , LQueue *sidewalk); //有車到來時的操作

void Car_leave(SeqStack parking , LQueue *sidewalk); //有車離開的操作

void Display(SeqStack parking); //顯示停車場內的所有信息 調試時用

void InitStack(SeqStack parking); //初始化棧

void InitList(LQueue *sidewalk); //初始化隊列

void In_LQueue(LQueue *sidewalk , char *license_plate); //進隊操作

void Input_Check(char *license_plate); ////檢驗輸入的車牌是否合法

void StackPush(SeqStack parking , char *license_plate , int stop_time);//進棧操作

void main()

{

//定義變量

SeqStack parking;

LQueue *sidewalk = NULL;

char *choice = new char;

int flag = 1; //定義一個變量 判斷是否退出

//初始化一個為空的停車場

InitStack(parking);

//初始化一個為空的便道

InitList(sidewalk);

//運行界面及功能選擇

while(flag)

{

cout"\n\t 停車場模擬管理系統(tǒng) \n\n";

cout"\t|--------------------------------------------------|\n\n";

cout"\t|本程序為停車場的模擬管理系統(tǒng),有車到來時請按C鍵。|\n\n";

cout"\t|然后根據(jù)屏幕提示進行相關操作,有車要走時請按l鍵。|\n\n";

cout"\t|然后根據(jù)屏幕提示進行相關操作,查看停車場請按D鍵。|\n\n";

cout"\t|然后根據(jù)屏幕提示進行相關操作,要退出系統(tǒng)請按Q鍵。|\n\n";

cout"\t|--------------------------------------------------|\n\n";

cout"請選擇操作:";

gets(choice);

if(1 != strlen(choice))

{

cout"請正確輸入選項!";

continue;

}

else

{

switch(*choice)

{

case 'c':

case 'C':

{

Car_come(parking,sidewalk);break;

}

case 'l':

case 'L':

{

Car_leave(parking,sidewalk);break;

}

case 'q':

case 'Q':

{

flag=0;break;

}

case 'd':

case 'D':

{

Display(parking);break;

}

default:

cout"選擇不正確!請重新選擇!\n";

}

}

}

}

//有車到來時的操作

void Car_come(SeqStack parking , LQueue *sidewalk)

{

//定義變量

char license_plate[MAX_PLATE];

cout"請輸入車輛的車牌號碼:";

Input_Check(license_plate);

//判斷停車場是否已滿,滿則進入便道,不滿進入停車場

if(StackFull(parking))

{

In_LQueue(sidewalk , license_plate); //進入便道

cout"停車場已滿請在便道等候,您的位置為"QueueLength(sidewalk)

endl;

}

else

{

StackPush(parking , license_plate , GetTickCount()); //進入停車場

cout"請進入停車場中的"parking.top+1"號停車位\n";

}

// Display(parking);

}

//有車離開時的操作

void Car_leave(SeqStack parking , LQueue *sidewalk)

{

//定義變量

SeqStack tmpparking; //定義臨時停車場

char leave_license_plate[MAX_PLATE]; //要離開的車牌號

char license_plate[MAX_PLATE]; //存放從停車場中讀出來的車牌信息

int time;

InitStack(tmpparking); //初始化臨時停車場

//判斷停車場中是否有車

if(StackEmpty(parking))

{

cout"當前停車場中沒有車\n";

return; //退出子函數(shù)

}

cout"請輸入要離開的車牌照:";

Input_Check(leave_license_plate);

cout"當前停車場中有"parking.top+1"輛車\n";

if(LeaveCheck(parking , leave_license_plate)) //判斷車是否在停車場中

{

//車在停車場中

cout"您的車在"LeaveCheck(parking , leave_license_plate)"號車位上\n";

while(StackTop(parking , license_plate , time)

(strcmp(parking.STOP[parking.top].license_plate , leave_license_plate) != 0))

{

strcpy(parking.STOP[parking.top].license_plate , license_plate);

cout"牌照為"license_plate"的車暫時退出停車場"parking.top+1"號位\n";

StackPush(tmpparking , license_plate , time); //停車場中的車暫時退出 進入臨時停車場

StackPop(parking); //出棧

}

cout"牌照為"license_plate"的車離開停車場"parking.top+1"號位\n";

cout"您在停車場中停了"(GetTickCount()-time)/TIME_MS_TO_CONUTTIME_COUNTendl; //輸出所停時間信息

cout"應繳費用為"(GetTickCount()-time)/TIME_MS_TO_CONUT*UNIT_PRICE"元\n" //輸出費用信息

StackPop(parking); //出棧

//將臨時停車場中的車停回停車場

while(StackEmpty(tmpparking) != 1)

{

StackTop(tmpparking , license_plate , time);

StackPush(parking , license_plate , time);

cout"牌照為"license_plate"的車進入停車場"parking.top+1"號位\n";

license_plate[0] = '\0';

StackPop(tmpparking);

}

if(parking.top+1 == MAX_STOP-1) //判斷車離開前停車場是否停滿

if(QueueLength(sidewalk)) //如果停滿則判斷便道上是否有車

{

//便道中有車 則從便道中停入停車場

Out_LQueue(sidewalk , license_plate); //出隊

StackPush(parking , license_plate , GetTickCount()); //入棧

cout"在便道中牌照為"license_plate"的車進入停車場"parking.top+1"號位\n";

}

}

else

//車不在停車場中

cout"您的車不在停車場中!\n";

}

//初始化順序棧

void InitStack(SeqStack parking)

{

parking.top = -1;

}

//判棧空

int StackEmpty(SeqStack parking)

{

if(parking.top == -1)

return 1;

else

return 0;

}

//判棧滿

int StackFull(SeqStack parking)

{

if(parking.top == MAX_STOP-1)

return 1;

else

return 0;

}

//入棧

void StackPush(SeqStack parking , char *license_plate , int stop_time)

{

parking.top++;

strcpy(parking.STOP[parking.top].license_plate , license_plate);

parking.STOP[parking.top].state = 'p';

parking.STOP[parking.top].time = stop_time;

}

//出棧 返回棧頂指針

int StackPop(SeqStack parking)

{

if(StackEmpty(parking))

return 0;

else

return parking.top--;

}

//取棧頂元素

int StackTop(SeqStack parking , char *license_plate , int time)

{

if(StackEmpty(parking))

return 0;

else

{

strcpy(license_plate , parking.STOP[parking.top].license_plate);

time = parking.STOP[parking.top].time;

return 1;

}

}

//顯示所有

void Display(SeqStack parking)

{

if(parking.top == -1)

printf("停車場為空\n");

else

{

while(parking.top != -1)

{

cout"車牌號為:"parking.STOP[parking.top].license_plate;

cout",停在"parking.top + 1 "號車位上";

cout",已停"(GetTickCount()-parking.STOP[parking.top].time)/TIME_MS_TO_CONUTTIME_COUNTendl;

parking.top--;

}

}

}

//初始化隊列

void InitList(LQueue *sidewalk)

{

sidewalk = (LQueue *)malloc(sizeof(LQueue));

sidewalk-front=sidewalk-rear = NULL;

}

//入隊

void In_LQueue(LQueue *sidewalk,char *license_plate)

{

QNode *car_on_sidewalk;

car_on_sidewalk = (QNode *)malloc(sizeof(QNode)); //為新節(jié)點開辟新空間

strcpy(car_on_sidewalk-WAIT.license_plate , license_plate); //將數(shù)據(jù)寫入節(jié)點

car_on_sidewalk-WAIT.state = 's'; //寫入停車信息

car_on_sidewalk-WAIT.time = GetTickCount(); //寫入停車時間

car_on_sidewalk-next = NULL;

if(Empty_LQueue(sidewalk)) //隊空則創(chuàng)建第一個節(jié)點

sidewalk-front = sidewalk-rear = car_on_sidewalk;

else

{

//隊非空插入隊尾

sidewalk-rear-next = car_on_sidewalk;

sidewalk-rear = car_on_sidewalk;

}

}

//判隊空

int Empty_LQueue(LQueue *q)

{

if(q-front == NULL)

return 1;

else

return 0;

}

//判隊長度 返回隊長

int QueueLength(LQueue *q)

{

QNode *p=q-front;

int i=0;

while(p != NULL)

{

i++;

p=p-next;

}

return i;

}

//出隊 成功返回1 隊空返回0

int Out_LQueue(LQueue *sidewalk,char *license_plate)

{

QNode *car_on_sidewalk;

if(Empty_LQueue(sidewalk)) //如果隊空返回0

return 0;

car_on_sidewalk = sidewalk-front;

strcpy(license_plate , car_on_sidewalk-WAIT.license_plate);//取出隊頭元素

if(sidewalk-front == sidewalk-rear) //隊中只有一個元素

sidewalk-front = sidewalk-rear=NULL; //刪除元素

else

sidewalk-front = sidewalk-front-next; //隊頭指針后移

free(car_on_sidewalk); //釋放指針

return 1;

}

//檢查離開的車是否在停車場中 返回車在停車場中位置 不在則返回0

int LeaveCheck(SeqStack parking,char *license_plate)

{

int flag = parking.top+1; //定義變量記錄當前車在停車場中位置

if(StackEmpty(parking))

return 0;

else

{

//查找離開車所在位置

while(parking.top != -1 strcmp(parking.STOP[parking.top].license_plate , license_plate) != 0)

{

flag--;

parking.top--;

}

return flag;

}

}

//檢驗輸入的車牌是否合法

void Input_Check(char *license_plate)

{

int flag = 1;

int i;

string tmpstr;

while(flag)

{

cintmpstr;

getchar();

if(tmpstr.length()MAX_PLATE)

{

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

license_plate[i] = tmpstr.c_str()[i];

flag = 0;

}

else

cout"輸入有誤,請重新輸入:";

}

}

以前的課設 你看看吧 純手工的~~

c語言停車場管理系統(tǒng)

#include stdio.h

#include stdlib.h

#include string.h

#include time.h

#define max 3

#define price 1

int b=1;

typedef struct

{

int day;

int hour;

int min;

}TIME; //時間結點

typedef struct

{

char num[10]; //車牌號

TIME time; //進入停車場的時間

int n; //進入停車場的位置

}information;

//棧結構體定義

typedef struct node

{

information data;

struct node *next;

}stacknode; stacknode *top1,*top2;

//隊列結構體定義

typedef struct

{

information data;

stacknode *front,*rear;

}LQueue;LQueue *Q;

//函數(shù)聲明部分/////////////////////////////////////////////////////////

stacknode *Init(); //棧的初始化

stacknode *into(stacknode *top1,LQueue *Q); //初始化車輛進入

int expenses(stacknode *p,int x,int y); //停車費用計算函數(shù)

stacknode *leave(stacknode *top1,char str[],LQueue *Q); //車輛駛出出場函數(shù)

LQueue *InitLQue(); //初始化隊列函數(shù)

LQueue *wait(LQueue *q,stacknode *s); //車輛進入候車便道函數(shù)

int EmptyLQue(LQueue *q); //判斷候車便道有無等待車輛函數(shù)

stacknode *out(LQueue *q); //候車區(qū)車輛出隊

stacknode *LQinto(stacknode *p,stacknode *top1); //從候車便道進入停車場函數(shù)

void show(stacknode *top1); //顯示停車場所有信息函數(shù)

void T_shou(LQueue *Q); //顯示候車區(qū)信息

/*函數(shù)部分*/

//主函數(shù)

void main()

{

char str[10];

Q=InitLQue();

top1=Init();

top2=Init();

Q=InitLQue();

int i;

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

printf("\t\t\t\t 停車場管理系統(tǒng)\n");

printf("\t\t\t|| 1. 車輛進入停車場 ||\n");

printf("\t\t\t|| 2. 車輛離開停車場 ||\n");

printf("\t\t\t|| 3. 顯示停車場內所有車輛信息 ||\n");

printf("\t\t\t|| 4. 顯示候車區(qū)內所有車輛信息 ||\n");

printf("\t\t\t|| 5. 退出 ||\n");

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

while(i!=5)

{

printf("\t請輸入選項1-5:");

scanf("%d",i);

switch(i)

{

case 1:

top1=into(top1,Q);

break;

case 2:

printf("請輸入離開車輛的車牌號:");

scanf("%s",str);

top1=leave(top1,str,Q);

break;

case 3:show(top1);break;

case 4:T_shou(Q);break;

case 5:exit(1);

default:printf("輸入錯誤,請重新輸入1—5:");

break;

}

}

}

/*子函數(shù)*/

//初始化

stacknode *Init()

{

stacknode *top;

top=(stacknode *)malloc(sizeof(stacknode));

top=NULL;

return top;

}

//初始化車輛進入

stacknode *into(stacknode *top1,LQueue *Q)

{

stacknode *p,*q;

time_t rawtime; //調用系統(tǒng)時間函數(shù)

struct tm *timeinfo; //時間結點

time(rawtime);

timeinfo=localtime(rawtime);

p=(stacknode *)malloc(sizeof(stacknode));

if(p==NULL)

{

printf("內存分配失敗");

return top1;

}

printf("請輸入進入停車場車輛的車牌號:");

scanf("%s",p-data.num);

q=top1;

while(q!=NULL)

{

if(strcmp(p-data.num,q-data.num)==0)

{

printf("車牌號輸入有誤,該車已進入!");

return top1;

}

q=q-next;

}

p-data.time.day=timeinfo-tm_mday;

p-data.time.hour=timeinfo-tm_hour;

p-data.time.min=timeinfo-tm_min;

p-data.n=b;

if(bmax)

{

printf("停車場已滿,請在便道等候!\n");

wait(Q,p);

return top1;

}

if(top1==NULL)

{

p-next=NULL;

top1=p;

}

else

{

p-next=top1;

top1=p;

}

b++;

printf("車輛進入停車場成功,時間已經自動載入!\n");

printf("車牌為%s的汽車駛入時間為:%d號%d點%d分\n",top1-data.num,top1-data.time.day,top1-data.time.hour,top1-data.time.min);

return top1;

}

//停車費用計算函數(shù)

int expenses(stacknode *p,int x1,int x2,int x3)

{

int w;

if(x3!=0)

w=(x1*24+x2+1-(p-data.time.day*24+p-data.time.hour))*price;

else

w=(x1*24+x2-(p-data.time.day*24+p-data.time.hour))*price;

return w;

}

//車輛駛出出場函數(shù)

stacknode *leave(stacknode *top1,char str[],LQueue *Q)

{

int i,day,hour,min;

time_t rawtime;

struct tm *timeinfo;

time(rawtime);

timeinfo=localtime(rawtime);

day=timeinfo-tm_mday;

hour=timeinfo-tm_hour;

min=timeinfo-tm_min;

stacknode *p,*q;

if(top1==NULL)

{

printf("停車場沒有車輛!\n");

return top1;

}

q=(stacknode *)malloc(sizeof(stacknode));

if(p==NULL)

{

printf("內存分配失敗");

return top1;

}

q=top1;

while(q!=NULL)

{

if(strcmp(q-data.num,str)==0)

break;

q=q-next;

}

if(q==NULL)

{

printf("輸入有誤,該車輛不在停車場!\n");

return top1;

}

for(i=top1-data.n;iq-data.n;i--)

{

p=(stacknode *)malloc(sizeof(stacknode));

if(p==NULL)

{

printf("內存分配失敗");

return top1;

}

strcpy(p-data.num,top1-data.num);

p-data.time=top1-data.time;

p-data.n=top1-data.n-1;

top1=top1-next;

if(top2==NULL)

{

p-next=NULL;

top2=p;

}

else

{

p-next=top2;

top2=p;

}

}

top1=top1-next;

while(top2!=NULL)

{

p=(stacknode *)malloc(sizeof(stacknode));if(p==NULL){printf("內存分配失敗");return top1;}

p-data.n=top2-data.n;

strcpy(p-data.num,top2-data.num);

p-data.time=top2-data.time;

p-next=top1;

top1=p;

top2=top2-next;

}

if(EmptyLQue(Q))

{

p=out(Q);

p-data.n--;

top1=LQinto(p,top1);

}

else

b--;

printf("車牌為%s的汽車駛出時間為:%d號%d點%d分\n",q-data.num,day,hour,min);

printf("車輛駛出停車場需要繳納的費用為:%d元\n",expenses(q,day,hour,min));

return top1;

}

//隊列函數(shù)初始化

LQueue *InitLQue()

{

LQueue *Q;

stacknode *p;

Q=(LQueue *)malloc(sizeof(LQueue));

p=(stacknode *)malloc(sizeof(stacknode));

p-next=NULL;

Q-front=Q-rear=p;

return Q;

}

//候車區(qū)隊列入隊

LQueue *wait(LQueue *q,stacknode *s)

{

s-next=NULL;

q-rear-next=s;

q-rear=s;

return q;

}

//判斷候車便道有無車輛等待

int EmptyLQue(LQueue *q)

{

if(q-front==q-rear)

return 0;

else

return 1;

}

//候車區(qū)車輛出隊

stacknode *out(LQueue *q)

{

stacknode *p;

p=q-front-next;

if(q-front-next==q-rear)

{

q-rear=q-front;

return p;

}

else

q-front-next=p-next;

p-next=NULL;

return p;

}

//候車隊列進入停車場

stacknode *LQinto(stacknode *p,stacknode *top1)

{

p-next=top1;

top1=p;

return top1;

}

//顯示停車場內所有車輛信息

void show(stacknode *top1)

{

printf(" 停車場內全部車輛信息表\n");

if(top1==NULL)

printf(" 停車場內無車!\n");

else

{

printf("車牌號 進入時間 位置\n");

while(top1!=NULL)

{

printf(" %s %d號%d點%d分 第%d位\n",top1-data.num,top1-data.time.day,top1-data.time.hour,top1-data.time.min,top1-data.n);

top1=top1-next;

}

}

}

//顯示候車區(qū)的汽車信息

void T_shou(LQueue *Q)

{

LQueue *q;

q=(LQueue *)malloc(sizeof(LQueue));

q-rear=Q-rear-next;

printf(" 候車區(qū)信息\n");

if(q-front==q-rear)

printf("候車區(qū)沒有車輛!\n");

else

{

printf("車牌號 進入時間\n");

while(q!=NULL)

{

printf("%s %d號%d點%d分",q-data.num,q-data.time.day,q-data.time.hour,q-data.time.min);

q-rear=q-rear-next;

}

}

}

/*時間函數(shù)

int timef()

{

int x,y;

time_t rawtime;

struct tm *timeinfo;

time(rawtime);

timeinfo=localtime(rawtime);

x=timeinfo-tm_mday,y=timeinfo-tm_hour;

}

time_t rawtime;

struct tm *timeinfo;

time(rawtime);

timeinfo=locoltime(rawtime);

timeinfo-tm_ymday,*/

文章題目:停車場計時收費函數(shù)c語言 c語言停車場收費系統(tǒng)管理
文章URL:http://chinadenli.net/article34/ddgcgpe.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)標簽優(yōu)化網頁設計公司微信小程序ChatGPT電子商務

廣告

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

營銷型網站建設