文档详情

数据结构课程设计报告超市管理信息系统的设计与实现

仙***
实名认证
店铺
DOC
151.52KB
约16页
文档ID:29644309
数据结构课程设计报告超市管理信息系统的设计与实现_第1页
1/16

北京化工大学北方学院课程设计报告课程名称 数据结构课程设计 设计题目 超市管理信息系统的设计与实现 专业、班级 计科0803 学 号 姓 名 指导教师 设计时间 2011.8.29——2011.9.16 2011年 9 月 16 日一、 引言(简要说明设计题目的目的、意义、内容、主要任务等)超市管理信息系统的设计与实现(顺序表)(1)货物信息包括:货物号(char num[3])、货物名(char name[9])、货物类别(char type[6])、价格(float money)(2)模块要求:第一个模块——主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能    第二个模块——Menu()的功能是:显示提示选单    第三个模块——Quit()的功能是:退出选单    第四个模块——Create()的功能是:创建新的货物,货物号,货物名,货物类别,价格。

   第五个模块——Add()的功能是:添加货物的信息,并返回选单    第六个模块——Find()的功能是:按要求查询相关的信息,如果找到了,则显示该信息,如果未找到,则提示文件中没有该信息,并返回选单    第七个模块——Alter()的功能是:修改某货物的信息,如果未找到要修改的货物,则提示超市中没有此货物的信息,并返回选单    第八个模块——Delete()的功能是:删除某货物的信息,如果未找到要删除的货物,则提示超市中没有此货物的信息,并返回选单    第九个模块——List()的功能是:显示超市中的所有记录 除了总的要求外,还需计算低于20块钱的货物总数,并输出日用品类的详细信息21世纪,超市的竞争也进入到了一个全新的领域,竞争已不再是规模的竞争,而是技术的竞争、管理的竞争、人才的竞争技术的提升和管理的升级是连锁超市业的竞争核心零售领域目前呈多元发展趋势,多种业态:超市、仓储店、便利店、特许加盟店、专卖店、货仓等相互并存如何在激烈的竞争中扩大销售额、降低经营成本、扩大经营规模,成为超市努力追求的目标超市信息管理的出现大大提高超市的运作效率通过全面的信息采集和处理,辅助提高超市的决策水平。

