车辆信息管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

车辆信息管理系统c语言

通过本系统可以进行对车辆信息的增、删、改、查。

#include

#include

#include

#define OK 1

#define ERROR 0

#define OVERFLOW -1

typedef int Status;

typedef struct

{

int carnum; //车牌号

char carmodel[20]; //车型

char name[10]; //车主姓名

int mileage; //总里程

int time; //购买日期

}Car;

typedef struct LNode

{

Car car;

struct LNode *next;

}LNode,*LinkList;

Status MallocList_car(LinkList &L)

{

L = (LinkList)malloc(sizeof(LNode));

if(!L) exit(OVERFLOW);

return OK;

}

Status InitList_car(LinkList &L) //创建原始车辆信息

{

FILE *fp;

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

MallocList_car(L);

L->next=NULL;

LinkList tail = L;

LinkList p;

while(!feof(fp))

{

MallocList_car(p);

fscanf(fp,"%d%s%s%d%d",&p->car.carnum,&p->car.carmodel,&p->,&p->eag e,&p->car.time);

p->next = NULL;

tail->next = p;

tail = p;

}

fclose(fp);

return OK;

}

Status ListLength_car(LinkList L) //车辆数量

{

LinkList P;

int length=0;

P=L->next;

while(P)

{

length++;

P=P->next;

}

return length;

}

Status ListInsert_car(LinkList L) //增加车辆信息

{

FILE *fp;

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

LinkList p = L;

int j = 0;

while(j < ListLength_car(L))

{

p=p->next;

j++;

}

LinkList S;

MallocList_car(S);

printf("请依次输入新增车辆的车牌号、车型、车主姓名、总里程、购买日期\n");

scanf("%d%s%s%d%d",&S->car.carnum,&S->car.carmodel,&S->,&S->eage,&S ->car.time);

p->next = S;

S->next = NULL;

p = L->next;

while(p)

{

fprintf(fp,"%d %s %s %d %d",p->car.carnum,p->car.carmodel,p->,p->eag e,p->car.time);

fprintf(fp,"\n");

p = p->next;

}

fclose(fp);

return OK;

}

Status ListDelete_car(LinkList L) //删除车辆信息

{

printf("请输入你要删除的车辆的车牌号:");

int i;

scanf("%d",&i);

FILE *fp;

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

LinkList p,q;

p=L;

while(p)

{

if (p->next->car.carnum == i) break;

p=p->next;

}

if(!(p)) return ERROR;

q=p->next;

p->next=q->next;

free(q);

p = L;

p = L->next;

while(p)

{

fprintf(fp,"%d %s %s %d %d",p->car.carnum,p->car.carmodel,p->,p->eage,p->car.time);

fprintf(fp,"\n");

p = p->next;

}

fclose(fp);

return OK;

}

Status Visit_car(Car car) //输出函数

{

printf("%d %s %s %d %d",car.carnum,car.carmodel,,eage,car.time);

printf("\n");

return OK;

}

Status ListTraverse_car(LinkList L,Status Visit_car(Car))

{

LinkList P;

P=L->next;

printf("车牌号车型车主姓名总里程购买时间\n");

while(P != NULL)

{

Visit_car(P->car);

P=P->next;

}

printf("\n");

return OK;

}

Status NumSortList_car(LinkList L) { //按车牌号排序

int i, j;

Car e1, e2;

int length = ListLength_car(L);

LinkList p;

for(i = 0; i < length - 1; i++) {

p = L->next;

for(j = 0; j < length - 1 -i; j++) {

e1 = p->car;

e2 = p->next->car;

if (e1.carnum > e2.carnum) {

p->car = e2;

p->next->car = e1;

}

p = p->next;

}

}

}

相关文档
最新文档