c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx

上传人:b****0 文档编号:9172576 上传时间:2023-05-17 格式:DOCX 页数:35 大小:576.64KB
下载 相关 举报
c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx_第1页
第1页 / 共35页
c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx_第2页
第2页 / 共35页
c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx_第3页
第3页 / 共35页
c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx_第4页
第4页 / 共35页
c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx_第5页
第5页 / 共35页
c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx_第6页
第6页 / 共35页
c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx_第7页
第7页 / 共35页
c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx_第8页
第8页 / 共35页
c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx_第9页
第9页 / 共35页
c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx_第10页
第10页 / 共35页
c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx_第11页
第11页 / 共35页
c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx_第12页
第12页 / 共35页
c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx_第13页
第13页 / 共35页
c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx_第14页
第14页 / 共35页
c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx_第15页
第15页 / 共35页
c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx_第16页
第16页 / 共35页
c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx_第17页
第17页 / 共35页
c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx_第18页
第18页 / 共35页
c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx_第19页
第19页 / 共35页
c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx

《c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx》由会员分享,可在线阅读,更多相关《c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx(35页珍藏版)》请在冰点文库上搜索。

c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文.docx

c语言程序停车场管理系统课程设计报告基于huffman算法的编码与译码技术的探究大学毕业设计论文

 

停车场系统1课程设计

 

题目基于Huffman算法的编码与译码技术的探究

系(部)电子与信息工程系

班级15级电子与信息工程专业一班

姓名郭威

学号2015021029

指导教师王静

 

2010年01月07日

课程设计任务书

设计题目:

停车场管理系统设计

学生姓名

郭威

课程名称

C语言程序设计课程设计

专业班级

2015级电本一班

地点

B302

起止时间

2016年6月20日~6月24日

设计要求

设计内容

1.有一个两层的停车场,每层有6个车位,当第一层车停满后才允许使用第二层.(停车场可用一个二维数组实现,每个数组元素存放一个车牌号)每辆车的信息包括车牌号,层号,车位号,停车时间共4项.其中停车时间按分钟计算

2.假设停车场初始状态为第一层已经停有4辆车,其车位号依次为1—4,停车时间依次为20,15,10,5.即先将这四辆车的信息存入文件”car.dat”中(数组的对应元素也要进行赋值)

3.停车操作:

当一辆车进入停车场时,先输入其车牌号,再为它分配一个层号和一个车位号(分配前先查询车位的使用情况,如果第一层有空则必须停在第一层),停车时间设为5,最后将新停入的汽车的信息添加文件”car.dat”中,并将在此之前的所有车的停车时间加5.

4.收费管理(取车):

当有车离开时,输入其车牌号,先按其停车时间计算费用,每5分钟0.2元.(停车费用可设置一个变量进行保存),同时从文件”car.dat”中删除该车的信息,并将该车对应的车位设置为可使用状态(即二维数组对应元素清零).按用户的选择来判断是否要输出停车收费的总计.

5.输出停车场中全部车辆的信息.

6.退出系统.

(1)系统分析、设计正确。

(2)结果以图表方式显示。

(3)界面简洁、美观。

(4)报告格式规范。

工作进度与计划安排

1月6日第一大节、第二大节讲解课程设计任务

1月6日第三大节、第四大节阅读课程设计指导书,选择课题

1月7日第一大节、第二大节讲解结构体相关知识

1月7日第三大节、第四大节学生练习结构体的使用

1月8日第一大节、第二大节程序编码

1月8日第三大节、第四大节程序编码

1月9日第一大节、第二大节程序编码

1月9日第三大节、第四大节编写课程设计报告

1月10日第一大节、第二大节课程设计答辩

1月10日第三大节、第四大节课程设计答辩

参考资料

[1]何钦铭颜晖.《C语言程序设计》.高等教育出版社.2008年

[2]谭浩强张基温.《C语言程序设计教程》.高等教育出版社.2006年

其它

说明

1.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。

2.若填写内容较多可另纸附后。

3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。

系主任:

指导教师:

伍建全/王双明/王成敏/张亚军/彭军2013年12月29日

 

摘要

停车场管理系统先利用了结构对停车场中车牌号,车位号,层数等看成了一个逻辑整体对停车产进行描述,在使用停车功能,取车功能时都需要使用文本读写对信息的保存和删减等,使用自定义函数分别对停车,读写,取车进行描述,使程序更加清晰,也运用了if对一些语句进行判断。

