c语言超市管理系统报告书(C语言课程设计)

一、 需求分析:

      随着现代生活质量的提高,超市这种便利的服务开始走进我们的生活,同时随着超市涌入我们的生活,如何更便利的对超市进行系统和有序的操作,成为了我们需要考虑的问题,本程序运用C语言程序设计了一个超市管理系统。关系系统的的功能主要有新购物品入库、物品信息删除、物品信息修改、物品信息查询、物品信息浏览功能,在相应的硬盘上面进行存盘以防止部分数据的丢失。为了更加人性化使用此管理系统,还在MENU选项总添加了系统颜色设置功能,使用户可以根据自己的喜好修改操作界面。

二、概要设计

(1)数据结构

   依据给定的物品信息和数据形式,数组必须用结构体实现。结构类型的层次结构:

  struct ima

{

    int id;

    char name[20];

    char produce[30];

    int number;

    float price;

};

(2)模块划分

   依据程序的结构反和功能,遵照“自顶而下”的原则,描述该程序的层次结构图一显示了该程序的层次结构,共 5层:

如下图:

         

                           图一 

图一的层次结构

(3)原函数清单:

1、创建函数

   void chushihua()

2、增加物品函数

 Tianjia();

3、删除物品信息函数

Shanchu();

4、修改物品信息函数

  Xiugai();

5、查询物品信息函数

Chazhao();

6、浏览物品信息函数

Liulan();

7、系统颜色设置函数

   yanseshezhi();

8、应用程序退出函数

   Jieshu();

三、 运行环境:

Win2003, WinXP, Win2000, NT, WinME, Win9X

四、 开发工具和编程语言:

编程语言:C语言

开发工具:microsoft visual C++  6.0

五、 详细设计:

1、结构体变量的定义:

struct ima

{

    int id;

    char name[20];

    char produce[30];

    int number;

    float price;

};

2、文件的初始化:

void chushihua()

{

    FILE *fp;

    struct ima i={1,"花生牛奶","湖北武汉",1200,2.5};

    fp=fopen("ima.dat","w");

    if(fp==NULL)

    {

    printf("\t\t\t系统错误,请重试........");

       exit(0);

    }

    fwrite(&i,sizeof(struct ima),1,fp);

    fclose(fp);

}

3、欢迎菜单(主函数):

   void main()

{

     printf("\n\n");

     system("color 1a");

     printf("\t\3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3\n");

     printf("\t\3                                                               \3\n");

     printf("\t\3                                                               \3\n");

     printf("\t\3                        欢迎使用                               \3\n");

     printf("\t\3                                                               \3\n");

     printf("\t\3                                                               \3\n");

     printf("\t\3                     超市库存管理系统                          \3\n");

     printf("\t\3                      按任意键继续                             \3\n");

     printf("\t\3                                                               \3\n");

     printf("\t\3                                                               \3\n");

     printf("\t\3                                                               \3\n");

     printf("\t\3                                                               \3\n");

     printf("\t\3                                                               \3\n");

     printf("\t\3                                                               \3\n");

     printf("\t\3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3");

     getch();

     system("cls");

     menu();

     chushihua();

     menu();

}

4、选择菜单

 void menu()

{

    int choice;

    printf("\n∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞【超市库存管理系统】∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞\n");

    printf("--------------------------------系统菜单显示如下--------------------------------");

    printf("\n\t①=====================【           新购物品入库         】\n");

    printf("\n\t②=====================【           物品信息删除         】\n");

    printf("\n\t③=====================【           物品信息修改         】\n");

    printf("\n\t④=====================【           物品信息查询         】\n");

    printf("\n\t⑤=====================【           物品信息浏览         】\n");

    printf("\n\t⑥=====================【           系统颜色设置         】\n");

    printf("\n\t⑦=====================【           应用程序退出         】\n");

    printf("\n\t请输入您要选择的菜单......");

    scanf("%d",&choice);

    switch(choice)

    {

    case 1:

        Tianjia();

        break;

    case 2:

        Shanchu();

        break;

    case 3:

        Xiugai();

        break;

    case 4:

        Chazhao();

        break;

    case 5:

        Liulan();

        break;

    case 6:

        yanseshezhi();

        break;

    case 7:

        Jieshu();

        break;

    default:

        printf("\n\t\t\t\t\t输入无效,请您重新输入......");

        getch();

        system("cls");

        menu();

    }

}

