商店存货管理系统程序设计

上传人:飞*** 文档编号:26952403 上传时间:2018-01-04 格式:PDF 页数:26 大小:320.63KB
返回 下载 相关 举报
商店存货管理系统程序设计_第1页
第1页 / 共26页
商店存货管理系统程序设计_第2页
第2页 / 共26页
商店存货管理系统程序设计_第3页
第3页 / 共26页
商店存货管理系统程序设计_第4页
第4页 / 共26页
商店存货管理系统程序设计_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《商店存货管理系统程序设计》由会员分享,可在线阅读,更多相关《商店存货管理系统程序设计(26页珍藏版)》请在金锄头文库上搜索。

1、邵阳学院目录1 前言 .1 2 需求分析 .12.1任务和要求 .1 2.2运行环境 .2 2.3开发工具 .2 3 分析和设计 .2 3.1系统分析和设计思路 23.2主要数据结构和算法 .2 3.3函数流程图 44 具体代码实现 .9 5 课程设计总结 1 8 5.1程序运行结果 .18 5.2设计结论 .24 参考文献 .25 致谢 .25 1 1 前言由于 C 语言是面对过程的语言,所以我的设计思路是根据目标程序运行的过程来编写的。在编写本程序的过程中, 首先借助老师给的指导材料, 确定了目标程序运行的次序与界面,即本程序首先运行初始界面,对文件的读取,数据的显示,对读入的文件进行排序

2、,数据的插入,数据的删除,数据的查找,统计并显示进货时间最早且最接近保质期中止时间的货物, 写入文件进行操作运行, 其次, 根据目标程序运行的次序与界面, 确定设计流程、 设计界面。 再次按照程序运行各界面下的菜单功能编写各功能模块, 并调试程序各功能模块能够稳定、 高效、 准确地完成相应功能。最后是程序的整体调试及功能完善。 此部分从学生选课的角度出发, 考虑了更加高效准确、更加合理和更加智能化的设计。2 需求分析2.1 任务和要求任务: 建立一商店存货管理系统, 要求每次出货时取进货时间最早且最接近保质期中止时间的货物。分步实施:1.初步完成总体设计,搭好框架,确定人机对话的界面,确定函数

3、个数;2.完成最低要求:建立一个文件,包括 5 个种类的货物情况,能对商品信息进行扩充(追加) ,修改和删除以及简单的排序;3.进一步要求:扩充商品数量,以及完成系统查询功能。有兴趣的同学可以自己扩充系统功能。要求:1.界面友好,函数功能要划分好2.总体设计应画一流程图3.程序要加必要的注释4.要提供程序测试方案5.程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。2 2.2 运行环境( 1) WINDOWS2000/XP 系统( 2) VisualC+6.0 编译环境或 TC 编译环境2.3 开发工具C 语言3 分析和设计3.1 系统分析及设计思路( 1)需要

4、定义一个结构体数组,其中 name 表示商品的名称, time 表示商品的进货时间, year表示商品的生产日期, no 表示商品的保质期。( 2)利用冒泡法,对商品进行排序。( 3)选择需要的功能,其中功能包括商品的最原始添加,商品的插入,删除查找,将数据写入文件中,从文件中读出数据等操作。( 4)选择输入 09, 10 个数的其中一个数,进行相应的操作。( 5)进行完所的操作之后,选择保存功能,将数据保存到文件中。( 6)退出程序。3.2 主要数据结构及算法( 1)先定义一个商品的结构体数组:typedef struct /*定义结构体数组 */ char name20;/*商品名称 */

5、 int time;/* 进货时间 */ int year;/* 生产日期 */ int no;/* 保质期 */ goods; ( 2)建立一个菜单函数,显示 10 个功能,供用户选择,进行人机对话。( 3)设置一个排序的函数, void Sort_by_time(goods gs,int n)。利用冒泡法先对商品按进货的时间排序,对进货时间一样的货物,再按离保质期最近排序。( 4)设置一个输入的函数, int Input(goods gs,int n) 。这个函数是最初商3 品输入函数,当选择了这个功能后,如果是第一次运行这个程序,保存输入,那将在 D 盘产生一个名为“商品 .doc”的文

6、件,如果已经运行过了,并保存输入,那输入的商品信息将代替原有的信息,数据输入使用交互输入,进行人机对话,确定是否进行下一个数据的添加。并且调用了上面的排序函数,对输入的数据进行排序。( 5) 设置一个显示的函数, void Display(goods gs,int n)。 显示上面输入的所有数据,或者是从文件中读取的数据。( 6)设置一个插入的函数, int Insert_a_record(goods gs,int n)。每次插入一组数据,如果要再插入,则再选择这个功能进行操作。并且在插入的同时,已经排好序,把数据插入适合的位置。( 7)设置一个查找删除的函数, int Delete_a_re

