版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-.z.信息科学与工程学院课程设计报告班级:通信一班〔**〕:实验工程名称:c语言程序设计实验室(中心):信息科学与工程学院信息技术实验室指导教师:李益才实验完成时间:2013年6月28日序号工程标准评分1系统演示〔功能〕〔50%〕按要求完成系统功能且界面友好容错能力强〔45-50〕按要求完成系统功能界面一般有较好的容错能力〔40-44〕根本完成系统功能有一定的容错能力〔35-39〕根本完成系统功能〔30-34分〕未完成系统功能或他人代做或抄袭〔15〕2课程设计说明书〔50%〕课程设计书各工程认真填写,具有清晰的设计思路及软件测试结果分析〔45-50〕课程设计书各工程认真填写,具有较为清晰的设计思路并对软件测试结果进展了较为清晰的分析〔40-44〕课程设计书各工程认真填写,设计思路正确〔35-39〕课程设计书进展为较为认真的填写〔30-34〕课程设计书有未完成项或各项填写不属实或他人代做或抄袭〔15〕教师签字总分一、题目仓库管理系统二、功能描述该系统将输入进系统的仓库中物品的根本信息〔包括货号、名称、单价、库存数量、品牌〕进展处理,可以进展:〔1〕、按物品价格降序输出、按库存数量升序排列。〔2〕、修改制定物品的信息。〔3〕、删除指定物品的信息。〔4〕、在指定物品前或后再插入一个物品的信息。〔5〕、统计同一种品牌的数量。三、概要设计系统功能模块图进入系统进入系统数据按序输出 数据按序输出 修改特定物品的信息删除特定物品的信息插入物品信息统计指定品牌物品的数量数据文件载入数据文件输入磁盘物品信息输入退出系统详细设计1、构造的定义:数组构造体一共有两个:链表构造体一共有一个:structinformation//物品信息机构structinformation//物品信息机构{{ intArtnumber;intArtnumber; chargoodsname[20];chargoodsname[20]; floatunitprice;floatunitprice;intquantity;intquantity; charbrand[20];charbrand[20];};structinformation*ne*t;structMainfest//仓库信息机构};{structinformation*head;//头指针structinformationdata[Number]; intNum;};structMainfestgoods;2、各个函数的具体设计思想及流程图本系统一共九个函数:〔1〕voidinputInformation();//对仓库中所有物品的根本信息进展输入〔2〕voidoutputsort();//按序输出数据〔3〕voidmodifyInformation();//修改物品信息〔4〕voiddeleteInformation();//删除物品信息〔5〕voidinsertInformation();//插入//插入物品信息〔6〕voidstatistics();//统计//统计一样品牌的物品数量〔7〕voidsaveInfoToFile();//文件输入到磁盘〔8〕voidloadInfoFromFile();//文件磁盘载入〔9〕voidmaon();//主函数其中第七、八个为文件函数,进展文件的存储和载入。主函数main〔〕是一个死循环,每执行玩一个函数都要输出菜单项选择择,直到选择退出为止。2.1仓库物品根本信息输入函数对物品根本信息进展连续输入,直到所有物品信息都输入完毕,改函数用while循环函数进展连续赋值。〔1〕、具体流程图如下图所示:开场开场完毕已满,完毕break判断是否已满完毕已满,完毕break判断是否已满if(goods.Num==Number)未满,继续Printf〔〕scanf〔〕是否要继续输入if〔yn==0〕是,继续while〔1〕否,退出break链表开场开场菜单,选择输入数据函数菜单,选择输入数据函数head=()malloc();建立一个空节点head并分配内存head=()malloc();建立一个空节点head并分配内存temp=()malloc()建立新节点temp并分配内存temp=()malloc()建立新节点temp并分配内存While〔1〕循环t,printf();输入物品的信息,存入新节点While〔1〕循环t,printf();输入物品的信息,存入新节点Temp->ne*t=head->ne*t;Temp->ne*t=head->ne*t;Head->ne*t=temp;判断是否要继续输入if〔〕判断是否要继续输入if〔〕是否完毕〔2〕代码说明While语句是把数据输入到内存中,if这里有两个用途:1、用于判断是否还有空间进展数据输入;2、判断是否还要继续输入。2.2按序输出物品信息对物品的特定信息进展排序后在输出,可以进展按价格降序输出、按库存数量升序输出,这两种输出可以自由选择数组开场选择要排序的元素1、2选择要排序的元素1、2If〔2〕按数量升序if(1)按价格降序If〔2〕按数量升序if(1)按价格降序排序sort〔〕排序sort〔〕满足大小关系进展交换满足大小关系进展交换输出,outlist输出,outlist完毕完毕链表开场选择排序元素选择排序元素按价格降序按价格降序输入sel=1按库存数量升序sel=2按库存数量升序sel=2Sort(sel)排序Sort(sel)排序Outlist()输出Outlist()输出完毕完毕2.3修改指定物品的信息对数据文件中特定信息惊醒修改,可以修改任何信息开场开场输入指定物品的信息输入指定物品的信息printf〔〕查找指定物品i=search(goodsnum)查找指定物品i=search(goodsnum)判断是否找到指定物品判断是否找到指定物品找到,对错误信息惊醒修改找到,对错误信息惊醒修改完毕完毕链表开场开场定义构造体指针,*pf=search(),*pb=pf->ne*t定义构造体指针,*pf=search(),*pb=pf->ne*t输入要修改的物品货号printf〔〕输入要修改的物品货号printf〔〕判断是否找到该指定货物判断是否找到该指定货物修改货物信息Printf〔〕scanf〔〕修改货物信息Printf〔〕scanf〔〕输出未找到该货物完毕完毕2.4删除指定货物信息对磁盘文件中的特定物品信息进展删除数组输入指定物品的信息输入指定物品的信息查找指定物品查找指定物品找到,删除for〔〕找到,删除for〔〕{a[i-1]=a[i]}if判断是否找到指定物品if〔〕判断是否找到指定物品if〔〕goods.Numgoods.Num--;构造体数目减一完毕完毕链表开场开场定义两个指向构造体的指针pf=search(goodsn定义两个指向构造体的指针pf=search(goodsnum);pb=pf->ne*t;pf=search(goodsnum);pb=pf->ne*t;pf=search(goodsnum);pb=pf->ne*t;输入要删除的货物货号scanf〔〕输入要删除的货物货号scanf〔〕查找指定货物pf=Search查找指定货物pf=Search〔goodsname〕是否找到指定货物是否找到指定货物是否输出"未找到指定货物〞输出"未找到指定货物〞删除pf->ne*t=pb->删除pf->ne*t=pb->ne*t;free〔pb〕完毕完毕2.5在指定位置插入一个物品的信息〔1〕流程图数组开场开场输入指定货物的货号scanf〔〕输入指定货物的货号scanf〔〕是否找到指定货物是否找到指定货物选择前插或者后插if〔〕选择前插或者后插if〔〕前插后插for(j=goods.Num;j>i-1;j--)goods.data[j]=goods.data[j-1];该货物及以后货物后移一位for(j=goods.Num;j>i-1;j--)goods.data[j]=goods.data[j-1];该货物及以后货物后移一位for(j=goods.Num;j>i;j--)goods.data[j]=goods.data[j-1];该货物后每一个元素后移一位插入输入要插入的物品信息插入输入要插入的物品信息完毕完毕链表开场开场定义三个指针*pf,*pb,*temp定义三个指针*pf,*pb,*temp找到插入位置Pf=search〔goodsnum〕找到插入位置Pf=search〔goodsnum〕Pb=pf->ne*t判断是否找到指定物品判断是否找到指定物品在内存中开辟一个空节点temp=()malloc(〔〕)是在内存中开辟一个空节点temp=()malloc(〔〕)输入要插入的物品信息scanf〔输入要插入的物品信息scanf〔"〞,temp->data)选择前插还是后插选择前插还是后插前插后插If(pb->ne*t==NULLIf(head==pf)elseIf(pb->ne*t==NULLIf(head==pf)elsetemp->ne*t=pb;pf->ne*t=temp;指定元素为头节点后第一个元素,插入temp->ne*t=pb;pf->ne*t=temp;指定元素为头节点后第一个元素,插入temp->ne*t=pb->ne*t;pb->ne*t=temp;指定元素为最后一个节点,插入temp->ne*t=pb->ne*t;pb->ne*t=temp;指定元素为最后一个节点,插入完毕完毕2.6统计指定品牌的库存数量流程图数组开场开场输入要统计的品牌名scanf()输入要统计的品牌名scanf()for(i=0;i<goods.Num;i++)for(i=0;i<goods.Num;i++)循环求和Sun+=quantitySun+=quantityif(i==goods.Num)if(i==goods.Num)i=-1;判断是否找到品牌的物品i!=-1"判断是否找到品牌的物品i!=-1"是Printf〔"为找到该品牌〞〕printf("%d\n",sum);Printf〔"为找到该品牌〞〕printf("%d\n",sum);输出求得的和完毕完毕链表开场structinformation*p;structinformation*p;P=head->ne*t;输入指定品牌明输入指定品牌明Scanf〔"%s〞,name〕P!=NULLP!=NULL如果是同一品牌,求和sum=sum+data是如果是同一品牌,求和sum=sum+data输出和输出和完毕完毕2.7、根本数据文件输入磁盘将输入的数据存储到磁盘保持。数组开场开场用fopen〔〕翻开一个特定文件,返回值是否为0用fopen〔〕翻开一个特定文件,返回值是否为0创立这个文件用fwrite〔〕讲数据写入文件创立这个文件用fwrite〔〕讲数据写入文件Fclose〔fp〕关闭文件Fclose〔fp〕关闭文件完毕完毕链表开场开场structinformation*p;structinformation*p;用fopen〔〕翻开一个特定文件,返回值是否为0用fopen〔〕翻开一个特定文件,返回值是否为0建立这个文件是建立这个文件翻开文件,并使p=head->ne*t;否翻开文件,并使p=head->ne*t;p!=NULLp!=NULLfclose(fp);fclose(fp);并用while()fwrite()进展循环输入否并用while()fwrite()进展循环输入完毕完毕2.8、数据文件载入从磁盘文件中讲已经保存了的数据读取到内存中,为以后的数据处理做准备。开场开场用fopen〔〕翻开一个特定文件,返回值是否为0用fopen〔〕翻开一个特定文件,返回值是否为0是输出"该文件不能被翻开〞输出"该文件不能被翻开〞goods.Num==100判断该文件是否已满goods.Num==100判断该文件是否已满是用fread(〕将文件读取出来打印"存储空间已满,不能再存入〞否用fread(〕将文件读取出来打印"存储空间已满,不能再存入〞Feof(fp〕=0"判断文件是否完毕Feof(fp〕=0"判断文件是否完毕Goods.Num++是Goods.Num++Goods.num=100"Goods.num=100"输出〞存储空间已满,不能再存储〞是输出〞存储空间已满,不能再存储〞用freadj()将文件读取出来用freadj()将文件读取出来Fclose(fp)Fclose(fp)完毕完毕链表开场开场FILE*fp;structinformation*p;FILE*fp;structinformation*p;用fopen〔〕翻开一个特定文件,返回值是否
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年周口市中心医院医护人员招聘考试参考题库及答案详解
- 2026年广发银行(湖州分行)人员招聘考试参考试题及答案详解
- 2026年武汉大学中南医院医护人员招聘笔试备考试题及答案详解
- 2026年邮政储蓄银行(安徽省分行)人员招聘笔试参考题库及答案详解
- 2026年沈阳市妇儿医疗保健中心医护人员招聘考试参考试题及答案详解
- 2026年西安交通大学医学院第二附属医院医护人员招聘笔试参考题库及答案详解
- 2026年重庆永川市中医院医护人员招聘笔试备考题库及答案详解
- 2026年铜陵市皮肤病防治所医护人员招聘笔试备考题库及答案详解
- 2026年哈尔滨市红十字中心医院医护人员招聘笔试参考题库及答案详解
- 2026年上海交通大学医学院附属瑞金医院医护人员招聘笔试参考试题及答案详解
- 《超龄劳动者基本权益保障暂行规定》解读课件
- 2026年2026年新版七年级下册道德与法治期末复习核心考点提纲详细版新版
- 五年级下册《道德与法治》知识点
- DB45T+2991-2025 互联网+护理服务规范
- 芬顿污水处理操作规程
- 慢性肾脏病5期
- 2024年上海市中考语文备考之150个文言实词刷题表格及答案
- 设备采购与招标流程培训
- 1956-1967国家科学技术发展远景规划纲要
- 山西省万家寨水务控股集团有限公司招聘笔试试题及答案2022
- 清明古诗欣赏课件
评论
0/150
提交评论