欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C语言商店商品管理系统设计报告与源代码(共27页).doc

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

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

    C语言商店商品管理系统设计报告与源代码(共27页).doc

    精选优质文档-倾情为你奉上目 录专心-专注-专业1 系统分析1.1 课程设计内容商场商品信息管理系统1.2 系统功能需求分析本系统应具有以下功能:1、 文件操作功能 文件操作:可建立、打开、保存、关闭数据文件。如果是新建的文件,可输入商品信息数据:数据包括商品编号、商品名、商品类别、商品数量、商品价格等。2、数据输入功能输入进货信息:输入商品编号、数量完成进货操作。输入销售信息:输入商品编号、数量完成销售操作,注意当销售数量大于商品数量时,应出现错误提示。3、 数据添加、修改、删除功能添加:添加一种或多种新商品,并能输入其商品信息。修改:修改商品信息,可包括商品编号、名称、种类、数量和单价。删除:删除一类或多类商品的所有信息。4、 计算功能 可通过查询商品信息功能,自动计算并输出需要进货的商品信息。5、 查询功能 可分别按商品编号、名称、类别和需要进货的商品进行查询。6、 排序功能 可分别按商品编号、名称、类别等进行排序。7、 数据显示功能 可分别浏览输入、查询和排序后的商品信息。1.3 数据结构设计struct goods /*商品结构体*/ long int num; /*商品编号*/ char name20; /*商品名称*/ char sort20; /*商品类别*/ long int count; /*商品库存量*/ long int price; /*商品单价*/ goods200; /*最多200个商品*/2 系统设计2.1 总体设计按系统分析的功能要求将系统划分为以下几个主要功能模块:1、 文件管理n 文件打开、关闭:对于刚输入或进行操作后的商品信息,在建立新的商品库存量后,可以把其保存在一个文件中,并对该文件可进行打开和关闭操作。2、 进出货管理n 商品进货: 输入数据后商品信息能自动更新进行添加n 商品销售: 输入数据后商品信息能自动更新进行减少三、商品数据管理n 增加/删除商品: 添加或删除某条商品的信息n 修改商品信息: 对某条商品的信息进行修改四、浏览商品信息管理n 查询商品信息:可分别按商品编号、名称、类别或需要进货商品查询n 排序商品信息: 可按商品编号、名称、类别分别排排序n 浏览商品信息:可浏览输入、查询或排序后的数据。(此处可用图形描述功能模块划分,类似下图)商场商品信息管理系统商品数据管理浏信览息商管品理文件管理进出货管理打开关闭保存查询数据输入数据排序数据修改添加出货进货删除2.2 详细设计2.2.1 界面设计1、 菜单设计n 欢迎界面:n 系统提示:n 菜单设计:2、 输入界面的设计3、 信息显示界面的设计2.2.2 各功能模块的设计根据划分的功能模块,定义以下函数实现各功能:(这部分应介绍各函数的原型,各功能模块实现所用的算法,可用流程图描述)1、 主函数main()定义主函数为空类型(void);利用选择结构(switch)实现在在主函数中的调用各个子函数,利用goto 和子函数中的return语句实现返回主菜单的循环。声明各个子函数输出欢迎界面输出菜单switch(m)1输入商品信息2排序商品信息3输入商品进货信息4输入商品销售信息5增加/删除商品6修改商品信息7查询商品信息8浏览商品信息9保存商品信息清屏幕2、 子函数(1) void input():< 输入函数 >确定新的库存量n,输入商品信息,用for循环语句直到输入商品种类等于n,结束输入;scanf(n)for(i=0;i<=n;i+) 将数据存入结构体成员return(2) void sequence():< 排序函数 >对已有的商品进行排序,可按商品编号、名称、类别进行排序;long temp; char p130,p230;按编号排序for(k=0;k<n-1;k+);for(i=0;i<n-k-1;i+)if(goodsi.num>goodsi+1.num) 是 排序输出排序后结果按名称排序for(k=0;k<n-1;k+) for(i=0;i<n-k-1;i+)if(strcmp(goodsi.name,goodsi+1.name)>0) 是 排序输出排序后结果按类别排序for(k=0;k<n-1;k+) for(i=0;i<n-k-1;i+)if(strcmp(goodsi.sort,goodsi+1.sort)>0) 是 排序输出排序后结果(3) void purchase():< 进货函数 >进货函数主要是针对已有库存的商品,在原来的商品数量再增加: for(i=0;i<n;i+)if(temp=goodsi.num); 是 输入数量 Return (4) void sale():< 销售函数 >要求用户输入所销售的编号,系统用for 循环查询该商品是否存在,不存在要求再进行输入,直到输入正确,输出销售商品: for(i=0;i<n;i+)if(k=goodsi.num)if(a>goodsi.count) 出现输入错误提示;重新输入scanf; for(i=0;i<n;i+) 输出销售商品(5) void edit():< 添加/删除商品 >因为在进货函数已经实现对已有商品的数量的增加,此模块函数主要实现对新商品的添加或对旧商品的删除,并自动处理数据,可以在浏览中输出,用选择语句switch进行俩者操作的选择:定义变量long temp; 声明函数void add(); void dele();switch(k) k=1 k=2 add(); dele(); break; break;(6) void correct():< 修改数据函数 >对有错误信息商品进行修改,输入需要修改的商品编号,用for 循环与if语句找到此商品,重新输入该商品的新信息,并输出: long temp; scanf(temp); for(i=0;i<n;i+)if(temp=goodsi.num)输入新信息 for(i=0;i<n;i+) 输出修改后商品信息(7) void search():< 查询函数 >用switch(k)语句可分别按商品编号、名称、类别或需要进货商品查询;每个case选择中均用for语句查找要查询的商品,并输出查询结果。 long temp1;char temp220,temp320; switch(k) case(k) 输出查询商品信息(8) void scan():< 浏览商品函数 >可分别进行浏览输入的商品信息、查询的商品信息、排序后商品信息,用switch 进行这三种方式的选择。 scnaf ( ) switch(k) case for(i=0;i<n;i+) 输出所要浏览信息; break;(9) void reserve():< 保存文件 >建立文件FILE *fp;char file15用来存放文件保存路径以及文件名,进行清屏,输入文件路径及文件名,利用fp=fopen("file","w+")实现创建并打开一个文件,并得到该文件的地址的功能,显示fprintf(fp,"商品编号t商品名 t商品类别t商品数量t商品价格n"); 最后输出已保存文件,程序中是由PR("商品编号t商品名 t商品类别t商品数量t商品价格n");语句执行。scanf(n)for(i=0;i<=n;i+) 将数据存入结构体成员return3 系统编码设计(这部分将代码列出,注意,每个函数开始处要介绍函数的功能,重要的代码应有注释,代码格式按锯齿式编排)3.1 main函数#include "stdio.h"#include "string.h"#include "stdlib.h"#define PR printf#define SC scanf struct goods long int num; char name20; char sort20; long int count; long int price; goods200; int k,n,i; void main () void input();void sequence();void purchase(); void sell(); void edit(); void correct(); void search(); void scan(); void reserve(); void exit(); PR("n *n *tttttttt *n");PR(" * *");PR("n *tttttttt *n * Welcometttttt *n *tttttttt *n");PR(" *tt to go into .tttt * ");PR("n *tttttttt *n");PR(" * -the Goods Information Manageaent System- *n *tttttttt *n ");PR(" * *n");PR(" *tttttttt *n *");PR("nntPlease press any key to continue:");getch(); system("cls");PR("nn -$-$-$-$-$-$-$-$-$-");PR("n 系统使用-温馨提示:nn 商品编号、数量、单价:采用十进制数,规定长度最长为8位;nn 商品名称为26位字母组成字符串,长度最长为20位;nnt 商品类别:以26个小写字母分别代表着26种商品类别;nnt 该商品需要进货的库存量:count<50;n");PR(" -$-$-$-$-$-$-$-$-$-");PR(" nplease press any key to continue");getch();system("cls"); /*清屏*/ lp: for(i=0;i<1;i+) PR("nnn"); PR("nttt 商品信息管理系统tnn"); PR("t 1 输入商品信息nn"); PR("t 2 排序商品信息nn"); PR("t 3 输入进货信息tt6 修改商品信息nn"); PR("t 4 输入销售信息tt7 查询商品信息nn"); PR("t 5 增加/删除商品tt8 浏览商品信息nn"); PR("ttttt9 保存商品信息nn"); PR(" tt ");/*菜单选择界面*/ PR("nn"); PR("t请选择您所要的操作(或选择(0)退出):"); SC("%d",&k); system("cls"); switch(k) /*用switch语句实现功能选择*/ case 1: input();break; case 2: sequence();break; case 3: purchase();break; case 4: sell();break; case 5: edit();break; case 6: correct();break; case 7: search();break; case 8: scan();break; case 9: reserve();break; case 0: PR("nnt / / / / / _ nnt谢谢使用,欢迎再来,再见O(_)O");exit(0); /*退出系统*/ default: puts("输入错误,请按任意健返回主菜单:n"); break; system("cls"); /*清屏*/ goto lp; /*返回主界面*/ void input() /*功能1:输入商品信息*/ PR("n 请输入需要建立新库存的商品种类数量:"); SC("%d",&n); system("cls"); PR("n n"); for(i=0;i<n;i+) /*用循环实现输入n个商品*/ PR("nt*请输入商品的编号:"); SC("%ld",&goodsi.num); PR("nt 请输入商品的名称:"); SC("%s",goodsi.name); PR("nt 请输入商品的种类:"); SC("%s",goodsi.sort); PR("nt 请输入商品的数量:"); SC("%d",&goodsi.count); PR("nt 请输入商品的单价:"); SC("%d",&goodsi.price); PR("n n"); PR("tPlease press any key to continue:"); getch(); return; /*返回主界面*/ void sequence() /*功能2:排序商品信息*/ long temp; char p130,p230; for(k=0;k<n-1;k+) /*(1): 按编号排序*/ for(i=0;i<n-k-1;i+) /*用起泡法排序*/ if(goodsi.num>goodsi+1.num) /*按编号由小到大排序*/ temp=goodsi.num; goodsi.num=goodsi+1.num; goodsi+1.num=temp; strcpy(p1,goodsi.name); strcpy(goodsi.name,goodsi+1.name); strcpy(goodsi+1.name,p1); strcpy(p2,goodsi.sort); strcpy(goodsi.sort,goodsi+1.sort); strcpy(goodsi+1.sort,p2); PR("-"); PR("ntt按商品编号排序后的商品信息nn"); PR("t商品编号 商品名称 商品类别 商品数量 商品单价n"); /*输出排序后商品信息*/ for(i=0;i<n;i+) PR("t %5ld %5s %5s %5ld %5ldn",goodsi.num,goodsi.name,goodsi.sort,goodsi.count,goodsi.price); for(k=0;k<n-1;k+) /*(2): 按商品名称排序*/ for(i=0;i<n-k-1;i+) if(strcmp(goodsi.name,goodsi+1.name)>0) strcpy(p1,goodsi.name); strcpy(goodsi.name,goodsi+1.name); strcpy(goodsi+1.name,p1); temp=goodsi.num; goodsi.num=goodsi+1.num; goodsi+1.num=temp; strcpy(p2,goodsi.sort); strcpy(goodsi.sort,goodsi+1.sort); strcpy(goodsi+1.sort,p2); PR("-"); PR("ntt按商品名称排序后的商品信息n"); PR("nt商品名称 商品编号 商品类别 商品数量 商品单价n"); /*输出排序后商品信息*/ for(i=0;i<n;i+) PR("t %5s %5ld %5s %5ld %5ldn",goodsi.name,goodsi.num,goodsi.sort,goodsi.count,goodsi.price); for(k=0;k<n-1;k+) /*(3): 按商品类别排序*/ for(i=0;i<n-k-1;i+) /*用起泡法排序*/ if(strcmp(goodsi.sort,goodsi+1.sort)>0) strcpy(p2,goodsi.sort); strcpy(goodsi.sort,goodsi+1.sort); strcpy(goodsi+1.sort,p2); temp=goodsi.num; goodsi.num=goodsi+1.num; goodsi+1.num=temp; strcpy(p1,goodsi.name); strcpy(goodsi.name,goodsi+1.name); strcpy(goodsi+1.name,p1); PR("-"); PR("ntt按商品类别排序后的商品信息nn"); PR("t商品类别 商品编号 商品名称 商品数量 商品单价n"); /*输出排序后商品信息*/ for(i=0;i<n;i+) PR("t %5s %5ld %5s %5ld %5ldn",goodsi.sort,goodsi.num,goodsi.name,goodsi.count,goodsi.price); PR("-"); PR("please press any key to continue:"); getch(); return; /*返回主界面*/ void purchase() /*功能3:进货商品信息*/ long temp; /*定义临时变量表示刚进货的商品编号*/ int j; PR("nt5请输入刚进货的商品编号:"); SC("%ld",&temp); PR("nt5请输入刚进货的商品数量:"); SC("%d",&j); PR("nnntpress any key to contiue:"); getch(); system("cls"); PR("nt输出进货后的商品信息:"); for(i=0;i<n;i+) /*循环,寻找与进货相同的商品信息*/ if(temp=goodsi.num) goodsi.count=goodsi.count+j; /*自动更改商品数量*/ PR("nt商品编号 商品名 商品类别 商品数量 商品价格"); for(i=0;i<n;i+) /*循环,输出进货后的商品信息*/ PR("nt %4ld %4s %4s %ld %4ld",goodsi.num,goodsi.name,goodsi.sort,goodsi.count,goodsi.price); PR("nnttPress any key to enter menu:"); getch(); /*返回功能选择界面*/ return; void sell() /*功能4:销售商品信息*/ long temp; /*定义临时变量temp表示刚销售的商品编号*/ int j; PR("nt5请输入刚销售的商品编号:"); SC("%ld",&temp); PR("nt5请输入刚销售的商品数量:"); SC("%d",&j); for(i=0;i<n;i+) /*循环,找到刚销售的商品信息*/ if(temp=goodsi.num) for(;j>goodsi.count;) /*如果销售额大于库存量,则出现错误提示*/ PR("nt售出数量大于商品原有数量,出现错误,请重新输入:"); SC("%d",&j); goodsi.count=goodsi.count-j; /*完成自动更改商品数量的功能*/ PR("ntpress any key to contiue:"); getch(); system("cls"); /*清屏*/ PR("nn *销售后商品信息:"); PR("nt商品类别 商品编号 商品名称 商品数量 商品单价n"); for(i=0;i<n;i+) /*循环,输出销售后商品信息*/ PR("t %4s %4ld %4s %4ld %4ldn",goodsi.sort,goodsi.num,goodsi.name,goodsi.count,goodsi.price); PR("ntPress any key to enter menu:"); getch(); return; /*返回功能选择界面*/ void edit() /*功能5:添加或删除商品信息*/ void add(); /*声明子函数*/void dele();PR("nt请选择:1.添加商品信息; 2.删除商品信息;");PR("t*请输入 1或2 继续:");SC("%d",&k);switch(k) /*用switch语句实现功能选择*/ case 1: add();break; case 2: dele();break; getch(); return; /*返回主菜单*/ void add() /*添加商品信息*/ /*定义子函数*/ PR("t*请输入所添加商品的商品编号:"); SC("%ld",&goodsn.num); PR("nt请输入所添加商品的名称:"); SC("%s",goodsn.name); PR("nt请输入所添加商品的类别:"); SC("%s",goodsn.sort); PR("nt请输入所添加商品的数量:"); SC("%d",&goodsn.count); PR("nt请输入所添加商品的价格:"); SC("%d",&goodsn.price); n=n+1; PR("n"); void dele() /*删除商品信息*/ /*定义子函数*/ int temp; /*定义局部变量*/ int j; for(i=0;i<n;i+) PR("nt商品编号 商品名 商品类别 商品数量 商品价格"); PR("nt %5ld %5s %5s %5ld %5ld",goodsi.num,goodsi.name,goodsi.sort,goodsi.count,goodsi.price); PR("n"); PR("n"); PR("n*请输入要删除的商品编号:"); SC("%ld",&temp); PR("nn"); for(i=0;i<n;i+) if(temp=goodsi.num) for(j=i;j<n;j+) goodsj.num=goodsj+1.num; strcpy(goodsj.name,goodsj+1.name); strcpy(goodsj.sort,goodsj+1.sort); goodsj.count=goodsj+1.count; goodsj.price=goodsj+1.price; n=n-1; /*商品总库存量减少*/ for(i=0;i<n;i+) PR("nt商品编号 商品名 商品类别 商品数量 商品价格"); /*输出删除后的商品信息*/ PR("nt %5ld %5s %5s %5ld %5ld",goodsi.num,goodsi.name,goodsi.sort,goodsi.count,goodsi.price); PR("n"); PR("Please press any key to continue:"); getch(); return; /*返回主界面*/ void correct() /*功能6:修改商品信息*/ long temp; /*定义局部变量*/PR("nt请输入要修改的商品的编号:"); SC("%ld",&temp); /*输入新的商品信息*/PR("n");for(i=0;i<n;i+) /*保存新的商品信息*/ if(temp=goodsi.num) PR("t请输入一个新的的商品编号:"); SC("%ld",&goodsi.num); PR("nt请输入新的商品的名称:"); SC("%s",goodsi.name); PR("nt请输入新的商品的类别:"); SC("%s",goodsi.sort); PR("nt请输入新的商品的数量:"); SC("%d",&goodsi.count); PR("nt请输入新的商品价格:"); SC("%d",&goodsi.price); PR("n"); for(i=0;i<n;i+) PR("nt新的商品名称 商品编号 商品类别 商品数量 商品单价n"); PR("t %4s %4ld %4s %4ld %4ld",goodsi.name,goodsi.num,goodsi.sort,goodsi.count,goodsi.price); PR("n"); PR("Please press any key to continue:"); /*返回功能选择界面*/ getch(); return; /*返回主菜单*/ void search() /*功能7:查询商品信息*/ int k; /*定义局部变量*/

    注意事项

    本文(C语言商店商品管理系统设计报告与源代码(共27页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开