C++大作业——商品管理系统【附源代码】

这一次我打算记录一下上学期期末老师让我们完成的一个大作业,就是一个商品管理系统的实验,花了不少时间呢,因为当时我很菜

完成这个实验感觉对函数的运用提高了,最显著的一个益处就是我对结构化编程有点感觉了(毕竟是第一次打三百多行代码嘛……)

俗话说,学习C++的人,第一个精通阶段是会写一些数学题,第二个精通阶段就是会写管理系统啦,各位朋友都可以学习一下如何结构化编程,一是美观,二是有条例和逻辑性,三是合理利用函数、提高运用函数能力。(当然不是学我,我的代码写得勉勉强强)

包括以后的类和对象亦是如此,封装是C++一个很有用的功能,有实现简化的作用。

来,放大招了,源代码如下↓:

#include<iostream>          //头文件的使用很关键 
#include<stdlib.h>
#include <fstream> 
#include <algorithm>
#include<iomanip>
using namespace std; 

//需要使用的全局变量 
int flag1=0,flag2=0,flag3=0;         //flag要记得赋初值为0 
int t=0,i,j,m,n=0,z,s,b;
string cx1,cx2,cx3,cx4,n1,n2;
ofstream out;                       //定义一个全局输出流变量out

struct commidity
{
	string name1;                   //商品名 
	string num;                     //商品编号 
	string name2;                   //生产商名 
	string type;                    //商品型号 
	string day;                     //生产日期 
	double price;                   //商品价格 
}a[1000];

void main_menu();                   //定义一个主菜单函数 

int main()                          //主函数 
{
    main_menu();                    //进入欢迎界面 
    return 0;
}
 	
void Input()                       //定义一个录入信息的函数 
{
	cout<<"\n---------------------------------------------------请录入商品信息-------------------------------------------------------\n\n";
	cout<<"请输入您要录入的商品数量:";
	cin>>n;
	cout<<endl;
	cout<<"请依次输入“商品名”、“商品编号”、“生产商名”、“型号”、“生产日期”、“价格”\n\n";
	for(s=0;s<n;s++)
	{
		cout<<"请输入商品名称:"<<endl;                                                    //输入商品名称
		cin>>a[s].name1;
		cout<<"请输入商品编号:"<<endl;                                                    //输入商品编号
		cin>>a[s].num;
		cout<<"请输入商品生产商名:"<<endl;                                                //输入商品生产商名 
		cin>>a[s].name2;
		cout<<"请输入商品型号:"<<endl;                                                    //输入型号
		cin>>a[s].type;
		cout<<"请输入商品生产日期:(格式为:年/月/日    例:2020/03/23)"<<endl;            //输入生产日期
		cin>>a[s].day;
		cout<<"请输入商品价格:"<<endl;                                                    //输入商品价格
		cin>>a[s].price;
	}
	ofstream out; 
 	out.open("商品管理.txt");                         //打开文件,将信息导入文件 
 	for(s=0;s<n;s++)
 		out<<setw(10)<<a[s].name1<<setw(10)<<a[s].num<<setw(10)<<a[s].name2<<setw(10)<<a[s].type<<setw(10)<<a[s].day<<setw(10)<<a[s].price<<endl;    //将信息导入文件 
 	out.close();                                      //关闭文件  
 	cout<<"\n录入成功,请在对应文件夹中查看!"<<endl;
 	cout<<endl; 
}

void Browse()                         //定义一个浏览信息的函数 
{
	cout<<"\n----------------------------------------------------浏览商品信息--------------------------------------------------------\n\n"; 
	if(n==0)
		cout<<"系统当前尚未录入商品信息!\n\n";
    else
    {
		for(i=0;i<n;i++)
    	{ 
			cout<<"商品"<<i+1<<": "<<a[i].name1<<endl;
			cout<<"商品编号:"<<a[i].num<<endl;
			cout<<"生产商名名:"<<a[i].name2<<endl;
			cout<<"商品型号:"<<a[i].type<<endl;
			cout<<"生产日期:"<<a[i].day<<endl;
			cout<<"商品价格:"<<a[i].price<<endl;
			cout<<endl;
		} 
	}
}

