导航:首页 > 车辆百科 > c程序车辆

c程序车辆

发布时间:2021-02-10 13:14:28

1、求一个基于c语言车辆信息管理系统

------------------------------------------
// Copyright (C) 2009 沈阳工程学院信息安全工作室
// 版权所有。
//
// 文件名:模拟停车场问题.cpp
// 文件功能描述:模拟停车场问题
//
//
// 创建标识:20091214
//
// 修改标识:20091218
// 修改描述:完成编码
//----------------------------------------------------------------*/

//头文件
#include <iostream>
#include <malloc.h>
#include <string>
#include <windows.h>

//常量定义
#define MAX_STOP 4 //定义停车场最大停车数
#define MAX_PLATE 10 //定义车牌号最大长度
#define TIME_COUNT "秒" //定义时间单位
#define TIME_MS_TO_CONUT 1000 //定义时间进制,意为由TIME_COUNT到毫秒的进制
#define UNIT_PRICE 10 //定义单位时间收费标准

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

//数据结构定义
//定义存储汽车信息的结构体
typedef struct
{
char license_plate[MAX_PLATE]; //汽车牌照号码,定义为一个字符指针类型
char state; //汽车当前状态,字符p表示停放在停车位上,字符s表示停放在便道上,每辆车的初始状态用字符i来进行表示
int time; //汽车停入停车场时的时间,用来计时收费
}CAR;

//定义模拟停车场的栈结构
typedef struct
{
CAR STOP[MAX_STOP]; //汽车信息的存储空间
int top; //用来指示栈顶位置的静态指针
}SeqStack;

//定义模拟便道的队列结构
typedef struct node
{
CAR WAIT; //汽车信息的存储空间
struct node *next; //用来指示队列位置的动态指针
}QNode; //链队列节点的类型
//定义链队列的收尾指针
typedef struct
{
QNode *front,*rear;
}LQueue; //将头尾指针封装在一起的链队

//函数声明
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 停车场模拟管理系统 \n\n";
cout<<"\t|--------------------------------------------------|\n\n";
cout<<"\t|本程序为停车场的模拟管理系统,有车到来时请按C键。|\n\n";
cout<<"\t|然后根据屏幕提示进行相关操作,有车要走时请按l键。|\n\n";
cout<<"\t|然后根据屏幕提示进行相关操作,查看停车场请按D键。|\n\n";
cout<<"\t|然后根据屏幕提示进行相关操作,要退出系统请按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; //退出子函数
}

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_CONUT<<TIME_COUNT<<endl; //输出所停时间信息
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_CONUT<<TIME_COUNT<<endl;
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)); //为新节点开辟新空间
strcpy(car_on_sidewalk->WAIT.license_plate , license_plate); //将数据写入节点
car_on_sidewalk->WAIT.state = 's'; //写入停车信息
car_on_sidewalk->WAIT.time = GetTickCount(); //写入停车时间
car_on_sidewalk->next = NULL;
if(Empty_LQueue(sidewalk)) //队空则创建第一个节点
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)
{
cin>>tmpstr;
getchar();
if(tmpstr.length()<MAX_PLATE)
{
for(i=0;i<10;i++)
license_plate[i] = tmpstr.c_str()[i];
flag = 0;
}
else
cout<<"输入有误,请重新输入:";
}
}

以前的课设 你看看吧 纯手工的~~

2、C语言:车辆交通违章管理程序

一个一模一样的,我COPY过来,勿怪...实在是一样
//注释删除掉 以及 中文用不了之外
其他是一样的,那边也是要求C语言编,的确一样.
//VC++6.0下调试通过
#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
#include <string.h>
#include <time.h>

typedef enum {s_park=1, s_speed, s_signal, s_other} SheetType;
typedef enum {f_id, f_car, f_driver, f_police} FindType;

typedef struct Sheet
{
signed long id;//罚单号
char carNo[20];//车牌号
char driver[20];//司机名
char police[20];//警察编号
SheetType type;//罚单类型
tm time;//出单日期
}Sheet;

