C++_C语言设计图书登记系统与停车场管理系统的实例分享,图书登记管理系统图书登记
到达/离开时间 %d:%d",}}else if(tag==0) //过道中的车无需收车费{printf("未进入停车场应支付金额 0元!");for(;S0-top0;S0-top--)Push(S,name);}else if(x==3){printf("需要查找的出版社为:");scanf("%s",Q); //车辆的情况break;case 3:print1( //输出车库中车的信息print2( //输出过道上车的信息break;//终止case 4:flag=1;break;default:printf("\n输入错误,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用,if(ch=1 ch=4)break;elseprintf("\nPlease choose: 1|2|3|4.");}switch(ch){case 1:arrival(Wait); //车辆到达break;case 2:leave(Temp,gt;elem[S0-top]);}} }void print1(Stack *S) {int tag;Car x;printf("停车场停车情况:\n");if(IsEmpty(S))printf("无车!");for(tag=S-top;S-top0;S-top--)if(GetTop(S,Car *r。
SeqStackCar *Temp,Temp;LinkQueueCar Wait;int ch;InitStack( //初始化车站InitStack( //初始化让路的临时栈InitQueue( //初始化通道while(1){printf("\n1. The car arrive\n");printf("2. The car leave\n");printf("3. The schedule\n");printf("4. Exit\n");while(1){scanf("%d", 完整的实现代码如下: 第一种方法: #include "stdio.h" #include "stdlib.h" #include "string.h"#define MAX 2 //车库容量 #define price 0.05 //每车每分钟费用 typedef struct time //时间结点 {int hour;int min; }Time; typedef struct node //车辆信息结点 {char num[10];Time reach;Time leave; }CarNode; 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 *); //初始化栈 int InitQueue(LinkQueueCar *); //初始化便道 int arrival(SeqStackCar *,p-name。
若停车场内已停满n辆汽车, room;CarNode *p,p-book_name,p-book_id,for(j=0;j10;j++)if(n==c[j].num)break;printf("\n请输入到达/离开时间:");scanf("%d:%d",press);}return ; }void Delete() {int num;book *p。
LinkQueueCar W) {int flag,p-book_name。
flag1=0,press);while(p!=NULL){if(strcmp(p-press。
h,Stack *S0,Wait);break; //列表打印信息case 4:exit(0); //退出主程序default:break;}} }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,B2;printf("\nplease input thedepart time:/**:**/");scanf("%d:%d",对每一组输入数据进行操作后的输出信息为:若是车辆到达,c[j].t.min);Out(S0,flag=0;Car c[10];Stack S,p-press);}p=p-next;}if(flag1==0)printf("图书馆没有作者%s编写的图书!\n"。
Car *r) //便道中的车入库 {S-top++;S-elem[S-top].num=r-num;r-position=S-elem[S-top].position=S-top;S-elem[S-top].t.hour=r-t.hour;S-elem[S-top].t.min=r-t.min; } int IsEmpty(Stack* S) //判断车库是否为空 {return(S-top==01:0); }int IsFull(Stack *S) //判断车库是否为满 {return(S-top==SIZE1:0); }int GetTop(Stack *S,i);printf("%d:%d ",r);printf("\n您现在所在位置 %d",以队列模拟车场外的便道,p-reach.min);printf("the depart time: %d:%d"。
显示该本图书的信息; (3) 、给定作者姓名,tag;flag=1;while(flag){printf("\n请选择 1|2|3:");printf("\n1.车场\n2.便道\n3.返回\n");while(1){scanf("%d",每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻,Enter-top);printf("\n请输入现在的时间/**:**/:");scanf("%d:%d",p-book_id,p-name,r); //车进入便道}else{Push(S,p-book_id,room);//判断通道上是否有车及车站是否已满if((W-head!=W-rear)Enter-topMAX) //便道的车辆进入车场{q=W-head-next;t=q-data;Enter-top++;printf("\n便道的%s号车进入车场第%d位置.",请先输入图书信息!\n");menu();}break;default:break;}}system("pause");return 0; } 停车场管理系统 设停车场是一个可停放n辆汽车的狭长通道,B1,有就找到此车,while(p!=NULL){if(p-book_id==num){printf("图书编号为%d的图书的信息如下:\n",最先到达的第一辆车停放在停车场的最北端)。
Car *t) {CQueueNode *NewNode;NewNode=(CQueueNode*)malloc(sizeof(CQueueNode)); //给便道申请空间if(NewNode!=NULL){NewNode-data.num=t-num;NewNode-data.t.hour=t-t.hour;NewNode-data.t.min=t-t.min;NewNode-next=NULL;Q-rear-next=NewNode;Q-rear=NewNode;return 1;}else return 0; } void InitStack(Stack *S) {S-top=0; } //确保堆栈为空void Push(Stack *S,int m) {if(mr-t.min){r-t.min+=60;r-t.hour-=1;}h=r-t.hour-h;m=r-t.min-m;printf("\n停车 %d小时 %d 分钟\n"。
请先输入图书信息!\n");menu();}break;case 3:if(head){search();menu();}else{printf("图书信息为空,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,S-elem[tag].t.hour,printf("\n请输入到达/离开时间:");scanf("%d:%d",if(room=1room=Enter-top)break;}while(Enter-toproom) //车辆离开{Temp-top++;Temp-stack[Temp-top]=Enter-stack[Enter-top];Enter-stack[Enter-top]=NULL;Enter-top--;}p=Enter-stack[Enter-top];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,请等待!");EnterQueue(Q,试为停车场编制按上述要求进行管理的模拟程序,name)==0){if(flag1==0)printf("作者%s编写的图书信息如下:\n",Push(S,显示所有该作者编写的图书信息; (4) 、给定出版社。
press)==0){if(flag2==0)printf("出版社为%s编写的图书信息如下:\n"。
*t;QueueNode *q;//判断车场内是否有车if(Enter-top0) //有车{while(1) //输入离开车辆的信息{printf("\n请输入车在车场的位置/1--%d/:"。
name);flag1=1;printf("%d %s %s %s\n",S-elem[tag].t.min);S-top--;for(;S0-top0;S0-top--)Push(S,2,while(p!=NULL){if(p-book_id==num){q-next=p-next;free(p);length--;printf("删除成功!\n");return ;}p=p-next;q=q-next;}if(p==NULL){printf("找不到要删除的图书编号!\n");return ;} } void menu() {printf("________________________________________________________________\n");printf("|图书登记管理系统|\n");printf("|0、 退出系统|\n");printf("|1、 输入图书信息|\n");printf("|2、 显示图书信息|\n");printf("|3、 查询图书信息|\n");printf("|4、 删除图书信息|\n");printf("________________________________________________________________\n");return ; } int main(void) {int a;menu();while(1){printf("请选择相应的功能:");scanf("%d"。
图书登记管理系统 图书登记管理系统应该具有下列功能: (1)、 通过键盘输入某本图书的信息; (2) 、给定图书编号,车进便道{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,c[i].t.min);In(Q,gt;leave.min));printf("\nthe number of the car:");puts(p-num);printf("\nthe time the car arrive: %d:%d",p-leave.hour,switch(m){case 1:printf("\n请输入车牌号:");scanf("%d",p-name,p-data.num,且只有一个大门可供汽车进出,Enter-top);scanf("%d",则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费),LinkQueueCar *); //车辆到达 void leave(SeqStackCar *。
删除该本图书的信息; (6) 、提供一些统计各类信息的功能,((B1-A1)*60+(B2-A2))*price);free(p); } int arrival(SeqStackCar *Enter,p-press);}p=p-next;}if(flag2==0)printf("图书馆没有出版社%s编写的图书!\n",3 或4");}if(flag)break; //结束程序} return 0; } ,一旦有车开走,gt;elem[S0-top]);if(S-topSIZE Q-front!=Q-rear) //判断车库是否有此车,p-press);p=p-next;}return ; } void search() {int num,SeqStackCar *,S0; //设定堆栈S,p-data.t.hour,int room) //打印出站车的信息 {int A1,if(x==1){printf("需要查找的图书编号为:");scanf("%d",则后来的汽车只能在门外的便道上等候,然后退出{DeleteQueue(Q,gt;reach.min));Enter-stack[Enter-top]=p;return 1;}else //车场已满,LinkQueueCar *); //车辆离开 void list(SeqStackCar。
p2-press); //输入图书信息if(p2-book_id==0){printf("图书信息输入完成!\n");break;}length++; //链表的长度p1-next=p2;p2-next=NULL;p1=p1-next;}return ; }void display() {book *p=head-next;printf("链表中所有的图书信息如下:\n");while(p!=NULL){printf("%d %s %s %s\n"。
p-book_id。
在它之后进入的车辆必须先退出车场为它让路,gt;elem[tag]);S-top--;}if(r-num==S-elem[tag].num){TaM(r,switch(a){case 0:return 0;case 1:create();menu();break;case 2:if(head){display();menu();}else{printf("图书信息为空,p-reach.hour。
p-leave.min);A1=p-reach.hour;A2=p-reach.min;B1=p-leave.hour;B2=p-leave.min;printf("\nthe fee: %2.1f元"。
flag2=0;char name[20],待该辆车开出大门外,gt;book_id,Car *n) //车离开车库 {n-num=S-elem[S-top].num;n-position=S-elem[S-top].position;n-t.hour=S-elem[S-top].t.hour;n-t.min=S-elem[S-top].t.min;return 1; } int DeleteQueue(LinkQueue *Q,j,num);printf("%d %s %s %s\n",栈以顺序结构实现。
请先输入图书信息!\n");menu();}break;case 4:if(head){Delete();menu();}else{printf("图书信息为空,t-num,按照从终端读入的输入数据序列进行模拟管理,r-position); //打印车的位置} } void TaM(Car *r,m,r-money); //输出车主应付金额 } void Out(Stack *S,gt;reach.hour),队列以链表结构实现,if(tag=1 || tag=3)break;elseprintf("\n请选择 1|2|3:");}switch(tag){case 1:list1(break; //列表显示车场信息case 2:list2(break; //列表显示便道信息case 3:flag=0;break;default: break;}} } 第二种方法: #include "stdio.h" #include "stdlib.h"#define SIZE 10 typedef struct {int hour;int min; }time; //车的时间结构体typedef struct {int num;int position;time t;float money; }Car; //车的信息 typedef struct {Car elem[SIZE+1];int top; //指向便道中的第一个空位 } Stack;//创建堆栈typedef struct Node {Car data;struct Node *next; }CQueueNode;//建立过道的程序: typedef struct {CQueueNode *front;CQueueNode *rear; }LinkQueue; //设置的便道//便道初始化程序 void InitQueue(LinkQueue *Q) {Q-front=(CQueueNode*)malloc(sizeof(CQueueNode)); //使mallo返回的指针转换为指向CQueueNode类型数据的指针if(Q-front!=NULL){Q-rear=Q-front;Q-front-next=NULL;} }int EnterQueue(LinkQueue *Q,p2-name。
Car *x) {CQueueNode *p;if(Q-front==Q-rear)return 0; //判断便道为空p=Q-front-next; //将便道中的车放入车库Q-front-next=p-next;if(Q-rear==p)Q-rear=Q-front;x-num=p-data.num;x-t.hour=p-data.t.hour;x-t.min=p-data.t.min;free(p); //释放临时指针return 1; } void In(Stack *S,i++; //车辆的情况break;case 2:printf("\n请输入车牌号:");scanf("%d",SOLinkQueue Q; //便道InitStack( //堆栈SInitStack( //临时堆栈S0InitQueue(while(1){print();scanf("%d",LinkQueueCar *W) //车辆离开 {int i,p=head-next;printf("请输入要删除的图书编号:\n");scanf("%d"。
p-data.t.min); }void print() {printf("\n***********************************欢迎光临*************************************\n");printf("\n 请选择:\n");printf("\n 1 :到达");printf("\n 2 :离开");printf("\n 3 :搜索");printf("\n 4 :退出\n");printf("\n"); }int main(void) {int n,p-press);return;}p=p-next;}if(p==NULL)printf("无此记录!\n");}else if(x==2){printf("需要查找的作者姓名为:");scanf("%s",LinkQueue *Q) {int tag=S-top;Car x;if(IsEmpty(S))printf("没有此车!");else{for(;r-num!=S-elem[tag].num tag0;tag--){Push(S0,gt;leave.hour),Enter-top);printf("\nthe time thecar arrive:/**:**/");scanf("%d:%d"。
Car*r) {if(IsFull(S)){printf("车库已满,p-book_name,p-name,gt;reach.hour),请输入 1,S-stack[i]-reach.min);puts(S-stack[i]-num);}}elseprintf("\n车场里没有车"); } void list2(LinkQueueCar *W) //列表显示便道信息 {QueueNode *p;p=W-head-next;if(W-head!=W-rear) //判断通道上是否有车{printf("\n等待车辆的号码为:");while(p!=NULL){puts(p-data-num);p=p-next;}}elseprintf("\n便道里没有车."); } void list(SeqStackCar S,LinkQueue *Q,显示该出版社的所有图书信息; (5) 、给定图书编号,*q;q=head,press);flag2=1;printf("%d %s %s %s\n",p2-book_name,*p2;length=0;p1=(book *)malloc(sizeof(book));p1-book_id=-1;if(head==NULL)head=p1;printf("请输入图书的编号、名字、作者姓名、出版社信息:\n");while(1) //图书编号为0的时候退出{p2=(book *)malloc(sizeof(book));scanf("%d %s %s %s",S-top=tag; }void print2(LinkQueue *Q) {CQueueNode *p;p=Q-front-next;for(;p!=NULL;p=p-next) //显示过道上车的信息及到达时间printf("等待车牌号 %d,S-stack[i]-reach.hour,A2,汽车在停车场内按车辆到达时间的先后顺序,int h,gt;reach.min));W-head-next=q-next;if(q==W-rear) W-rear=W-head;Enter-stack[Enter-top]=t;free(q);}elseprintf("\n便道里没有车.\n");}elseprintf("\n车场里没有车."); //没车 } void list1(SeqStackCar *S) //列表显示车场信息 {int i;if(S-top0) //判断车站内是否有车{printf("\n车场:");printf("\n 位置 到达时间 车牌号\n");for(i=1;i=S-top;i++){printf(" %d ",LinkQueueCar *W) //车辆到达 {CarNode *p;QueueNode *t;p=(CarNode *)malloc(sizeof(CarNode));flushall();printf("\ninput the number of the car(例:陕A1234):");gets(p-num);if(Enter-topMAX) //车场未满, //车辆离开break;case 3:list(Enter,i=1,name);while(p!=NULL){if(strcmp(p-name,p-book_name,x,车进车场{Enter-top++;printf("\nthe place of the car.", 程序完整的实现代码如下: #include "stdio.h" #include "stdlib.h" #include "string.h" typedef struct book {int book_id;//图书编号char book_name[20]; //图书名字char name[20]; //作者姓名char press[20]; //出版社struct book *next; }book; book *head=NULL; int length; //链表的长度void create() {book *p1。
依次由北向南排列(大门在最南端。
LinkQueueCar); //显示存车信息int main(void) {SeqStackCar Enter, 基本要求: 以栈模拟停车场。
其他车辆再按原次序进入车场。
则输出汽车在停车场内或便道上的停车位置;若是车辆离去,press[20];book *p=head-next;printf("1、根据图书编号进行查找\n");printf("2、根据作者姓名进行查找\n");printf("3、根据出版社进行查找\n");printf("请选择功能:");scanf("%d",m);printf("每小时收费30元\n");h=h*60;m=h+m;r-money=0.5*m;printf("请支付金额%.2f元\n",。
相关热词:
本站内容来源于网络,如有侵权请与我们联系,我们会及时删除,我们深感抱歉!
注:本站所有信息仅供用于网络技术学习参考,学习中请遵循相关法律法规!
本文地址: https://v30.fanwenzhu.com/jiaob/cjj/10104.shtml
相关文章
热门TAG
win10 ecshop 主机 阿里云 解决 配置 C# C++ 解析 SQL语句 命令 Go语言 方法 CSS3 HTML5 CSS win7 MSSQL 服务器配置 IIS7.5 IIS7 IIS6 IIS CentOS 7 Linux oracle数据库 oracle phpcms discuz discuz教程最新文章
-
只需要在调用Ctrl+B编译后
时间:2021-01-13
-
OpenGL超级宝典visual studio
时间:2021-01-04
-
Directx11 教程(2) 基本的wi
时间:2021-01-04
-
LeetCode11ContainerWithMostWate
时间:2021-01-04
-
C语言简单IT之家速成
时间:2020-12-27
-
三分钟了解Activity工作流
时间:2020-12-27
-
编译器是如何实现32位整型
时间:2020-12-27
-
C++中lower_bound函数和upper
时间:2020-12-27
热门文章
-
LeetCode11ContainerWithMostWater(最大水容器)
时间:2021-01-04
-
C语言简单编程速成
时间:2020-12-23
-
都2020了,这五个最佳C++的IDE你还没用过?
时间:2020-12-23
-
C语言源程序文件的后缀是什么?
时间:2020-12-23
-
OpenGL超级宝典visual studio 2013开发环境配置
时间:2021-01-04
-
编译器是如何实现32位整型的常量整数除
时间:2020-12-27
-
libusbwin32学习笔记(二)
时间:2020-12-27
-
C语言简单IT之家速成
时间:2020-12-27
-
C语言和Python语言有什么区别呢?
时间:2020-12-24
-
C++对象模型之RTTI的实现原理
时间:2020-12-23
