①使用结构体数组输入至少5辆汽车信息
(注意车辆状态最终存放到文件中,下次打开直接读取)
②车辆租借界面
根据车辆的状态显示不同的提示给用户
#include <stdio.h>
void menu() //建立系统菜单
{
printf("\n\t\t\t欢迎租赁本公司的车辆\n\n");
printf("\t\t\t1.查询所有车辆\n\n");
printf("\t\t\t2.归还以租赁车辆\n\n");
printf("\t\t\t3.租借现有车辆\n\n");
printf("\t\t\t0.退出租赁系统\n\n");
}
//建立存放信息的结构体
struct node
{
int num,doing;
char carname[10],carnum[10],money[10],day[10],daymoney[10],;
}INF[5];
//输入车辆信息
void input(struct node inf[5])
{
int i;
FILE *fp; //定义文件指针
printf("\t\t\t租赁汽车公司系统\n\n");
printf("请输入汽车信息\n\n");
printf("0:以租出车辆 1:未租出车辆\n\n");
printf("|编号 |车型 |车牌号 |押金 |限制天数 |日租价 |当前状态\n");
printf("-----------------------------------------------------------\n");
if((fp = fopen("E:\\ABC.txt","wb")) == NULL)
{
printf("Cannot open file !\n");
return;
}
for(i = 0;i < 5;i++)
{
scanf("%d %s %s %s %s %s %d",&inf[i].num,inf[i].carname,inf[i].carnum,inf[i].money,inf[i].day,inf[i].daymoney,&inf[i].doing);
}
fwrite(inf,sizeof(struct node),5,fp);
rewind(fp);
}
//读取信息
int Read()
{
FILE *fp;
if((fp = fopen("E:\\ABC.txt","rb")) == NULL)
{
return -1;
}else
{
fread(INF,sizeof(struct node),5,fp);
return 1;
}
}
//查询车辆信息功能
void putout(struct node inf[5])
{
int i;
printf("\n\n 库存车辆信息总览\n\n\n");
printf(" |编号 |车型 |车牌号 |押金 |限制天数 |日租价 |当前状态\n");
printf(" ----------------------------------------------------------------\n");
for(i = 0;i < 5;i++)
{
printf(" %d %s %s %s %s %s ",inf[i].num,inf[i].carname,inf[i].carnum,inf[i].money,inf[i].day,inf[i].daymoney);
if(INF[i].doing == 1)
printf("未租出\n");
else
printf("以租出\n");
}
printf("\n\n");
}
//归还已租车辆函数
void Return(int iNum)
{
if(INF[iNum].doing == 1)
{
printf("\n该车未出租\n\n");
}else
{
INF[iNum].doing = 1;
printf(" |编号 |车型 |车牌号 |押金 |限制天数 |日租价 |当前状态\n");
printf(" ----------------------------------------------------------------\n");
printf(" %d %s %s %s %s %s ",INF[iNum].num,INF[iNum].carname,INF[iNum].carnum,INF[iNum].money,INF[iNum].day,INF[iNum].daymoney);
printf("未租出\n\n");
printf("操纵成功…………\n");
}
}
//租借车辆函数
void borrow(int iNum)
{
if(INF[iNum].doing == 0)
{
printf("\n该车已被租借\n");
}else
{
INF[iNum].doing = 0;
printf(" |编号 |车型 |车牌号 |押金 |限制天数 |日租价 |当前状态\n");
printf(" ----------------------------------------------------------------\n");
printf(" %d %s %s %s %s %s ",INF[iNum].num,INF[iNum].carname,INF[iNum].carnum,INF[iNum].money,INF[iNum].day,INF[iNum].daymoney);
printf("以租出\n\n");
printf("操纵成功…………\n");
}
}
int main()
{
int choose = 0;
int fist;
fist = Read();
/*此处为本程序中重要的部分,
通过fist来判断是否是第一次登录,如果是
第一次登录,则调用input函数,建立一个新文件,
如果是是第>1次登录,则直接读出文件内容
*/
if(fist == -1)
{
printf("这是您第一次登录系统\n");
input(INF);
Read();
}
while(1)
{
menu();
int inum;
printf("\t\t\t请输入您所需的服务编号: ");
scanf("%d",&choose);
if(choose == 1) //查询所有车辆函数
{
putout(INF);
}else if(choose == 2) //归还租赁车辆
{
printf("请输入归还车辆编号: ");
scanf("%d",&inum);
Return(inum);
}else if(choose == 3) //租借现有车辆
{
printf("请输入租借车辆编号: ");
scanf("%d",&inum);
borrow(inum);
}else if(choose == 0) //退出租赁系统
{
printf("\n\n\t\t\t欢迎下次再来\n");
break;
}
}
return 0;
}
用到知识:
1.结构体
2.文件