ImageVerifierCode 换一换
格式:DOCX , 页数:34 ,大小:146.62KB ,
资源ID:25780424      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/25780424.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(商店存货管理系统.docx)为本站会员(b****9)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

商店存货管理系统.docx

1、商店存货管理系统201410137214武汉科技大学城市学院课程设计报告课程名称 数据结构课程设计 题 目 商店存货管理系统 学 部 信息工程学部 专 业 计算机科学与技术 班 级 计科二班 姓 名 刘威 指导教师 林晓丽 2015年_ J月 28 日1.1课程设计目的 31.2课程设计内容和要求 31.2.2要求: 31.2.3运行环境 41.3课程设计分析 41.4算法描述 41.5源代码 71.6运行结果分析 17小 结 24参考文献 24课程设计评分表 251.1课程设计目的通过实习,了解并初步掌握设计、 实现较大系统的完整过程, 包括系统分析、 编码设计、系统集成、以及调试分析,熟练

2、掌握数据结构的选择、设计、实现以 及操作方法,为进一步的应用开发打好基础。通过实习巩固并提高实习者的 C语言知识,并初步了解 Visual C+的知识,提高其编程能力与专业水平。1.2课程设计内容和要求1.2.1课程设计内容 建立一商店存货管理系统, 要求每次出货时取进货时间最早且最接近保质期 中止时间的货物。分步实施:1.初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2.完成最低要求:建立一个文件,包括 5 个种类的货物情况,能对商品信息 进行扩充(追加),修改和删除以及简单的排序;3.进一步要求:扩充商品数量,以及完成系统查询功能。有兴趣的同学可以自己扩充系统功能。1.2.

3、2要求:1.界面友好,函数功能要划分好2.总体设计应画一流程图3.程序要加必要的注释4.要提供程序测试方案5.程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的 程序是没有价值的。1.2.3运行环境该程序的运行环境为 Windows xp系统,Microsoft Visual C+6.0版本。1.3课程设计分析1)需要定义一个结构体数组,其中name表示商品的名称,time表示商品 的进货时间,year表示商品的生产日期,no表示商品的保质期。2)利用冒泡法,对商品进行排序。3)选择需要的功能, 其中功能包括商品的最原始添加, 商品的插入, 删除, 查找,将数据写入文件中,从文件

4、中读出数据等操作。4)选择输入 09, 10个数的其中一个数,进行相应的操作。5)进行完所的操作之后,选择保存功能,将数据保存到文件中。6)退出程序。1.4算法描述1)先定义一个商品的结构体数组:typedef struct /*定义结构体数组 */char name20;/商品名称 */int time;/*进货时间*/int year;/*生产日期*/int no;/* 保质期 */goods;2)建立一个菜单函数,显示 10 个功能,供用户选择,进行人机对话。3)设置一个排序的函数, int shuru(shangp gs,int n。) 利用冒泡法先对商品按 进货的时间排序,对进货时间

5、一样的货物,再按离保质期最近排序。4)设置一个输入的函数,intlnput(goods gs,int n)。这个函数是最初商品输 入函数,当选择了这个功能后, 如果是第一次运行这个程序, 保存输入, 那将在D盘产生一个名为“商品.doC的文件,如果已经运行过了,并 保存输入,那输入的商品信息将代替原有的信息,数据输入使用交互输 入,进行人机对话,确定是否进行下一个数据的添加。并且调用了上面 的排序函数,对输入的数据进行排序。5)设置一个显示的函数,void shuchu(goods gs,int n。显示上面输入的所有 数据,或者是从文件中读取的数据。6)设置一个插入的函数, int char

