商店存货管理系统说明书.docx
- 文档编号:29130215
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:40
- 大小:631.44KB
商店存货管理系统说明书.docx
《商店存货管理系统说明书.docx》由会员分享,可在线阅读,更多相关《商店存货管理系统说明书.docx(40页珍藏版)》请在冰豆网上搜索。
商店存货管理系统说明书
目录
摘要2
前言3
正文4
1.采用类c语言定义相关的数据类型4
2.各模块的伪码算法4
3.函数的调用关系图9
4.调试分析9
5.测试结果10
6.源程序(带注释)17
总结26
参考文献27
致谢28
附件Ⅰ部分源程序代码29
摘要
商店存货管理系统设计涉及货物信息的录入,显示,查找,删除,退出等功能,从而能够对信息进行处理。
程序中运用了相关结构体,同时定义了一定数量的数据及成员函数。
程序使用了数组记录统计的相关数据,运用了指针实现相应功能函数的功能,运用了类实现面向对象的要求。
程序的完成涉及到程序的分析,模块的分解,程序的控制,程序的调试。
关键词:
冒泡法排序;选择判断;插入;查找并显示;查找判断。
前言
传统的商店货物管理方法、由于分散管理,易发生数据丢失,劳动强度高,速度慢。
使用计算机可以高速、快捷地完成以上工作,特别是在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,从而提高了管理效率和水平。
为方便对商店货物管理,编写该程序是为了提高该管理系统效率。
使用该程序后,工作人员可以查询到商店货物情况,还可以对商品的情况进行统计,给出统计表格以,便掌握商店存货情况。
现在相当一部分商店的货物存取管理工作仍沿用手工方式。
随着商店规模的扩大、商品种类的的增加,效率低下、容易出错的手工方式越来越不适应实际管理工作的需要,它浪费了许多人力和物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。
因此利用计算机技术和数据库技术设计开发商店存货管理系统、实现商店商品管理工作的自动化成为商店管理部门的迫切需。
因此,考虑到这种情况,开发一个商店货物管理系统来进行这一项工作是非常必要的。
正文
1.采用类c语言定义相关的数据类型
#include
#include
charname[20];/*商品名称*/inttime;/*进货时间*/
intyear;/*生产日期*/intno;/*保质期*/goodsgs[80];/*结构体数组变量*/intmenu_select()/*菜单函数*/voidSort_by_time(goodsgs[],intn)/*按进货时间排序*/inti,j,*a,*b,c,*p,*q,s,*m,*k,d,e,f;for(i=0;i 2.各模块的伪码算法 goodsgs[80];/*结构体数组变量*/ intmenu_select()/*菜单函数*/ { charc; do{ system("cls");/*运行前清屏*/ printf("\t\t*********************商店存货管理系统**********************\n");/*菜单选择*/ printf("\t\t*|1.输入数据|*\n"); printf("\t\t*|2.显示数据|*\n"); printf("\t\t*|3.插入数据|*\n"); printf("\t\t*|4.删除数据|*\n"); printf("\t\t*|5.查找数据|*\n"); printf("\t\t*|6.统计并显示进货时间最早且最接近保质期中止时间的货物|*\n"); printf("\t\t*|7.写入文件|*\n"); printf("\t\t*|8.读文件|*\n"); printf("\t\t*|9.对读入的文件进行排序|*\n"); printf("\t\t*|0.退出|*\n"); printf("\t\t***********************************************************\n"); printf("\t\t请选择(0-9): "); c=getchar();/*读入选择*/ }while(c<'0'||c>'9'); return(c-'0');/*返回选择*/ intDelete_a_record(goodsgs[],intn)/*按商品名字查找,删除一条记录*/ { chars[20]; inti=0,j; printf("\t\t\t商品名称: "); scanf("%s",s); while(strcmp(gs[i].name,s)! =0&&i if(i==n) { printf("\t\t\t没找到! \n");/*返回失败信息*/ return(n); } while(i { fscanf(fp,"%s%d%d%d",gs[n+i].name,&gs[n+i].time,&gs[n+i].year,&gs[n+i].no); i++; } n+=num; fclose(fp);/*关闭文件*/ printf("\t\t\tSuccessed! \n"); printf("\t\t\t"); system("pause"); return(n); } voidmain()/*主函数*/ { intn=0; for(;;) { switch(menu_select())/*选择判断*/ { case1: printf("\t\t\t输入最初商品\n");/*输入若干条记录*/ n=Input(gs,n); break; case2: printf("\t\t\t显示所有商品\n");/*显示所有记录*/ Display(gs,n); break; case3: printf("\t\t\t插入\n"); n=Insert_a_record(gs,n);/*插入*/ printf("\t\t\t"); system("pause"); break; case4: printf("\t\t\t删除\n"); n=Delete_a_record(gs,n);/*按商品名称查找,删除*/ printf("\t\t\t"); system("pause"); break; case5: printf("\t\t\t查找并显示\n"); Query_a_record(gs,n);/*查找并显示*/ printf("\t\t\t"); system("pause"); break; case6: printf("\t\t\t统计并显示进货时间最早且最接近保质期中止时间的货物\n"); printf("\t\t\t共有%d件商品.\n",n);/*总共记录数*/ printf("\t\t\t进货时间最早且最接近保质期中止时间的货物: \n"); printf("\t\t\t商品名称r: %s\n",gs[0].name); printf("\t\t\t进货时间: %d\n",gs[0].time); printf("\t\t\t生产日期: %d\n",gs[0].year); printf("\t\t\t保质期: %d\n\n",gs[0].no); printf("\t\t\t"); system("pause"); break; case7: printf("\t\t\t写到文件中\n"); WritetoText(gs,n);/*循环写入数据*/ printf("\t\t\t"); system("pause"); break; case8: printf("\t\t\t文件中读数据\n"); n=AddfromText(gs,n); printf("\t\t\t");/*文件中读数据*/ break; case9: printf("\t\t\t\n"); Sort_by_time(gs,n); printf("\t\t\t");/*对读入的文件进行排序*/ break; case0: printf("\t\t\t结束退出! \n");/*结束程序*/ printf("\t\t\t"); system("pause"); exit(0); } } } 3.函数的调用关系图 4.调试分析 a、调试中遇到的问题及对问题的解决方法 商店存货管理系统.c C: \DocumentsandSettings\Administrator\桌面\算法课设\商店存货管理系统.c(44): errorC2065: 'i': undeclaredidentifier C: \DocumentsandSettings\Administrator\桌面\算法课设\商店存货管理系统.c(45): errorC2065: 'j': undeclaredidentifier C: \DocumentsandSettings\Administrator\桌面\算法课设\商店存货管理系统.c(48): errorC2065: 'a': undeclaredidentifier C: \DocumentsandSettings\Administrator\桌面\算法课设\商店存货管理系统.c(48): warningC4047: '=': 'int'differsinlevelsofindirectionfrom'int*' 发现错误是在第42行,3列多打了// b、算法的时间复杂度和空间复杂度 空间复杂度: 10kb 5.测试结果 1.初始界面: (从D盘读入已准备好的文件数据) 2.选择功能8并选择功能2,显示最初的数据: 3.对读出的文件进行排序,选功能9,再选功能2,进行显示: 4.选择功能3,进行插入操作,选择功能2,进行显示: 5.选择功能4,进行删除操作,第一种情况为找不到要删除的商品数据: 接下去这个是另一种情况,即找到要删除的商品数据并按功能2,显示: 6.选择功能5,第一种情况为找不到要查找的数据: 第二种为存在情况 7.选择功能6: 8.选择功能7: 9.选择功能0,退出程序。 6.源程序(带注释) #include #include #include #include typedefstruct/*定义结构体数组*/ { charname[20];/*商品名称*/ inttime;/*进货时间*/ intyear;/*生产日期*/ intno;/*保质期*/ }goods; goodsgs[80];/*结构体数组变量*/ intmenu_select()/*菜单函数*/ { charc; inti,j,*a,*b,c,*p,*q,s,*m,*k,d,e,f; chart[10]; for(i=0;i for(j=0;j if(gs[j].time>gs[j+1].time) { a=&gs[j+1].time; b=&gs[j].time; c=*a; *a=*b; *b=c; strcpy(t,gs[j+1].name); strcpy(gs[j+1].name,gs[j].name); strcpy(gs[j].name,t); p=&gs[j+1].year; q=&gs[j].year; s=*p; *p=*q; *q=s; m=&gs[j+1].no; k=&gs[j].no; d=*m; *m=*k; *k=d; } elseif(gs[j].time==gs[j+1].time) { p=&gs[j].year; a=&gs[j+1].year; b=&gs[j].no; q=&gs[j+1].no; e=(*p)+(*b)*10000; f=(*a)+(*q)*10000; if(e>f) { a=&gs[j+1].time; b=&gs[j].time; c=*a; *a=*b; *b=c; strcpy(t,gs[j+1].name); strcpy(gs[j+1].name,gs[j].name); strcpy(gs[j].name,t); p=&gs[j+1].year; q=&gs[j].year; s=*p; *p=*q; *q=s; m=&gs[j+1].no; k=&gs[j].no; d=*m; *m=*k; *k=d; } } } voidDisplay(goodsgs[],intn)/*显示所有记录*/ { inti; printf("\t\t------------------------------------------------\n");/*格式头*/ printf("\t\t商品名称进货时间生产日期保质期(月)\n"); printf("\t\t------------------------------------------------\n"); for(i=1;i { printf("\t\t%-5s%d%d%d\n",gs[i-1].name,gs[i-1].time,gs[i-1].year,gs[i-1].no); if(i>1&&i%10==0)/*每十个暂停*/ { printf("\t\t\t-----------------------------------\n");/*格式*/ printf("\t\t\t"); system("pause"); printf("\t\t\t-----------------------------------\n"); } } printf("\t\t\t"); system("pause");/*按任何键继续*/ } intInsert_a_record(goodsgs[],intn)/*插入一条记录*/ { charx[10];/*清除多余输入所用*/ printf("\t\t\t商品名称: ");/*交互输入*/ scanf("\t\t\t%s",gs[n].name); printf("\t\t\t进货时间: "); scanf("\t\t\t%d",&gs[n].time); printf("\t\t\t生产日期: "); scanf("\t\t\t%d",&gs[n].year); printf("\t\t\t保质期: "); scanf("\t\t\t%d",&gs[n].no); gets(x); n++; Sort_by_time(gs,n);/*调用排序函数*/ printf("\t\t\t插入成功! \n");/*返回成功信息*/ return(n); } intDelete_a_record(goodsgs[],intn)/*按商品名字查找,删除一条记录*/ { chars[20]; inti=0,j; printf("\t\t\t商品名称: "); scanf("%s",s); while(strcmp(gs[i].name,s)! =0&&i if(i==n) { printf("\t\t\t没找到! \n");/*返回失败信息*/ return(n); } for(j=i;j { strcpy(gs[j].name,gs[j+1].name); gs[j].time=gs[j+1].time; gs[j].year=gs[j+1].year; gs[j].no=gs[j+1].no; } printf("\t\t\t删除成功! \n");/*返回成功信息*/ return(n-1); } voidQuery_a_record(goodsgs[],intn)/*查找并显示一个记录*/ { chars[20]; inti=0; printf("\t\t\t输入要查找的商品名称: "); scanf("\t\t\t%s",s); while(strcmp(gs[i].name,s)! =0&&i if(i==n) { printf("\t\t\t没找到! \n");/*输入失败信息*/ return; } printf("\t\t\t进贷时间: %d\n",gs[i].time);/*输出该商品信息*/ printf("\t\t\t生产日期: %d\n",gs[i].year); printf("\t\t\t保质期: %d\n",gs[i].no); } voidWritetoText(goodsgs[],intn)/*将所有记录写入文件*/ { inti=0; FILE*fp;/*定义文件指针*/ if((fp=fopen("d: \\商品.doc","wb"))==NULL)/*打开文件*/ { printf("\t\t\tcann'topenthefile\n"); system("pause"); return; } fprintf(fp,"%d\n",n);/*循环写入数据*/ while(i { fprintf(fp,"%-5s%d%d%d\n",gs[i].name,gs[i].time,gs[i].year,gs[i].no); i++; } fclose(fp);/*关闭文件*/ printf("\t\t\tSuccessed! \n");/*返回成功信息*/ } intAddfromText(goodsgs[],intn)/*从文件中读入数据*/ { inti=0,num; FILE*fp;/*定义文件指针*/ if((fp=fopen("d: \\商品.doc","rb"))==NULL)/*打开文件*/ { printf("\t\t\tcann'topenthefile\n");/*打开失败信息*/ printf("\t\t\t"); system("pause"); return(n); } fscanf(fp,"%d",&num);/*读入总记录量*/ while(i { fscanf(fp,"%s%d%d%d",gs[n+i].name,&gs[n+i].time,&gs[n+i].year,&gs[n+i].no); i++; } n+=num; fclose(fp);/*关闭文件*/ printf("\t\t\tSuccessed! \n"); printf("\t\t\t"); system("pause"); return(n); } voidmain()/*主函数*/ { intn=0; for(;;) { switch(menu_select())/*选择判断*/ { case1: printf("\t\t\t输入最初商品\n");/*输入若干条记录*/ n=Input(gs,n); break; case2: printf("\t\t\t显示所有商品\n");/*显示所有记录*/ Display(gs,n); break; case3: printf("\t\t\t插入\n"); n=Insert_a_record(gs,n);/*插入*/ printf("\t\t\t"); system("pause"); break; case4: printf("\t\t\t删除\n"); n=Delete_a_record(gs,n);/*按商品名称查找,删除*/ printf("\t\t\t"); system("pause"); break; case5: printf("\t\t\t查找并显示\n"); Query_a_record(gs,n);/*查找并显示*/ printf("\t\t\t"); system("pause"); break; case6: printf("\t\t\t统计并显示进货时间最早且最接近保质期中止时间的货物\n"); printf("\t\t\t共有%d件商品.\n",n);/*总共记录数*/ printf("\t\t\t进货时间最早且最接近保质期中止时间的货物: \n"); printf("\t\t\t商品名称r: %s\n",gs[0].name); printf("\t\t\t进货时间: %d\n",gs[0].time); printf("\t\t\t生产日期: %d\n",gs[0].year); printf("\t\t\t保质期: %d\n\n",gs[0].no); printf("\t\t\t"); system("pause"); break; case7: printf("\t\t\t写到文件中\n"); WritetoText(gs,n);/*循环写入数据*/ printf("\t\t\t"); system("pause"); break; case
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 商店 存货 管理 系统 说明书