📄 采购管理系统.txt
字号:
/*****************************************************************************/
/*****************************************************************************/
/* 这是一个采购管理系统 (密码是:TianXia123) */
/*****************************************************************************/
/*****************************************************************************/
#include<iostream>
#include<fstream>
#include<iomanip> //操作元setw,右对齐
#include<conio.h> //cprintf():送至屏幕的格式化输出
#include<cstring>
#include<process.h>
#include<stdio.h>
#include<time.h>
#define M 14 //可输入的厂家名称和厂家编号的长度
#define N 100 //可输入的采购厂家的个数
using namespace std;
/*****************************************************************************/
struct company
{
char company_name[M]; //厂家名称
char company_number[M]; //厂家编号
long product_amount; //产品数量
double product_price; //产品价格
};
/*****************************************************************************/
void mysecret(); //设置密码 (密码是:TianXia123)
void myenter(char); //选择
void myprint(); //显示主菜单
void myinstruction(); //使用说明书
void return_to_emun(); //返回主菜单
void mycreate(struct company *p,int *n); //创建采购单
void mydisplay(struct company *p,int n); //显示采购单
void mysearch(struct company *p,int n); //查询采购单
void sch_num(struct company *p,int n); //按编号查询
void sch_name(struct company *p,int n); //按名称查询
void mymodify(struct company *p,int n); //修改采购单
void myadd(struct company *p,int *n); //添加采购单
void mydelete(struct company *p,int *n); //删除采购单
void del_num(struct company *p,int *n); //按厂家编号删除
void del_name(struct company *p,int *n); //按厂家名称删除
void mysort(struct company *p,int n); //排序采购单
void sort_num(struct company *p,int n); //按厂家编号排序
void sort_name(struct company *p,int n); //按厂家名称排序
void sort_amount(struct company *p,int n); //按产品数量排序
void sort_price(struct company *p,int n); //按产品价格从低到高排序
void the_chapest_company(struct company *p,int n); //生成采购单
/****************************************************************************/
void main()
{
system("cls"); //清屏
system("color 2f"); //屏幕以绿色为底色,以白色为字体颜色
char yes_no;
mysecret(); //调用密码函数
cout<<"\n\n "
<<"是否现在开始?(Y/N):";
cin>>yes_no;
while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n')
{
cout<<" 您输入的是非法字符!"
<<"\n\n "
<<"是否现在开始?(Y/N):";
cin>>yes_no;
}
myenter(yes_no); //调用选择函数
}
/*****************************************************************************/
void mysecret() //设置密码
{
int i=0,j=0;
char ch,password[50];
printf(" 欢迎使用采购管理系统!");
printf("\n\n 温馨提醒:您有三次输入密码的机会!");
printf("\n\n 请您输入密码:");
ch=getch(); //输入密码
while(ch!='\r') //判断是不是回车
{
while(ch=='\b') //判断是不是退格
{
cprintf("\b"); //将光标退一格
cprintf(" "); //除去光标处字符
cprintf("\b"); //再将光标退一格
i--;
if(i<0)
i++;
ch=getch(); //继续输入密码
}
if(ch=='\r') //如果输入的是回车,退出循环
break;
if(ch>='A'&&ch<='Z')
password[i++]=ch+32; //将密码存入数组
else
if(ch>='a'&&ch<='z')
password[i++]=ch-32; //将密码存入数组
else
if(ch>='0'&&ch<'9')
password[i++]=ch-1; //将密码存入数组
printf("*"); //在屏幕显示一个*号
ch=getch(); //继续输入密码
}
password[i]='\0'; //在最后加一个结束符
while(strcmp(password,"tIANxIA012")!=0&&j<3)
{
j++;
if(j==3)
exit(1);
else
{
i=0;
printf("\n 很抱歉,您输入的密码错误! ");
printf("\n\n 请您再次输入密码:");
ch=getch();
while(ch!='\r')
{
while(ch=='\b')
{
cprintf("\b");
cprintf(" ");
cprintf("\b");
i--;
if(i<0)
i++;
ch=getch();
}
if(ch=='\r')
break;
if(ch>='A'&&ch<='Z')
password[i++]=ch+32;
else
if(ch>='a'&&ch<='z')
password[i++]=ch-32;
else
if(ch>='0'&&ch<'9')
password[i++]=ch-1;
printf("*");
ch=getch();
}
password[i]='\0';
}
}
}
/*****************************************************************************/
void myenter(char c) //选择
{
struct company record[N]; //存放输入的厂家的信息
char choose;
int n=0;
while(c=='Y'||c=='y')
{
system("cls");
myprint();
cout<<" ";
cin>>choose;
switch(choose)
{
case '1': mycreate(record,&n); break; //调用创建采购单
case '2':
if(n==0)
{
cout<<"\n 无记录,请创建采购单!\n";
break;
}
mydisplay(record,n); //调用显示采购单函数
break;
case '3':
if(n==0)
{
cout<<"\n 无记录,请创建采购单!\n";
break;
}
mysearch(record,n); //调用查询采购单函数
break;
case '4': if(n==0)
{
cout<<"\n 无记录,请创建采购单!\n";
break;
}
mymodify(record,n); //调用修改采购单函数
break;
case '5': if(n==0)
{
cout<<"\n 无记录,请创建采购单!\n";
break;
}
myadd(record,&n); //调用添加采购单函数
break;
case '6': if(n==0)
{
cout<<"\n 无记录,请创建采购单!\n";
break;
}
mydelete(record,&n); //调用删除采购单函数
break;
case '7': if(n==0)
{
cout<<"\n 无记录,请创建采购单!\n";
break;
}
mysort(record,n); //调用排序采购单函数
break;
case '8':if(n==0)
{
cout<<"\n 无记录,请创建采购单!\n";
break;
}
the_chapest_company(record,n); //调用生成采购单函数
break;
case '9': system("cls");
myinstruction(); //调用使用说明书函数
break;
case '0': break;
default : cout<<"\n "<<choose<<"为非法选项!";
}
if(choose=='0')
break;
cout<<"\n "
<<"是否继续输入选项编号(0-8)?(Y/N):";
cin>>c;
while(c!='y'&&c!='Y'&&c!='n'&&c!='N')
{
cout<<"\n 非法字符!\n"
<<"\n 请重新输入:";
cin>>c;
}
}
}
/*****************************************************************************/
void myprint() //显示主菜单
{
system("cls"); //清屏
system("color 2f"); //屏幕以绿色为底色,以白色为字体颜色
cout<<"\n\n\n\n";
cout<<" ┌───────────────────┐\n";
cout<<" │ 采 购 管 理 系 统 │\n";
cout<<" ├───────────────────┤\n";
cout<<" │ 请输入选项编号(0-9): │\n";
cout<<" ├───────────────────┤\n";
cout<<" │ 1-创建采购单 │\n";
cout<<" │ 2-显示采购单 │\n";
cout<<" │ 3-查询采购单 │\n";
cout<<" │ 4-修改采购单 │\n";
cout<<" │ 5-添加采购单 │\n";
cout<<" │ 6-删除采购单 │\n";
cout<<" │ 7-排序采购单 │\n";
cout<<" │ 8-生成采购单 │\n";
cout<<" │ 9-使用说明书 │\n";
cout<<" │ 0-退出 │\n";
cout<<" └───────────────────┘\n";
time_t now;
time(&now);
cout<<" "<<ctime(&now)<<endl;
}
/**************************************************************************************/
void myinstruction() //使用说明书
{
cout<<"\n\n"
<<" ┌──────────────────────────────────┐\n"
<<" │ 使 用 说 明 书 │\n"
<<" ├──────────────────────────────────┤\n"
<<" │ 这是一个采购管理系统。其主要目的是生成一份采购单,采购单信息包括:│\n"
<<" │ │\n"
<<" │ 采购单号,采购时间,采购厂家,采购数量。进入系统前,请先输入密码(你 │\n"
<<" │ │\n"
<<" │ 有三次输入密码的机会)。 │\n"
<<" │ │\n"
<<" │ 进入系统后,你将看到一个菜单,从0到9选择你要进行的操作,一切操作完成 │\n"
<<" │ │\n"
<<" │ 后,你将退出系统。打开E盘下的文本文档guo.txt和meizhou.txt,你将看到 │\n"
<<" │ │\n"
<<" │ 你想要的信息。 │\n"
<<" └──────────────────────────────────┘\n"
<<endl<<endl;
}
/***************************************************************************************/
void mycreate(struct company *p,int *n) //创建采购单
{
ofstream out_stream;
out_stream.open("E:\\guo.txt");
if(out_stream.fail())
{
cout<<"Input file opening failed.\n";
exit(1);
}
struct company temp;
out_stream<<"\n 创建的采购单\n";
out_stream<<"\n ┌────────┬────────┬────────┬────────┐\n"
<<" │"<<setw(12)<<"厂家编号"<<" │"
<<setw(12)<<"厂家名称"<<" │"
<<setw(12)<<"产品数量"<<" │"
<<setw(12)<<"产品价格"<<" │\n";
cout<<"\n 请输入第"<<(*n)+1<<"个采购记录:";
cout<<"\n 厂家编号(用#结束输入):";
cin>>temp.company_number;
if(temp.company_number[0]!='#')
{
cout<<" 厂家名称(用#结束输入):";
cin>>temp.company_name;
if(temp.company_name[0]!='#')
{
cout<<" 产品数量(大于零):";
cin>>temp.product_amount;
while(temp.product_amount<=0)
{
cout<<" 产品数量(大于零):";
cin>>temp.product_amount;
}
cout<<" 产品价格(大于零):";
cin>>temp.product_price;
while(temp.product_price<=0)
{
cout<<" 产品价格(大于零):";
cin>>temp.product_price;
}
}
}
while(temp.company_number[0]!='#'&&temp.company_name[0]!='#')
{
*p=temp;
p++;
(*n)++;
out_stream<<" ├────────┼────────┼────────┼────────┤\n"
<<" │"
<<setw(12)<<temp.company_number<<" │"
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -