【C语言】汽车租赁程序

大一上C语言期末考试
1.题目要求
****租车公司,现有小轿车,货车,客车三种车型,因业务需要求量增加,需开发一套软件程序,实施租车业务,提高工作效率。
在这里插入图片描述

一、功能要求

  1. 操作界面,用户可以自行选择。
  2. 登录界面分为用户登录和管理员登录。
  3. 用户功能
    (1)显示该车行所有车型信息
    (2)选择租车的类型,根据提示选择具体的信息。例如
    请选择你要租赁的汽车类型:1.轿车 2,客车 3.货车
    输入:1
    请选择你要租赁的汽车品牌:1.宝马 2.奔驰 3.大众 4.丰田
    输入:1
    请选择你要租赁的天数:
    输入:10
    (3)计算租金,输出租赁的所有信息(车型,车牌,租金)
  4. 管理员功能
    (1) 新加入可租用的车辆信息
    (2) 删除可租用的车辆信息
    (3) 更改车辆信息
    (4) 计算营业额
  5. 功能用函数实现

以下是程序实现 编译器DEV C++ 5.7.1

#include<stdio.h>
#include<string.h>
#include <stdlib.h>
#define MAX 1000
float zong;
struct Car {
	char type[10];
	char brand[10];
	char c_Num[10];
	float rent;
};

struct carbooks{
	struct Car CarArr[MAX]={
{"轿车","宝马730","川B66666",800},
{"轿车","奔驰s","川B88888",1000},
{"轿车","大众途观","川B66699",700},
{"轿车","丰田皇冠","川B88899",650},
{"客车","金杯 16座","川B88900",1000},
{"客车","金杯 34座","川B88901",1600},
{"客车","宇通 16座","川B88902",1100},
{"客车","宇通 34座","川B88903",1800},
{"卡车","东风 5t","川B88904",500},
{"卡车","东风 10t","川B88905",1200},
{"卡车","解放 5t","川B88906",500},
{"卡车","解放 10t","川B88907",1200},};
	int c_size;
	
};
void addCar(carbooks *abs){
	
	if (abs->c_size == MAX) {
		printf("数量已满");
		return ;
	}
	else {
		
		float rent;
		printf("输入车辆类型:    (如轿车,客车,货车)\n");
		scanf("%s",&abs->CarArr[abs->c_size].type);
		printf("输入车辆品牌:\n");
		scanf("%s",&abs->CarArr[abs->c_size].brand);
		printf("输入车辆牌号:\n");
		scanf("%s",&abs->CarArr[abs->c_size].c_Num);
		printf("输入车辆日租金:\n");
		scanf("%f",&rent);
		abs->CarArr[abs->c_size].rent = rent;
		abs->c_size++;
		printf("添加完成\n");
	}
}

void showCar(carbooks *abs){
	if(abs->c_size==0){
		printf("无车辆信息\n");
	}
	else {
		printf("*****************以下是目前车行拥有的车辆信息*****************\n");
		for (int i = 0; i < abs->c_size; i++) {
			
			printf("车型:%s\t品牌:%s\t车牌:%s\t日租金:%.1f\t\n",abs->CarArr[i].type,abs->CarArr[i].brand,abs->CarArr[i].c_Num,abs->CarArr[i].rent);
			
		}
		printf("************************************************************\n");
	}
}
int testCar(carbooks *abs,char t[10]) {
	for (int i = 0; i < abs->c_size; i++) {
		if (strcmp(t,abs->CarArr[i].brand)==0) {
			return i;
		}
	}
	return -1;
}
void changeCar(carbooks *abs){
	printf("请输入要修改的车辆品牌全称\n");
	printf("如:宝马730,金杯 16座\n");
	char name[10];
	scanf("%s",&name);
	int ret = testCar(abs,name);
	if(ret != -1){
		printf("输入类别:    (如轿车、客车、卡车)\n");
		scanf("%s",&abs->CarArr[ret].type);
		printf("输入车辆品牌:(如宝马730、金杯 16座)\n");
		scanf("%s",&abs->CarArr[ret].brand);
		printf("输入车辆牌号:\n");
		scanf("%s",&abs->CarArr[ret].c_Num);
		printf("输入车辆日租金:\n");
		scanf("%f",&abs->CarArr[ret].rent);
		printf("修改完成\n");
		
	}else{
		printf("未找到此车\n");
	}
}
void deleteCar(carbooks *abs){
	printf("输入要删除车辆的品牌全称\n");
	printf("如:宝马730,金杯 16座\n");
		char name[10];
		scanf("%s",&name);
		int ret = testCar(abs,name);
		if(ret != -1){
			
			for(int i=ret;i< abs->c_size;i++){
				abs->CarArr[i] = abs->CarArr[i+1];
			}
			abs->c_size--;
			printf("删除成功\n");}
			else{
				
			printf("无该车辆\n");
			}
			system("pause");
		}