void Modify()                        //定义一个修改信息的函数 
{
	cout <<"\n----------------------------------------------------修改商品信息--------------------------------------------------------\n";
	cout<<"请输入您想要修改的商品的商品编号:"; 
    cin>>n1;
    cout<<"\n该商品信息如下:"<<endl; 
    for(i=0;i<=n;i++)
    {
        if(n1==a[i].num)
        {
			cout<<"原商品名:"<<a[i].name1<<endl;                 //输出被修改的商品信息
			cout<<"原商品编号:"<<a[i].num<<endl;
			cout<<"原生产商名:"<<a[i].name2<<endl;
			cout<<"原商品型号:"<<a[i].type<<endl;
			cout<<"原生产日期:"<<a[i].day<<endl;
			cout<<"原商品价格:"<<a[i].price<<endl;         
			m=i;
		}                   
	}
	cout<<"\n修改后的商品名:";
	cin>>a[m].name1;
	cout<<"修改后的商品编号:";
	cin>>a[m].num;
	cout<<"修改后的生产商名:";
	cin>>a[m].name2;
	cout<<"修改后的商品型号:";
	cin>>a[m].type;
	cout<<"修改后的生产日期:";
	cin>>a[m].day;
	cout<<"修改后的商品价格:";
	cin>>a[m].price;
 	out.open("商品管理.txt");                        //打开文件,将信息导入文件 
 	for(i=0;i<=n;i++)
 		out<<setw(10)<<a[i].name1<<setw(10)<<a[i].num<<setw(10)<<a[i].name2<<setw(10)<<a[i].type<<setw(10)<<a[i].day<<setw(10)<<a[i].price<<endl;    //将信息导入文件 
 	out.close();                                     //关闭文件  
 	cout<<"\n★★★★★★★★★★★★★★★                       修改成功!                           ★★★★★★★★★★★★★★★\n\n";
}

void Delete()                            //定义一个删除信息的函数 
{
	cout <<"\n----------------------------------------------------删除商品信息--------------------------------------------------------\n";
    cout<<"\n请输入要删除商品的商品编号:";
    cin>>n2;
    cout<<"\n该商品信息如下:"<<endl;
    for(i=0;i<=n;i++)
    {
        if(n2==a[i].num)
        {
			cout<<"商品名:"<<a[i].name1<<endl;                  //输出被删除的商品信息 
			cout<<"商品编号:"<<a[i].num<<endl;
			cout<<"生产商名:"<<a[i].name2<<endl;
			cout<<"商品型号:"<<a[i].type<<endl;
			cout<<"生产日期:"<<a[i].day<<endl;
			cout<<"商品价格:"<<a[i].price<<endl; 
			cout<<endl;                           
			m=i;
		}                
	}
	cout<<"确定删除?"<<endl;
	cout<<"确定请输入1"<<"		"<<"取消请输入除1外任意键返回主菜单\n\n";
	cout<<"请输入:" ;
	cin>>b; 
	if(b==1)
	{
    for(i=0;i<n;i++)
    {
        if(n2==a[i].num)
        {
           	a[i].name1=a[i+1].name1;               //使用后一项覆盖前一项的方法达到删除目的 
     		a[i].num=a[i+1].num;
     		a[i].name2=a[i+1].name2;
     		a[i].type=a[i+1].type;
     		a[i].day=a[i+1].day;
     		a[i].price=a[i+1].price;
     		n--;
    	}
   	}
   	out.open("商品管理.txt");
 	for(i=0;i<n;i++)
 		out<<setw(10)<<a[i].name1<<setw(10)<<a[i].num<<setw(10)<<a[i].name2<<setw(10)<<a[i].type<<setw(10)<<a[i].day<<setw(10)<<a[i].price<<endl;    //写入文件 
 	out.close();                 
   	cout<<"\n\n删除成功!\n\n"; 
   	cout<<"输入任意键返回主菜单";
   }
   
}

