数据结构课程设计-进销存货物管理系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

桂林电子科技大学综合设计说明书用纸《数据结构与算法》课程设计说明书题目:进销存货物管理系统学院:计算机科学与工程学院专业:姓名:学号:指导教师:张瑞霞2014年10月11日桂林电子科技大学综合设计说明书用纸目录引言.............................................................31系统概述......................................................32需求分析......................................................32.1系统需求................................................................32.2开发环境................................................................43详细设计......................................................44所遇到的问题和分析解决......................................1775系统特色及关键技术...........................................206结论.........................................................21参考文献.......................................................192桂林电子科技大学综合设计说明书用纸第1页引言随着计算机技术的发展,经济大环境的变化使得规模经济的优势不再突出。固定的硬设备、人员数量、大量资金等资源投入占企业效益的比重变少,而软投入如管理、人力资源价值、服务、品牌附加值、渠道等要素资源的投入却能增加企业的效益。“速度冲击规模”的速度经济概念已经向企业提出,计算机技术已经渗透到各个领域,成为各个行业必不可少的工具,特别是internet技术的推广和信息高速公路的建立,使IT产业在市场竞争中越发显示独特的优势,步入信息化的时代,有巨大的数据信息等待加工处理和传输,这使得对数据的进一步开发和利用显得尤为迫切。仓库作为一总货品资源的集散地,货品的种类繁多,包含很多的信息数据管理。据调查得知,以前仓库进行信息管理的方式主要是基于文本、表格等纸介质的手工处理,对于货品的出入库情况的统计和核实等往往采用对账本的的人工检查,对管理者的管理权限的不受约束,任何人都可以查看,引起资料外泄。另外,数据信息处理工作量大,容易出错,不宜查找。而且,一般储存情况是记录在账本上的,仓库货物管理人员也只是当时记得比较清楚,时间长了进行查询会造成费事、费时、费力,如对很长时间的货物以及大量货物进行管理就更加困难了。因此我们很有必要建立一个仓库进销存货物管理系统,使货物管理工作更加规范化、系统化、程序化,提高信息处理的速度和准确性。1系统概述进销存货物管理系统主要运用了数据结构中线性表的链式存储,链式存储空间的可扩展性大,将链表中的数据以文件的形式保存,程序功能包括初始化、创建表、插入、删除和查找等,以最少的内存使用和最高的效率为原则,实现客户的需求。进入主菜单,选择相应的功能按照提示即可进入相应的操作。本系统的主要功能如下:(1)用户自行注册登录,保证仓库货物信息的保密性。(2)仓库各种货物信息的输入,主要包括货物标号、名称、产地、入库价格、入库时间、现存货物数量、已经销售数量、平均销售价格等。(3)仓库各种货物信息的查询、修改和维护。(4)对仓库中损坏货物信息的删除。(5)仓库货物信息列表的生成显示。(6)实现货物信息对文本中的保存。2需求分析2.1系统需求为了能够提高内存的利用及各功能的实现,程序主要使用了:(1)线性表的链式存储,分配存储空间,空间可扩展性强,方便频繁的录入、插入、查找、删除和排序等而不占用多余的内存。(主要应用)桂林电子科技大学综合设计说明书用纸第2页(2)文件文本的读取与写入,为了方便用户更加快速的执行管理操作。(3)结构体的定义,定义了货物结构体。(4)登录用户时的字符串读取及验证。进销存货物管理系统主要实现以下函数模块功能:(1)录入货物信息函数LinkListCreateList(void)//运用链式存储货物信息写入文件的函数voidfile_write(ListNode*p)文件中的信息读出的函数LinkListfile_read()(2)查找货物函数vvoidFindNode()(3)修改信息函数voidModNode()(4)插入货物函数voidInsertNode()(5)删除货物函数voidDelNode()(6)货物信息排序函数voidgoodsrank()(7)统计货物信息函数voidgoods_count()(8)密码登陆系统函数voidapply();intload();voidkey()系统能够实现初始化、创建表、插入、删除和查找等功能,使得货物管理更加规范化、系统化、程序化,方便货物管理员对仓库进行科学高效管理。2.2开发环境系统主要在MicrosoftVisualC++6.0的环境下开发。VisualC++6.0,简称VC或者VC6.0,是微软推出的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。VisualC++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出VisualC++1.0后,随着其新版本的不断问世,VisualC++已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了VisualC++.NET(VisualC++7.0),但它的应用的很大的局限性,只适用于Windows2000、WindowsXP和WindowsNT4.0。所以实际中,更多的是以VisualC++6.0为平台。VisualC++6.0不仅是一个C++编译器,而且是一个基于Windows操作系统的可视化集成开发环境(integrateddevelopmentenvironment,IDE)。VisualC++6.0由许多组件组成,包括编辑器、调试器以及程序向导AppWizard、类向导ClassWizard等开发工具。3详细设计3.1设计框架桂林电子科技大学综合设计说明书用纸第3页图3.1:设计框架图3.2程序主要流程图桂林电子科技大学综合设计说明书用纸第4页图3.2:程序主要流程图3.3主要函数设计3.3.1登陆函数启动系统,进入界面,会有两个选项:1、新用户注册2、新用户登陆新用户注册:执行此函数,程序会在工程目录下自动生成一个key.txt文件,用于保存新用户申请的账号和密码。voidapply()//新用户注册{inti,flag=1;FILE*fp;charname[20],key[20];flushall();printf(\n****新用户注册****\n);printf(\t\t\t用户名(不能为空):);scanf(%s,name);flushall();printf(\t\t\t密码(不能为空):);for(i=0;i=20;i++){key[i]=getch();if(key[i]==13){key[i]='\0';break;}printf(*);}fp=fopen(key.txt,w);if(fp==NULL){printf(thefilecannotopen!);flag=0;exit(1);}fprintf(fp,%s%s,name,key);fclose(fp);}新用户登陆:函数通过读取key.txt文件获取新用户之前申请的账号和密码,以验证输入是否正确,从而是否允许用户进入系统。intload()//用户登录{桂林电子科技大学综合设计说明书用纸第5页FILE*fp;inti;charname[20],key[20];charname1[20],key1[20];fp=fopen(key.txt,r);fscanf(fp,%s%s,name,key);fclose(fp);printf(\n**新用户登陆**\n);printf(\t\t\t用户名(不能为空):);scanf(%s,name1);flushall();printf(\t\t\t密码(不能为空):);for(i=0;i=20;i++){key1[i]=getch();if(key1[i]==13){key1[i]='\0';break;}printf(*);}printf(\n);if(strcmp(name1,name)==0&&strcmp(key1,key)==0){printf(登陆成功!\n\n);return1;}}密码系统登陆界面:桂林电子科技大学综合设计说明书用纸第6页图3.3:密码系统登陆界面3.3.2主函数设计程序启动进入主函数,进入主菜单界面和用户进行交互。用户可以直接明了的清楚软件的功能项目,调用各个模块的功能项目,进行选择。主菜单一共有十个选项,分别为:1---货物管理的建立2---货物管理的插入3---货物管理的查询4---货物管理的删除5---货物管理的输出6---货物管理的修改7---货物管理的销售更新8---货物管理的信息排序9---货物管理的信息统计10--清屏0---退出货物管理系统选择其中的选项后,会执行相应的函数:case1:head=CreateList();//建立链表case2:InsertNode();//插入节点case3:FindNode();//查找节点case4:DelNode();//删除结点case5:PrintList();//输出case6:ModNode();//修改case7:UpdatedNode();//更新case8:goodsrank();//排序case9:goods_count();//统计case10:system(cls);//清屏case0:system(cls);//退出桂林电子科技大学综合设计说明书用纸第7页主菜单界面:图3.4:主菜单界面3.3.3货物信息的建立数据建立是该软件必备的基本功能,当链表为空时,对货物信息变量“货物标号”判断并进行录入,系统调用录入函数,在用户输入货物信息后添加到链表里,在添加过程中按提示自动插入到相应位置。添加成功后,返回主菜单并提示用户保存到自建的文本中,并可以根据各个模块要求进行读取修改。利用尾插法建立带头结点的货物管理链表,LinkListhead=(ListNode*)malloc(sizeof(ListNode));//申请头结点ListNode*p,*rear;rear=head;//尾指针初始指向头结点scanf(%s,p-data.NO);//输入货物标号scanf(%s,p-data.name);//输入货物名称scanf(%s,p-data.area);//输入货物产地scanf(%f,&p-data.price);;//输入货物入库价格scanf(%s,p-data.time);//输入货物入库时间scanf(%d,&p-data.number1);//输入货物入库数量scanf(%d,&p-data.number2);//输入货物已经销售数量scanf(%f,&p-data.sellprice);//输入货物销售价格rear-next=p;//新结点连接到尾结点之后rear=p;//尾指针指向新结点rear-next=NULL;//终端结点指针置空file_write(head);//保存输入的货物信息建立货物信息界面:桂林电子科技大学综合设计说明书用纸第8页图3.5:建立货物信息界面(1)图3.5:建立货物信息界面(2)3.3.4货物信息的插入本系统设置了货物一共有八个属性,分别是货物的标号、货物名称、货物产地、

1 / 22
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功