int rentsum(int rent,int days){
	float sum;
	if(days>150){
	sum=days*rent*7/10;
    }else if(days>30){sum=days*rent*8/10;
    }else if(days>7){
	sum=days*rent*9/10;
    }else if(days>0 &&days<7){
	sum=days*rent;
    }
    zong+=sum;
    return sum; 
}
int rentsum1(int rent,int days){
	float sum;
	if(days>=150){
		sum=days*rent*6/10;
	}else if(days>=30 &&days<150){
		 sum=days*rent*7/10;
	}else if(days>=7 &&days<30){
		 sum=days*rent*8/10;
	}else if(days>=3 &&days<7){
		  sum=days*rent*9/10;
	}else if(days>0&&days<3){
		sum=days*rent;
		
	}
	zong+=sum;
	return sum;
}
int rentsum2(int rent,int days){
	float sum;
	if(days>=150){
		sum=days*rent*7/10;
	}else if(days>=30 &&days<150){
		 sum=days*rent*7.5/10;
	}else if(days>=7 &&days<30){
		 sum=days*rent*8.5/10;
	}else if(days>=3 &&days<7){
		  sum=days*rent*9.5/10;
	}else if(days>0&&days<3){
		sum=days*rent;
	}
	zong+=sum;
	return sum;
}

