最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

实验二商品库存管理系统

来源:动视网 责编:小OO 时间:2025-09-28 00:18:00
文档

实验二商品库存管理系统

一、问题描述:创建一个系统,用链表实现用来存贮一家商店存贮商品信息,并当这个系统的时候将其存成文件形式,对这个系统有增删改查的操作,以及打印二、概要设计建立一个系统,先建立一种数据结构,然后每个节点作为一种商品,按照链表的操作。三、详细设计运用链表存贮,文件读取操作,完善这个系统的功能四、测试及结果五、心得体会通过这次试验我明白了链表的基本应用,做此程序过程中的最大问题便是对功能的完善问题,是否能够考虑的周到便是最大问题,其次便是对文件的读取与存贮源代码清单//商品库存管理系统.cpp:定义控
推荐度:
导读一、问题描述:创建一个系统,用链表实现用来存贮一家商店存贮商品信息,并当这个系统的时候将其存成文件形式,对这个系统有增删改查的操作,以及打印二、概要设计建立一个系统,先建立一种数据结构,然后每个节点作为一种商品,按照链表的操作。三、详细设计运用链表存贮,文件读取操作,完善这个系统的功能四、测试及结果五、心得体会通过这次试验我明白了链表的基本应用,做此程序过程中的最大问题便是对功能的完善问题,是否能够考虑的周到便是最大问题,其次便是对文件的读取与存贮源代码清单//商品库存管理系统.cpp:定义控
一、问题描述:

创建一个系统,用链表实现用来存贮一家商店存贮商品信息,并当这个系统的时候将其存成文件形式,对这个系统有增删改查的操作,以及打印

二、概要设计

建立一个系统,先建立一种数据结构,然后每个节点作为一种商品,按照链表的操作。

三、详细设计

运用链表存贮,文件读取操作,完善这个系统的功能

四、测试及结果

五、心得体会

通过这次试验我明白了链表的基本应用,做此程序过程中的最大问题便是对功能的完善问题,是否能够考虑的周到便是最大问题,其次便是对文件的读取与存贮

源代码清单

// 商品库存管理系统.cpp : 定义控制台应用程序的入口点。

//

#include "stdafx.h"

#include 

#include 

#include 

#include 

using namespace std ;

typedef struct CommodityNode

{

    char name[10] ;                //名称

    char brand[10] ;                //品牌

    int price ;                     //单价

    int count ;                     //数量

    struct CommodityNode *next ;

}CNode;

void InitNode(CNode * &head)                     //初始化结点的函数

{

    if((head = new CNode) == NULL)

        exit(1) ;

    head->next = NULL ;

}

void CreatSystem(CNode * &head)                //创建链表系统

{

    cout<<"请输入此商品的名称,品牌,单价和数量:"<    CNode *p ;

    InitNode(p) ;

    p = head ;

    bool judge = 0 ;

    bool over = 0 ;

    while(1)

    {

        if(judge == 0)

        {

            if(over == 1)

            {

                cout<<"是否结束是请输入/Yes/ 否则的话输入/No/"<                char *input = new char[10] ;

                cin>>input ;

                if(strcmp(input,"Yes") == 0)

                {

                    break ;

                }

            }

            CNode *node ;

            InitNode(node) ;

            cin>>node->name ;

            cin>>node->brand ;

            cin>>node->price ;

            cin>>node->count ;

            p = node ;

            head = p ;

            cout<<"输入成功"<            judge = 1 ;

            over = 1 ;

        }

        else

        {

            if(over == 1)

            {

                cout<<"是否结束是请输入/Yes/ 否则的话输入/No/"<                char *input = new char[10] ;

                cin>>input ;

                if(strcmp(input,"Yes") == 0)

                {

                    break ;

                }

            }

            cout<<"请继续输入:"<            CNode *node ;

            InitNode(node) ;

            cin>>node->name ;

            cin>>node->brand ;

            cin>>node->price ;

            cin>>node->count ;

            p->next = node ;

            p = p->next ;

            cout<<"输入成功"<        }

    }

}