5、新购物品入库函数:

 int panduanID(int id)    /*判断所输编号是否已存在*/

{  

    FILE *fp;

    struct ima i;

    fp=fopen("ima.date","r");

    if(fp==NULL)

    {

        printf("\t\t\t系统错误,请您重试........");

        exit(0);

    }

   

    fread(&i,sizeof(struct ima),1,fp);

    while(!feof(fp))

    {

        if(i.id==id)

        {

            fclose(fp);

            return 1;

            break;

        }

        fread(&i,sizeof(struct ima),1,fp);

    }

    fclose(fp);

    return 0;

}

void Tianjia()

{   struct ima i;

char choice;

    FILE *fp;

    fp=fopen("ima.date","ab");

    if(fp==NULL)

    {

        printf("\t\t\t系统错误,请您重试........");

        exit(0);

    }

   

  labID:

    printf("\n\t请您输入要入库物品的信息...\n");

    printf("\t\t\t\t   物品的编号:");

    scanf("%d",&i.id);

    if(panduanID(i.id)==1)

    {

        printf("\t\t\t\t此编号已被使用,请您重新输入......");

        goto labID;

    }

    printf("\t\t\t\t   物品的名称:");

    scanf("%s",i.name);

    printf("\t\t\t\t   物品的生产地:");

    scanf("%s",i.produce);

    printf("\t\t\t\t   物品的数量:");

    scanf("%d",&i.number);

    printf("\t\t\t\t   物品的单价:");

    scanf("%f",&i.price);

    fwrite(&i,sizeof(struct ima),1,fp);

    fclose(fp);

    printf("\t\t\t\t\t\t  物品信息已入库成功!!!\n");

   

    printf("\n您想继续吗?(y/n)");

    scanf(" %c",&choice);

    if(choice=='Y'||choice=='y')

    {

        Tianjia();

    }

    else

    {

        system("cls");

        menu();

    }

}

6、     物品信息删除函数:

     void Shanchu()

{   struct ima i[1000];

    struct ima temp;

    int delID;

    char choice;

    int index=0;

    int j=0;

    FILE *fp;

    fp=fopen("ima.date","r");

    if(fp==NULL)

    {

        printf("\t\t\t系统错误,请您重试........");

        exit(0);

    }

   

   

    fread(&temp,sizeof(struct ima),1,fp);

    while(!feof(fp))

    {

        i[index]=temp;

        index++;

        fread(&temp,sizeof(struct ima),1,fp);

    }

    fclose(fp);

   

    printf("\n\t请输入要删除的物品的编号:");

    scanf("%d",&delID);

    fopen("f:\\ima.date","w");

    if(fp==NULL)

    {

        printf("\t\t\t系统错误,请您重试........");

        exit(0);

    }

    for( j=0;j<index;j++)

    {

        if(i[j].id!=delID)

        {

            fwrite(&i[j],sizeof(struct ima),1,fp);

        }

    }

    fclose(fp);

    printf("\t\t\t\t\t物品信息已清除!!!\n");

   

    printf("\n您想继续吗?(y/n)");

    scanf(" %c",&choice);

    if(choice=='Y'||choice=='y')

    {

        Shanchu();

    }

    else

    {

        system("cls");

        menu();

    }

}

7、     物品信息修改函数:

  void Xiugai()