void Search()                          //定义一个查询信息的函数 
{   
	cout <<"\n----------------------------------------------------查询商品信息--------------------------------------------------------\n";          
    cout<<"请选择你要进行的操作:\n";
    cout<<"1.按商品名查询\n";
	cout<<"2.按生产商名查询\n";
    cout<<"3.按条件组合查询\n\n";
	cout<<"请输入:"<<endl;
	cin>>z;    		
    switch(z)                         //另外使用switch函数 
    {
        case 1:			
 		//按商品名查询 
        system("cls");
        cout<<"\n-----------------------------------------------------请输入商品名-------------------------------------------------------\n";
 		cin>>cx1;
 		cout<<endl;
 		for(i=0;i<=n;i++)
 		{
  			if(cx1==a[i].name1)
  			{
   				cout<<"商品名:"<<a[i].name1<<endl;                 //输出被修改的商品信息
				cout<<"商品编号:"<<a[i].num<<endl;
				cout<<"生产商名:"<<a[i].name2<<endl;
				cout<<"商品型号:"<<a[i].type<<endl;
				cout<<"生产日期:"<<a[i].day<<endl;
				cout<<"商品价格:"<<a[i].price<<endl; 
   				cout<<endl;
  				flag1=1;
  			}
 		}
 		if(flag1==1)
 			cout<<"\n★★★★★★★★★★★★★★★                       查询成功!                           ★★★★★★★★★★★★★★★\n";
   		else  
			cout<<"\n★★★★★★★★★★★★                 查询失败,没有此商品,请重试!                           ★★★★★★★★★★★\n"<<endl;
   		break;
		 		
 		case 2:		
 		//按生产商名查询
        system("cls");
        cout<<"\n----------------------------------------------------请输入生产商名------------------------------------------------------\n";
 		cin>>cx2;
 		cout<<endl;
 		for(i=0;i<=n;i++)
 		{
  			if(cx2==a[i].name2)
  			{
   				cout<<"商品名:"<<a[i].name1<<endl;                 //输出被修改的商品信息
				cout<<"商品编号:"<<a[i].num<<endl;
				cout<<"生产商名:"<<a[i].name2<<endl;
				cout<<"商品型号:"<<a[i].type<<endl;
				cout<<"生产日期:"<<a[i].day<<endl;
				cout<<"商品价格:"<<a[i].price<<endl;
   				cout<<endl;
   				flag2=1;
  			}
 		}
 		if(flag2==1)
 			cout<<"\n★★★★★★★★★★★★★★★                       查询成功!                           ★★★★★★★★★★★★★★★\n";
   		if(flag2==0)  
			cout<<"\n★★★★★★★★★★★★★                 查询失败,没有此商品,请重试!                           ★★★★★★★★★★★\n"<<endl;
 		break;
 				
 		case 3:			
 		//条件组合查询
        system("cls");
        cout<<"\n------------------------------------------请输入任意两个商品属性(除价格外)--------------------------------------------\n";
 		cin>>cx3;
 		cin>>cx4;
 		cout<<endl;
 		for(i=0;i<=n;i++)
		{
  			if(cx3==a[i].num||cx3==a[i].name1||cx3==a[i].name2||cx3==a[i].type||cx3==a[i].day)
  			{
   				a[t]=a[i];
  				j++;
  			}
 		}
  		for(j=0;j<=t;j++)
  		{
  			if(cx4==a[j].num||cx4==a[j].name1||cx4==a[j].name2||cx4==a[j].type||cx4==a[j].day)
  			{
   				cout<<"商品名:"<<a[j].name1<<endl;                 //输出被修改的商品信息
				cout<<"商品编号:"<<a[j].num<<endl;
				cout<<"生产商名:"<<a[j].name2<<endl;
				cout<<"商品型号:"<<a[j].type<<endl;
				cout<<"生产日期:"<<a[j].day<<endl;
				cout<<"商品价格:"<<a[j].price<<endl;
   				cout<<endl;
   				flag3=1;
   			}
   			if(flag1==1)
 				cout<<"\n★★★★★★★★★★★★★★★                       查询成功!                           ★★★★★★★★★★★★★★★\n";
   			if(flag1==0)  
				cout<<"\n★★★★★★★★★★★★★                 查询失败,没有此商品,请重试!                           ★★★★★★★★★★★\n"<<endl; 
  		}
	}
}

void main_menu()                      //欢迎界面 
{
    cout<<"\n-------------------------------------------------欢迎进入商品管理系统!------------------------------------------------"; 
    int h;
    cout<<"\n\n★★★★★★★★★★★★★★                     请选择你要进行的操作:                     ★★★★★★★★★★★★★★";
    cout<<"\n\n★★★★★★★★★★★★★★                       1.录入商品信息                           ★★★★★★★★★★★★★★\n";                        
	cout<<"\n★★★★★★★★★★★★★★                       2.浏览商品信息                           ★★★★★★★★★★★★★★\n";
    cout<<"\n★★★★★★★★★★★★★★                       3.修改商品信息                           ★★★★★★★★★★★★★★\n";
    cout<<"\n★★★★★★★★★★★★★★                       4.删除商品信息                           ★★★★★★★★★★★★★★\n";
    cout<<"\n★★★★★★★★★★★★★★                       5.查询商品信息                           ★★★★★★★★★★★★★★\n";
    cout<<"\n★★★★★★★★★★★★★★                       6.安全退出系统                          ★★★★★★★★★★★★★★";
    cout<<"\n\n                                                      ";
    cout<<"\n                            请输入:";
    cin>>h;
    system("cls");                               //清屏 
    switch(h)
	{
		case 1:
			Input();
			system("pause");                
         	system("cls");                      //清屏 
         	main_menu();
			break;
        case 2:
            Browse();
            system("pause");                
         	system("cls");  
            main_menu();
			break;
        case 3:
        	Modify();
			system("pause");
        	system("cls");             
         	main_menu();                       
            break;
        case 4:
        	Delete();
   			system("pause");
        	system("cls");                   
         	main_menu();                     
            break;
        case 5:
    		Search();
           	system("pause");
        	system("cls");
           	main_menu();
           	break;
        case 6:
            cout <<"\n------------------------------------您已经安全退出商品管理系统!感谢您的使用!------------------------------------------\n";
            break;
        default:
        	system("cls");
        	cout<<"\n★★★★★★★★★★★★★                       错误输入,请重试!                           ★★★★★★★★★★★★★\n";
        	system("pause");
        	system("cls");
        	main_menu();
           	break;
   	}
}

 



  • 37
    点赞
  • 210
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值