typedef struct Node
{
Sheet data;
Node* next;
}Node;

static Node* begin=NULL;//哨兵结点
static signed long len=0;//链表长度

void printMenu();//打印菜单
void printBye();//打印退出界面
void printList(Node* bg);//打印所有罚单信息
void printNode(Sheet sheet);//打印单条罚单
Node* lookupSheet(void* pInfo, signed short* n,
FindType type=f_id);//根据类型查询罚单。成功返回结点。失败NULL
int addNode(Node* bg, Sheet sheet);//添加罚单。成功返回链表长度。内存分配失败0
int deleteNode(signed short stid);//根据罚单号删除罚单。
int total(char* driver, tm date1, tm date2, signed short* icar,
signed short* ispeed, signed short* isignal, signed short* iother);//统计
int getListlen(Node* bg);
void freeList(Node* bg);//释放链表

void main()
{
//初始化链表。
begin=(Node*)malloc(sizeof(Node));
begin->next=NULL;
printf("----------------------------------------------------------------------------\n");
printf("--- 《交通罚单管理系统》 ---\n");
printf("--- 沙支夸依 2007-12-24 ---\n");
printf("----------------------------------------------------------------------------\n");
printf("||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||\n");
printMenu();
while (1)
{
fflush(stdin);
char cmd=getchar();
Sheet sheet;
memset(&sheet, 0, sizeof(Sheet));
switch (cmd)
{
case '1':
printf("---添加交通处罚单信息。(车牌号为 0 结束)\n");
while (1)
{
printf("请输入违章车辆号: ");
fflush(stdin);
gets(sheet.carNo);
if (!strcmp(sheet.carNo,"0"))
break;
printf("请输入违章司机姓名: ");
fflush(stdin);
gets(sheet.driver);
printf("请输入开单交警编号: ");
fflush(stdin);
gets(sheet.police);
printf("请选择违章类型(1-违章停车 2-超速 3-不按信号灯行使 4-其它):");
scanf("%d", &sheet.type);
printf("请输入开单日期(例 2007-12-24): ");
scanf("%d-%d-%d", &sheet.time.tm_year, &sheet.time.tm_mon, &sheet.time.tm_mday);
int succ=addNode(begin, sheet);
if (!succ)
{
printf("内存错误!请重新输入!\n");
}
else
printf("添加成功!当前记录

3、C语言<车辆交通违章管理程序>

http://.网络.com/question/28140845.html

4、编写C语言程序汽车的车牌号有7个字符为首的字符限定为";京:

/*

京A123C5 : 后五位有非规定字符!

津H88659 : 非归属地车牌!

京B1234 : 车牌号码长度错误!

京AA12343 : 车牌号码长度错误!

京A88880 : OK!

京C8865C : 后五位有非规定字符!

Press any key to continue

*/

#include <iostream>
#include <cstring>

using namespace std;

#define MAXLEN 8

int CheckPlateNumber(char platenumber[]) {
int i;
char belonging[5];
if(strlen(platenumber) != 8) return 1; // 编码长度错误
belonging[0] = platenumber[0];
belonging[1] = platenumber[1];
belonging[2] = '';
if(strcmp(belonging,"京")) return 2; // 车牌所属地错误
if(platenumber[2] < 'A' || platenumber[2] > 'Z') return 3; // 首号错误
for(i = 3; i < MAXLEN; ++i)
if(platenumber[i] < '0' || platenumber[i] > '9') return 4; // 其他错误
return 0;
}

int main() {
char s[][MAXLEN + 2] = {"京A123C5","津H88659","京B1234","京AA12343","京A88880","京C8865C"};
for(int i = 0; i < 6; ++i) {
cout << s[i] << " : ";
switch(CheckPlateNumber(s[i])) {
case 0 : cout << "OK! "; break;
case 1 : cout << "车牌号码长度错误! "; break;
case 2 : cout << "非归属地车牌! "; break;
case 3 : cout << "首号错误! "; break;
case 4 : cout << "后五位有非规定字符! "; break;
default: cout << "其他错误! "; break;
}
}
return 0;
}

5、怎样用C语言程序编制车辆购置税

开“4S”店前期一定要有所计划:
一、你要有足够的资金;
二、要有版良好的周边环境;
三、要有一个品权牌过的硬的“车种”;
四、要有一个凝聚力、业务素质很强的员工队伍。
在开办前你应当对本地的汽车市场做一次极为详细的调查分析,如:选定的车型在本地的市场如何?选定的车型的价格在本地的适应能力?当地人群的车辆购买力?都要进行详细的分析研究。
你决定后,就是征地或租店和场地,这可能需要上百万(根据本地土地的价格而定,一般店面加展厅、办公、接待、休息等应不小于300平方米),场地(库房应能停放二十台左右的泊位)、修理场地(车间应不小于500平方米)。
再到行业管理处办理申请,购置全套的设备(大概上百万),待一切就绪后行业管理处验收发证。在这同时你可与选定的厂家进行洽谈设代理的相关事宜,(前面的工作没做之前应征得厂家的意向书,不敢盲目),进行员工的技术培训等。
但一般厂家要你当他的“4S”,是有要求的,一是车辆的进货数量、年销售量、保证金的支付、后备金的数额(一般在100万左右)、企业的形象等。这一切厂家考察认定后签定代理合同,进货,开张就可以了。
祝你成功!

6、c语言运动的汽车

class 汽车
{
private readonly int _耗油率 = 10;
private readonly int _油箱容积 = 100;
private int _油表;
private int _里程数;

public int 耗油率
{
get { return _耗油率; }
}

public int 油箱容积
{
get { return _油箱容积; }
}

public int 油表
{
get { return _油表; }
set { _油表 = value < 0 ? 0 : value; }
}

public int 里程数
{
get { return _里程数; }
set { _里程数 = value < 0 ? 0 : value; }
}

public 汽车()
{
_油表 = _油箱容积;
_里程数 = 0;
}

public 汽车(int 油表数)
{
_油表 = 油表数;
_里程数 = 0;
}

public 汽车(int 油表数,int 里程)
{
_油表 = 油表数;
_里程数 = 里程;
}

private int 耗油量(int 公里数)
{
return _耗油率 * 公里数/100;
}

public bool 行驶(int 行驶距离)
{

int 总耗油 = 耗油量(行驶距离);

if (_油表 < 总耗油)
{
//一直行驶到没油了再停止;
int 只能行驶的距离 = _油表 * 10;
_里程数 += 只能行驶的距离;
_油表 = 0;
Console.WriteLine("行驶失败!!!");
return false;
}
else
{
_油表 -= 总耗油;
_里程数 += 行驶距离;
Console.WriteLine("行驶成功!!!");
return true;
}
}

public bool 加油()
{
int 加油量 = _油箱容积 - _油表;
_油表 = _油箱容积;
Console.WriteLine("一共加油量{0}",加油量);
return true;
}

public bool 加油(int 加油量)
{
if ((_油表 + 加油量) > _油箱容积)
{
//加油失败,但是油箱满了。
_油表 = _油箱容积;
Console.WriteLine("加油失败!!!");
return false;
}
else
{
_油表 += 加油量;
Console.WriteLine("加油成功!!!");
return true;
}
}

public string 获取汽车当前信息()
{
string 汽车信息 = string.Format("汽车当前的油表数是:{0},当前里程数为:{1}", _油表, _里程数);
Console.WriteLine(汽车信息);
return 汽车信息;
}
}

测试代码:

汽车 新奔驰 = new 汽车();
新奔驰.行驶(100);
新奔驰.获取汽车当前信息();
新奔驰.行驶(500);
新奔驰.获取汽车当前信息();
新奔驰.加油(60);
新奔驰.获取汽车当前信息();

7、C语言《车辆通过十字路口的演示程序》,跪求

我完成了,给你看看截图~~

呵呵~~~

8、c语言 车辆 管理系统

说的可真简单呀!具体都要什么功能!不说的清楚些,怎么帮你呢?


与c程序车辆相关的内容