{   int index=0;

    int ID,j;

    char choice;

    struct ima i[1000];

    struct  ima temp;

    FILE *fp;

    fp=fopen("ima.dat","r");

    if(fp==NULL)

    {

        printf("\t\t\t系统错误,请您重试........");

        exit(0);

    }

   

   

    fread(&temp,sizeof(struct ima),1,fp);

    while(!feof(fp))

    {

        i[index]=temp;

        index++;

        fread(&temp,sizeof(struct ima),1,fp);

    }

    fclose(fp);

    fp=fopen("ima.dat","w");

    if(fp==NULL)

    {

        printf("\\t\t\t系统错误,请您重试........");

        exit(0);

    }

   

    printf("\n\t请输入要修改的信息的物品的编号:");

    scanf("%d",&ID);

    for(j=0;j<=index-1;j++)

    {

        if(i[j].id!=ID)

        {

            fwrite(&i[j],sizeof(struct ima),1,fp);

        }

        else

        {

            printf("\t\t物品名称修改为:");

            scanf("%s",i[j].name);

            printf("\t\t物品生产地修改为:");

            scanf("%s",i[j].produce);

            printf("\t\t物品数量修改为:");

            scanf("%d",&i[j].number);

            printf("\t\t物品单价修改为:");

            scanf("%f",&i[j].price);

        }

    }

    fclose(fp);

    printf("\t\t\t\t物品信息已修改......");

   

    printf("\n您想继续吗?(y/n)");

    scanf(" %c",&choice);

    if(choice=='Y'||choice=='y')

    {

        Xiugai();

    }

    else

    {

        system("cls");

        menu();

    }

}

8、     物品信息查询函数:

     void Chazhao()

{

    FILE *fp;

    int findID;char choice;struct ima i;

    fp=fopen("ima.date","r");

    if(fp==NULL)

    {      

        printf("\t\t\t系统错误,请你重试........");

        exit(0);

    }

    finID:

    printf("\n\t请输入要查询的物品的编号..");

    scanf("%d",&findID);

   

    fread(&i,sizeof(struct ima),1,fp);

   

    while(!feof(fp))

    {

        if(i.id==findID)

        {

            printf("\n\n\t***************物品信息******************");

            printf("\n\t物品编号...%30d\n",i.id);

            printf("\n\t-----------------------------------------");

            printf("\n\t物品名称...%30s\n",i.name);

            printf("\n\t-----------------------------------------");

            printf("\n\t生产厂家...%30s\n",i.produce);

            printf("\n\t-----------------------------------------");

            printf("\n\t进口数量...%30d\n",i.number);

            printf("\n\t-----------------------------------------");

            printf("\n\t批发价格...%30.3f\n",i.price);

            printf("\n\t-----------------------------------------");

            printf("\n您想继续吗?(y/n)");

            scanf(" %c",&choice);

            if(choice=='Y'||choice=='y')

            {

                Chazhao();

            }

            else

            {

                system("cls");

                menu();

            }

        }

        fread(&i,sizeof(struct ima),1,fp);

    }

    fclose(fp);

    printf("\t\t\t\t\t输入的编号不存在,请您重新输入......");

    goto finID;

}

9、     物品信息浏览函数:

   void Liulan()

{   struct ima i;

    int index=0;

    char choice;

    FILE *fp;

    fp=fopen("ima.date","r");

    if(fp==NULL)

    {      

        printf("\t\t\t系统错误,请你重试........");

        exit(0);

    }

   

    fread(&i,sizeof(struct ima),1,fp);

   

    while(!feof(fp))

    {

        index++;

        printf("\n\n\t****************物品信息%d*****************",index);

        printf("\n\t物品编号...%30d\n",i.id);

        printf("\n\t-----------------------------------------");

        printf("\n\t物品名称...%30s\n",i.name);

        printf("\n\t-----------------------------------------");

        printf("\n\t生产厂家...%30s\n",i.produce);

        printf("\n\t-----------------------------------------");

        printf("\n\t进口数量...%30d\n",i.number);

        printf("\n\t-----------------------------------------");

        printf("\n\t批发价格...%30.3f\n",i.price);

        printf("\n\t-----------------------------------------");

        getch();

        fread(&i,sizeof(struct ima),1,fp);

    }

    fclose(fp);

   

    printf("\n您想继续吗?(y/n)");

    scanf(" %c",&choice);

    if(choice=='Y'||choice=='y')

    {

        Liulan();

    }

    else

    {

        system("cls");

        menu();

    }

}

10、    系统颜色设置函数:

   void yanseshezhi()

