C++课程设计( 南阳康佳公司的设备管理系统 )

本文介绍了南阳康佳公司设备管理系统的课程设计,系统涵盖了电视机、DVD和带DVD电视机的管理,包括添加、删除、查找、修改设备信息,以及设备信息的文件保存功能。
摘要由CSDN通过智能技术生成

功能及要求描述:

(1) 公司主要包括三类设备需要管理:电视机、DVD、带DVD的电视机;

(2) 设备主要包含的信息:编号、类别、名称、价格、库存数量;

(3) 添加各类设备信息;

(4) 删除设备信息;

(5) 查找设备信息;

(6) 修改设备信息;

(7) 输出所有设备信息;

(8) 将信息保存到文件;

#include<iostream>
#include<sstream>
#include<fstream>
#include<cstdlib>
#include<vector>
#include<string>
#include<iomanip>
#include<iterator>
#include<algorithm>
#include<conio.h>
#include<Windows.h>
using namespace std;

string itos(int a)
{
	ostringstream os;
	os<<a;
	return os.str();
}

int stoi(string s)
{
	istringstream is(s);
	int x;
	is>>x;
	return x;
}

void inline pause()
{
	system("pause");
}

void inline error(string str)
{
	cout<<str<<endl;
	pause();
}

char getSelect(char min,char max,string errorInfo)
{
	char cmd;
	cout<<"[ ]\b\b";
	cmd=_getch();
	cout<<cmd<<endl;
	while(cmd<min||cmd>max)
	{
		cout<<errorInfo<<endl;
		cout<<"[ ]\b\b";
		cmd=_getch();
		cout<<cmd<<endl;
	}
	return cmd;
}

class Device
{
private:
	string _No;
	string _kind;
	string _name;
	double _price;
public:
	friend vector<Device>;
	friend class Devices;
	friend istream& operator>>(istream &in,Device &d);
	friend ostream& operator<<(ostream &out,Device &d);
	Device(string No="",string kind="",string name="",double price=0)
	{
		_No=No;
		_kind=kind;
		_name=name;
		_price=price;
	}
	string &getNo()
	{
		return _No;
	}
	string &getKind()
	{
		return _kind;
	}
	string &getName()
	{
		return _name;
	}
	double &getPrice()
	{
		return _price;
	}
};
istream& operator>>(istream &in,Device &d)
{
	cout<<"请输入设备编号:"<<endl;
	in>>d._No;
	cout<<"请输入设备类别(DVD、电视机或带DVD的电视机):"<<endl;
	in>>d._kind;
	if(d.getKind()!="DVD"&&d.getKind()!="电视机"&&d.getKind()!="带DVD的电视机")
		while(d.getKind()!="DVD"&&d.getKind()!="电视机"&&d.getKind()!="带DVD的电视机")
		{
			cout<<"请确认输入的类别无误!"<<endl;
			cout<<"请输入设备类别(DVD、电视机或带DVD的电视机):"<<endl;
			in>>d._kind;
		}
	cout<<"请输入设备名称:"<<endl;
	in>>d._name;
	cout<<"请输入设备价格(>0):"<<endl;
	in>>d._price;
	if(d._price<=0)
		while(d._price<=0)
		{
			cout<<"请确认输入的价格无误!"<<endl;
			cout<<"请输入设备价格(>0):"<<endl;
			in>>d._price;
		}
	return in;
}
ostream &operator <<(ostream &out,Device &d)
{
	out<<setw(15)<<d.getNo()<<setw(15)<<d.getKind()<<setw(15)<<d.getName()<<setw(15)<<d.getPrice();
	return out;
}

bool cmpByNo(Device d1,Device d2)
{
	return d1.getNo()<d2.getNo();
}
bool cmpByKind(Device d1,Device d2)
{
	return d1.getKind()<d2.getKind();
}
bool cmpByName(Device d1,Device d2)
{
	return d1.getName()<d2.getName();
}
bool cmpByPrice(Device d1,Device d2)
{
	return d1.getPrice()<d2.getPrice();
}
class Devices
{
private:
	int _DVDAmount;
	int _TVAmount;
	int _DVDTVAmount;
	vector<Device> v;
	void printTitle()
	{
		cout<<setw(15)<<"设备编号"<<setw(15)<<"设备类别"<<setw(15)<<"设备名称\t"<<setw(15)<<"设备价格"<<endl;
	}
	void changeAmount(string kind,bool add)
	{
		int change=add?1:-1;
		if(kind=="DVD")
			_DVDAmount+=change;
		else if(kind=="电视机")
			_TVAmount+=change;
		else if(kind=="带DVD的电视机")
			_DVDTVAmount+=change;
	}
	void showMenu();
public:
	Devices()
	{
		_DVDAmount=0;
		_TVAmount=0;
		_DVDTVAmount=0;
	}
	~Devices()
	{
	
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值