车辆档案管理程序(C语言)

车辆档案管理程序(C语言),第1张

要写出程序挺麻烦的,况且我在工作,没有时氏迟间,提点建议吧!

如果用VC + 数据库的话就简单多了,可楼上要用C就只好用结构体了,(仿照交通局的数据库信息)

1)车辆信息

typedef struct _clxx

{

char CPH[10]//车牌号

char CLLX//车辆类型

char WFCS//违法次数

//... //其它信息自己定义

char ZT//状肢信态,0正常, 1修改, 2删除

}CLXX

2)违法信息

typedef struct _wfxx

{

char CPH[10]//车牌号

char WFSJ[8]//违法时间

char WFDD[100]//违法地点

char WFMS[100]//违法描述

//...//其它信息

}WFXX

车辆信息可放在文件clxx.txt中,格式自定义,保证读写一致就行了

违法信息可放在文件wfxx.txt中

然后可以定义全局变量

CLXX *g_clxx//存放所有车辆信息

int g_nClxxCapacity//存放所有车辆信息的空间大小,不够就用realloc加

int g_nClxxCount//目前车辆信息条数

WFXX *g_wfxx

int g_nWfxxCapacity

int g_nWfxxCount

主要函数如下:

int Init()//初始化数据,把clxx.txt和wfxx.txt的内容装入g_clxx和g_wfxx中

int query(const char *cph)//查询

int alter(const CLXX *clxx)//修改

int delete(int idx/*索引号或 CLXX*/)//歼饥李删除

int add(const CLXX *clxx)//添加

实现上面几个函数就差不多了,其它可自由添加.以上仅供参考!

一个一模一样的,我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("添加成功!当前记录�?%d\n", len)

printf("\n")

}

printMenu()

break

case '2':

printf("---删除交通处罚单信息。(罚单号为 0 结束)\n")

while (1)

{

signed short stid=0

printf("请输入要删除的罚单号:")

scanf("%d", &stid)

if (!stid)

break

Node* delNode=lookupSheet(&stid, NULL)

if (!delNode)

printf("对不起!你要删除的记录不存在。\n")

else

{

printNode(delNode->data)

printf("您确定要删除这条记录吗?(任意键删除/ n 取消)\n")

fflush(stdin)

char cDelete=getchar()

if ('n'==cDelete)

continue

printf("删除成功!剩余记录数: %d\n",deleteNode(stid))

}

printf("\n")

}

printMenu()

break

case '3':

printf("---查询交通处罚单信息。(输入 0 结束)\n")

while (1)

{

printf("请选择查询类型: 1-车辆号 2-司机 3-交警 4-退出\n>>>")

Node* findNode=NULL

int findtype=0

scanf("%d", &findtype)

if (4==findtype)

break

char findInfo[20]

signed short findcout=0

switch (findtype)

{

case 1:

printf("请输入车辆号: ")

fflush(stdin)

gets(findInfo)

findNode=lookupSheet(findInfo, &findcout, f_car)

if (getListlen(findNode)>=5)

{

printf("---该车辆违章超过5次。建议重罚。\n")

}

break

case 2:

printf("请输入司机姓名: ")

fflush(stdin)

gets(findInfo)

findNode=lookupSheet(findInfo, &findcout, f_driver)

if (getListlen(findNode)>=5)

{

printf("---该司机违章超过5次。建议重罚。\n")

}

break

case 3:

default:

printf("请输入交警编号: ")

fflush(stdin)

gets(findInfo)

findNode=lookupSheet(findInfo, &findcout, f_police)

}

if (!findNode)

printf("对不起!你要查询的记录不存在。\n")

else

{

printList(findNode)

freeList(findNode)

}

printf("\n")

}

printMenu()

break

case '4':

printf("---统计司机处罚单信息。(输入 0 结束)\n")

while (1)

{

printf("请输入司机姓名: ")

char driver[20]

fflush(stdin)

gets(driver)

if (!strcmp(driver, "0"))

break

printf("请输入起始日期(如 2007-12-24): ")

tm date1

memset(&date1, 0, sizeof(tm))

scanf("%d-%d-%d", &date1.tm_year, &date1.tm_mon, &date1.tm_mday)

printf("请输入终止日期(如 2007-12-24): ")

tm date2

memset(&date2, 0, sizeof(tm))

scanf("%d-%d-%d", &date2.tm_year, &date2.tm_mon, &date2.tm_mday)

signed short car, speed, signal, other

int sum=total(driver, date1, date2, &car, &speed, &signal, &other)

printf("司机姓名:%-10s 违章停车:%2d 超速:%2d 不按信号灯行使:%2d 其它:%2d 共计:%2d\n",

driver, car, speed, signal, other, car+speed+signal+other)

printf("\n")

}

printMenu()

break

case '5':

printList(begin)

printMenu()

break

case '6':

printf("---修改交通处罚单信息。(输入 0 结束)\n")

while (1)

