车辆信息管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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;
}
}
}