6、u(goods gs,int n。) 每次插入一组数据,如 果要再插入,则再选择这个功能进行操作。并且在插入的同时,已经排 好序,把数据插入适合的位置。7)设置一个查找删除的函数,intchazhaoxianshi(goodsgs,int n)。输入要查 找的商品名称,如果不存在,则输出失败信息,如果存在,则用下一个 信息代替原有信息的位置。8)设置一个查找显示的函数 void chazhaoxianshi(goodsgs,int n)。输入要查 找的商品名称, 如果不存在, 则输出失败信息, 如果存在, 则显示信息。9)设置一个写入文件的函数,void xiewenjian(goods gs

7、,int n)设置文件指针, 先判断文件是否能打开并且能进行写操作,不能则输出失败信息,能则 循环写入数据,写完关闭文件。10)设置一个读文件的函数,int duwenjian(goods gs,int n。设置文件指针, 判断文件是否能打开而且能进行读操作,能则先读出总的数据量,接着 循环读出数据,最后关闭文件。11)进入最后一步, main 函数。判断选择的操作,根据用户选择的操作,利 用 switch 语句进行相应的函数调用。12)选择保存功能,对数据进行保存,然后选择结束程序退出功能,退出程 序。paixu (gs,n)初始条件:数据已经存在操作结果:数据进行排序shuru(gs, n

8、)初始条件:没有任何数据存在,或者要替换原文件中的所有数据操作结果:数据进行输入shuchugs,n)初始条件:数据已经存在操作结果:数据显示charu(gs,n)初始条件:数据已经存在操作结果:数据插入chanchu(gs,n)初始条件:数据已经存在操作结果:数据删除chazhaoshanchu i(gs,n)初始条件:数据已经存在操作结果:数据统计xiewenjia n (gs ,n)初始条件:数据已经存在操作结果:写入文件中duwenjian (gs,n)初始条件:文件已经存在操作结果:从文件中读出1.4流程图:显示数据添加数据删除数据查找数据V统计数据排序数据台匕冃匕功 能5重新选择功

9、能写入文件 *功能7退出程序功能01.5源代码#include /* 引用库函数 */#include#include#includetypedef struct /*定义结构体数组 */char name20;/*商品名称 */int time;/*进货时间*/int year;/*生产日期*/int no;/* 保质期 */goods;goods gs80; /*结构体数组变量 */int menu_select() /*菜单函数 */char c;dosystem(cls); /*运行前清屏 */printf(tt* 商品系统 *n); /* 菜单选择 */printf(tt | 1.

10、输入数据 |n);printf(tt | 2. 显示数据 |n);printf(tt | 3. 插入数据 |n);printf(tt | 4. 删除数据 |n);printf(tt | 5. 查找数据 |n);printf(tt | 6. 统计并显示进货时间最早且最接近保质期中止时间的货物 |n);printf(tt | 7. 写入文件 |n);printf(tt | 8. 读文件 |n);printf(tt | 9. 对读入的文件进行排序 |n);printf(tt | 0. 退出 |n);printf(tt*n);printf(ttt 请选择 (0-9):);c=getchar(); /*

11、读入选择 */while(c9);return(c-0); /* 返回选择 */void Sort_by_time(goods gs,int n) /按* 进货时间排序 */ int i,j,*a,*b,c,*p,*q,s,*m,*k,d,e,f;char t10;for(i=0;in-1;i+) /* 冒泡法排序 */ for(j=0;jgsj+1.time)b=&gsj.time;c=*a;*a=*b;*b=c;strcpy(t,gsj+1.name);strcpy(gsj+1.name,gsj.name);strcpy(gsj.name,t);p=&gsj+1.year;q=&gsj.y

12、ear;s=*p;*p=*q;*q=s;m=&gsj+1.no;k=&gsj.no;d=*m;*m=*k;*k=d;else if(gsj.time=gsj+1.time)a=&gsj+1.year;b=&gsj.no;q=&gsj+1.no;e=(*p)+(*b)*10000;f=(*a)+(*q)*10000;if(ef)a=&gsj+1.time;b=&gsj.time;c=*a;*a=*b;*b=c;strcpy(t,gsj+1.name);strcpy(gsj+1.name,gsj.name);strcpy(gsj.name,t);p=&gsj+1.year;q=&gsj.year;