{   int a;

char choice;

    system("cls");

    printf("\n\n\t\t选择以下方案\n");

    printf("\n\n\t\t1**************红底黑字\n");

    printf("\n\n\t\t2**************白底黑字\n");

    printf("\n\n\t\t3**************黑底红字\n");

    printf("\n\n\t\t4**************绿底蓝字\n");

    printf("\n\n\t\t5**************黄底紫字\n");

    printf("\n\n\t\t6**************系统默认\n");

    printf("\n\n\t\t\t\t\t请挑选您喜爱的颜色<1-5>......");

   

    scanf("%d",&a);

    switch(a)

    {

        case 1:

            system("color 40");

            break;

        case 2:

            system("color 70");

            break;

        case 3:

            system("color 04");

            break;

        case 4:

            system("color 21");

            break;

        case 5:

            system("color 65");

            break;

        case 6:

            system("color 1a");

            break;

        default:

        printf("\n\n\t\t\t\t\t输入无效,重新输入......");

        getch();

        yanseshezhi();

    }

   

    printf("\n选择的颜色您还满意吗?(y返回主菜单/n继续选择)");

    scanf(" %c",&choice);

    if(choice=='Y'||choice=='y')

    {

       

        system("cls");

        menu();

    }

    else

    {

        yanseshezhi();

    }

}

11、    应用程序退出函数:

  void Jieshu()

{char choice;

    system("cls");

   

    printf("\n\n\n\n\n\n\n\t\t\t您确定要退出系统吗?\n\n\n\t\t\t如果您想退出请按'y',其它键将返回主菜单.....");

    scanf(" %c",&choice);

    if(choice=='Y'||choice=='y')

    {

        system("cls");

        printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t谢谢您的使用!!!");

        printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");

    }

    else

    {

        system("cls");

        menu();

    }

}

六、调试分析:

在此程序的编程前,我上网搜集了一些关于超市管理系统的资料,然后大体决定了编程的大致算法,即利用函数贯穿整个程序,通过SWITCH函数进行各个函数的选择;同时,进过查阅,我添加了系统颜色设置功能,同是应用了清屏函数,课下讲程序大致写好后,我上机进行了调试;但却出现了80几处错误,大都是提示 miss “;” before tybe;经过分析,程序算法并无错误;后来询问老师,才发现原来在我所编的程序中,有需要变量时,都是用的时候才定义,但正确的方法是应该在函数的开头就应该将所要用的变量进行生命,否则就出现了编译错误。

七、测试结果:

1、欢迎界面:

2、系统选择界面:

3、新购物品入库:

4、物品信息删除:

5、物品信息修改:

6、物品信息查询

7、物品信息浏览:

8、系统颜色设置:

9、应用程序退出:

八、参考文献:

1.《C 语言程序设计教程》谭浩强等著 高等教育出版社

2.《C 语言程序设计习题解析与应用案例分析》,黄维通编,清华大学出版社, 2005

3.《C 语言程序设计》,李大友主编,清华大学出版社, 1999

课程设计总结

通过本次课程设计我认识到了必须重视实践环节,多读程序,多编写程序,多上机实践。进一步培养了我们的结构化程序设计的思想,加深了我们对高级语言要素和控制结构地理解,并且培养了我们综合的应用高级语言程序设计课程所学到的知识,编写C语言程序,解决实际问题的能力。使我们能够独立完成有一定工作量的程序设计任务,同时形成了良好的程序设计风格。                                       

     经过此次超市管理系统的设计,我对 C语言程序设计有了更深一步的了解,对设计或者开发系统步骤有了更加全面的认识。再实际编程中我遇到了很多不同的错误,有时候室细节上的语法错误,这些错误比较明显,可以通过编译来查找错误所在,然而那些并不明显难以查找的隐性错误就真让人头痛,只能不断的分步试调,一步步的检查代码中的错误,这样每找一个错误都要花费大量时间,单找出错误感觉室非常好的,同时我翻阅了大量书籍,学到了很多。                                                                                                                                                       

总的来说,这次课程设计给我提供了一个机会,去锻炼我的动手能力,动脑能力和自学能力,以及沃独立实践的能力。使我养成了翻阅资料的习惯,把书本上的理论知识与实践结合起来,还锻炼了实际分析问题和解决问题的能力,提高了适应实际和实践编程的能力,为今后的学习和实践打下了扎实的基础。在此,感谢吕老师在课程设计过程中对我们的帮助和指导。