//第一个功能向系统添加信息

void InsertNode(CNode * &head)     //插入家电的信息

{

    CNode *p ;

    InitNode(p) ;

    p = head ;

    CNode *node ;

    InitNode(node) ;

    cout<<"请输入家电的名称,品牌,单价以及数量"<    cin>>node->name ;

    cin>>node->brand ;

    cin>>node->price ;

    cin>>node->count ;

    node->next = p ;

    head = node ;

    cout<<"添加操作成功!"<}

//第二个功能删除某一个结点,删除某一项

void DeleteNode(CNode * &head)

{

    cout<<"请输入您要删除的电器名称:"<    char *input = new char[10] ;     //输入的电器名称

    cin>>input ;

    cout<<"请输入您要删除的电器品牌:"<    char *input1 = new char[10] ;

    cin>>input1 ;

    CNode *p ;

    p = head ;

    if((strcmp(input,p->name) == 0) && (strcmp(input1,p->brand) == 0))        //当第一个节点就是要删除的节点时候

    {

        head = head->next ;

        delete p ;

        return ;

    }

    while((strcmp(input,(p->next)->name) != 0) && (strcmp(input1,(p->next)->brand) != 0))

    {

        p = p->next ;

    }

    CNode *temp ;

    InitNode(temp) ;

    temp = p->next ;

    p->next = temp->next ;

    delete temp ;

    cout<<"删除操作成功!"<}

//第三个功能更新数据

void RenewData(CNode * &head)

{

    cout<<"请输入您要更新数据电器的名称:"<    char *input = new char[10] ;     //输入的电器名称

    cin>>input ;

    cout<<"请输入您要更新数据电器的品牌:"<    char *input1 = new char[10] ;

    cin>>input1 ;

    CNode *p ;

    InitNode(p) ;

    p = head ;

    while((strcmp(input,p->name) != 0) && (strcmp(input1,p->brand) != 0))

    {

        p = p->next ;

    }

    cout<<"请输入您要进行的操作:"<    cout<<"1-->进货2-->售货:"<    char temp ;

    cin>>temp ;

    cout<<"请输入您要(进/售)货的数量:"<    int num ;

    cin>>num ;

    if(temp == '1')

    {

        p->count = p->count + num ;

    }

    if(temp == '2')

    {

        p->count = p->count - num ;

    }

    cout<<"操作成功!"<    //输出测试

    cout<<"家电名称:" ;

    cout<name<    cout<<"家电品牌:" ;

    cout<brand<    cout<<"家电的单价:" ;

    cout<price<    cout<<"家电的数目:" ;

    cout<count<    cout<}

//第四种功能 查询某种家电的信息

void SearchNode(CNode *head)

{

    cout<<"请输入您要查询电器的名称:"<    char *input = new char[10] ;     //输入的电器名称

    cin>>input ;

    cout<<"请输入您要查询电器的品牌:"<    char *input1 = new char[10] ;

    cin>>input1 ;

    CNode *p ;

    InitNode(p) ;

    p = head ;

    while((strcmp(input,p->name) != 0) && (strcmp(input1,p->brand) != 0))

    {

        p = p->next ;

        if(p == NULL)

        {

            cout<<"输入有误并未找到该家电"<            return ;

        }

    }

    cout<<"查询成功!"<    cout<<"家电名称:" ;

    cout<name<    cout<<"家电品牌:" ;

    cout<brand<    cout<<"家电的单价:" ;

    cout<price<    cout<<"家电的数目:" ;

    cout<count<    cout<}

//第五种功能将商品信息存入文件

void SaveToFile(CNode *p)

{

    ofstream outfile;

    outfile.open("E:\\\\Save.txt",ios::out);

    while(p!=NULL)

    {

        outfile <name <<' ' <brand <<' ' <price <<' ' <count <        p = p->next ;

    }

    outfile.close();

}

//从文件中读出商品信息

CNode *ReadToList()

{

    CNode *head;

    InitNode(head);

    CNode *p ;

    InitNode(p) ;

    bool judge = 0 ;

    ifstream input;

    input.open("E:\\\\Save.txt",ios::in);    //............你继续吧。。

    while (true)

    {

        if(judge == 0)

        {

            CNode *node ;

            InitNode(node) ;

            input >>node->name >>node->brand >>node->price >>node->count ;        // 与write同理

            if (false != input.eof())

            {

                head = NULL ;

                break ;

            }

            head = node ;

            p = node ;

            judge = 1 ;

        }

        else

        {

            CNode *node ;

            InitNode(node) ;

            input >>node->name >>node->brand >>node->price >>node->count ;

            if (false != input.eof())

            {

                delete node ;

                break ;

            }

            p->next = node ;

            p = p->next ;

        }

    }

    input.close();

    return head ;

}

int CalListLong(CNode *head)

{

    int i = 0 ;

    while(head != NULL)

    {

        i++ ;

        head = head->next ;

    }

    return i ;

}

void SeeSortingList(CNode * &head)     //按照大小排序打印输出

{

    CNode *first; /*排列后有序链的表头指针*/

    CNode *tail; /*排列后有序链的表尾指针*/

    CNode *p_min; /*保留键值更小的节点的前驱节点的指针*/

    CNode *min; /*存储最小节点*/

    CNode *p; /*当前比较的节点*/

    InitNode(min) ;

    InitNode(min) ;

    InitNode(p_min) ;

    InitNode(p) ;

    first = NULL;

    while (head != NULL)

    {

        for (p=head,min=head; p->next!=NULL; p=p->next)

        {

            if (p->next->price < min->price)

            {

                p_min = p;

                min = p->next;

            }

        }

        if (first == NULL)

        {

            first = min;

            tail = min;

        }

        else

        {

            tail->next = min;

            tail = min;

        }

        if (min == head)

        {

            head = head->next;

        }

        else

        {

            p_min->next = min->next;

        }

    }

    if (first != NULL)

    {

        tail->next = NULL;

    }

    head = first;

    cout<<"打印结果为(按价格从小到大):"<    while(head != NULL)

    {

        cout<<"家电名称:" ;

        cout<name<        cout<<"家电品牌:" ;

        cout<brand<        cout<<"家电的单价:" ;

        cout<price<        cout<<"家电的数目:" ;

        cout<count<        cout<        head = head->next ;

    }

}

int _tmain(int argc, _TCHAR* argv[])

