项目需求
功能说明
要求编写一个团购订单信息管理系统。
系统包含对订单的添加、查询、修改、删除和浏览等功能。
系统设有口令,只有正确输入口令才能使用该信息管理系统
功能具体说明
菜单的设计:共设置6个选项,包括订单的添加、查询、修改、删除、浏览和退出。退出系统前菜单是重复循环的。
订单信息的设计:本案例采用简化形式,只定义了订单编号、商品编号、商品单价、商品数量、收件人姓名等。
添加订单:添加时订单的详细信息从键盘输入相应内容。
浏览订单:显示当前订单的所有信息,要求有格式控制。
查询订单:可输入订单编号或收件人姓名查询相应订单。
修改订单:对特定订单信息进行修改并保存。
删除订单:可根据订单编号对该订单进行删除操作。
口令设置:被设为一个字符串常量。程序开始运行时,要求通过键盘输入口令。3次输入不正确,直接结束程序。
代码实现
对于订单设计的类
class Order
{
public:
//构造函数
Order(string oid = "", string sid = "", double sp = 0, int sc = 0, string n
= "")
{
order_num = oid;
goods_num = sid;
goods_price = sp;
goods_count = sc;
name = n;
}
//打印基本信息
void print()
{
cout << "订单编号:" << setw(N) << order_num << " 商品编号:" <<
setw(N) << goods_num << " 商品价格:"
<< setw(N) << goods_price << " 商品数量:" << setw(N) <<
goods_count << " 收件人姓名:" << setw(N) << name << endl;
}
//获得订单编号
string getOid()
{
return order_num;
}
//获得姓名
string getName()
{
return name;
}
private:
string order_num; //订单编号
string goods_num; //商品编号
double goods_price; //商品价格
int goods_count; //商品数量
string name; //收件人姓名
};
系统中各个功能的实现
对于系统中的添加,浏览,查询,修改,删除五项功能分别定义了函数来实现。
其中的orders是用来保存订单信息的数组,index是记录当前数组位置
void add(Order orders[], int& index)
{
if (index == MAX)
{
cout << "订单已满" << endl;
return;
}
string oid;
string sid;
double sp;
int sc;
string n;
cout << "请输入订单编号:";
cin >> oid;
cout << "请输入商品编号:";
cin >> sid;
cout << "请输入商品价格:";
cin >> sp;
cout << "请输入商品数量:";
cin >> sc;
cout << "请输入收件人姓名:";
cin >> n;
Order o(oid, sid, sp, sc, n);
orders[index++] = o;
cout << "添加成功" << endl;
}
void visit(Order orders[], int& index)
{
cout << "目前共有" << index << "个订单" << endl;
for (int i = 0; i < index; i++)
{
orders[i].print();
}
}
void find(Order orders[], int& index)
{
if (index == 0)
{
cout << "订单为空" << endl;
}
int chiose;
cout << "请选择查询方式 1、订单编号 2、收件人姓名" << endl;
cin >> chiose;
if (chiose == 1)
{
string oid;
cout << "请输入要查询的订单编号" << endl;
cin >> oid;
for (int i = 0; i < index; i++)
{
if (orders[i].getOid() == oid)
{
orders[i].print();
}
}
}
else if (chiose == 2)
{
string name;
cout << "请输入要查询的收件人姓名" << endl;
cin >> name;
for (int i = 0; i < index; i++)
{
if (orders[i].getName() == name)
{
orders[i].print();
}
}
}
else
{
cout << "错误的选择" << endl;
}
}
void fixed(Order orders[], int& index)
{
if (index == 0)
{
cout << "订单为空" << endl;
}
string oid;
cout << "请输入要修改的订单编号" << endl;
cin >> oid;
bool have = false;
for (int i = 0; i < index; i++)
{
if (orders[i].getOid() == oid)
{
have = true;
string oid;
string sid;
double sp;
int sc;
string n;
cout << "请输入订单编号:";
cin >> oid;
cout << "请输入商品编号:";
cin >> sid;
cout << "请输入商品价格:";
cin >> sp;
cout << "请输入商品数量:";
cin >> sc;
cout << "请输入收件人姓名:";
cin >> n;
Order o(oid, sid, sp, sc, n);
orders[i] = o;
}
}
if (have == false)
{
cout << "没有该订单号的订单" << endl;
return;
}
cout << "修改成功" << endl;
}
void deleteOrder(Order orders[], int& index)
{
if (index == 0)
{
cout << "订单为空" << endl;
}
string oid;
cout << "请输入要删除的订单编号" << endl;
cin >> oid;
bool have = false;
int i;
for (i = 0; i < index; i++)
{
if (orders[i].getOid() == oid)
{
have = true;
break;
}
}
if (have == false)
{
cout << "没有该订单号的订单" << endl;
return;
}
else
{
for (int j = i; j < index - 1; j++)
{
orders[j] = orders[j + 1];
}
index--;
}
cout << "删除成功" << endl;
}
完整代码
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
#define N 5
#define MAX 3 //最大订单数量
class Order
{
public:
//构造函数
Order(string oid = "", string sid = "", double sp = 0, int sc = 0, string n
= "")
{
order_num = oid;
goods_num = sid;
goods_price = sp;
goods_count = sc;
name = n;
}
//打印基本信息
void print()
{
cout << "订单编号:" << setw(N) << order_num << " 商品编号:" <<
setw(N) << goods_num << " 商品价格:"
<< setw(N) << goods_price << " 商品数量:" << setw(N) <<
goods_count << " 收件人姓名:" << setw(N) << name << endl;
}
//获得订单编号
string getOid()
{
return order_num;
}
//获得姓名
string getName()
{
return name;
}
private:
string order_num; //订单编号
string goods_num; //商品编号
double goods_price; //商品价格
int goods_count; //商品数量
string name; //收件人姓名
};
Order orders[MAX];
int index = 0;
void add(Order orders[], int& index)
{
if (index == MAX)
{
cout << "订单已满" << endl;
return;
}
string oid;
string sid;
double sp;
int sc;
string n;
cout << "请输入订单编号:";
cin >> oid;
cout << "请输入商品编号:";
cin >> sid;
cout << "请输入商品价格:";
cin >> sp;
cout << "请输入商品数量:";
cin >> sc;
cout << "请输入收件人姓名:";
cin >> n;
Order o(oid, sid, sp, sc, n);
orders[index++] = o;
cout << "添加成功" << endl;
}
void visit(Order orders[], int& index)
{
cout << "目前共有" << index << "个订单" << endl;
for (int i = 0; i < index; i++)
{
orders[i].print();
}
}
void find(Order orders[], int& index)
{
if (index == 0)
{
cout << "订单为空" << endl;
}
int chiose;
cout << "请选择查询方式 1、订单编号 2、收件人姓名" << endl;
cin >> chiose;
if (chiose == 1)
{
string oid;
cout << "请输入要查询的订单编号" << endl;
cin >> oid;
for (int i = 0; i < index; i++)
{
if (orders[i].getOid() == oid)
{
orders[i].print();
}
}
}
else if (chiose == 2)
{
string name;
cout << "请输入要查询的收件人姓名" << endl;
cin >> name;
for (int i = 0; i < index; i++)
{
if (orders[i].getName() == name)
{
orders[i].print();
}
}
}
else
{
cout << "错误的选择" << endl;
}
}
void fixed(Order orders[], int& index)
{
if (index == 0)
{
cout << "订单为空" << endl;
}
string oid;
cout << "请输入要修改的订单编号" << endl;
cin >> oid;
bool have = false;
for (int i = 0; i < index; i++)
{
if (orders[i].getOid() == oid)
{
have = true;
string oid;
string sid;
double sp;
int sc;
string n;
cout << "请输入订单编号:";
cin >> oid;
cout << "请输入商品编号:";
cin >> sid;
cout << "请输入商品价格:";
cin >> sp;
cout << "请输入商品数量:";
cin >> sc;
cout << "请输入收件人姓名:";
cin >> n;
Order o(oid, sid, sp, sc, n);
orders[i] = o;
}
}
if (have == false)
{
cout << "没有该订单号的订单" << endl;
return;
}
cout << "修改成功" << endl;
}
void deleteOrder(Order orders[], int& index)
{
if (index == 0)
{
cout << "订单为空" << endl;
}
string oid;
cout << "请输入要删除的订单编号" << endl;
cin >> oid;
bool have = false;
int i;
for (i = 0; i < index; i++)
{
if (orders[i].getOid() == oid)
{
have = true;
break;
}
}
if (have == false)
{
cout << "没有该订单号的订单" << endl;
return;
}
else
{
for (int j = i; j < index - 1; j++)
{
orders[j] = orders[j + 1];
}
index--;
}
cout << "删除成功" << endl;
}
int main(void)
{
int n = 0; //记录口令输入次数
string password; //输入的密码
cout << "请输入登录口令(默认abcd)" << endl;
while (1)
{
cin >> password;
if (password == "abcd")
{
cout << "输入口令正确!" << endl;
break;
}
else
{
cout << "输入口令正确,请重新输入!" << endl;
n++;
if (n == 3)
{
cout << "已输入三次,您无权进行操作!" << endl;
return 0;
}
}
}
cout << endl;
while (1)
{
system("cls");
cout << "*******************************************" << endl;
cout << "* 根据所做操作选择一下数字序号 *" << endl;
cout << "* 1.添加订单 2.浏览订单 *" << endl;
cout << "* 3.查询订单 4.修改订单 *" << endl;
cout << "* 5.删除订单 6.退出系统 *" << endl;
cout << "*******************************************" << endl;
int n;
cin >> n;
switch (n)
{
case 1:
add(orders, index);
system("pause");
break;
case 2:
visit(orders, index);
system("pause");
break;
case 3:
find(orders, index);
system("pause");
break;
case 4:
fixed(orders, index);
system("pause");
break;
case 5:
deleteOrder(orders, index);
system("pause");
break;
case 6:
return 0;
break;
default:
break;
}
}
return 0;
}
结语
该系统比较简单,对数据的存储使用了数组,也可以使用顺序表,链表等数据结构,代码中也有很多值得优化的地方。
以上就是C++实现团购订单管理系统的详细内容,更多关于C++订单管理系统的资料请关注编程网其它相关文章!