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

📄 新建 文本文档.txt

📁 物品存放的管理C++源程序 用于管理物品的小软件 适合课程设计
💻 TXT
字号:
/*
* 文件名称:物品库存管理
* 摘    要:南京理工大学《VC++课程设计案例精选与编程指导》
* 作    者:袁超
* 程序功能简介:该程序的主要功能是用文件系统实现物品库存的简单管理。












//四、增加功能块
//    读完整个程序,我首先想到是既然称之为管理程序,那么这个系统也就不是
//任何人都可以进入的,如果任何人都能随便进入的话,也就有可能由于操作不当
//等原因造成有用信息的丢失,这样势必造成不可挽回的损失。在这种情况下,添
//加管理密码的验证程序也就是十分必要的,在此基础上确保只有相关的管理人员
//才可以进入系统并完成相关的一些操作,因此在主程序一开始就加入了一个密码
//的验证函数password()。
//    首先在整个程序的最前面定义了一个常变量字符串数组const char a[10]=
//"yuanchao",即设置系统初使管理密码为yuanchao,定义在最前面目的
//是为了管理的安全性。
//    其次在验证程序中采用while(1){}循环,也就是一个无限的循环,跳出循环
//的充要条件是操作人员输入正确的管理密码,否则将一直循环下去,直到输入正
//确的管理密码,密码的验证使用字符串比较函数 strcmp。密码验证完毕之后,
//系统将输出"欢迎使用物品库存管理系统",操作者根据其它提示信息,输入自己
//的选项后,进行下一步操作。
 
//五、程序功能的完成
//    在客户类的设计中,参考了Brand类的设计,类的私有成员包括客户的姓名,
//性别,年龄,公有成员包括getdata(),showdata(),分别用于客户相关信息的
//输入和输出工作,另外还在其中添加了函数char* getname(){return Client_name;},
//用于获得客户的姓名,添加的原因是在Item类中的查找函数search()中有一项
//为按客户名查找,此时需要获得客户名称,就必需使用一个公有函数才能在Client
//类之外完成这项工作。另外在Item类中仿照Brand类将Client类的对象Client[3]作为
//Item类的私有成员,目的是在输入Item类相关数据的同时输入Brand类和Client类
//的相关信息,但是要完成这项工作就必需在Item类的getdata()和showdata()中添
//加相关的内容。
//    很好地完成了以下两个设计要求:(1)在Item 类 search()中增加按价格
//搜所的功能;(2)一进入程序,首先显示汉化命令,以便用户选择。


#include<iostream.h>
#include<conio.h>
#include<process.h>            //使用exit(1)
#include<fstream.h>           //使用文件操作
#include<string.h>           //使用函数strcpy,strcmp
#include<dos.h>
const char a[15]="yuanchao";//设置系统管理密码
void password(){           //验证系统管理密码,正确输入密码后方能进入该系统
       char b[15];
       cout<<"请输入系统管理密码:"<<endl;
       while(1){
          cin>>b;
                if(strcmp(a,b)==0){
                       cout<<"\t\t\t欢迎使用库存管理系统"<<endl;
                       break;
                       }
                else{
                       cout<<"密码错误,请重新输入:"<<endl;
                       
                }
                }
}
class Brand{
private:
       char brnd_name[20];
       int Brand_code;
       int quantity;
       float brnd_price;
public:
       void getdata(); //从键盘获得相关数据
       void showdata();//显示相关数据
 
};
class Client{          //新增加的客户类          
private: 
       char Client_name[10];
       char sex[4];
       int age;
public:
       void getdata();
       void showdata();
       char* getname()
	   {
              return Client_name;
       }
};
 
class Item{
private:
       char Item_name[10];
       int Item_code;
       char colour[10];
       int quantity;
       float Item_price;
       Brand brnd[3];
       Client client[3];
       void getdata();
       void showdata();
public:
       void add();   //添加项目
       void remove();//删除项目
       void search();//查找项目
       void showab();//显示相关的信息
};
void Brand::getdata(){
       cout<<"\n请输入标签名:";
       cin>>brnd_name;
       cout<<"\n请输入标签代码:";
       cin>>Brand_code;
       cout<<"\n请输入数量:";
       cin>>quantity;
       cout<<"\n请输入价格:";
       cin>>brnd_price;
}
void Brand::showdata(){
       cout<<"\n\n名称:";cout<<brnd_name;
       cout<<"\n\n代码:";cout<<Brand_code;
       cout<<"\n\n数量:";cout<<quantity;
       cout<<"\n\n价格:";cout<<brnd_price;
}
void Client::getdata(){
       cout<<"\n请输入客户姓名:";
       cin>>Client_name;
       cout<<"\n请输入客户性别:";
       cin>>sex;
       cout<<"\n请输入客户年龄:";
       cin>>age;
}
void Client::showdata (){
       cout<<"\n\n客户姓名:";cout<<Client_name;
       cout<<"\n\n客户性别:";cout<<sex;
       cout<<"\n\n客户年龄:";cout<<age;
}
void Item::getdata(){
       cout<<"\n请输入项目名称:";
       cin>>Item_name;
       cout<<"\n请输入项目代码:";
       cin>>Item_code;
       cout<<"\n请输入颜色:";
       cin>>colour;
       cout<<"\n请输入数量:";
       cin>>quantity;
       cout<<"\n\n请输入标签1:";
       brnd[0].getdata();
       client[0].getdata();
       cout<<"\n\n请输入标签2:";
       brnd[1].getdata();
       client[1].getdata ();
       cout<<"\n\n请输入标签3:";
       brnd[2].getdata();
       client[2].getdata ();
}
void Item::showdata(){
       cout<<"\n\n\t\t项目相关资料:";
       cout<<"\n\n名称:";
       cout<<Item_name;
       cout<<"\n\n代码:";
       cout<<Item_code;
       cout<<"\n\n颜色:";
       cout<<colour;
       cout<<"\n\n数量:";
       cout<<quantity<<endl;
       getch();
       cout<<"\n\n标签1:"<<endl;
       brnd[0].showdata ();
       client[0].showdata();
       getch();
       cout<<"\n\n标签2:"<<endl;
       brnd[1].showdata ();
       client[1].showdata ();
       getch();
       cout<<"\n\n标签3:"<<endl;
       brnd[2].showdata();
       client[2].showdata ();
}
void Item::add(){
	   ofstream file("TIS.txt",ios::out|ios::ate);   //打开文件用于输入
       if(!file){
              cout<<"不能打开文件"<<endl;
              getch();
              exit(1);
       }

       
       Item p1;
       p1.getdata ();
       file.write(reinterpret_cast<const char *>(&p1),sizeof(Item));   //输入资料到硬盘
}
void Item::showab (){
       ifstream file("TIS.txt",ios::in);      //打开文件用于输出
       if(!file){
              cout<<"不能打开文件"<<endl;
              getch();
              exit(1);
       }
       Item p1;
       file.read(reinterpret_cast<char *>(&p1),sizeof(Item));
       while(!file.eof()){
              p1.showdata ();     //在屏幕上显示
              getch();
              file.read(reinterpret_cast<char *>(&p1),sizeof(Item));
       }
}
void Item::search(){
       char name1[10];
       int code;
       int option;
       float price;
       char C_name[10];
       cout<<"\n(1)按名称查找(2)按代码查找(3)按价格查找(4)按客户名查找"<<endl;
       cout<<"请输入选项:";
       cin>>option;
       if(option==1){
              cout<<"\n请输入名称:";
              cin>>name1;
              code=0;
              price=0;
              strcpy(C_name,"null");
       }
       if(option==2){
              cout<<"\n请输入代码:";
              cin>>code;
              price=0;
              strcpy(name1,"null");
              strcpy(C_name,"null");
       }
       if (option==3){
              cout<<"\n请输入价格:";
              cin>>price;
              strcpy(name1,"null");
              strcpy(C_name,"null");
              code=0;
       }
       if (option==4){
              cout<<"请输入客户姓名:"<<endl;
              cin>>C_name;
              price=0;
              code=0;
       }
       fstream file("TIS.txt",ios::in);
       if(!file){
              cout<<"不能打开文件"<<endl;
              getch();
              exit(1);
       }
       char flag='a';
       Item p1;
       Client p2;
       file.read(reinterpret_cast<char *>(&p1),sizeof(Item));
       while(!file.eof()){
              
if(strcmp(p1.Item_name,name1)==0||p1.Item_code==code||p1.Item_price==price||strcmp(p2.getname(),C_name)==0){
              //clrscr();
                     p1.showdata();
                     getch();
                     flag='z';getch();
                     break;
              }file.read(reinterpret_cast<char *>(&p1),sizeof(Item));
       }
       if(flag!='z'){
              cout<<"\n所查询的项目没有找到";
              getch();
       }
}
void Item::remove(){
       char name1[10];
       int code;
       int option;
       cout<<"\n(1)按名称删除(2)按代码删除"<<endl;
       cout<<"请输入选项:";
       cin>>option;
       if(option==1){
              cout<<"\n请输入名称:";
              cin>>name1;
              code=0;
       }
       else{
              cout<<"\n请输入代码:";
              cin>>code;
              strcpy(name1,"null");
       }
       ifstream file("TIS.txt",ios::in);
       ofstream temp("Delete.txt",ios::trunc);
       if(!file||!temp){
              cout<<"不能打开文件"<<endl;
              getch();
              exit(1);
       }
       file.seekg(0);
       temp.seekp(0);
       Item p1;
       file.read(reinterpret_cast<char *>(&p1),sizeof(Item));
       while(!file.eof()){
              if(strcmp(name1,p1.Item_name)==0||code==p1.Item_code){
        file.read(reinterpret_cast<char *>(&p1),sizeof(Item));
              }
              else{
                     temp.write(reinterpret_cast<char *>(&p1),sizeof(Item));
                     file.read(reinterpret_cast<char *>(&p1),sizeof(Item));
              }
       }
       file.close();
       temp.close();
       ifstream temp1("Delete.txt",ios::in);
       ofstream file1("TIS.txt",ios::trunc);
       temp1.seekg(0);
       file1.seekp(0);
       temp1.read(reinterpret_cast<char *>(&p1),sizeof(Item));
       while(!temp1.eof()){
              file1.write(reinterpret_cast<char *>(&p1),sizeof(Item));
              temp1.read(reinterpret_cast<char *>(&p1),sizeof(Item));
       }
       temp1.close();
       file1.close();
}
void main(){
    password();  //新增的函数
       Item m;
       int option;
       while(1){
              cout<<"\n\n(1)添加项目(2)显示所有信息(3)搜索项目"
                     <<"\n\n(4)删除项目(5)退出物品库存管理系统";
              cout<<"\n\n请输入选项:";
              cin>>option;
              switch(option){
              case 1: m.add();break;
              case 2: m.showab();break;
              case 3: m.search();break;
              case 4: m.remove();break;
              case 5:{
                     exit(1);
                        }
              }
       }
       
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -