版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学号
课设计题学专班姓
目院业级名
库存模型维护管理学院信息管理与信息系统03黄勇彪指教
王庆国2010
07
12
课程设计任务学姓:
黄彪
专班:
信管03指教:
王庆国
工单:
管学题
目
库存模型维护初条:以链式结构的有序表表示某商厦家电部的库存模型。当有提货或进货的业务要求时,需要对该有序表及时进行维护。每个工作日结束之后,将链式结构的有序表中的数据以文件的形式保存;每天营业之初需要将文件形式的数据恢复成链式结构的有序表。要完的要务
(包括课程设计工作量及其技术要求、说明书撰写等具体要求)链式结构的有序表的结点结构的数据域应包括家电名称品牌号单价及数量,以结点中单价值的非减序列体现着有序性。日常的维护操作应包括初始化、创建表、插入、删除、更新数据、打印、查询以及链式结构的有序表与文件之间的数据转换。时安:序号
设计内问题分析和任务定义数据类型和系统设计编码实现和静态检查上机准备和上机调试总结和整理设计报告合计
所用时0.5天0.5天3天2天1天7天指教签:2010年07月系任或任师签:20100702日1.需分析1.1背景分析在商场中,各种商品的库存量在每天的销售与进货过程中会发生不断的变化,而由于商场是零售经营,所以每天涉及库存的维护是一个比较麻烦的问题,另一方面,由于受市场和物价,居民消费水品的影响,商品的价格在不同的时间内会发生一定的变化,部分商品也会由于科技的发展,或者消费者的价值取向,审美观等方面的影响,会淘汰掉,这既涉及到库存价格的变化以及商品的变化,作为一个大型商场,没有好的库存管理方案,将会是一场灾难,所以,库存管理系统是必需的。为此,我用所学的C语设计了这样一个实现库存模型维护的程序,从而实现商场家电部门的库存维护,其中包括商品的初始化,商品的录入,淘汰商品的删除,以及商品信息的更新,商品信息的打印,以及库存商品文件与程序中表的转换。1.2功能分析商品信息的输入形式:以手动输入或者从文件中读取。商品结构体中(商品号,商品名,商品品牌,商品单价,商品数量)是要求输入的,其中商品号和商品数量的数据类型是整型,商品和商品品牌的数据类型是字符串型,商品单价是浮点型。输出的形式包括以单行为一商品信息的屏幕输出和输出到文件。包括按商品号的顺序输出和按商品价格高低输出两种。商品的初始化,商品的录入,按商品号的排序,按商品号排序输出,按商品价格排序,按商品价格排序输出,指定商品的查询,淘汰商品的删除,以及商品信息的更新,商品信息的打印,及库存商品文件与程序中表的转换。测试数据,如下截图:当库存文件记录为空时,输出库存文件,结果如下:当库存文件记录为空时,删除记录,结果如下:当库存文件记录为空时,排序输出记录,结果如下:当库存文件记录为空时,出货操作时,结果如下:当库存文件记录为空时,查询操作时,结果如下:当库存文件记录为空时,修改操作时,结果如下:2.概设计2.1商品结构体数据类型如下node{//定义结构体intno;产品号//品名kind[10];//品种类float//产品单价int//产品库数量int//产品号指针int产品库存数量指针int//品价格指针}EmpType;2.2主函数的流程图如下3.详设计3.1函数天用关系#include<math.h>MaxSize100node{//定义结构体intno;//品号//品名kind[10];//品种类floatprice;//品单价intnum;//品库存数量intpno;//品号指针intpnum;//品库存数量指针intpprice;//品价格指针}EmpType;ReadFile(EmpTypeemp[],int&n)//对库存文件读取的函数Clearup(EmpTypeemp[],int//空库存文件中的记录的函数emp[],int&n)//将商品记录保存到商品库库文件的函数emp[],int//入新的记录函数OutputFile(EmpTypeemp[],int//出库存文件中所有记录的函数emp[],int//货记录些如山品库存文件的函数emp[],int//货记录保存到商品文件的函数emp[],intn)//商品号排序输出库存文件的函数Dispprice(EmpTypeemp[],int//商品价格排序输出的函数Inquiry(EmpTypeemp[],int//询商品记录的函数Modify(EmpTypeemp[],int//改商品记录的函数Delete(EmpTypeemp[],int&n)//除文件中商品记录的函数intComparison(chara[],charb[])字符串比较main(){doubledummy;EmpTypeintk,a[10]="hyb\0";printf("printf("
欢迎登陆黄勇彪的库存维护系统!!!=======\n");输入您的登录名");scanf("%s",b);t=Comparison(a,b);if(t!=0)不起,登录名错误!!");{输入您的密码:");scanf("%s",d);if(h!=0)对不起,密码错误!!");{printf("printf("
欢迎使用黄勇彪的库存维护系统\n");=======\n");do{printf("1:入新产品记录printf("清空库存记录printf("5:按产品号排序输出
2:出库存信息");4:除记录n");6:价格排序输出\n");printf("7:货登记printf("9:询记录printf("0:储退出\n");请选择操作--10:");scanf("%d",&k);switch(k)
8:货登记n");10:改记录n");{break;2:OutputFile(emp,n);break;3:Clearup(emp,n);break;4:Delete(emp,n);break;break;6:Dispprice(emp,n);break;break;break;9:Inquiry(emp,n);break;break;break;}}while(k!=0);}}}3.2函数调用关系结构图4.调分析4.1遇到的问题调试的过程中遇到了居多问题首先是单价作为浮点数的输出问题输出过程中,一直未能正常输出,最后想到了以前也遇到类似问题,查阅资料,发现在函数开始添加库头函数#序中加入double即解决该问题次文件和顺序表的转换问题即件的读和写,当这些在课本上都是能够找到的出格式问题这也花了相当的时间由缺乏经验,在控制输格式时,再三调试才是文件中的记录合理输出各函数的制问题虽然说起来都是很简单的句话是在实际操作过程中却需要大量的时间去解决这些细碎问题。,在设计系统登陆,涉及字符数组的比较,其中用字符数组常量存储用户名,而登录时输入的户名存储在另一字符数组中后调用设计的字符比较函数进行比较输的用户名与字符常量数组存储的字符串是否一致一进行第二步的密码校验然码校验和用户名校验类似这中,关于字符常量数组应该是什么,一直存在着偏差,例如:开始我以为应该设a[10]="hyb"但是在调试过程中,一直未能正确,后翻看以前教材,查看关于字符数组的知识,才知道,键盘输入的字符数组是以“\0结尾的,后通过调试,完成了这一功能,虽然这是自己额外添加的功能,但是还是收获不少,其次是感觉自己的知识不够牢固,有一种“知识用时方恨少”的感觉。,在涉及到C语编程时,关于使用的环境问题是大家问我问的最多的问题,其实我个人也到了同样的麻烦因以前C言的程序设计动用的是TC总的感觉是TC编时函数内部调试比较好使,但是涉及多个文件链接时的工程文件时,就显得有些繁琐,没有像VC和VS那清晰的件结构,除此之外TC的界面单调,但是总的来说的关键字显示对于编程人员来说,有很好的提作用,而且他也可以结合文本文件编程,而VS则于大型工程编辑的,其界面,支持中文等方面就是其强势的一面以一直没怎么使用VS是这次了提高系统的可阅读性良好的人机界面用了,从TC到,还是存在一些代码的区别,当然修改后的效果是显著的,界面支持中文,是库存管理一目了然。,算法的分析,在时间复杂度和空间复杂度上,我的程序可能存在一些问题,因为我用的是顺表结合指针,我个人认为,同样的问题,用简单的方式解决是最高效的,况且我们课程设计的时间限,顺序表比链表掌握的基础好一些以我选择了最适合我的方式导致了在进行产品信息删除时间复杂度稍高,但是这并不存在很大的问题。在时间和空间复杂度上,基本上也得到了很好的控制4.2经验和体会编程过程中必须要有明确的思路,只有有明确的思路,才会少走弯路,所谓“磨刀不误砍柴工有了明确的路线,你的工作便会事半功倍!其是编程过程中,要有恒心,要敢于创新,当然,遇到麻烦时,不要忘了查阅工具书,好比喻语言函数速查手册,这样同样会让你事半功倍。最后是学习的工程中要勇于动手实践,没有实践,再好的理论基础也是空谈,在我们班的很多同学便这样,考试成绩相当牛,动起手来确实四处碰壁。这也证实了强大的思想并不能支撑一个完美的现实5.用使用说5.1登陆提示登陆名为:hyb登录密码为:hx123登陆界面如下:5.2成功登陆后操作第一步,选择你要进行的操作(程序会提示你二步,按照你选择的操作,进行输入等步骤可(程序会提示单一目了然的操作提示,使整个程序更加和谐化!附加说明:关于生成的文件,貌似需要安装VS具体的还未验证。6.测结果6.1运行测试库存维护系统登陆界面:初始操作界面,如下:插入一组新的商品记录,如下新产品产品的信息)输出库存文件中的商品记录,如下:将库文件中的商品按商品号排序并输出,如下:将库存文件中的商品按单价排序并输出,如下:进货操作,如下:(1号商品进货5件)出货操作,如下:(1号商品出货15件)按商品号查询某一商品的操作,如下:(查询号商品的信息)更新商品信息的操作,如下:(修改商品5编号,价格,数量)删除商品信息的操作,如下:(删除2号产品)6.2库存信息文件保存商品信息到库存文件good.dat,如下:7.附代码如下:"stdafx.h"#include"math.h"MaxSize100node{intno;kind[10];floatprice;intnum;intpno;intpnum;intpprice;}EmpType;ReadFile(EmpTypeemp[],int&n){FILE*fp;length;inti;n=0;}fseek(fp,0,2);length=ftell(fp);
//义商品记录结构体//向下一产品的产品号//向下一产品的数量//向下一产品的单价//取库存文件并存入emp组//义文件指针//断文件是否可读//件指针移到文件尾//length求出文件长度//件位置指针指向文件首//n=0,初始化指针fread(&emp[i],sizeof(EmpType),1,fp);//文件的数据读到e中fclose(fp);}Clearup(EmpTypeemp[],int//空库存文件的全部商品记录{FILE*fp;文件不能打开\n");}n=0;fclose(fp);printf("=======\n");}emp[],int&n)//mp组存入库存文件{inti;FILE*fp;文件不能打开\n");}fwrite(&emp[i],sizeof(EmpType),1,fp);fclose(fp);printf("=======\n");}emp[],int//加一项新的商品记录{inti;printf(">>输入产品号,产品名,品牌,价格,数量:\n");n++;scanf("%d%s%s%f%d",&emp[n].no,&emp[n].name,&emp[n].kind,&emp[n].price,&emp[n]{if(emp[i].no==emp[n].no){emp[i].num=emp[i].num+emp[n].num;}}printf("=======\n");}OutputFile(EmpTypeemp[],int//出库存文件的所有记录{inti;{没任何记录\n");}printf(">>%3d%10s%10s%d\n",emp[i].no,emp[i].name,emp[i].kind,emp[i]printf("=======\n");}emp[],int//存已有商品的进货{intintflag=0;请输入进货产品的产品号,数量\n");{if(emp[i].no==no){flag=flag+1;}}if(flag==0)该产品是第一次入库,请选择操作,进行产品详细登记!!\n");//果输入的是新产品,提示应该进行新品登记操作printf("=======\n");}emp[],int//存已有商品出货{intintflag=0;{没任何记录,无法出货!!\n");}请输入出货产品的产品号,数量\n");{if(emp[i].no==no){flag=flag+1;}}if(flag==0)printf("\n");printf("=======\n");}emp[],intn)//商品号排序输出库存商品记录{intintk=emp[0].pno;{没有产品记录,不能按产品号排序!!\n");}while(i<=n){j=0;while(emp[j].pno!=-1&&i++;}while(k!=-1){printf(">>%3d%10s%10s%d\n",emp[k].no,emp[k].name,emp[k].kind,emp[}printf("=======\n");}Dispprice(EmpTypeemp[],int//价格排序输出库存商品记录{intint{没有产品记录,不能按价格排序!!\n");}while(i<=n){j=0;while(emp[j].pprice!=-1&&j=emp[j].pprice;emp[j].pprice=i;i++;}while(k!=-1){printf(">>%3d%10s%10s%d\n",emp[k].no,emp[k].name,emp[k].kind,emp[}printf("=======\n");}Inquiry(EmpTypeemp[],int//询库存中某一商品记录{intno,i;{没任何记录,不能查询!!\n");}请输入你要查询的产品号:\n");{if(emp[i].no==no)printf(">>%3d%10s%10s%d\n",emp[i].no,emp[i].name,emp[i].kind,emp[i]}printf("=======\n");}Modify(EmpTypeemp[],int//改商品记录{intkind[10];floatprice;intflag=0;{没任何记录,无法修改!!\n");}请输入你要修改的产品的产品号:\n");scanf("%d",&NO);{if(emp[j].no==NO)flag=flag+1;}if(flag==0)存中没有该产品!!");{输入你修改后的信息产品号,价格,数量:\n");scanf("%d%f%d",&no,&price,&num);{if(emp[i].no==NO){emp[i].no=no;emp[i].price=price;emp[i].num=num;}}}printf("=======\n");}Delete(EmpTypeemp[],int&n)//除某一商品记录{intNO,i,j;{没任何记录,不用删除!!\n");}请输入你要删除的产品号:\n");scanf("%d",&NO);{if(emp[i].no==NO){emp[j]=emp[j+1];}}printf("=======\n");}intComparison(chara[],charb[]){//符串比较函数inti;for(i=0;a[i]!='\0'||b[i]!='\0';i++){if(a[i]>b[i])1;if(a[i]<b[i])-1;}0;if(a[i]=='\0')-1;1;}main(){doubledummy;EmpTypeintk,a[10]="hyb\0";printf("printf("
欢迎登陆黄勇彪的库存维护系统!!!=======\n");请输入您的登录名:");scanf("%s",b);t=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 肛周脓肿术后切口护理
- 院前心电采集及术后随访系统解决方案
- 消化性溃疡的个案护理
- 儿童孤独症基层早期康复服务建设规范专家共识(2026年版)
- 贵州磷化有限责任公司重点产业人才专项招聘考试真题2025
- 2025年德宏州梁河县公安局招聘警务辅助人员真题
- 2026年昌都市工会系统事业单位人员招聘考试备考试题及答案详解
- 2026福建三明市沙县区委统一战线工作部招聘公益性岗位1人笔试备考试题及答案解析
- 2026年台州市仙居县教育局教师招聘18人考试模拟试题及答案解析
- 2026上海社会科学院工作人员公开招聘42名考试备考试题及答案解析
- 民族区域自治法课件
- 2025年校医考试题库及答案讲解
- 机器人技术机械臂
- 医院培训课件:《临床输血安全管理》
- 医疗垃圾分类培训考核试题(附答案)
- (国网)社会单位一般作业人-网络信息安全准入考试复习题及答案
- 常识题目及答案大全初中
- 2025年陕西高中学业水平合格考试地理试卷试题(含答案)
- 国际高中入学考-数学试题(英语试题)
- 2022省级政府和重点城市一体化政务服务能力评估报告
- 《小学语文新课程标准》
评论
0/150
提交评论