{

    cout<<"请输入密码以进入管理员模式:"<    cout<<"(如果输入错误将进入普通用户模式)"<    char *input = new char[10];

    cin>>input ;

    if (strcmp(input,"1991329")==0)

    {

        fstream file;

        file.open("E:\\\\Save.txt",ios::in);

        if(!file)

        {

            cout<<"欢迎您,管理员!"<            cout<<"请创建一个系统:"<            CNode *head ;                        //定义一个头结点

            InitNode(head) ;

            bool judge = 0 ;

            CreatSystem(head) ;

            while(1)

            {

                if(judge == 1)

                {

                    cout<<"若要结束的话请输入/Yes/ 否则的话请输入/No/"<                    char *input = new char[10] ;

                    cin>>input ;

                    if(strcmp(input,"Yes") == 0)

                    {

                        cout<<"欢迎下次光临!"<                        SaveToFile(head) ;

                        exit(0) ;

                    }

                }

                cout<<"请输入的您想做的操作:"<                cout<<"1-->导入新的家电信息"<                cout<<"2-->删除某种家电的信息"<                cout<<"3-->数据的更新"<                cout<<"4-->查询某种家电的信息"<                cout<<"5-->读取文件"<                cout<<"6-->进行排序输出"<                cout<<"0-->退出系统"<                char operate ;

                cin>>operate ;

                if(operate == '0')

                {

                    cout<<"已退出! 欢迎下次光临...."<                    SaveToFile(head) ;

                    exit(0) ;

                }

                if(operate == '1')

                {

                    InsertNode(head) ;

                }

                if(operate == '2')

                {

                    DeleteNode(head) ;

                }

                if(operate == '3')

                {

                    RenewData(head) ;

                }

                if(operate == '4')

                {

                    SearchNode(head) ;

                }

                if(operate == '5')

                {

                    ReadToList() ;

                }

                if(operate == '6')

                {

                    CNode *p;

                    InitNode(p);

                    p = head;

                    SeeSortingList(p) ;

                }

                judge = 1 ;

            }

        }

        else

        {

            CNode *head,*p ;

            InitNode(head) ;

            InitNode(p);

            head = ReadToList() ;

            p = head;

            while(p != NULL)

            {

                cout<<"家电名称:" ;

                cout<name<                cout<<"家电品牌:" ;

                cout<brand<                cout<<"家电的单价:" ;

                cout<price<                cout<<"家电的数目:" ;

                cout<count<                cout<                p = p->next ;

            }

            while(1)

            {

                cout<<"请输入的您想做的操作:"<                cout<<"1-->导入新的家电信息"<                cout<<"2-->删除某种家电的信息"<                cout<<"3-->数据的更新"<                cout<<"4-->查询某种家电的信息"<                cout<<"5-->读取文件"<                cout<<"6-->进行排序输出"<                cout<<"0-->退出系统"<                char operate ;

                cin>>operate ;

                if(operate == '0')

                {

                    cout<<"已退出! 欢迎下次光临...."<                    SaveToFile(head) ;

                    exit(0) ;

                }

                if(operate == '1')

                {

                    InsertNode(head) ;

                }

                if(operate == '2')

                {

                    DeleteNode(head) ;

                }

                if(operate == '3')

                {

                    RenewData(head) ;

                }

                if(operate == '4')

                {

                    SearchNode(head) ;

                }

                if(operate == '5')

                {

                    ReadToList() ;

                }

                if(operate == '6')

                {

                    CNode *p;

                    InitNode(p);

                    p = head; 

                    SeeSortingList(p) ;

                }

            }

        }

    }

    else

    {

        cout<<"输出错误!进入普通用户模式:"<        cout<<"您只能进行查询操作!"<        fstream file;

        file.open("E:\\\\Save.txt",ios::in);

        if(!file)

        {

            cout<<"管理员还未创建系统!不能进行任何操作!"<            exit(0);

        }

        else

        {

            cout<<"是否进行进行请输入/Yes/ 否则的话/No/"<            char *s = new char[10] ;

            cin>>s ;

            bool t = 0 ;

            if(strcmp(s,"Yes")==0)

            {

                CNode *head ;

                InitNode(head) ;

                head = ReadToList() ;

                while(1)

                {

                    if(t == 1)

                    {

                        cout<<"是否继续查询? 是请输入/Yes/ 否则输入/No/"<                        char *temp = new char[10] ;

                        cin>>temp ;

                        if(strcmp(temp,"No") == 0)

                        {

                            cout<<"退出中欢迎下次光临!"<                            exit(0) ;

                        }

                    }

                    SearchNode(head);

                    t = 1 ;

                }

            }

            else

            {

                cout<<"退出中欢迎下次光临!"<                exit(0) ;

            }

        }

    }

}

文档

实验二商品库存管理系统

一、问题描述:创建一个系统,用链表实现用来存贮一家商店存贮商品信息,并当这个系统的时候将其存成文件形式,对这个系统有增删改查的操作,以及打印二、概要设计建立一个系统,先建立一种数据结构,然后每个节点作为一种商品,按照链表的操作。三、详细设计运用链表存贮,文件读取操作,完善这个系统的功能四、测试及结果五、心得体会通过这次试验我明白了链表的基本应用,做此程序过程中的最大问题便是对功能的完善问题,是否能够考虑的周到便是最大问题,其次便是对文件的读取与存贮源代码清单//商品库存管理系统.cpp:定义控
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top