for则是循环或的多组数据,switch对功能进行选择。

关键词:

数组结构文本读写停车场管理系统

目录

摘要1

1软件需求分析说明...................................................................................................................................5

2系统分析与设计6

2.1软件界面设计6

2.2软件的数据(结构)设计6

2.3软件的算法设计7

3.软件的实现8

4软件测试16

5软件使用说明书17

参考文献20

致谢21

 

1软件需求分析说明书

这是停车管理系统当一辆车进入停车场时,先输入其车牌号,再为它分配一个层号和一个车位号(分配前先查询车位的使用情况,如果第一层有空则必须停在第一层),停车时间设为5,最后将新停入的汽车的信息添加文件”car.dat”中,并将在此之前的所有车的停车时间加5,当有车离开时,输入其车牌号,先按其停车时间计算费用,每5分钟0.2元.(停车费用可设置一个变量进行保存),同时从文件”car.dat”中删除该车的信息,并将该车对应的车位设置为可使用状态(即二维数组对应元素清零).按用户的选择来判断是否要输出停车收费的总计.

本程序包含了四大核心功能为:

1.1停车:

从文本“car.dat”读出停车场当前车牌号,车位号,状态,并在屏幕中显现出来,在分配车位停车。

同时将增加量改存入“car.dat”.

1.2信息查询:

从文本“car.dat”读出停车场当前车牌号,车位号,状态,并在屏幕中显现出来.

1.3取车:

从文本“car.dat”读出停车场当前车牌号,车位号,状态,输入你所想取走的车然后将该车信息归零即删除。

1.4退出程序

 

2系统分析与设计

2.1软件界面设计

进入根据屏幕显示从键盘上进行操作

2.2软件的数据(结构)设计

对整个软件使用的文件功能、文件内部的数据格式进行说明

本程序是要将文本文件里面停车场车辆信息的内容读入程序内,并对信息进行保存和修改。

文件的功能便是一个停车场信息存放库,便于我们对停车信息的利用。

2.3软件的算法设计

开始

 

停车系统

 

for(i=0;i<12;i++)利用循环查找车位并停车

{

if(car[i].state==0)

{

flag=1;

break;

}

}

if(flag==0)

{

printf("无车位\n");

}

else{

for(j=0;j<12;j++)

{

if(car[j].state==1)car[j].time+=5;

}

car[i]=tempcar;

}

取车系统

 

 

 

 

for(k=0;k<12;k++)