源程序:

#include<stdio.h>

#include<stdlib.h>

#include<string.h>

#include<conio.h>

struct ima

{

     int id;

     char name[20];

     char produce[30];

     int number;

     float price;

};

void Append();

void Selldelete();

void Amend();

void Findin();

void Browse();

void colorsetting();

void Endprogram();

void initialization()

{

     FILE *fp;

     struct ima i={1,"花生牛奶","陕西西安",1200,2.5};

     fp=fopen("ima.dat恶","w");

     if(fp==NULL)

     {

         printf("\t\t\t系统错误,请重试........");

         exit(0);

     }

     fwrite(&i,sizeof(struct ima),1,fp);

     fclose(fp);

}

void menu()

{

     int choice;

     printf("\n∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞【超市库存管理系统】∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞\n");

     printf("--------------------------------系统菜单显示如下--------------------------------");

     printf("\n\t①=====================【           新购物品入库         】\n");

     printf("\n\t②=====================【           物品信息删除         】\n");

     printf("\n\t③=====================【           物品信息修改         】\n");

     printf("\n\t④=====================【           物品信息查询         】\n");

     printf("\n\t⑤=====================【           物品信息浏览         】\n");

     printf("\n\t⑥=====================【           系统颜色设置         】\n");

     printf("\n\t⑦=====================【           应用程序退出         】\n");

     printf("\n\t请输入您要选择的菜单......");

     scanf("%d",&choice);

     switch(choice)

     {

     case 1:

         Append();

          break;

     case 2:

         Selldelete();

         break;

     case 3:

         Amend();

         break;

     case 4:

         Findin();

         break;

     case 5:

         Browse();

         break;

     case 6:

         colorsetting();

         break;

     case 7:

         Endprogram();

         break;

     default:

         printf("\n\t\t\t\t\t输入无效,请您重新输入......");

         getch();

         system("cls");

         menu();

     }

}

void colorsetting()

{   int a;

char choice;

     system("cls");

     printf("\n\n\t\t选择以下方案\n");

     printf("\n\n\t\t1**************红底黑字\n");

     printf("\n\n\t\t2**************白底黑字\n");

     printf("\n\n\t\t3**************黑底红字\n");

     printf("\n\n\t\t4**************绿底蓝字\n");

     printf("\n\n\t\t5**************黄底紫字\n");

     printf("\n\n\t\t6**************系统默认\n");

     printf("\n\n\t\t\t\t\t请挑选您喜爱的颜色<1-5>......");

   

     scanf("%d",&a);

     switch(a)

     {

         case 1:

              system("color 40");

              break;

         case 2:

              system("color 70");

              break;

         case 3:

              system("color 04");

              break;

         case 4:

              system("color 21");

              break;

         case 5:

              system("color 65");

              break;

         case 6:

              system("color 1a");

              break;

         default:

         printf("\n\n\t\t\t\t\t输入无效,重新输入......");

         getch();

         colorsetting();

     }

    

     printf("\n选择的颜色您还满意吗?(y返回主菜单/n继续选择)");

     scanf(" %c",&choice);

     if(choice=='Y'||choice=='y')

     {

        

         system("cls");

         menu();

     }

     else

     {

         colorsetting();

     }

}

int validateID(int id)

{  

     FILE *fp;

     struct ima i;

     fp=fopen("ima.date","r");

     if(fp==NULL)

     {

         printf("\t\t\t系统错误,请您重试........");

         exit(0);

     }

    

     fread(&i,sizeof(struct ima),1,fp);

     while(!feof(fp))

     {

         if(i.id==id)

         {

              fclose(fp);

              return 1;

              break;

         }

         fread(&i,sizeof(struct ima),1,fp);

     }

     fclose(fp);

     return 0;

}

void Append()

