欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    C语言超市商品管理系统.doc

    • 资源ID:1119061       资源大小:101.50KB        全文页数:24页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言超市商品管理系统.doc

    -目 录1 问题定义 .32 系统设计 321 总体设计322 详细设计3 数据构造设计 3 主控流程 3信息输入模块4 信息增加模块 .4 信息修改模块 4 信息删除模块 .4信息查看模块 .4信息统计模块42.2.9 函数功能描述43 系统实现 53.1 编码 5 程序预处理 .5 主函数main() .5 主菜单界面 . 6 商品信息建立 .7商品信息查看.9商品信息增加.11商品信息删除.12商品信息修改.14 商品数目统计 .163.2 测试与调试 22 概述 .22 程序测试 .224 系统维护 255 归纳总结 255.1 开发经历 255.2 实训中遇到的问题及解决方法 255.3 设计中的缺乏之处255.4 感想和心得体会 256 参考资料 25超市商品管理系统此题目设计目的是训练学生的根本编程能力,了解管理信息系统的开发流程,熟悉C语言的单链表的各种根本操作。本程序中涉及构造体、单链表、文件保存等方面的知识。通过本程序的训练,使学生能对C语言的链表的操作有一个更深刻的了解,掌握利用单链表存储构造实现对超市信息管理系统的原理,为进一步开发出高质量的管理信息系统打下坚实的根底。1、问题定义创立一个超市管理系统。该程序具有保存商品信息、查询商品信息、修改商品信息、删除商品信息、统计商品信息并具有自动判断商品价格、库存等的功能。 超市管理系统主界面2、系统设计21 总体设计本程序采用模块化设计方法,即将一个大任务分成一个个小任务,然后分别设计个小任务。划分出来的模块相对独立而又相互关联,容易理解。本程序由5大模块组成:1. 输入信息模块2. 增加信息模块3. 修改信息模块4. 删除信息模块5. 统计信息模块22 详细设计2.2.1数据构造设计定义构造体struct good int num; /*商品编号*/ char name20; /*商品名称*/ char kind40; /*商品类型*/ float price; /*商品价格*/ char unit10; /*商品单位*/ int quantity; /*商品数量*/ struct good *ne*t; /*定义构造体指针类型*/*head,*p1,*p2;单链表good构造体struct good /*定义构造体*/ int num; /*商品编号*/ char name20; /*商品名称*/ char kind40; /*商品类型*/ float price; /*商品价格*/ char unit10; /*商品单位*/ int quantity; /*商品数量*/ struct good *ne*t; /*定义构造体指针类型*/*head,*p1,*p2; 主控main()函数执行流程Int main()struct good *p1,*p2; while(1)if(m=1)printf("*商品信息的查看*n"); if(m=2) printf("*商品信息的输入*n"); if(m=3) printf("*商品信息的统计*n"); if(m=4) printf("*退出*n"); break; return 0; 本商品管理系统执行主流程。它先以可读写的方式翻开数据文件,此文件默认为“C:goods list.t*t,假设该文件不存在,则新建此文件。当翻开文件操作成功后,从文件中一次读出一条记录,然后执行显示主菜单和进入主循环操作,进展按键判断。2.2.3 输入信息模块记录可以从以文件形式存储的数据文件中读入,也可从键盘逐个输入商品记录。商品记录由商品的根本信息和成绩信息字段构成。当从数据文件中读入记录时,也就是把在以记录为单位存储的数据文件中,将记录逐条复制到单链表中。2.2.4 增加信息模块 增加信息模块主要实现信息增加2.2.5 修改信息模块 修改信息模块主要实现信息修改2.2.6 删除信息模块 删除信息模块主要实现信息删除2.2.7 查看信息模块 查看信息模块主要实现信息查看2.2.8 统计信息模块 统计信息模块主要实现信息统计2.2.9 函数功能描述shuchu()shuchu()函数用于输出商品信息。l struct good *pai*u(struct good*head2) 此函数用于给链表排序。l jisuan()jisuan()函数用于判断商品的类别。l printf0(struct good *p)printf0(struct good *p)函数用于遍历链表并打印电器类商品。l printf1(struct good *p)printf1(struct good *p)函数用于遍历链表并打印日用品类商品。l printf2(struct good *p)printf2()函数用于遍历链表并打印办公用品类商品。l printf3(struct good *p)printf3 struct good *p()函数用于遍历链表并打印食品类商品。l shun*udayin()shun*udayin()函数用于给商品排序并打印。l tongji1()tongji1()函数用于统计给库存量低于100的货名和类别。l tongji2()tongji2()函数用于统计商品库存量有2种以上含两种低于100的商品类别。完成在上述系统设计后,即可着手进展系统实现的工作,开场程序代码的编写。3、系统实现31 编码 程序预处理包括加载头文件,定义构造体、常量和变量,并对它们进展初始化工作。*include "stdio.h" /*输入,输出头文件*/ *include "stdlib.h" /*申请空间头文件*/ *include "string.h" /*对字符串加工头文件*/ *include "conio.h" /*清屏头文件*/ FILE *fp;int n=0; /*定义文件指针类型*/int i,j,a4,m; /*定义整数类型*/ float aver4,sum4,g4,h; /*定义浮点类型*/ 主函数main()main()函数主要实现了对整个程序的运行控制,以及相关功能模块的调用。Int main()struct good *p1,*p2; while(1)if(m=1)printf("*商品信息的查看*n"); if(m=2) printf("*商品信息的输入*n"); if(m=3) printf("*商品信息的统计*n"); if(m=4) printf("*退出*n"); break; return 0; 主菜单界面用户进入商品管理系统时,需要显示主菜单,提示用户进展选择,完成相应任务。 printf(" 电子科技大学信息科技学院超市管理系统 n"); printf("*n"); printf("1 -输出查看或者修改已存信息-n"); printf("-n"); printf("2 -重新输入新信息并且删除原有信息-n"); printf("-n"); printf("3 统计商品信息如果您还没有查看过信息请先按1n"); printf("-n"); printf("4 -退出-n"); printf("*n"); scanf("%d",&m); 商品信息建立用户进入商品管理系统时,对*个商品的信息进展处理。struct good /*定义构造体*/ int num; /*商品编号*/ char name20; /*商品名称*/ char kind40; /*商品类型*/ float price; /*商品价格*/ char unit10; /*商品单位*/ int quantity; /*商品数量*/ struct good *ne*t; /*定义构造体指针类型*/*head,*p1,*p2;struct good *createlist() /*创立链表函数*/ struct good *head1,*p1,*p2; /*定义构造体指针类型*/ if(fp=fopen("goods message.t*t","w")=NULL) /*判断能否翻开文件*/ printf("can not open the file"); e*it(0); /*完毕程序*/ head1=(struct good *)malloc(sizeof(struct good); /*申请头结点空间*/ p1=head1; p2=head1; printf("*n"); printf("请输入信息:编号,名称,类型,价格,单位,数目n"); printf(" 以输入“1表示完毕输入n"); printf("*n"); printf("_n"); scanf("%d %s %s %f %s %d",&p1->num,p1->name,p1->kind,&p1->price,p1->unit,&p1->quantity); /*输入商品信息*/ printf("_n");p1->ne*t=NULL; fprintf(fp,"%d %s %s %f %s %d ",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->quantity); /*将商品信息写入文件*/ while(1) p1=(struct good *)malloc(sizeof(struct good); /*申请新空间*/ printf("*n"); printf("请输入信息:编号,名称,类型,价格,单位,数目n"); printf(" 以输入“1表示完毕输入n"); printf("*n"); printf("_n"); scanf("%d",&p1->num); if(p1->num=-1) /*申请空间完毕条件*/ printf("_nn"); fprintf(fp,"%d",-1); fclose(fp); return head1; /*返回头指针*/ scanf("%s %s %f %s %d",p1->name,p1->kind,&p1->price,p1->unit,&p1->quantity); /*输入商品信息*/ printf("_n"); fprintf(fp,"%d %s %s %f %s %d ",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->quantity); /*将商品信息写入文件*/ p1->ne*t=NULL; p2->ne*t=p1; p2=p1; 3.1.5商品信息查看void shuchu() /*输出商品信息函数*/ do struct good *p3,*p4,*p5; /*定义构造体指针类型*/ int n=0,p=0,q=0,r=0; printf("所有商品信息:n"); printf("编号,名称,类型,价格,单位,数目n"); printf("*n"); if(fp=fopen("goods message.t*t","rb+")=NULL) /*判断能否翻开文件*/ printf("can not open the file"); e*it(0); /*完毕程序*/ head=(struct good *)malloc(sizeof(struct good); /*申请头结点空间*/ p3=head; fscanf(fp,"%d %s %s %f %s %d ",&p3->num,p3->name,p3->kind,&p3->price,p3->unit,&p3->quantity); /*从文件中写到链表*/ while(1) p4=(struct good *)malloc(sizeof(struct good); /*申请头结点空间*/ fscanf(fp,"%d ",&p4->num); if(p4->num!=-1) /*判断循环完毕条件*/ fscanf(fp,"%s %s %f %s %d ",p4->name,p4->kind,&p4->price,p4->unit,&p4->quantity); /*从文件中写到链表*/ p4->ne*t=NULL; p3->ne*t=p4; p3=p4; else p3->ne*t=NULL; break; fclose(fp); /*关闭文件*/ p3=head; while(p3!=NULL) printf(" %d %s %s %0.1f %s %dnn",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); printf("_n"); p3=p3->ne*t; printf("*n"); printf("/n"); while(n!=4) p3=head; printf("*n"); printf("1 添加商品信息n"); printf("2 删除*商品信息n"); printf("3 修改*商品信息n"); printf("4 返回当你完成了对*一商品的添加、删除或者修改后请按4返回n"); printf("*n"); scanf("%d",&n);3.1.6商品信息增加if(n=1) /*添加商品信息*/ printf("请输入商品 编号 名称 类型 价格 单位 数目n"); printf("*n"); p4=(struct good *)malloc(sizeof(struct good); /*申请空间*/ scanf("%d %s %s %f %s %d",&p4->num,p4->name,p4->kind,&p4->price,p4->unit,&p4->quantity); /*输入商品信息*/ p4->ne*t=NULL; while(p3->ne*t!=NULL) /*判断循环完毕条件*/ p3=p3->ne*t; p3->ne*t=p4; p3=head; if(fp=fopen("goods message.t*t","w")=NULL) /*判断能否翻开文件*/ printf("can not open the file"); e*it(0); /*完毕程序*/ while(p3!=NULL) fprintf(fp,"%d %s %s %f %s %d ",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*将商品信息写入文件*/ p3=p3->ne*t; fprintf(fp,"%d",-1); fclose(fp); /*关闭文件*/ printf("*n"); printf("_n"); printf("-请按4返回-n"); printf("_n"); printf("*n"); 3.1.7商品信息删除if(n=2) /*删除商品*/ printf("*n"); printf("请输入需要删除的商品编号n"); printf("*n"); scanf("%d",&p); printf("*n"); printf("1 确认删除n2 取消删除n"); printf("*n"); scanf("%d",&r); if(r=1) if(head->num)=p) head=head->ne*t; free(p3); /*释放空间*/ else p4=head; p3=p4->ne*t; while(p3!=NULL) /*判断循环完毕条件*/ if(p3->num)=p) p5=p3->ne*t; free(p3); /*释放空间*/ p4->ne*t=p5; break; p3=p3->ne*t; p4=p4->ne*t; if(fp=fopen("goods message.t*t","w")=NULL) /*判断能否翻开文件*/ printf("can not open the file"); e*it(0); /*完毕程序*/ p3=head; while(p3!=NULL) /*判断循环完毕条件*/ fprintf(fp,"%d %s %s %f %s %d ",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*将商品信息写入文件*/ p3=p3->ne*t; fprintf(fp,"%d",-1); fclose(fp); /*关闭文件*/ if(r=2) continue; /*继续循环*/ printf("*n"); printf("_n"); printf("-请按4返回-n"); printf("_n"); printf("*n"); 3.1.8商品信息修改if(n=3) /*修改*商品信息*/ printf("请输入需要修改的商品编号n"); scanf("%d",&q); while(p3!=NULL) /*判断循环完毕条件*/ if(p3->num)=q) /*判断是否为所需要修改的商品*/ printf("请输入商品单价与库存量如果单价不变请输入原来的单价n"); scanf("%f %d",&p3->price,&p3->quantity); /*输入商品价格与库存量*/ p3=p3->ne*t; if(fp=fopen("goods message.t*t","w")=NULL) /*判断能否翻开文件*/ printf("can not open the file"); e*it(0); /*完毕程序*/ p3=head; while(p3!=NULL) /*判断循环完毕条件*/ fprintf(fp,"%d %s %s %f %s %d ",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*将商品信息写入文件*/ p3=p3->ne*t; fprintf(fp,"%d",-1); fclose(fp); /*关闭文件*/ printf("*n"); printf("_n"); printf("-请按4返回-n"); printf("_n"); printf("*n"); if(n=4) /*退出*/ break; printf("*n"); printf("1 继续修改n-n2 返回n"); printf("*n"); scanf("%d",&p); if(p=1) continue; /*继续循环*/ if(p=2) break; /*跳出循环*/ while(n!=2); fclose(fp); /*关闭文件*/3.1.9商品信息统计void printf0(struct good *p) /*遍历链表并打印电器类商品函数*/ struct good *p3; /*定义构造体指针类型*/ p3=p; while (p3!=NULL) /*判断遍历链表循环完毕条件*/ if(strcmp(p3->kind,c)=0) /*判断商品类型是否为电器类型*/ printf("%dt%st%st%0.1ft%st%dn",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*输出电器类商品信息*/ printf("_n"); p3=p3->ne*t; return;void printf1(struct good *p) /*遍历链表并打印日用品类商品函数*/ struct good *p3; /*定义构造体指针类型*/ p3=p; while (p3!=NULL) /*判断遍历链表循环完毕条件*/ if(strcmp(p3->kind,d)=0) /*判断商品类型是否为日用品类型*/ printf("%dt%st%st%0.1ft%st%dn",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*输出日用品类商品信息*/ printf("_n"); p3=p3->ne*t; return;void printf2(struct good *p) /*遍历链表并打印办公用品类商品函数*/ struct good *p3; /*定义构造体指针类型*/ p3=p; while (p3!=NULL) /*判断遍历链表循环完毕条件*/ if(strcmp(p3->kind,e)=0) /*判断商品类型是否为办公用品类型*/ printf("%dt%st%st%0.1ft%st%dn",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*输出办公用品类商品信息*/ printf("_n"); p3=p3->ne*t; return;void printf3(struct good *p) /*遍历链表并打印食品类商品函数*/ struct good *p3; /*定义构造体指针类型*/ p3=p; while (p3!=NULL) /*判断遍历链表循环完毕条件*/ if(strcmp(p3->kind,f)=0) /*判断商品类型是否为食品类型*/ printf("%dt%st%st%0.1ft%st%dn",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*输出食品类商品信息*/ printf("_n"

    注意事项

    本文(C语言超市商品管理系统.doc)为本站会员(李司机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开