{

if(bring.num==car[k].num)

{

printf("是否输出停车费用(Y/N)?

");

scanf("%c",&b);

if(b=='Y')

{

fee=car[k].time/5.0*0.2;

printf("车牌号:

%d\n\n",bring.num);

printf("停车费:

%f元\n",fee);

printf(".............欢迎下次光临..............\n\n");

}

elseif(b=='N')

{

printf("\n欢迎下次光临!

\n");

}

else

{

printf("输入错误!

\n\n");

printf("\n");

}

car[i]=bring;

}

else

{

printf("不能取车");

}

}

 

3软件的实现

3.1定义了一个结构体数组:

struct_car

{

intnum;//车牌号

inttime;//时间

intstate;//状态

}car[12];//car结构体的名字,定义一个一维数组,car[0]为一层一车位

3.2自定义函数:

3.2.1.voidload()//文件读写函数

{

FILE*fp;

inti=0;

fp=fopen("car.dat","r");

while(!

feof(fp))

{fscanf(fp,"%d%d%d",&car[i].num,&car[i].time,&car[i].state);

i++;

}

fclose(fp);}

3.2.2voidpark();停车函数

{

struct_cartempcar;inti=0;

FILE*fp;

intflag=0,j=0;

tempcar.time=5;

tempcar.state=1;

printf("请输入车牌号:

");

scanf("%d",&tempcar.num);

for(i=0;i<12;i++)

{

if(car[i].state==0)

{flag=1;

break;

}

}

if(flag==0)

{

printf("无车位\n");

}

else

{

for(j=0;j<12;j++)

{

if(car[j].state==1)car[j].time+=5;

}

car[i]=tempcar;

}

fp=fopen("D:

\\car.txt","w");

i=0;

fprintf(fp,"%d%d%d\n",car[i].num,car[i].state,car[i].time);

fclose(fp);

fp=fopen("car.txt","a");

for(i=1;i<12;i++)

{

fprintf(fp,"%d%d%d",car[i].num,car[i].time,car[i].state);

}

fclose(fp);

}

3.2.3.voidcha();查询函数

{

intj=0;

for(j=0;j<12;j++)

{

printf("%d\t%d\t%d\n",car[j].num,car[j].time,car[j].state)}

3.2.3.voidqu();取车函数

{struct_carbring;

intk=0,i;

charb;

doublefee;

FILE*fp;

fp=fopen("d:

\\car.txt","w");

i=0;

fprintf(fp,"%d%d%d",car[i].num,car[i].time,car[i].state);

fclose(fp);

fp=fopen("car.txt","a");

bring.num=0;

bring.state=0;

bring.time=0;

for(i=1;i<12;i++)

{

fprintf(fp,"%d%d%d",car[i].num,car[i].time,car[i].state);

}

fclose(fp);

printf("请输入车牌号:

");

scanf("%d",&bring.num);

for(k=0;k<12;k++)

{

if(bring.num==car[k].num)

{

printf("是否输出停车费用(Y/N)?

");

scanf("%s",&b);

if(b=='Y')

{

fee=car[k].time/5.0*0.2;

printf("车牌号:

%d\n\n",bring.num);

printf("停车费:

%f元\n",fee);

printf(".............欢迎下次光临..............\n\n");

}

elseif(b=='N')

{printf("\n欢迎下次光临!

\n");

}

else

{printf("输入错误!

\n\n");

printf("\n");

}

car[i]=bring;

}

else

{

printf("不能取车");

}

}}

文件读写:

fp=fopen("car.txt","r");/*以读方式的方式打开文件a*/

fp=fopen("car.txt","w");/*以写的方式打开文件a*/

fp=fopen("car.txt","a");/*以追加写的方式打开文件a*/

fscanf(fp,"%d%d%d",&car[i].num,&car[i].time,&car[i].state);/*将内存中的数据写入fp指向的文件*/

4软件测试

1、voidload();/*读入文本*/

fscanf(fp,"%d%d%d",&car[i].num,&car[i].time,&car[i].state)

2、voidpark();/*停车*/

用例1:

printf("请输入车牌号:

");car[i].state==0flag=1停车成功

用例2:

flag==0printf("无车位\n");

3、voidqu();取车

用例1:

printf("是否输出停车费用(Y/N)?

")Yprintf("停车费:

%f元\n",fee);

用例2:

printf("是否输出停车费用(Y/N)?

")Nprintf("\n欢迎下次光临!

\n");

4、voidcha();查询

用例1:

for(j=0;j<12;j++)printf("%d\t%d\t%d\n",car[j].num,car[j].time,car[j].state);

5软件使用说明书

结合软件的使用界面,详细介绍整个软件功能。

该系统为停车场管理系统,可以进行停车功能,取车功能以及查询功能,以下为操作该系统的详细步骤:

运行程序时,首先出现:

这是你可以任意输入1,2,3,4四个数;

如果你输入1时:

任意输入一个车牌号123:

如果你输入了3,系统可以为你查询刚才的车是否停好:

有刚刚输入的车牌号说明已经停好。

如果你输入2:

如果输入以有记录的车牌号123:

如果输入Y:

如果输入N

 

参考文献

【1】裘宗燕《从问题到程序》北京:

机械工业出版社,2011.5

【2】谭浩强《C程序设计》北京:

清华大学出版社,2010.7

【3】左飞、李召恒《轻松学通C语言》北京:

中国铁道出版社,2013.9

 

致谢

在这次设计中感谢老师们对我的指导和同学们的帮助。

签名:

文莉

日期:

2014年1月10日星期五

#include

#include

#defineN3/*停车场大小*/

#defineMAX50/*过道大小*/

#definesign10/*车牌大小*/

#defineprice10/*每分钟的价钱*/

charpart[N][sign];

charRpart[MAX][sign];

chartime[N][20];

intP,R;

partadd(char*t)

{

strcpy(&part[P][0],t);

printf("请输入时间:

\n");

scanf("%s",&time[P][0]);

getchar();

P++;

}

Rpartadd(char*t)

{

if(R

{

strcpy(&Rpart[R][0],t);

R++;

}

else

{

printf("过道己满。

无法停车。

\n");

}

}

newcar()

{

chartemp[sign];

printf("请输入车牌号:

");

scanf("%s",temp);

getchar();

if(P

{

partadd(temp);

}

elseif(R

{

Rpartadd(temp);

}

}

inttimed(char*t1,char*t2)

{

inti=0,y=0,x=0,j,n=1;

while

(1)

{

if(t1[i]=='.')

{

for(j=i-1;j>=0;j--)

{

y=y+(t1[j]-'0')*(60*n);

n=n*10;

}

while

(1)

{

if(t1[j]==NULL)

{

for(n=1;j>i;j--)

{

y=y+(t1[j]-'0')*n;

n=n*10;

}

break;

}

j++;

}

i=0;

while

(1)

{

if(t2[i]=='.')

{

for(j=i-1;j>=0;j--)

{

x=x+(t2[j]-'0')*(60*n);

n=n*10;

}

while

(1)

{

if(t2[j]==NULL)

{

for(n=1;j>i;j--)

{

x=x+(t2[j]-'0')*n;

n=n*10;

}

break;

}

j++;

}

y=(x-y)*price;

returny;

}

i++;

}

}

i++;

}

}

partcarout(inti)

{

intj,money;

chart[20];

printf("请输入现在的时间:

\n");

scanf("%s",t);

getchar();

money=timed(t,&time[i][0]);

printf("收费%d\n",money);

for(j=i;j

{

strcpy(&part[j][0],&part[j+1][0]);

P--;

}

if(R!

=0)

{

strcpy(&part[N-1][0],&Rpart[0][0]);

P++;

strcpy(&time[P][0],t);

Rpartcarout(0);

}

}

Rpartcarout(inti)

{

intj;

for(j=i;j

{

strcpy(&Rpart[j][0],&Rpart[j+1][0]);

R--;

}

}

carout()

{

chart[sign];

inti,get=0;

printf("请入要离开的车牌号:

");

scanf("%s",t);

getchar();

for(i=0;i

{

if(strcmp(t,&part[i][0])==0)

{

get=1;

partcarout(i);

break;

}

}

for(i=0;i

{

if(strcmp(t,&Rpart[i][0])==0)

{

get=1;

Rpartcarout(i);

break;

}

}

if(get==0)

{

printf("查无此车。

\n");

}

}

jopart()

{

inti;

for(i=0;i

{

printf("%d.%s\n",i,&part[i][0]);

}

}

joRpart()

{

inti;

for(i=0;i

{

printf("%d.%s\n",i,&Rpart[i][0]);

}

}

main()

{

intc;

while

(1)

{

printf("请选择要做的事:

\n");

printf("1.加入新车。

\n");

printf("2.有车离开。

\n");

printf("3.显示在停车场内的车。

\n");

printf("4.显示在过道上的车。

\n");

printf("5.退出。

\n");

c=getchar();

getchar();

switch(c)

{

case'1':

newcar();

break;

case'2':

carout();

break;

case'3':

jopart();

break;

case'4':

joRpart();

break;

case'5':

exit

(1);

break;

}

}

}

 

#include

#include

typedefstructLNode{

intdata;

LNode*next;

}LNode,*LinkList;

typedefstruct{

int*Num;

inttop;

intstackment;//停车场最大的停车辆

}SqStack;

typedefLinkListQueuePtr;

typedefstruct{

QueuePtrfront;

QueuePtrrear;

}LinkQueue;

voidInitStack(SqStack&S);

voidInitQueue(LinkQueue&Q);

voidPutIn(SqStack&S,LinkQueue&Q);

voidGetOut(SqStack&S,LinkQueue&Q);

voidStackTraverse(SqStackS);

voidQueueTraverse(LinkQueueQ);

intmain()

{

charch,c;

SqStackS;LinkQueueQ;

InitStack(S);InitQueue(Q);

while

(1)

{

fflush(stdin);

printf("***进入停车场:

'A'***\n");

printf("***退出停车场:

'D'***\n");

printf("***退出操作:

'0'***\n");

printf("\n请输入命令:

");

ch=getchar();

c=getchar();

switch(ch)

{

case'A':

PutIn(S,Q);break;

case'D':

GetOut(S,Q);break;

case'0':

exit(-1);

default:

printf("输入有误!

\b");

exit(-1);

}

StackTraverse(S);

QueueTraverse(Q);

}

return0;

}

voi

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2