使用本系统,可以迅速提升超市的管理水平,为降低经营成本, 提高效益,增强超市扩张能力, 提供有效的技术保障二、 正文(课程设计的主要内容,包括实验与观测方法和结果、仪器设备、计算方法、编程原理、数据处理、设计说明与依据、加工整理和图表、形成的论点和导出的结论等正文内容必须实事求是、客观真切、准确完备、合乎逻辑、层次分明、语言流畅、结构严谨,符合各学科、专业的有关要求本系统应具有以下功能:超市信息管理系统浏览货物信息货物数据管理修改添加删除文件管理打开关闭保存查询数据输入数据排序数据1、 文件操作功能 文件操作:可建立、打开、保存、关闭数据文件如果是新建的文件,可输入商品信息数据:数据包括商品编号、商品名、商品类别、商品数量、商品价格等2、数据输入功能输入进货信息:输入商品编号、数量完成进货操作输入销售信息:输入商品编号、数量完成销售操作,注意当销售数量大于商品数量时,应出现错误提示3、 数据添加、修改、删除功能添加:添加一种或多种新商品,并能输入其商品信息修改:修改商品信息,可包括商品编号、名称、种类、数量和单价删除:删除一类或多类商品的所有信息4、 计算功能 可通过查询商品信息功能,自动统计单价小于20元的货物信息。

5、 查询功能 可分别按商品编号、名称、类别和需要进货的商品进行查询6、 排序功能 可分别按商品编号、名称、类别等进行排序7、 数据显示功能 可分别浏览输入、查询和排序后的商品信息各功能模块的设计根据划分的功能模块,定义以下函数实现各功能:(这部分应介绍各函数的原型,各功能模块实现所用的算法,可用流程图描述)1、 主函数main()定义主函数为空类型(void);利用选择结构(switch)实现在在主函数中的调用各个子函数,利用goto 和子函数中的return语句实现返回主菜单的循环声明各个子函数输出欢迎界面输出菜单switch(m)1输入商品信息2排序商品信息3增加/删除商品4修改商品信息5查询商品信息6浏览商品信息7保存商品信息清屏幕2、 子函数(1) void input():< 输入函数 >确定新的库存量n,输入商品信息,用for循环语句直到输入商品种类等于n,结束输入;scanf(n)for(i=0;i<=n;i++) 将数据存入结构体成员Return(2) void sequence():< 排序函数 >对已有的商品进行排序,可按商品编号、名称、类别进行排序;long temp; char p1[30],p2[30];按编号排序for(k=0;kgoods[i+1].num) 是 排序输出排序后结果按名称排序for(k=0;k0) 是 排序输出排序后结果按类别排序for(k=0;k0) 是 排序输出排序后结果(3) void edit():< 添加/删除商品 >因为在进货函数已经实现对已有商品的数量的增加,此模块函数主要实现对新商品的添加或对旧商品的删除,并自动处理数据,可以在浏览中输出,用选择语句switch进行俩者操作的选择:定义变量long temp; 声明函数void add(); void dele();switch(k) k=1 k=2 add(); dele(); break; break;(4) void correct():< 修改数据函数 >对有错误信息商品进行修改,输入需要修改的商品编号,用for 循环与if语句找到此商品,重新输入该商品的新信息,并输出: long temp; scanf(temp); for(i=0;i用switch(k)语句可分别按商品编号、名称、类别或需要进货商品查询;每个case选择中均用for语句查找要查询的商品,并输出查询结果。

Long temp1; char temp2[20],temp3[20]; switch(k) case(k) 输出查询商品信息(6) void scan():< 浏览商品函数 >可分别进行浏览输入的商品信息、查询的商品信息、排序后商品信息,用switch 进行这三种方式的选择 scnaf ( ) switch(k) Case for(i=0;i建立文件FILE *fp;char file[15]用来存放文件保存路径以及文件名,进行清屏,输入文件路径及文件名,利用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++) 将数据存入结构体成员Return部分模块代码实现菜单选择页面PR("\n\t\t\t 货物信息管理系统\t\n\n"); PR("\t 1 →输入货物信息\n"); PR("\t 2 →排序货物信息\n"); PR("\t 3 →修改货物信息\t\t\n"); PR("\t 4 →查询货物信息\t\t\n"); PR("\t 5 →增加/删除货物\t\t\n"); PR("\t 6 →浏览货物信息\t\t\n"); PR("\t 7 →单价低于20元的货物数量以及日用品信息\n"); PR("\t 8 →保存货物信息\t\t\n"); PR(" \t\t ****************************************************"); PR("\n\n"); PR("\t请选择您所要的操作(或选择(0)退出):"); SC("%d",&k); system("cls");输入货物信息模块代码:void input() { PR("\n 请输入需要建立新库存的货物种类数量:"); SC("%d",&n); system("cls"); PR("\n …………………………………………………………………………………………………\n"); for(i=0;igoods[i+1].num) /*按编号由小到大排序*/ { temp=goods[i].num; goods[i].num=goods[i+1].num; goods[i+1].num=temp; strcpy(p1,goods[i].name); strcpy(goods[i].name,goods[i+1].name); strcpy(goods[i+1].name,p1); strcpy(p2,goods[i].sort); strcpy(goods[i].sort,goods[i+1].sort); strcpy(goods[i+1].sort,p2); } PR("--------------------------------------------------------------------------------"); PR("\n\t\t按货物编号排序后的货物信息\n\n"); PR("\t货物编号 货物名称 货物类别 货物数量 货物单价\n"); /*输出排序后货物信息*/ for(i=0;i0) { strcpy(p1,goods[i].name); strcpy(goods[i].name,goods[i+1].name); strcpy(goods[i+1].name,p1); temp=goods[i].num; goods[i].num=goods[i+1].num; goods[i+1].num=temp; strcpy(p2,goods[i].sort); strcpy(goods[i].sort,goods[i+1].sort); strcpy(goods[i+1].sort,p2); } PR("--------------------------------------------------------------------------------"); PR("\n\t\t按货物名称排序后的货物信息\n"); PR("\n\t货物名称 货物编号 货物类别 货物数量 货物单价\n"); /*输出排序后货物信息*/ for(i=0;i0) { strcpy(p2,goods[i].sort); strcpy(goods[i].sort,goods[i+1].sort); strcpy(goods[i+1].sort,p2); temp=goods[i].num; goods[i].num=goods[i+1].num; goods[i+1].num=temp; strcpy(p1,goods[i].name); strcpy(goods[i].name,goods[i+1].name); strcpy(goods[i+1].name,p1); } PR("--------------------------------------------------------------------------------"); PR("\n\t\t按货物类别排序后的货物信息\n\n"); PR("\t货物类别 货物编号 货物名称 货物数量 货物单价\n"); /*输出排序后货物信息*/ for(i=0;i

此次课程设计编写的是一个运用数据结构中的线性表的应用程序,相对于以前我们见到的程序,它要大得多,于是就按课本上的例子编了超市管理信息系统,先把界面弄好然后再添加各模块,而且各模块也出现了不少问题,在同学们和老师的帮助下,我很有耐心的一次又一次的进行修改,最后运行的结果基本上达到了预期的目的可结果还不是太理想由于时间很短,在选题报告中设想到的好多功能都没有实现已有的那些功能虽已能基本上满足课程设计题目的要求,但如果还有更多的功能程序就会更加完美如:进入系统时没有设制密码,保护性不够强;在输入商品号时没有出错提示,如果商品号输入负值在设计过程中的感受本次数据结构课程设计让我对数据结构以及C 语言的学习又有了更深入的了解,也让我更深刻地领悟到了“实践出真理”这个道理,在上机实践过程中学到的知识远远超过了在课堂上十几周学到的,学校组织的这次实习让我们这些实践知识匮乏的大学生增添了许多社会经验,为我们将来走上工作岗位其了不小的铺垫作用 在编写代码的过程中,最常出现的现象就是反复修改数据结构,甚至在进行优化的时候还回过头去修改中间代码的数据结构这就导致了编写代码效率的降低,还有由于数据结构的反复修改,使得整个工程维护起来极其困难。

因而数据结构的设计在整个设计阶段是很重要的 在程序的编写、调试、运行过程中,遇到了前所未有的困难,是通过与同学交流和沟通解决的同学的热情、耐心的讲解让整个课程设计进展顺利这次编译课程设计对我来说真的是受益匪浅,通过这次课程设计,让我对书本上的各种算法知识有了深刻的理解,同时增强了自己的动手能力,更重要的是我学会了一系列处理问题的方法四、参考文献[1] 马睿,孙丽云主编.数据结构(C语言版).北京:北京邮电大学出版社,2009.[2] 严蔚敏,吴伟民.数据结构.2版.北京:清华大学出版社,2000[3] 黄迪明.C语言程序设计.北京:电子工业出版社,2007.[4]严蔚敏,吴伟民,米宁.数据结构题集(C语言版).清华大学出版社,1999.五、 指导教师评语 签名: 年 月 日课程设计成绩(五级分制)16。

下载提示
相关文档
正为您匹配相似的精品文档