{   struct ima i;

char choice;

     FILE *fp;

     fp=fopen("ima.date","ab");

     if(fp==NULL)

     {

         printf("\t\t\t系统错误,请您重试........");

         exit(0);

     }

    

  labID:

     printf("\n\t请您输入要入库物品的信息...\n");

     printf("\t\t\t\t   物品的编号:");

     scanf("%d",&i.id);

     if(validateID(i.id)==1)

     {

         printf("\t\t\t\t此编号已被使用,请您重新输入......");

         goto labID;

     }

     printf("\t\t\t\t   物品的名称:");

     scanf("%s",i.name);

     printf("\t\t\t\t   物品的生产地:");

     scanf("%s",i.produce);

     printf("\t\t\t\t   物品的数量:");

     scanf("%d",&i.number);

     printf("\t\t\t\t   物品的单价:");

     scanf("%f",&i.price);

     fwrite(&i,sizeof(struct ima),1,fp);

     fclose(fp);

     printf("\t\t\t\t\t\t  物品信息已入库成功!!!\n");

    

     printf("\n您想继续吗?(y/n)");

     scanf(" %c",&choice);

     if(choice=='Y'||choice=='y')

     {

         Append();

     }

     else

     {

         system("cls");

         menu();

     }

}

void Selldelete()

{   struct ima i[1000];

     struct ima temp;

     int delID;

     char choice;

     int index=0;

     int j=0;

     FILE *fp;

     fp=fopen("ima.date","r");

     if(fp==NULL)

     {

         printf("\t\t\t系统错误,请您重试........");

         exit(0);

     }

    

    

     fread(&temp,sizeof(struct ima),1,fp);

     while(!feof(fp))

     {

         i[index]=temp;

         index++;

         fread(&temp,sizeof(struct ima),1,fp);

     }

     fclose(fp);

    

     printf("\n\t请输入要删除的物品的编号:");

     scanf("%d",&delID);

     fopen("f:\\ima.date","w");

     if(fp==NULL)

     {

         printf("\t\t\t系统错误,请您重试........");

         exit(0);

     }

     for( j=0;j<index;j++)

     {

         if(i[j].id!=delID)

         {

              fwrite(&i[j],sizeof(struct ima),1,fp);

         }

     }

    fclose(fp);

     printf("\t\t\t\t\t物品信息已清除!!!\n");

    

     printf("\n您想继续吗?(y/n)");

     scanf(" %c",&choice);

     if(choice=='Y'||choice=='y')

     {

         Selldelete();

     }

     else

     {

         system("cls");

         menu();

     }

}

void Amend()

{   int index=0;

    int ID,j;

    char choice;

    struct ima i[1000];

    struct    ima temp;

     FILE *fp;

     fp=fopen("ima.date","r");

     if(fp==NULL)

     {

         printf("\t\t\t系统错误,请您重试........");

         exit(0);

     }

    

    

     fread(&temp,sizeof(struct ima),1,fp);

     while(!feof(fp))

     {

         i[index]=temp;

         index++;

         fread(&temp,sizeof(struct ima),1,fp);

     }

     fclose(fp);

     fp=fopen("ima.date","w");

     if(fp==NULL)

     {

         printf("\\t\t\t系统错误,请您重试........");

         exit(0);

     }

    

     printf("\n\t请输入要修改的信息的物品的编号:");

     scanf("%d",&ID);

     for(j=0;j<=index-1;j++)

     {

         if(i[j].id!=ID)

         {

              fwrite(&i[j],sizeof(struct ima),1,fp);

         }

         else

         {

              printf("\t\t物品名称修改为:");

              scanf("%s",i[j].name);

              printf("\t\t物品生产地修改为:");

              scanf("%s",i[j].produce);

              printf("\t\t物品数量修改为:");

              scanf("%d",&i[j].number);

              printf("\t\t物品单价修改为:");

              scanf("%f",&i[j].price);

              fwrite(&i[j],sizeof(struct ima),1,fp);

         }

     }

     fclose(fp);

     printf("\t\t\t\t物品信息已修改......");

    

     printf("\n您想继续吗?(y/n)");

     scanf(" %c",&choice);

     if(choice=='Y'||choice=='y')

     {

         Amend();

     }

     else

     {

         system("cls");

         menu();

     }

}

void Findin()

