车辆管理系统设计(C++)

C++车辆管理系统设计
本文介绍了一个使用C++实现的车辆管理系统,系统包括车辆信息的添加、查询、显示、编辑、删除、统计等功能。通过面向对象的方法,设计了车辆结构体和管理类,实现了车辆信息的高效管理和操作。

车辆管理系统设计(C++)


#include<iostream>
#include<windows.h>
#include<fstream>
#define N 100 //车辆总存储量
using namespace std;
struct Cars{
	int num; //车辆编号
	int pnum;  //车牌号 
	char made[20];//制造公司 
	double year; //生产日期 
	char type; //车辆型号B-大客车,C-小轿车,L-卡车
	int km; //总公里数
	int cost; //基本维护费用
};
class Manager{
private:Cars car[N];
	int people[N];//载客量
	int coach[N]; //箱数
	int weight[N];//载重量
	int top; //记录当前车辆数量
public:Manager()  {top = 0;};//车辆初始值为0
	void add(); //添加函数 
	void search();//查询函数
	void show(); //显示函数
	void edit(); //编辑函数
	void delet(); //删除函数
	void sum(); //统计函数
	void read(); //读取函数
	void write(); //存储函数
	void jiemian();//总界面
};
void Manager::add()
{
	int a = 0, y;
	while(1)
	{
		if(top < N)
{
	int i;
	cout<<"请输入需添加的车辆信息:"<<endl;
	cout<<"请输入车辆编号:";  cin>>i;
	for(int j = 0; j < top; j++)
{
	if(car[j].num == i)
		{cout<<"编号重复,添加失败!系统将自动返回..."<<endl;
		a++;
		break;}
}
	if(a == 0){ //编号不重复
	car[top].num = i;
	cout<<"请输入车牌号:";  cin>>car[top].pnum;
	cout<<"请输入车辆制造公司:";  cin>>car[top].made;
	cout<<"请输入购买时间:";  cin>>car[top].year;   
	cout<<"请选择车辆型号(B-大客车,C-小轿车,L-卡车):";  cin>>car[top].type;
	cout<<"请输入总公里数:";  cin>>car[top].km;
	if(car[top].type == 'B'|| car[top].type == 'b')
		{
			cout<<"请输入载客量:";  cin>>people[top];
			car[top].cost = 2000;}
	else if(car[top].type == 'C'|| car[top].type == 'c')
	{
		cout<<"请输入车厢数:";  cin>>coach[top];
		car[top].cost = 1000;}
	else
		{
			cout<<"请输入载重量:";  cin>>weight[top];
			car[top].cost = 1500;}
	top++;
	cout<<"是否继续添加?(1-是, 2-否)"<<endl;
	cin>>y;
	if(y == 2)
	{
		cout<<"请稍等,系统将自动返回功能界面..."<<endl;
		break;}
	}
	else //编号重复
	break;
}
	else
	{cout<<"车辆信息库已满,不能再添加!"<<endl;
	cout<<"系统将自动返回功能界面..."<<endl;
	break;}
}
	Sleep(2000);
	jiemian();
}
void Manager::search()
{
int i, j, a = 0, b;
char k;
cout<<"*  1.按车辆制造公司查询  *"<<endl;
cout<<"*  2.按编号查询          *"<<endl;
cout<<"*  3.按类别查询          *"<<endl;
cout<<"*  请输入你的选项:(1-3)*"<<endl;
cin>>i;
switch(i){
	case 1:char  m[20];
		cout<<"请输入需查询车辆的制造公司:"<<endl;
		cin>>m;
		for(j = 0; j < top; j++)
		{
		if(strcmp(car[j].made, m) == 0)
		{
		cout<<"车辆编号:"<<car[j].num<<"  "<<"车牌号:"<<car[j].pnum<<"  "
		<<"车辆制造公司:"<<car[j].made<<"  "<<"车辆购买时间:"<<car[j].year<<"  "
		<<"车辆型号:"<<car[j].type<<"  "<<"总公里数:"<<car[j].km<<"  ";
		if(car[j].type == 'B'|| car[j].type == 'b')
			cout<<"载客量:"<<people[j]<<"  "<<"基本费用:"<<car[j].cost<<endl;
		else if(car[j].type == 'C'|| car[j].type == 'c')
		cout<<"车厢数:"<<coach[j]<<"  "<<"基本费用:"<<car[j].cost<<endl;
		else 
			cout<<"载重量:"<<weight[j]<<"  "<<"基本费用:"<<car[j].cost<<endl;
			a++;}
		}
		if(a == 0)
			cout<<"该车辆制造公司不存在!"<<endl;
		else
			{cout<<"是否进行修改?(Y-是,N-否)"<<endl;
				cin>>k;if(k == 'Y' || k == 'y')edit();}
				break;
	case 2:  int n;
		cout<<"请输入需查询的车辆编号:"<<endl;
		cin>>n;
		for( j = 0; j < top; j++)
			{if(car[j].num == n)
			{
			cout<<"车辆编号:"<<car[j].num<<"  "<<"车牌号:"<<car[j].pnum<<"  "
			<<"车辆制造公司:"<<car[j].made<<"  "<<"车辆购买时间:"<<car[j].year<<"  "
			<<"车辆型号:"<<car[j].type<<"  "<<"总公里数:"<<car[j].km<<"  ";
			if(car[j].type == 'B'|| car[j].type == 'b')
				cout<<"载客量:"<<people[j]<<"  "<<"基本费用:"<<car[j].cost<<endl;
			else if(car[j].type == 'C'|| car[j].type == 'c')
				cout<<"车厢数:"<<coach[j]<<"  "<<"基本费用:"<<car[j].cost<<endl;
			else
				cout<<"载重量:"<<weight[j]<<""<<"基本费用:"<<car[j].cost<<endl;a++;}
			}
			if(a == 0)
				cout<<"该车辆编号不存在!"<<endl;
			else
				{cout<<"是否进行修改?(Y-是,N-否)"<<endl;
				cin>>k;if(k == 'Y' || k == 'y')edit();
				}break;
	case 3: char t;
		cout<<"请输入需查询的车辆型号:(B-大客车,C-小轿车,L-卡车)"<<endl;
		cin>>t;
		for(j = 0; j < top; j++)
		{if(car[j].type == t)
		{
		cout<<"车辆编号:"<<car[j].num<<"  "<<"车牌号:"<<car[j].pnum<<"  "
		<<"车辆制造公司:"<<car[j].made<<"  "<<"车辆购买时间:"<<car[j].year<<"  "
		<<"车辆型号:"<<car[j].type<<"  "<<"总公里数:"<<car[j].km<<"  ";
		if(car[j].type == 'B'|| car[j].type == 'b')
			cout<<"载客量:"<<people[j]<<"  "<<"基本费用:"<<car[j].cost<<endl;
		else if(car[j].type == 'C'|| car[j].type == 'c')
			cout<<"车厢数:"<<coach[j]<<"  "<<"基本费用:"<<car[j].cost<<endl;
		else
			cout<<"载重量:"<<weight[j]<<"  "<<"基本费用:"<<car[j].cost<<endl;
			a++;}
		}
		if(a == 0)
			{cout<<"该车辆型号不存在!"<<endl;}
		else
			{cout<<"是否进行修改?(Y-是,N-否)"<<endl;
			cin>>k;if(k == 'Y' || k == 'y')  edit();
			}break;
	default: cout<<"输入有误!"<<endl;
	break;
	}
	Sleep(2000);
	cout<<"按1返回主界面:"<<endl;
	cin>>b;
	if(b == 1) jiemian();
	else{cout<<"输入有误,系统将退出..."<<endl;
		Sleep(3000);
	return;}
}
void Manager::show()
{
int i;
if(top != 0)
	{cout<<"当前车库中的所有车辆信息为:"<<endl;
	for(int j = 0; j < top; j++)
		{
		cout<<"车辆编号:"<<car[j].num<<"  "<<"车牌号:"<<car[j].pnum<<endl 
		<<"车辆制造公司:"<<car[j].made<<"  "<<"车辆购买时间:"<<car[j].year<<endl
		<<"车辆型号:"<<car[j].type<<"  "<<"总公里数:"<<car[j].km<<endl;
		if(car[j].type == 'B'|| car[j].type == 'b')
			cout<<"载客量:"<<people[j]<<"  "<<"基本费用:"<<car[j].cost<<endl;
	else if(car[j].type == 'C'|| car[j].type == 'c')
			cout<<"车厢数:"<<coach[j]<<""<<"基本费用:"<<car[j].cost<<endl;
	else
		cout<<"载重量:"<<weight[j]<<"  "<<"基本费用:"<<car[j].cost<<endl;
		}
		}
	else
		cout<<"车辆库为空!"<<endl;
cout<<"按1返回主界面:"<<endl;
cin>>i;
if(i == 1) jiemian();
else
	{cout<<"输入有误,系统将退出..."<<endl;
	Sleep(3000);
	return ;
	}
}
void Manager::edit()
{
int i, j, a = 0;
char m[20];
cout<<"请依次输入需要修改的车辆信息:"<<endl;
while(1){
cout<<"车辆编号:";
cin>>i;
for(j = 0; j < top; j++)
{
	if(car[j].num == i)
		{cout<<"车牌号:";
		cin>>car[j].pnum;
		cout<<"车辆制造公司:";
		cin>>m;
		strcpy(car[j].made, m);
		cout<<"购买时间:";
		cin>>car[j].year;
		cout<<"车辆型号(B-大客车,C-小轿车,L-卡车):";
		cin>>car[j].type;
		cout<<"总公里数:";
		cin>>car[j].km;
	if(car[j].type == 'B'||car[j].type == 'b')
		{cout<<"载客量:";cin>>people[j];}
	else if(car[j].type == 'C'||car[j].type == 'c')
		{cout<<"车厢数:";cin>>coach[j];}
	else
		{cout<<"载重量:";
		cin>>weight[j];
		}
		a++;
		}
}
if(a == 0)
	cout<<"此编号不存在,不能进行修改,请重新输入!"<<endl;
if(a != 0)
{cout<<"修改成功!系统将返回主界面..."<<endl;
break;}
}
Sleep(1500);
jiemian();
}
void Manager::delet()
{
int i, a = 0,b=0;
while(1){if(top == 0)
{cout<<"车辆信息库为空!系统将返回功能界面..."<<endl;
b++;
break;
}
else
	{cout<<"请输入需要删除的车辆编号:";
cin>>i;`在这里插入代码片`
for(int j = 0; j < top; j++)
{if(car[j].num == i){//车辆编号存在
if(car[top - 1].type == 'B'|| car[top - 1].type == 'b')
{people[j] = people[top - 1];
	car[j].cost = 2000;
	b++;
}
else if(car[top - 1].type == 'C'|| car[top - 1].type == 'c')
	{coach[j] = coach[top - 1];
	car[j].cost = 1000;
	b++;}
else{weight[j] = weight[top - 1];
	car[j].cost = 1500;
	}
	car[j].num = car[top - 1].num;
	car[j].pnum = car[top - 1].pnum;
	strcpy(car[j].made, car[top - 1].made);
	car[j].year = car[top - 1].year;
	car[j].type = car[top - 1].type;
	car[j].km = car[top - 1].km;
	top--;
	a++;
	b++;
	}
}
if(a == 0)
	cout<<"此编号不存在,不能进行删除,请重新输入!"<<endl;
	else{cout<<"删除成功!系统将返回功能界面..."<<endl;
		break;}
		}
}
if(b==1)
	{
	Sleep(5000);
	jiemian();}
}
void Manager::sum()
{if(top != 0)
	{int j, b = 0, c = 0, l = 0;
		cout<<"当前车辆信息库中总车辆数为:"<<top<<"辆"<<endl;
	for(j = 0; j < top; j++)
		{if(car[j].type == 'B'|| car[j].type == 'b')
		b++; //统计大客车的数量
else if(car[j].type == 'C'|| car[j].type == 'c')
	c++; //统计小轿车的数量
else
	l++; //统计卡车的数量
	}
cout<<"各型号车辆数为:"<<endl;
cout<<"大客车:"<<b<<"辆"<<"  "<<"小轿车:"<<c<<"辆"<<"  "
<<"卡车:"<<l<<"辆"<<endl;}
else
	cout<<"车库信息为空!"<<endl;
cout<<"系统将返回主界面..."<<endl;
Sleep(5000);
jiemian();
}
void Manager::write(){
ofstream in("guanli.txt",ios_base::app);
for(int i = 0; i < top ; i++)
{	cout<<"车辆编号:";
	in<<car[i].num<<" "<<endl;
	cout<<"车牌号:";
	in<<car[i].pnum<<" "<<endl;
	cout<<"车辆制造公司:";
	in<<car[i].made<<" "<<endl;
	cout<<"车辆购买时间:";
	in<<car[i].year<<" "<<endl;
	cout<<"车辆型号:";
	in<<car[i].type<<" "<<endl;
	cout<<"总公里数:";
	in<<car[i].km<<" "<<endl;
	cout<<"基本维护费用:";
	in<<car[i].cost<<" "<<endl;
	if(car[i].type == 'B'|| car[i].type == 'b')
		{cout<<"载客量:";in<<people[i]<<endl;}
	else if(car[i].type == 'C'|| car[i].type == 'c')
		{cout<<"车厢数:";in<<coach[i]<<endl;}
	else
		{cout<<"载重量:";in<<weight[i]<<endl;}}
	in.close();
	cout<<"车辆信息已成功写入同目录下的a.txt文件中!系统将返回主界面..."<<endl;
		Sleep(3000);
	jiemian();
}
void Manager::read()
{
ifstream out("guanli.txt",ios::in);
while(!out.eof())
	{
	out>>car[top].num>>car[top].pnum>>car[top].made
	>>car[top].year>>car[top].type>>car[top].km>>car[top].cost;
	if(car[top].type == 'B'|| car[top].type == 'b')
		out>>people[top];
	else if(car[top].type == 'C'|| car[top].type == 'c')
		out>>coach[top];
	else
		out>>weight[top];
		top++;}
	out.close();
	//if(out.eof()) cout<<"系统将返回主界面..."<<endl;
	cout<<"读取同目录下guanli.txt文件成功!系统将返回主界面..."<<endl;
	top--; 
	Sleep(3000);
	jiemian();
}
void Manager::jiemian()
	{system("cls");
	int i;
	cout<<"***********************************"<<endl;
	cout<<"*        欢迎进入车辆管理系统     *"<<endl;
	cout<<"*            1.添加车辆           *"<<endl;
	cout<<"*            2.查询车辆           *"<<endl;
	cout<<"*            3.显示车辆           *"<<endl;
	cout<<"*            4.编辑车辆           *"<<endl;
	cout<<"*            5.删除车辆           *"<<endl;
	cout<<"*            6.统计车辆           *"<<endl;
	cout<<"*            7.存储车辆           *"<<endl;
	cout<<"*            8.读取车辆           *"<<endl;
	cout<<"*            0.退出系统           *"<<endl;
	cout<<"***********************************"<<endl;
	cout<<"请输入你需要操作的选项:(0-8)"<<endl;
	cin>>i;
	switch(i)
	{case 1: add();break;
	case 2:  search();break;
	case 3:  show();break;
	case 4:  edit();break;
	case 5:  delet();break;
	case 6:  sum();break;
	case 7:  write();break;
	case 8:  read();break;
	case 0:  return;
	default:  cout<<"输入有误!系统将退出..."<<endl;}
	return ;
}
int main()
{Manager a;
a.jiemian();
return 0;
}
车辆管理系统主要负责各种车辆的常规信息管理工作。 系统中的车辆主要有大客车、小轿车和卡车。每种车辆有车辆编号、车牌号、车辆制造公司、车辆购买时间、车辆型号(大客车、小轿车和卡车)、总公里数、 耗油量/公里、基本维护费用、养路费、累计总费用等信息。大客车还有载客量(最大载客数)信息,小轿车还有箱数(两厢或三厢)信息,卡车还有载重量等 信息。 每台车辆当月总费用=油价*耗油量/公里+基本维护费用。 基本维护费用:客车:2000 元/月,小轿车:1000 元/月,卡车:1500 元/月 功能要求: (1)添加车辆:主要完成车辆信息的添加,要求编号唯一。当添加了重复的编号时,则提示数据添加重复并取消添加;当车辆信息库已满,则提示不能再 添加新的数据。 (2)查询车辆:可按照三种方式来查询物品,分别为: 按车辆制造公司查询:输入车辆制造公司,输出所查询的信息,若不存在该记录,则提示“该车辆制造公司不存在!”; 按编号查询:输入编号,输出所查询的信息,若不存在该记录,则提示“该编号不存在!”; 按类别查询:输入类别,输出所查询的信息,若不存在记录,则提示“该类别没有车辆!”; (3)显示车辆信息库:输出当前车辆信息库中所有车辆信息,每条记录占据一行。 (4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。 (5)删除车辆:主要完成车辆信息的删除。如果当前车辆信息库为空,则提示“车辆信息库为空!”,并返回操作;否则,输入要删除的编号,根据编号删 除该车辆的记录,如果该编号不在车辆信息库库中,则提示“该编号不存在”。 (6)统计信息 输出当前车辆信息库中总物品数,以及按车辆类别,统计出当前车辆信息库中各类别的物品数并显示。 (7)车辆信息存盘:将当前程序中的车辆信息存入文件中。 (8)读出车辆信息:从文件中将车辆信息读入程序。
******************* 实践教学 ******************* 理工大学 计算机与通信学院 2011年春季学期 C程序设计 课程设计 题 目: 专业班级: 姓 名: 学 号: 指导教师: 成 绩:__________________ 摘 要 在车辆销售管理当中,人工统计的速度慢,并且容易出现差错。本车辆销售管理系统的自动化加速了统计工作,提高管理效率。本程序主要采用对输入的相关信息进行自动分析,然后按组分类将数据保存到数组,这样的结构化非常便于程序后续的统计工作。统计具体过程涉及到车辆进价售价及利润排序等问题,将于正文中详细介绍。本程序实现了所有设计要求。 关键词:文件;排序;统计;C语言 目 录 一、需求分析 1 二、总体设计 2 三、详细设计 3 3.1 详细设计思路 3 3.2 算法流程图 3 四、编码 7 五、测试 8 六、设计总结 12 参考文献 13 致谢 14 附录 15 一、需求分析 本程序将用到文件系统,list.txt文件内容作为数据源,其中单行内容代表一张纸条。程序运行后首先将文件系统的原始数据读取并保存到程序的结构体数组当中,所以应提供文件输入的操作;由于纸条数据零散,所以要对原始数据进行分类操作并提供一个数组用于保存分类信息;在程序中要进行统计工作,所以要提供显示、排序等操作;另外应提供键盘式选择菜单实现功能选择。 二、总体设计 图1 车辆销售管理系统功能模块图 三、详细设计 3.1 详细设计思路 1.main()主函数 设置了程序的流程,结束程序。 2.select ( ) 选择函数 选择所想运行的各个函数. 3.functionscan ( ) 输入函数输入便条的数据. 4.function1 ( ) 文件的数据输入函数多次输入数据 5. function2 ( ) 统计函数每种汽车销售量以及销售额的统计 6. functionpaixu2 ( )总额排序函数按销售额对汽车进行排序 7. function4() 总额统计函数统计每种汽车的总额 8. function5() 统计报表函数统计商品总额 9. function6() 清空文件函数 清空文件数据 3.2 算法流程图 3.2.1保存函数Save()的算法流程图如图2所示。 图2 保存函数Save()的算法流程图 3.2.2输入函数input()的算法流程图如图3所示。 图3 输入函数的算法流程图 3.2.3 输出汽车信息 图4 输出汽车信息 四、编码 原始数据有汽车编码,车名,进价,售价,销售数量。年所以定义一个全局结构体数组scrip用于保存原始数据。然后定义全局变量n保存纸条数目,定义数组s用于保存分类后的信息。源代码见附录 五、测试 1输入新数据测试如图5所示 图5 输入新数据测试 2按车名查找数据测试如图6所示 图6按车名查找数据测试 3按编号查找数据测试如图7所示 图7 按编号查找数据测试 4按车辆名称删除数据测试如图8所示 图8车辆名称删除数据测试 5列出所有数据测试如图9所示 图9列出所有数据测试 6统计各产品的收益和总收益测试如图10所示 图10统计各产品的收益和总收益测试 7按车辆销售额的大小排序并输出排序后结果测试如图11所示 图11按车辆销售额的大小排序并输出排序后结果测试 六、设计总结 通过这次C程序设计,我掌握了模块化设计方法,能够深入的理解结构化程序设计思想,熟练运用结构化程序设计方法,提高了运用C语言进行程序设计的能力。 回顾起这次课程设计,至今我仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整一个星期的日子里,可以学到很多的东西。同时不仅可以巩固了以前所学到的知识,而且学到了很多在书本上所没有学到过的知识,通过这次课程设计使我懂得了理论与实际相结合是很重要的。只有理论知识是远远不够的,只有把所学的理论知识与实际相结合起来,从理论中得出结论。才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,通过同学的帮助,逐渐克服各种问题,并且从中学习到了很多的东西。通过这次编程。我发现了很多的不足。让我了解到自身的问题。让我不断的进步。 参考文献 1 C/C++程序设计,王连相等,中国科学技术出版社,2004 2 C语言程序设计,谭浩强,清华大学出版社,1999 3 C程序设计题解与上机指导,谭浩强,清华大学出版社,1999 4 C语言实用程序荟萃,西安电子科技大学出版社,1993 5 C语言函数手册,机械工业出版社,1999 6 C语言的实际应用,安徽科学技术出版社,2000 致谢 首先感谢我们的C程序老师让我学会了很多有关于C程序的知识。让我认识到C程序的重要性。再感谢我们周老师对我们做这次课设的支持与帮助。没有她的帮助,我们很难完美的完成这次课设。最后谢谢我的搭档康绿玉同学帮我攻克了许多难关,康绿玉同学给了我很大的鼓励。 附录 #include "stdio.h" #include "string.h" #include #define N 30 //struct car/*定义车辆信息结构体*/ #define N 30 struct car/*定义车辆信息结构体*/ { int number;/*车辆编号*/ char name[10];/*车辆名称*/ int inprice;/*进价*/ int outprice;/*售价*/ int quantity;/*车辆数量*/ }car[N];/*结构体数组*/ void welcome()/*欢迎界面*/ { printf(" ^^^^^^^ ^^^^^^^\n"); printf(" --------------------welcome--------------------\n"); printf(" #* *#\n"); printf(" #* 销售管理系统 *#\n");/*销售管理系统*/ printf(" #* *#\n"); printf(" ---------=====!what do you want to do!=====---------\n"); printf("\n"); printf(" **~~ 1 输入新数据 ~~**\n");/*输入一组新数据*/ printf(" **~~ 2 插入数据 ~~**\n");/*插入一组新数据*/ printf(" **~~ 3 按车辆名称查找数据 ~~**\n");/*按车辆名称查找数据*/ printf(" **~~ 4 按车辆编号查找数据 ~~**\n");/*按车辆编号查找数据*/ printf(" **~~ 5 按车辆名称查找并删除数据 ~~**\n");/*按车辆名称查找并删除数据*/ printf(" **~~ 6 列出所有数据 ~~**\n");/*列出所有数据*/ printf(" **~~ 7 统计各产品的收益及总收益 ~~**\n");/*统计各产品的收益及总收益*/ printf(" **~~ 8 按车辆销售额从小到大排序并输出排序前后的结果 ~~**\n");/*按车辆销售额从小到大排序并输出排序前后的结果*/ printf("\n"); printf(" ----------------\n"); printf("\n"); printf("please input you choice(A number between 1 and 8):\n"); } void input1(int i)/*输入单组数据*/ { printf("请输入车辆数据:\n");/*输入数据*/ printf("请输入车辆编号:\n");/*输入车辆编号*/ scanf("%d",&car[i].number); printf("请输入车名:\n");/*输入车辆名称*/ scanf("%s",&car[i].name); printf("请输入车辆进价:\n");/*输入车辆进价*/ scanf("%d",&car[i].inprice); printf("请输入车辆售价:\n");/*输入车辆售价*/ scanf("%d",&car[i].outprice); printf("请输入车辆数量:\n");/*输入车辆数量*/ scanf("%d",&car[i].quantity); } void input()/*连续输入多组数据*/ { int i,m=0; char x; for(i=0;i<N;i++) if(strlen(car[i].name)!=0)/*计算已有的数据个数*/ m++; for(i=m;i<N-1;i++) { input1(i); x=getchar(); if(x=='y') continue;/*继续输入*/ else break;/*中断输入*/ } } int insert()/*添加一组新数据*/ { int i,m=0; for(i=0;i<N;i++) if(strlen(car[i].name)!=0)/*计算已有的数据个数*/ m++; input1(m);/*输入此数据*/ return 0; } void search_name()/*按车名查找*/ { char name[20]; int i,flag=0; printf("输入要查找的车辆的品名:");/*输入要查找的车辆的品名*/ scanf("%s",&name); for(i=0;i<N;i++) if(strcmp(car[i].name,name)==0)/*校验品名*/ { printf("the information of this name:\n"); printf("Number: %d\nName: %s\nInprice: %d\nOutprice: %d\nQuantity: %d\n",car[i].number,car[i].name,car[i].inprice,car[i].outprice,car[i].number);/*输出要查找的数据的编号、车名、进价、售价、数量*/ flag=1; } if(flag==0) printf("The name is not exist !\n");/*所输入的车名不存在*/ } Delete()/*通过车名查找并删除数据*/ { char n[10]; int i,j,b=0,m=0; for(i=0;i<N;i++) if(strlen(car[i].name)!=0)/*计算已有的数据个数*/ m++; printf("输入要删除的数据的名称");/*输入要删除的数据的名称*/ scanf("%s",&n); for(i=0;i<m;i++) if(strcmp(car[i].name,n)==0)/*校验名称*/ { for(j=i;j<=m;j++) car[j]=car[j+1]; b=1; } if(b==0) printf("没有要找的数据!\n");/*没有要找的数据*/ if(b==1) printf("成功删除数据!\n");/*成功删除数据*/ } void search_number()/*按车辆编号查找*/ { int number,i,flag=0; printf("请输入要查找的车辆编号:");/*输入要查找的车辆的编号*/ scanf("%d",&number); for(i=0;i<N;i++) if(car[i].number==number)/*校验车辆编号*/ { printf("the information of this number:\n"); printf("Number: %d\nName: %s\nInprice: %d\nOutprice: %d\nQuantity: %d\n",car[i].number,car[i].name,car[i].inprice,car[i].outprice,car[i].number);/*输出要查找的数据的编号、车名、进价、售价、数量*/ flag=1; } if(flag==0) printf("所暑促的编号不存在 !\n");/*所输入的编号不存在*/ } void profit()/*统计各车辆的收益及总收益的函数*/ { int p[N],pr=0,i,m=0; for(i=0;i<N;i++) if(strlen(car[i].name)!=0)/*计算已有的数据个数*/ m++; for(i=0;i<m;i++) { p[i]=(car[i].outprice-car[i].inprice)*car[i].quantity;/*计算车辆i的收益*/ pr=pr+p[i];/*计算总收益*/ printf("Name: %-7s\tNumber: %-7d\tprofit: %-10d\n",car[i].name,car[i].number,p[i]);/*输出车辆i的收益*/ } printf("Total Profit: %d\n",pr);/*输出总收益*/ } void sort()/*按销售额排序*/ { int i,j,t,s,m=0,b[N],a[N]; for(i=0;i<N;i++) if(strlen(car[i].name)!=0)/*计算已有的数据个数*/ m++; for(i=0;i<m;i++) { b[i]=car[i].outprice*car[i].quantity;/*将车辆销售额放入数组b[i]*/ a[i]=car[i].number;/*将车辆编号放入数组a[i]*/ } printf("Before sorted:\n"); for(i=0;i<m;i++) /*输出排序前的结果,编号和销售额*/ printf("Number: %-5d\tSale: %-10d\n",a[i],b[i]); for(i=1;i<m;i++) for(j=0;jb[j+1]) { t=b[j]; b[j]=b[j+1]; b[j+1]=t; /*冒泡法排序*/ s=a[j]; a[j]=a[j+1]; a[j+1]=s; } printf("After sorted:\n"); /*输出排序后的结果,编号和销售额*/ for(i=0;i<m;i++) printf("Number: %-5d\tSale: %-10d\n",a[i],b[i]); } void output()/*输出全部数据*/ { int i,m=0; for(i=0;i<N;i++) if(strlen(car[i].name)!=0)/*计算已有的数据个数*/ m++; printf("Disply all the data below:\n"); for(i=0;i<m;i++) { printf("The number: %d\n",car[i].number);/*输出车辆编号*/ printf("The name: %s\n",car[i].name);/*输出车辆名称*/ printf("The inprice: %d\n",car[i].inprice);/*输出车辆进价*/ printf("The outprice: %d\n",car[i].outprice);/*输出车辆售价*/ printf("The quantity: %d\n",car[i].quantity);/*输出车辆数量*/ printf("\n"); } } main()/*主函数*/ { int c; welcome(); while(1) { scanf("%d",&c);/*输入选择项*/ switch(c) { case 0:welcome();break;/*清屏并显示欢迎界面*/ case 1:input();printf("输入数据并提示输入0以返回欢迎界面查看选项!\n");break;/*输入数据并提示输入0以返回欢迎界面查看选项*/ case 2:insert();printf("添加一组新数据并提示输入0以返回欢迎界面查看选项!\n");break;/*添加一组新数据并提示输入0以返回欢迎界面查看选项*/ case 3:search_name();printf("按车名查找并提示输入0以返回欢迎界面查看选项!\n");break;/*按车名查找并提示输入0以返回欢迎界面查看选项*/ case 4:search_number();printf("按车辆编号查找并提示输入0以返回欢迎界面查看选项!\n");break;/*按车辆编号查找并提示输入0以返回欢迎界面查看选项*/ case 5:Delete();printf("按车名查找并删除数据并提示输入0以返回欢迎界面查看选项\n");break;/*按车名查找并删除数据并提示输入0以返回欢迎界面查看选项*/ case 6:output();printf("输出全部数据并提示输入0以返回欢迎界面查看选项\n");break;/*输出全部数据并提示输入0以返回欢迎界面查看选项*/ case 7:profit();printf("统计各车辆的收益及总收益并提示输入0以返回欢迎界面查看选项\n");break;/*统计各车辆的收益及总收益并提示输入0以返回欢迎界面查看选项*/ case 8:sort();printf("按销售额从小到大排序并提示输入0以返回欢迎界面查看选项!\n");break;/*按销售额从小到大排序并提示输入0以返回欢迎界面查看选项*/ } } }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值