13、s=*p;*p=*q;*q=s;m=&gsj+1.no; d=*m;*m=*k;*k=d;int Input(goods gs,int n) /*输入若干条记录 */int i=0;char sign,x10;while(sign!=n&sign!=N) /* 判断 */printf(ttt 商品名称 :); /* 交互输入 */scanf(ttt%s,gsn+i.name); printf(ttt 进货时间 (例 20070201):); scanf(ttt%d,&gsn+i.time);printf(ttt 生产日期 (例 20070201):);scanf(ttt%d,&gsn+i.ye

14、ar); printf(ttt 保质期 (年 ):); scanf(ttt%d,&gsn+i.no);gets(x); /*清除多余的输入 */printf(ttt 继续输入 ?(Y/N); scanf(ttt%c,&sign); /* 输入判断 */ i+;Sort_by_time(gs,n+i); /*调用排序函数 */return(n+i);void Display(goods gs,int n) /*显示所有记录 */int i;printf(tt n); /* 格式头 */printf(tt商品名称 进货时间 生产日期 保质期(年)n);printf(tt n);for(i=1;i1

15、&i%10=0) /* 每十个暂停 */printf(ttt n); /* 格式*/system(pause);n);printf(tttprintf(ttt);system(pause); /*按任何键继续 */ int Insert_a_record(goods gs,int n) /插* 入一条记录 */ char x10; /*清除多余输入所用 */printf(ttt 商品名称 :); /* 交互输入 */ scanf(ttt%s,gsn.name);printf(ttt 进货时间 :); scanf(ttt%d,&gsn.time);printf(ttt 生产日期 :); scan

16、f(ttt%d,&gsn.year);printf(ttt 保质期 :);scanf(ttt%d,&gsn.no);gets(x);n+;Sort_by_time(gs,n); /*调用排序函数 */return(n);int Delete_a_record(goods gs,int n) /按* 商品名字查找,删除一条记录 */ char s20;int i=0,j;printf(ttt 商品名称 :);scanf(%s,s);while(strcmp(gsi.name,s)!=0&in) i+; /* 查找判断 */if(i=n)printf(ttt 没找到 !n); /* 返回失败信息

17、*/ return(n);for(j=i;jn-1;j+) /* 删除操作 */ strcpy(gsj.name,gsj+1.name); gsj.time=gsj+1.time; gsj.year=gsj+1.year; gsj.no=gsj+1.no;return(n-1);void Query_a_record(goods gs,int n) /查* 找并显示一个记录 */char s20;int i=0;printf(ttt 输入要查找的商品名称 :);scanf(ttt%s,s);while(strcmp(gsi.name,s)!=0&in) i+; /* 查找判断 */if(i=n

18、)printf(ttt 没找到 !n); /* 输入失败信息 */return;printf(ttt 进贷时间 :%dn,gsi.time); /* 输出该商品信息 */printf(ttt 生产日期 :%dn,gsi.year);printf(ttt 保质期 :%dn,gsi.no);void WritetoText(goods gs,int n) /*将所有记录写入文件 */int i=0;FILE *fp; /* 定义文件指针 */商品.doc,wb)=NULL) /* 打开文件 */printf(tttcannt open the filen);system(pause);return

19、;fprintf(fp,%dn,n); /* 循环写入数据 */while(in)fprintf(fp,%-5s%d %d %dn,gsi.name,gsi.time,gsi.year,gsi.no); i+;fclose(fp); /*关闭文件 */printf(tttSuccessed!n); /* 返回成功信息 */int AddfromText(goods gs,int n) /*从文件中读入数据 */int i=0,num;FILE *fp; /* 定义文件指针 */商品.doc,rb)=NULL) /* 打开文件 */printf(ttt);system(pause);return

