#includestdio.h
十載的新洲網(wǎng)站建設經(jīng)驗,針對設計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設備顯示端的尺寸不同,自動調(diào)整新洲建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)公司從事“新洲網(wǎng)站設計”,“新洲網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
#includestdlib.h
#includestring.h
#define MAX 3 // 停車場最大容量
#define price 5 //每小時5元
typedef struct time {
int hour;
int min;
} Time;// 定義時間結(jié)構(gòu)體
typedef struct node {
char num[10];
Time reach;
Time leave;
} CarNode;// 定義車輛信息結(jié)構(gòu)體
typedef struct NODE {
CarNode * stack[MAX + 1];
int top;
} SeqStackCar;
typedef struct car {
CarNode *data;
struct car *next;
} QueueNode;
typedef struct Node {
QueueNode *head;
QueueNode *rear;
} LinkQueueCar;
void InitStack(SeqStackCar *s) {
int i;
s-top = 0;
for (i = 0; i = MAX; i++)
s-stack[s-top] = NULL;
}// 棧的初始化
int InitQueue(LinkQueueCar *Q) {
Q-head = (QueueNode *) malloc(sizeof (QueueNode));
if (Q-head != NULL) {
Q-head-next = NULL;
Q-rear = Q-head;
return (1);
} else return (-1);
}// 隊列的初始化
void PRINT(CarNode *p, int room) { // 車輛收費
int A1, A2, B1, B2;
printf("\n車輛離開的時間:");
scanf("%d:%d", (p-leave.hour), (p-leave.min));
printf("\n離開車輛的車牌號為:");
puts(p-num);
printf("\n其到達時間為: %d:%d", p-reach.hour, p-reach.min);
printf("\n離開時間為: %d:%d", p-leave.hour, p-leave.min);
A1 = p-reach.hour;
A2 = p-reach.min;
B1 = p-leave.hour;
B2 = p-leave.min;
printf("\n應交費用為: %2.1f元", ((B1 - A1)*60 + (B2 - A2)) * price);
free(p);
}
int Arrival(SeqStackCar *Enter, LinkQueueCar *W) {
CarNode *p;
QueueNode *t;
p = (CarNode *) malloc(sizeof (CarNode));
printf("\n請輸入車牌號(例:豫B1234):");
scanf("%d",p-num);
if (Enter-top MAX) {
Enter-top++;
printf("\n車輛在車場第%d位置.", Enter-top);
printf("\n車輛到達時間:");
scanf("%d:%d", (p-reach.hour), (p-reach.min));
Enter-stack[Enter-top] = p;
return (1);
} else {
printf("\n該車須在便道等待!有車位時進入車場");
t = (QueueNode *) malloc(sizeof (QueueNode));
t-data = p;
t-next = NULL;
W-rear-next = t;
W-rear = t;
return (1);
}
}// 車輛的到達登記
void Leave(SeqStackCar *Enter, SeqStackCar *Temp, LinkQueueCar *W) { //車輛的離開
int room;
CarNode *p, *t;
QueueNode *q;
if (Enter-top 0) // 判斷車場是否為空
{
while (1) {
printf("\n請輸入車在車場的位置/1--%d/:", Enter-top);
scanf("%d", room);
if (room = 1 room = Enter-top) break;
else printf("\n 輸入有誤,請重輸: ");
}
while (Enter-top room) // 把要刪除的車輛的前面的車開出來,進臨時棧。
{
Temp-top++;
Temp-stack[Temp-top] = Enter-stack[Enter-top];
Enter-stack[Enter-top] = NULL;
Enter-top--;
}
p = Enter-stack[Enter-top]; // 把要刪除的車輛節(jié)點賦給p。
Enter-stack[Enter-top] = NULL;
Enter-top--;
while (Temp-top = 1) // 再把臨時棧里德車輛進停車場
{
Enter-top++;
Enter-stack[Enter-top] = Temp-stack[Temp-top];
Temp-stack[Temp-top] = NULL;
Temp-top--;
}
PRINT(p, room); // 調(diào)用計費函數(shù)計費
if ((W-head != W-rear) Enter-top MAX) //如果便道上有車,則再開進停車場。
{
q = W-head-next;
t = q-data;
Enter-top++;
printf("\n便道的%s號車進入車場第%d位置.", t-num, Enter-top);
printf("\n請輸入%s號車進入車場的時間:", t-num);
scanf("%d:%d", (t-reach.hour), (t-reach.min));
W-head-next = q-next;
if (q == W-rear) W-rear = W-head;
Enter-stack[Enter-top] = t;
free(q);
} else printf("\n便道里沒有車.\n");
} else printf("\n車場里沒有車.");
}
void List1(SeqStackCar *S){ int i;
if (S-top 0) {
printf("\n車場:");
printf("\n 位置 到達時間 車牌號\n");
for (i = 1; i = S-top; i++) {
printf(" %d ", i);
printf(" %d:%d ", S-stack[i]-reach.hour, S-stack[i]-reach.min);
puts(S-stack[i]-num);
}
} else printf("\n車場里沒有車");
}//顯示車場里的車輛情況
void List2(LinkQueueCar *W) {
QueueNode *p;
int i;
p = W-head-next;
if (W-head != W-rear) {
printf("\n等待車輛的號碼為:");
for (i = 1; (p != NULL); i++) {
printf("\n第 %d 車輛.", i);
puts(p-data-num);
p = p-next;
}
} else printf("\n便道里沒有車.");
printf("\n");
}//顯示便道上的車輛情況
void List(SeqStackCar S, LinkQueueCar W) {
int flag, tag;
flag = 1;
while (flag) {
printf(" 查看車輛列表顯示: ");
printf("\n 1.車場列表\n 2.便道列表\n 3.返回主菜單\n");
printf("\n請選擇 1~3:");
while (1) {
scanf("%d", tag);
if (tag = 1 tag = 3) break;
else printf("\n 輸入有誤,請重新選擇 1~3:");
}
switch (tag) {
case 1:List1(S);
break;
case 2:List2(W);
break;
case 3:flag = 0;
system("cls");
break;
default: break;
}
}
}//顯示,遍歷
int main() {
SeqStackCar Enter, Temp;
LinkQueueCar Wait;
int ch;
InitStack(Enter);
InitStack(Temp);
InitQueue(Wait);
while (1) {
printf("\n ############ 歡迎使用停車場系統(tǒng).############\t\n\n");
printf("\n\t * 1. 車輛到達登記.\t\n");
printf("\n\t * 2. 車輛離開登記.\t\n");
printf("\n\t * 3. 車輛列表顯示.\t\n");
printf("\n\t * 4. 退出系統(tǒng).\t\n\n");
while (1) {
printf(" 請選擇: ");
scanf("%d", ch);
if (ch = 1 ch = 4)break;
else printf("\n 輸入有誤,請重新選擇: 1~4: ");
}
switch (ch) {
case 1:Arrival(Enter, Wait);
break;
case 2:Leave(Enter, Temp, Wait);
break;
case 3:List(Enter, Wait);
break;
case 4:exit(0);
default: break;
}
}
}// 自定義函數(shù)
寫了才發(fā)現(xiàn)沒分吶。。。算了
public class Parking {
public int cal(double time){
int t=(int)Math.ceil(time);
if(t=3){
return 5;
}
if(t3){
int a= 5+(t-3)*1;
if(a20){
return 20;
}else{
return a;
}
}
return -1;
}
public static void main(String[] args){
Parking p=new Parking();
int money=p.cal(7.5d);
System.out.println("收費:"+money+"元");
}
}
importjava.text.SimpleDateFormat;\x0d\x0aimportjava.util.Date;\x0d\x0aimportjava.util.Scanner;\x0d\x0a\x0d\x0a/*********************************\x0d\x0a*停車場管理\x0d\x0a*authorzhang\x0d\x0a*2013-12-13\x0d\x0a********************************/\x0d\x0apublicclassCarStopManager{\x0d\x0a\x0d\x0apublicstaticvoidmain(String[]args){\x0d\x0aScannersc=newScanner(System.in);\x0d\x0a\x0d\x0aSystem.out.println("請入車牌號:");\x0d\x0aStringcarno=sc.next();\x0d\x0aCarStopManagercarStopManager=newCarStopManager();\x0d\x0acarStopManager.setCarNo(carno);//設置車牌號\x0d\x0a\x0d\x0aSimpleDateFormatformat=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss");\x0d\x0aStringsdate=format.format(newDate());\x0d\x0aSystem.out.println("當前時間(入場時間)是:"+sdate);\x0d\x0a\x0d\x0aSystem.out.println("需要開出車場嗎?yes/no:");\x0d\x0aStringyesno=sc.next();\x0d\x0a\x0d\x0aif(yesno.equals("yes")){\x0d\x0aStringedate=format.format(newDate());\x0d\x0aSystem.out.println("出場時間是:"+edate);\x0d\x0a//計算方法\x0d\x0acarManager(2,sdate,edate,carStopManager);\x0d\x0a}\x0d\x0a}\x0d\x0a/**\x0d\x0a*計算方法\x0d\x0a*/\x0d\x0apublicstaticvoidcarManager(inttype,StringstarTime,\x0d\x0aStringendTime,CarStopManagercarStopManager){\x0d\x0a\x0d\x0aif(type==1){//按月收費\x0d\x0aSystem.out.println("如若沒有繳納月費請繳納800元,如若繳納將不再提示!");\x0d\x0a}else{\x0d\x0a/**\x0d\x0a*一般不會有停車幾個月的吧?先不考慮停車幾年或者幾個月的\x0d\x0a*/\x0d\x0aStringsDay=starTime.substring(8,10);//入場日期(天)\x0d\x0aStringsHour=starTime.substring(11,13);//入場小時\x0d\x0aStringsMM=starTime.substring(14,16);//入場分鐘\x0d\x0a\x0d\x0aStringeDay=starTime.substring(8,10);//出場日期(天)\x0d\x0aStringeHour=endTime.substring(11,13);//出廠小時\x0d\x0aStringeMM=endTime.substring(14,16);//出廠分鐘\x0d\x0a\x0d\x0afloatmoney=0;//需繳納的費用\x0d\x0aintshour=Integer.parseInt(sHour);\x0d\x0aintehour=Integer.parseInt(eHour);\x0d\x0aintsmm=Integer.parseInt(sMM);\x0d\x0aintemm=Integer.parseInt(eMM);\x0d\x0aintrehour=0;//停車幾個小時\x0d\x0a\x0d\x0aif(sDay.equals(eDay)){//同一天\x0d\x0a//當天6點到20點之間\x0d\x0aif((shour=6shour
回答于?2022-12-14
代碼如下,僅實現(xiàn)功能,未考慮安全等情況.
//ParkingTest.java
/**
*?停車程序入口.本示例為考慮數(shù)據(jù)安全等.僅作為示例,未經(jīng)調(diào)試.
*?@author?menglg
*
*/
public?class?ParkingTest?{
public?static?void?main(String[]?args)?{
//?程序入口,可以安排停車出車
for?(int?i?=?0;?i??100;?i++)?{
if?(ParkingManage.hasPosition())?{
ParkingManage.enterParking(i?+?"");
continue;
}
break;
}
for?(int?i?=?0;?i??100;?i++)?{
ParkingManage.outParking(i?+?"");
}
System.out.println(ParkingManage.totalCost());
}
}
//ParkingManage.java
import?java.util.ArrayList;
import?java.util.Date;
import?java.util.List;
public?class?ParkingManage?{
private?static?ListParking?parkings?=?new?ArrayList();
private?static?final?int?maxNumber?=?100;
private?static?int?currentNumber;
public?static?void?enterParking(String?lpn)?{
if?(lpn?==?null?||?lpn.length()?==?0)?{
return;
}
Parking?p?=?new?Parking(lpn);
p.setEnterDate(new?Date());
parkings.add(p);
}
public?static?void?outParking(String?lpn)?{
if?(lpn?==?null?||?lpn.length()?==?0)?{
return;
}
for?(Parking?p?:?parkings)?{
if?(!lpn.equals(p.getLpn()))
continue;
Date?now?=?new?Date();
p.setOutDate(now);
parkings.remove(p);
currentNumber?+=?p.getCost();
break;
}
}
public?static?int?totalCost()?{
return?currentNumber;
}
public?static?boolean?hasPosition()?{
return?parkings.size()??maxNumber;
}
}
//Parking.java
import?java.util.Date;
public?class?Parking?{
private?String?lpn;
private?Date?enterDate;
private?Date?outDate;
private?int?cost;
public?Parking(String?lpn)?{
this.lpn?=?lpn;
}
public?String?getLpn()?{
return?lpn;
}
public?Date?getEnterDate()?{
return?enterDate;
}
public?Date?getOutDate()?{
return?outDate;
}
public?int?getCost()?{
if(outDate?==?null?||?enterDate?==?null){
return?0;
}
//停車時間,單位毫秒
long?time?=?outDate.getTime()?-?enterDate.getTime();
long?hour?=?60*60*1000;
if(time??hour){
cost?=?3;
}else?if(time%hour?==?0){
cost?=?(int)(time/hour?*?2);
}else{
cost?=?(int)((time/hour+1)?*?2);
}
return?cost;
}
public?void?setLpn(String?lpn)?{
this.lpn?=?lpn;
}
public?void?setEnterDate(Date?enterDate)?{
this.enterDate?=?enterDate;
}
public?void?setOutDate(Date?outDate)?{
this.outDate?=?outDate;
}
public?void?setCost(int?cost)?{
this.cost?=?cost;
}
}
import java.util.ArrayList;
public class Tcat {
//假設停車場有100個停車位
private int carport=100;
//記錄空的車位
private int noullcat=100;
//初始化類時傳入空余車位數(shù)量
public Tcat(int mou) {
noullcat=mou;
}
public void setNoullcat(int noullcat) {
this.noullcat = noullcat;
}
public int getNoullcat() {
return noullcat;
}
//記錄進來的車的停車時間
private ArrayList lis=new ArrayList();
//車輛進來,空余車位減一
public int catin(){
if(noullcat1){
noullcat--;
lis.add(1);//停車時間
System.out.print("剩余的車位數(shù)量:"+noullcat);
return noullcat;//返回剩余的車位數(shù)量
}else{
return -1;//返回值-1,表示以及沒有空余的車位
}
}
//返回停車費用
public int catvalue(int id){
return (int)lis.get(id)*3;
}
//車輛出去,空余車位加一,返回空余車位,刪除車輛停留的列表
public int catto(int id){
if(noullcatcarport){//判斷空余車位是否小于最大車位
lis.remove(id);
noullcat++;
}
System.out.println("停車費用:"+catvalue(id));
System.out.println("剩余的車位數(shù)量:"+noullcat);
return noullcat;
}
}
可以參考一下這個