{

signed short stid=0

printf("请输入要修改的交通处罚单号:")

fflush(stdin)

scanf("%d", &stid)

if (!stid)

break

Node* updataNode=lookupSheet(&stid, NULL)

if (!updataNode)

printf("对不起!你要修改的记录不存在。\n")

else

{

printNode(updataNode->data)

memset(&sheet, 0, sizeof(Sheet))

sheet.id=stid

printf("请修改违章车辆号: ")

fflush(stdin)

gets(sheet.carNo)

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)

updataNode->data=sheet

printNode(updataNode->data)

}

printf("\n")

}

printMenu()

break

case '7':

printBye()

freeList(begin)

exit(0)

break

default:

printMenu()

}

}

}

void printMenu()

{

printf("----------------------------------------------------------------------------\n")

printf("--- 1、添加交通处罚单信息。 2、删除交通处罚单信息。 ---\n")

printf("--- 3、查询交通处罚单信息。 4、统计司机处罚单信息。 ---\n")

printf("--- 5、浏览交通处罚单信息。 6、修改交通处罚单信息。 ---\n")

printf("--- 7、退出。 ---\n")

printf("----------------------------------------------------------------------------\n")

printf(">>>")

}

void printBye()

{

printf("----------------------------------------------------------------------------\n")

printf(" 感谢您使用交通罚单管理系统 \n")

printf(" 再 见 \n")

printf("----------------------------------------------------------------------------\n")

}

void printNode(Sheet sheet)

{

char* type=NULL

switch (sheet.type)

{

case s_park:

type="违章停车"

break

case s_speed:

type="超速"

break

case s_signal:

type="不按信号灯行使"

break

case s_other:

default:

type="其它"

}

printf("罚单号:%-6d 车牌号:%-10s 司机名:%-10s 交警名:%-10s\n"

"罚单类型:%-15s 开单日期:%d-%d-%d\n",

sheet.id, sheet.carNo, sheet.driver, sheet.police,

type, sheet.time.tm_year, sheet.time.tm_mon, sheet.time.tm_mday)

printf("--------------------------------------------------------------------------\n")

}

void printList(Node* bg)

{

Node* temp=bg->next

if (!temp)

{

printf("暂时无记录可供浏览!\n")

}

while (temp)

{

printNode(temp->data)

temp=temp->next

}

}

Node* lookupSheet(void* pInfo, signed short* n, FindType type)

{

Node* result=NULL

if (type)

{

result=(Node*)malloc(sizeof(Node))

result->next=NULL

*n=0

}

Node* temp=begin->next

switch (type)

{

case f_id:

while (temp)

{

if (temp->data.id==*(signed long*)pInfo)

{

if (n)

*n=1

return temp

}

temp=temp->next

}

break

case f_car:

while (temp)

{

if (!strcmp(temp->data.carNo,(char*)pInfo))

{

addNode(result, temp->data)

(*n)++

}

temp=temp->next

}

break

case f_driver:

while (temp)

{

if (!strcmp(temp->data.driver,(char*)pInfo))

{

addNode(result, temp->data)

(*n)++

}

temp=temp->next

}

break

case f_police:

while (temp)

{

if (!strcmp(temp->data.police,(char*)pInfo))

{

addNode(result, temp->data)

(*n)++

}

temp=temp->next

}

break

}

return result

}

int addNode(Node* bg, Sheet sheet)

{

Node* temp=(Node*)malloc(sizeof(Node))

if (!temp)

return 0

if (bg==begin)

{

if (bg->next)

{

sheet.id=bg->next->data.id+1

}

else

sheet.id=1

}

temp->data=sheet

temp->next=bg->next

bg->next=temp

return ++len

}

int deleteNode(signed short stid)

{

Node* temp=begin

Node* pos=NULL

while (temp->next)

{

if (temp->next->data.id==stid)

{

pos=temp->next

temp->next=pos->next

free(pos)

return --len

}

temp=temp->next

}

return -1

}

int getListlen(Node* bg)

{

Node* temp=bg

int i=0

while (temp->next)

{

i++

temp=temp->next

}

return i

}

void freeList(Node* bg)

{

Node* temp=NULL

while (bg)

{

temp=bg->next

free(bg)

bg=temp

}

}

int total(char* driver, tm date1, tm date2, signed short* icar,

signed short* ispeed, signed short* isignal, signed short* iother)

{

signed short result=0

*icar=0

*ispeed=0

*isignal=0

*iother=0

Node* findNode=lookupSheet(driver, &result, f_driver)

if (!findNode)

{

free(findNode)

return 0

}

time_t o,n,nw

date1.tm_year-=1900

date2.tm_year-=1900

o=mktime(&date1)

n=mktime(&date2)

if (o<n)

{

time_t tp=o

o=n

n=tp

}

Node* temp=findNode->next

while (temp)

{

tm t=temp->data.time

t.tm_year-=1900

nw=mktime(&t)

if (nw>o||nw<n)

{

temp=temp->next

continue

}

switch (temp->data.type)

{

case 1:

(*icar)++

break

case 2:

(*ispeed)++

break

case 3:

(*isignal)++

break

case 4:

default:

(*iother)++

}

temp=temp->next

}

freeList(findNode)

return result

}

------------------------------------------

// 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=0break

}

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=0i<10i++)

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

flag = 0

}

else

cout<<"输入有误,请重新输入:"

}

}

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


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12507302.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存