20、(n);fscanf(fp,%d,&num); /* 读入总记录量 */while(inum) /* 循环读入数据 */ fscanf(fp,%s%d%d%d,gsn+i.name,&gsn+i.time,&gsn+i.year,&gsn+i.no); i+;n+=num;fclose(fp); /* 关闭文件 */printf(tttSuccessed!n);printf(ttt);system(pause);return(n);void main() /*主函数 */int n=0;for(;)switch(menu_select() /*选择判断 */case 1:printf(ttt

21、输入最初商品 n); /* 输入若干条记录 */n=Input(gs,n);break;case 2:printf(ttt 显示所有商品 n); /* 显示所有记录 */Display(gs,n);break;case 3:printf(ttt 插入 n);n=Insert_a_record(gs,n); /*插入 */printf(ttt);system(pause);break;case 4:printf(ttt 删除 n);n=Delete_a_record(gs,n); /*按商品名称查找,删除 */system(pause);break;case 5:printf(ttt查找并显示

22、n);Query_a_record(gs,n); /查* 找并显示 */ printf(ttt);system(pause);break;case 6:printf(ttt统计并显示进货时间最早且最接近保质期中止时间的货物 n);printf(ttt共有%d件商品.n,n); /*总共记录数*/printf(ttt进货时间最早且最接近保质期中止时间的货物 :n);printf(ttt商品名称 r:%sn,gs0.name);printf(ttt进货时间 :%dn,gs0.time);printf(ttt生产日期 :%dn,gs0.year);printf(ttt保质期 :%dnn,gs0.no

23、);printf(ttt);system(pause);break;case 7:WritetoText(gs,n); /*循环写入数据 */printf(ttt);system(pause);break;case 8:printf(ttt 文件中读数据 n);n=AddfromText(gs,n);printf(ttt);/* 文件中读数据 */break;case 9:printf(tttn);Sort_by_time(gs,n);printf(ttt);/* 对读入的文件进行排序 */ break;case 0:printf(ttt 结束退出 !n); /* 结束程序 */ printf

24、(ttt);system(pause);exit(O);1.6运行结果分析1 .初始界面:(从D盘读入已准备好的文件数据)2选择功能8并选择功能2,显示最初的数据:3对读出的文件进行排序,选功能 9,再选功能2,进行显示:4选择功能3,进行插入操作,选择功能2,进行显示:5选择功能4,进行删除操作,第一种情况为找不到要删除的商品数据:接下去这个是另一种情况,即找到要删除的商品数据并按功能 2,显示:-|n| AlI I 4.(J数沼统莽并莹示迸赁时间最早且最複近保庾期中止时间的贯物:I ?昱人丈件! A文件咗行楼序:I 0.退出!JIKJIJCJtKmCJtJCJIJCJtXJlJtlltXK

25、ieKlifBtieKXKUMJIXSIMZKJtMJtW请选择0-9 :4商昌-石扌粒hb请按任盍犍继续-,廿并显示逬贯苛间最早且最建近保厦期中止时间的赁物对谏入的文件进行样序生产日期保质期年、2SS7Q2ie2SQ701Q1 2687B1B2 26BG1220 2687010230070S2S2B070223200703092007041220070504请按任意犍继義请选择0-9 :2 息卞所怕商品6选择功能5,第一种情况为找不到要查找的数据:妊意犍继渎Jn*商品系 I 1钿数丰i 显不数d| 3 -磁埶iI 4.珊障数I S-查我数无!堰计并並示迸守茸可最早且最複近保庾期中止时间的贯物

26、: I ?-专人文件:I 8-護文件II 9-对谯入的文件进行楼序:I Q.退出!输燧琵的筍品名称比第二种为存在情况7选择功能6:-|n| AlI 2,II 4.曇并弄显示營 时间最早且最接近保庫期中止时间的货物 最接近保质期中止时间的货物:IWI保质期=2了数弭I-rjltn- I_L小凌X.:丐 I土云 / 逢fr= s. IJU/1 弐(.:q iiRfc- fr 早 i.iJJIJI 弋衰X:石 iFtTjfr|h 吊 I亂t并显示迸守对旬最早且最複近保庾期中止时间的贯物: I ?_昱入丈件!I 1專欷甫文件咗行楼序iI Q.退出!:6ee2O07022B20S7021B请按任意犍继逹-8选择功能7:9选择功能0,退出程序题目一 一种排序(一)(难度:3) 11题目要求 12算法设计思路及步骤 13算法描述 24结果分析 3小结 3参考文献 4题目一 一种排序(难度:3)1题目要求1.1问题描述描述现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;现在要求按照一下方式排序(默认排序规则都是从小到大);1.按照编号从小到大排序2.对于编号相等的长方形,按照长方形的长排序;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1