⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 采购管理系统.txt

📁 我用C++写的一个采购管理系统,DOS界面的。我很想学嵌入式开发
💻 TXT
📖 第 1 页 / 共 3 页
字号:
/*****************************************************************************/
/*****************************************************************************/
/*                       这是一个采购管理系统       (密码是: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 + -