{

     FILE *fp;

     int findID;char choice;struct ima i;

     fp=fopen("ima.date","r");

     if(fp==NULL)

     {       

         printf("\t\t\t系统错误,请你重试........");

         exit(0);

     }

     finID:

    printf("\n\t请输入要查询的物品的编号..");

     scanf("%d",&findID);

    

     fread(&i,sizeof(struct ima),1,fp);

    

     while(!feof(fp))

     {

         if(i.id==findID)

         {

              printf("\n\n\t***************物品信息******************");

              printf("\n\t物品编号...%30d\n",i.id);

              printf("\n\t-----------------------------------------");

              printf("\n\t物品名称...%30s\n",i.name);

              printf("\n\t-----------------------------------------");

              printf("\n\t生产厂家...%30s\n",i.produce);

              printf("\n\t-----------------------------------------");

              printf("\n\t进口数量...%30d\n",i.number);

              printf("\n\t-----------------------------------------");

              printf("\n\t批发价格...%30.3f\n",i.price);

              printf("\n\t-----------------------------------------");

              printf("\n您想继续吗?(y/n)");

              scanf(" %c",&choice);

              if(choice=='Y'||choice=='y')

              {

                   Findin();

              }

              else

              {

                   system("cls");

                   menu();

              }

         }

         fread(&i,sizeof(struct ima),1,fp);

     }

     fclose(fp);

     printf("\t\t\t\t\t输入的编号不存在,请您重新输入......");

     goto finID;

}

void Browse()

{   struct ima i;

    int index=0;

     char choice;

     FILE *fp;

     fp=fopen("ima.date","r");

     if(fp==NULL)

     {       

         printf("\t\t\t系统错误,请你重试........");

         exit(0);

     }

    

     fread(&i,sizeof(struct ima),1,fp);

    

     while(!feof(fp))

     {

         index++;

         printf("\n\n\t****************物品信息%d*****************",index);

         printf("\n\t物品编号...%30d\n",i.id);

         printf("\n\t-----------------------------------------");

         printf("\n\t物品名称...%30s\n",i.name);

         printf("\n\t-----------------------------------------");

         printf("\n\t生产厂家...%30s\n",i.produce);

         printf("\n\t-----------------------------------------");

         printf("\n\t进口数量...%30d\n",i.number);

         printf("\n\t-----------------------------------------");

         printf("\n\t批发价格...%30.3f\n",i.price);

         printf("\n\t-----------------------------------------");

         getch();

         fread(&i,sizeof(struct ima),1,fp);

     }

     fclose(fp);

    

     printf("\n您想继续吗?(y/n)");

     scanf(" %c",&choice);

     if(choice=='Y'||choice=='y')

     {

         Browse();

     }

     else

     {

         system("cls");

         menu();

     }

}

void Endprogram()

{char choice;

     system("cls");

    

     printf("\n\n\n\n\n\n\n\t\t\t您确定要退出系统吗?\n\n\n\t\t\t如果您想退出请按'y',其它键将返回主菜单.....");

     scanf(" %c",&choice);

     if(choice=='Y'||choice=='y')

     {

         system("cls");

         printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t谢谢您的使用!!!");

         printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");

     }

     else

     {

         system("cls");

         menu();

     }

}

void main()

{

     printf("\n\n");

     system("color 1a");

     printf("\t\3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3\n");

     printf("\t\3                                                               \3\n");

     printf("\t\3                                                               \3\n");

     printf("\t\3                        欢迎使用                               \3\n");

     printf("\t\3                                                               \3\n");

     printf("\t\3                                                               \3\n");

     printf("\t\3                     超市库存管理系统                          \3\n");

     printf("\t\3                      按任意键继续                             \3\n");

     printf("\t\3                                                               \3\n");

     printf("\t\3                                                               \3\n");

     printf("\t\3                                                               \3\n");

     printf("\t\3                                                               \3\n");

     printf("\t\3                                                               \3\n");

     printf("\t\3                                                               \3\n");

     printf("\t\3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3 \3");

     getch();

     system("cls");

     menu();

     initialization();

     menu();

}

End sub                                            

   

相关推荐