void usermenu(carbooks *abs){
	showCar(abs);
	int chose;
	printf("请选择您要租赁的汽车类型\n");
	printf("1、轿车 2、客车 3、货车\n"); 
	char t[10]={"轿车"};char t2[10]={"客车"};
	scanf("%d",&chose);
	switch(chose){
		case 1:
			
			for(int i=0;i< abs->c_size;i++)
		 	if(strcmp(t,abs->CarArr[i].type)==0){
		 	printf("车型:%s\t品牌:%s\t车牌:%s\t日租金:%.1f\t\n",abs->CarArr[i].type,abs->CarArr[i].brand,abs->CarArr[i].c_Num,abs->CarArr[i].rent);
		 	}
		 	printf(" 折扣:天数大于七天九折\n 天数大于三十天八折\n 天数大于150天七折\n");
		 	printf("请选择您要租赁的汽车品牌:\n");
		 	printf("1、宝马 2、奔驰 3、大众 4、丰田\n");
		 	int chose;
		 	scanf("%d",&chose);
		 	switch(chose){
		 	
		 	case 1:
		 		  
		 		  for(int i=0;i< abs->c_size;i++){
		 			char str1[10]={"宝马730"};
		 		if(strcmp(abs->CarArr[i].brand,str1)==0){
		 		 printf("品牌:%s\t车牌:%s\t日租金:%.1f\t\n",abs->CarArr[i].brand,abs->CarArr[i].c_Num,abs->CarArr[i].rent);
		 		 int days;int rent=abs->CarArr[i].rent;
		 		 printf("请输入要租用的天数:\n");
		 		 scanf("%d",&days);
		 		 float sum=rentsum(rent,days);
		 		 printf("租金为%.1f 租用的车辆:%s 车牌:%s ",sum,abs->CarArr[i].brand,abs->CarArr[i].c_Num);
		 	    }
		 	    
												 }
				
		 	break;
			case 2:
				for(int i=0;i< abs->c_size;i++){
		 			char str1[10]={"奔驰s"};
		 		if(strcmp(abs->CarArr[i].brand,str1)==0){
		 		 printf("品牌:%s\t车牌:%s\t日租金:%.1f\t\n",abs->CarArr[i].brand,abs->CarArr[i].c_Num,abs->CarArr[i].rent);
		 		 int days;int rent=abs->CarArr[i].rent;
		 		 printf("请输入要租用的天数:\n");
		 		 scanf("%d",&days);
		 		 float sum=rentsum(rent,days);
		 		 printf("租金为%.1f 租用的车辆:%s 车牌:%s ",sum,abs->CarArr[i].brand,abs->CarArr[i].c_Num);
		 	    }
												}
				break;
			case 3:
				
				for(int i=0;i< abs->c_size;i++){
					char str1[10]={"大众途观"};
		 		if(strcmp(abs->CarArr[i].brand,str1)==0){
		 		 printf("品牌:%s\t车牌:%s\t日租金:%.1f\t\n",abs->CarArr[i].brand,abs->CarArr[i].c_Num,abs->CarArr[i].rent);
		 		 int days;int rent=abs->CarArr[i].rent;
		 		 printf("请输入要租用的天数:\n");
		 		 scanf("%d",&days);
		 		 float sum=rentsum(rent,days);
		 		 printf("租金为%.1f 租用的车辆:%s 车牌:%s ",sum,abs->CarArr[i].brand,abs->CarArr[i].c_Num);
		 	    }
												 }	
				break;
			case 4:
				char str1[10]={"丰田皇冠"};
				for(int i=0;i< abs->c_size;i++){
		 		
		 		if(strcmp(abs->CarArr[i].brand,str1)==0){
		 		 printf("品牌:%s\t车牌:%s\t日租金:%.1f\t\n",abs->CarArr[i].brand,abs->CarArr[i].c_Num,abs->CarArr[i].rent);
		 		 int days;int rent=abs->CarArr[i].rent;
		 		 printf("请输入要租用的天数:\n");
		 		 scanf("%d",&days);
		 		 float sum=rentsum(rent,days);
		 		 printf("租金为%.1f 租用的车辆:%s 车牌:%s ",sum,abs->CarArr[i].brand,abs->CarArr[i].c_Num);
		 	    }
												 }
				break;
	                   }
	        break;
	    case 2:
	    	for(int i=0;i< abs->c_size;i++)
		 	if(strcmp(t2,abs->CarArr[i].type)==0){
		 	printf("车型:%s\t品牌:%s\t车牌:%s\t日租金:%.1f\t\n",abs->CarArr[i].type,abs->CarArr[i].brand,abs->CarArr[i].c_Num,abs->CarArr[i].rent);
		 	}
		 	printf(" 折扣:天数>=3天九折\n 天数>=7天八折\n 天数>=30天七折\n 天数>=150天六折\n");
		 	printf("请选择您要租赁的汽车品牌:\n");
		 	printf("1、金杯2、宇通 \n");
		 	int chose2;
		 	scanf("%d",&chose2);
		 	switch(chose2){
		 		case 1:
		 			for(int i=0;i<abs->c_size;i++){
		 				char str1[10]={"金杯"};char str2[10];
		 				strncpy(str2,abs->CarArr[i].brand,4);
		 				if(strcmp(str1,str2)==0){
		 					printf("品牌:%s\t车牌:%s\t日租金:%.1f\t\n",abs->CarArr[i].brand,abs->CarArr[i].c_Num,abs->CarArr[i].rent);
		 				}
		 			}
		 			printf("请选择座位数:1、16座    2、34座\n");
		 			int chose4;
		 			scanf("%d",&chose4);switch(chose4){
		 				case 1:
		 					
							for(int i=0;i< abs->c_size;i++){
		 					char str1[10]={"金杯 16座"};
		 					if(strcmp(abs->CarArr[i].brand,str1)==0){
		 		 			printf("品牌:%s\t车牌:%s\t日租金:%.1f\t\n",abs->CarArr[i].brand,abs->CarArr[i].c_Num,abs->CarArr[i].rent);
		 				    int days;int rent=abs->CarArr[i].rent;
		 					 printf("请输入要租用的天数:\n");
		 					 scanf("%d",&days);
		 					 float sum=rentsum1(rent,days);
		 					 printf("租金为%.1f 租用的车辆:%s 车牌:%s ",sum,abs->CarArr[i].brand,abs->CarArr[i].c_Num);
		 	   				 }
		 			        }
		 			        break;
		 			    case 2:
		 			    	
							for(int i=0;i< abs->c_size;i++){
		 					char str2[10]={"金杯 34座"};
		 					if(strcmp(abs->CarArr[i].brand,str2)==0){
		 		 			printf("品牌:%s\t车牌:%s\t日租金:%.1f\t\n",abs->CarArr[i].brand,abs->CarArr[i].c_Num,abs->CarArr[i].rent);
		 				    int days;int rent=abs->CarArr[i].rent;
		 					 printf("请输入要租用的天数:\n");
		 					 scanf("%d",&days);
		 					 float sum=rentsum1(rent,days);
		 					 printf("租金为%.1f 租用的车辆:%s 车牌:%s ",sum,abs->CarArr[i].brand,abs->CarArr[i].c_Num);
		 	   				 }
		 			        }
		 			        break;
		 			}
	    			break;
	    		case 2:
	    			for(int i=0;i<abs->c_size;i++){
		 				char str1[10]={"宇通"};char str2[10];
		 				strncpy(str2,abs->CarArr[i].brand,4);
		 				if(strcmp(str1,str2)==0){
		 					printf("品牌:%s\t车牌:%s\t日租金:%.1f\t\n",abs->CarArr[i].brand,abs->CarArr[i].c_Num,abs->CarArr[i].rent);
		 				}
		 			}int chose3;
		 			printf("请选择座位数:1、16座    2、34座\n");
		 			scanf("%d",&chose3);
		 			switch(chose3){
		 				case 1:
		 					
							for(int i=0;i< abs->c_size;i++){
		 					char str1[10]={"宇通 16座"};
		 					if(strcmp(abs->CarArr[i].brand,str1)==0){
		 		 			printf("品牌:%s\t车牌:%s\t日租金:%.1f\t\n",abs->CarArr[i].brand,abs->CarArr[i].c_Num,abs->CarArr[i].rent);
		 				    int days;int rent=abs->CarArr[i].rent;
		 					 printf("请输入要租用的天数:\n");
		 					 scanf("%d",&days);
		 					 float sum=rentsum1(rent,days);
		 					 printf("租金为%.1f 租用的车辆:%s 车牌:%s ",sum,abs->CarArr[i].brand,abs->CarArr[i].c_Num);
		 	   				 }
		 			        }
		 			        break;
		 			    case 2:
		 			    	
							for(int i=0;i< abs->c_size;i++){
		 					char str2[10]={"宇通 34座"};
		 					if(strcmp(abs->CarArr[i].brand,str2)==0){
		 		 			printf("品牌:%s\t车牌:%s\t日租金:%.1f\t\n",abs->CarArr[i].brand,abs->CarArr[i].c_Num,abs->CarArr[i].rent);
		 				    int days;int rent=abs->CarArr[i].rent;
		 					 printf("请输入要租用的天数:\n");
		 					 scanf("%d",&days);
		 					 float sum=rentsum1(rent,days);
		 					 printf("租金为%.1f 租用的车辆:%s 车牌:%s ",sum,abs->CarArr[i].brand,abs->CarArr[i].c_Num);
		 	   				 }
		 			        }
		 			        break;
      				}
      				break;
				}
				break;
				case 3:
					for(int i=0;i< abs->c_size;i++)
		 		if(strcmp(t2,abs->CarArr[i].type)==0){
		 		printf("车型:%s\t品牌:%s\t车牌:%s\t日租金:%.1f\t\n",abs->CarArr[i].type,abs->CarArr[i].brand,abs->CarArr[i].c_Num,abs->CarArr[i].rent);
		 			}
		 		printf(" 折扣:天数>=3天九折\n 天数>=7天八折\n 天数>=30天七折\n 天数>=150天六折\n");
		 		printf("请选择您要租赁的汽车品牌:\n");
		 		printf("1、东风    2、解放 \n");
		 		int chose3;
		 		scanf("%d",&chose3);
		 		switch(chose3){
		 		case 1:
		 			for(int i=0;i<abs->c_size;i++){
		 				char str1[10]={"东风"};char str2[10];
		 				strncpy(str2,abs->CarArr[i].brand,4);
		 				if(strcmp(str1,str2)==0){
		 					printf("品牌:%s\t车牌:%s\t日租金:%.1f\t\n",abs->CarArr[i].brand,abs->CarArr[i].c_Num,abs->CarArr[i].rent);
		 				}
		 			}
		 			printf("请选择吨位数:1、5t    2、10t\n");
		 			int chose4;
		 			scanf("%d",&chose4);switch(chose4){
		 				case 1:
		 					
							for(int i=0;i< abs->c_size;i++){
		 					char str1[10]={"东风 5t"};
		 					if(strcmp(abs->CarArr[i].brand,str1)==0){
		 		 			printf("品牌:%s\t车牌:%s\t日租金:%.1f\t\n",abs->CarArr[i].brand,abs->CarArr[i].c_Num,abs->CarArr[i].rent);
		 				    int days;int rent=abs->CarArr[i].rent;
		 					 printf("请输入要租用的天数:\n");
		 					 scanf("%d",&days);
		 					 float sum=rentsum2(rent,days);
		 					 printf("租金为%.1f 租用的车辆:%s 车牌:%s ",sum,abs->CarArr[i].brand,abs->CarArr[i].c_Num);
		 	   				 }
		 			        }
		 			        break;
		 			    case 2:
		 			    	
							for(int i=0;i< abs->c_size;i++){
		 					char str2[10]={"东风 10t"};
		 					if(strcmp(abs->CarArr[i].brand,str2)==0){
		 		 			printf("品牌:%s\t车牌:%s\t日租金:%.1f\t\n",abs->CarArr[i].brand,abs->CarArr[i].c_Num,abs->CarArr[i].rent);
		 				    int days;int rent=abs->CarArr[i].rent;
		 					 printf("请输入要租用的天数:\n");
		 					 scanf("%d",&days);
		 					 float sum=rentsum2(rent,days);
		 					 printf("租金为%.1f 租用的车辆:%s 车牌:%s ",sum,abs->CarArr[i].brand,abs->CarArr[i].c_Num);
		 	   				 }
		 			        }
		 			        break;
		 		break;	
		 	}
	    	break;
	    		case 2:
	    			for(int i=0;i<abs->c_size;i++){
		 				char str1[10]={"解放"};char str2[10];
		 				strncpy(str2,abs->CarArr[i].brand,4);
		 				if(strcmp(str1,str2)==0){
		 					printf("品牌:%s\t车牌:%s\t日租金:%.1f\t\n",abs->CarArr[i].brand,abs->CarArr[i].c_Num,abs->CarArr[i].rent);
		 				}
		 			}int chose3;
		 			printf("请选择吨位数:1、5t    2、10t\n");
		 			scanf("%d",&chose3);
		 			switch(chose3){
		 				case 1:
		 					
							for(int i=0;i< abs->c_size;i++){
		 					char str1[10]={"解放 5t"};
		 					if(strcmp(abs->CarArr[i].brand,str1)==0){
		 		 			printf("品牌:%s\t车牌:%s\t日租金:%.1f\t\n",abs->CarArr[i].brand,abs->CarArr[i].c_Num,abs->CarArr[i].rent);
		 				    int days;int rent=abs->CarArr[i].rent;
		 					 printf("请输入要租用的天数:\n");
		 					 scanf("%d",&days);
		 					 float sum=rentsum1(rent,days);
		 					 printf("租金为%.1f 租用的车辆:%s 车牌:%s ",sum,abs->CarArr[i].brand,abs->CarArr[i].c_Num);
		 	   				 }
		 			        }
		 			        break;
		 			    case 2:
		 			    	
							for(int i=0;i< abs->c_size;i++){
		 					char str2[10]={"解放 10t"};
		 					if(strcmp(abs->CarArr[i].brand,str2)==0){
		 		 			printf("品牌:%s\t车牌:%s\t日租金:%.1f\t\n",abs->CarArr[i].brand,abs->CarArr[i].c_Num,abs->CarArr[i].rent);
		 				    int days;int rent=abs->CarArr[i].rent;
		 					 printf("请输入要租用的天数:\n");
		 					 scanf("%d",&days);
		 					 float sum=rentsum1(rent,days);
		 					 printf("租金为%.1f 租用的车辆:%s 车牌:%s ",sum,abs->CarArr[i].brand,abs->CarArr[i].c_Num);
		 					 
		 	   				 }
		 			        }
		 			        break;
	    			break;
      				}
				}
				
		}
}
void AdminMenu(carbooks *abs) {
	printf("*************************\n");
	printf(" 1 新加入可租用的车辆信息\n") ;
	printf(" 2 删除可租用的车辆信息\n") ;
	printf(" 3 更改车辆信息\n") ;
	printf(" 4 计算营业额 \n");
	printf(" 5 显示目前所有车辆信息\n");
	printf("*************************\n");
	int chose;
	scanf("%d",&chose);
	switch(chose){
		case 1:
			addCar(abs);
		break;//加车结束 
		case 2:
			deleteCar(abs);
		break;//删车结束 
		case 3:
			changeCar(abs);
			break;//更改结束 
		case 4:
			printf("营业额为:%.1f\n",zong);
			break;
		case 5:
			showCar(abs);
			break;
	}//switch结束 	
}//admin函数结束 

//1、主界面 欢迎进入租车系统 请登录 
int main(){
	carbooks abs;
	abs.c_size=12;
	int chose;
	
	printf("\n欢迎进入租车系统 \n");
	while(true){
	printf("选择账户登录:\n");
	printf("1、用户    2、管理员   0、退出\n");
	scanf("%d",&chose);
	switch(chose){
		case 1:
		
		
		usermenu(&abs);
		system("pause");
		system("CLS");
		//用户
		break;
		case 2:
		AdminMenu(&abs);
		system("pause");
		system("CLS");
		break;	  //管理员	
		case 0:
			system("pause");
		return 0;
		break;   
							              

}
}

	return 0;
}

 

//END

  • 6
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值