7、cord(goods gs,int n)。输入要查找的商品名称,如果不存在,则输出失败信息,如果存在,则用下一个信息代替原有信息的位置。( 8)设置一个查找显示的函数, void Query_a_record(goods gs,int n)。输入要查找的商品名称,如果不存在,则输出失败信息,如果存在,则显示信息。( 9 )设置一个写入文件的函数, void WritetoText(goods gs,int n)。设置文件指针,先判断文件是否能打开并且能进行写操作,不能则输出失败信息,能则循环写入数据,写完关闭文件。( 10 )设置一个读文件的函数, int AddfromText(goods

8、gs,int n)。设置文件指针, 判断文件是否能打开而且能进行读操作, 能则先读出总的数据量, 接着循环读出数据,最后关闭文件。( 11 )进入最后一步, main 函数。判断选择的操作,根据用户选择的操作,利用 switch 语句进行相应的函数调用。( 12 )选择保存功能, 对数据进行保存, 然后选择结束程序退出功能, 退出程序。Sort_by_time(gs,n) 初始条件:数据已经存在操作结果:数据进行排序Input(gs, n) 初始条件:没有任何数据存在,或者要替换原文件中的所有数据操作结果:数据进行输入Display(gs,n) 4 初始条件:数据已经存在操作结果:数据显示In

9、sert_a_record(gs,n) 初始条件:数据已经存在操作结果:数据插入Delete_a_record(gs,n) 初始条件:数据已经存在操作结果:数据删除Query_a_record(gs,n) 初始条件:数据已经存在操作结果:数据统计WritetoText(gs,n) 初始条件:数据已经存在操作结果:写入文件中AddfromText(gs,n) 初始条件:文件已经存在操作结果:从文件中读出3.3 函数流程图5 charc; system(“ cls” ); c 9N Yreturn(c= 0 );图 3.3.1 流程图开始结束6 int i=0; sign!= n &sign!=

10、NN Y printf( “ ttt 商品名称 :” ); Sort_by_time(gs,n+i); return(n+i); 图 3.3.2 流程图开始结束7 chars20; while(strcmp(gsi.name,s)!=0 Y Ni+; i=n N Y printf( “ ttt 没找到 !n” ); return; printf( “ ttt 进货时间: %dn” ,gsi.time); printf( “ ttt 生产日期: %dn ” ,gsi.year); printf( “ ttt 保质期: %dn ” ,gsi.no); 图 3.3.3 流程图开始结束8 int i=

11、0; if(fp=fopen( “ 商品 .doc” ,” wb” )=NULL) N Y printf( “ tttcann t open the filen ” ); return; fprintf(fp, ” %dn” ,n); i /*引用库函数 */ #include #include #include typedef struct /*定义结构体数组 */ char name20;/*商品名称 */ int time;/* 进货时间 */ int year;/* 生产日期 */ int no;/* 保质期 */ goods; goods gs80; /*结构体数组变量 */ int

12、 menu_select() /*菜单函数 */ char c; do system(cls); /* 运行前清屏 */ printf(tt 商品系统 n); /* 菜单选择 */ printf(tt | 1. 输入数据 |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

13、. 读文件 |n); printf(tt | 9. 对读入的文件进行排序 |n); printf(tt | 0. 退出 |n); printf(ttn); 10 printf(ttt 请选择 (0-9):); c=getchar(); /*读入选择 */ 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;igsj+1.time) a= b= c=*a; *a=*b; *b=c

14、; strcpy(t,gsj+1.name); strcpy(gsj+1.name,gsj.name); strcpy(gsj.name,t); p= q= s=*p; *p=*q; *q=s; m= k= d=*m; *m=*k; *k=d; 11 else if(gsj.time=gsj+1.time) p= a= b= q= e=(*p)+(*b)*10000; f=(*a)+(*q)*10000; if(ef) a= b= c=*a; *a=*b; *b=c; strcpy(t,gsj+1.name); strcpy(gsj+1.name,gsj.name); strcpy(gsj.name,t); p= q= s=*p; *p=*q; *q=s; m= k= d=*m; *m=*k; *k=d; 12 int Input(goods gs,int n) /* 输入若干条记录 */ int i=0; char sign,x10; while(sign!=n&sign!=N) /* 判断 */ printf(ttt

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 商业计划书

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号