还剩20页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
目录系统开发的必要性及介绍系统概要设计系统详细设计系统源代码调试分析和测试结果……系统使用说明书心得体会参考文献一15d\n〃,ptrl-num,ptrl-name,ptrl-count^define CHECK_COUNTptrl-count0ttdefine NULL0typedef struct com{long int num;char name
[10];int count;structcom*prior,*next;/*定义结构体*/}COM;/*输入货品信息*/COM*input;/*插入货品信息*/COM insert;/*删除货品信息*/COM*delet;/*查找货品信息*/void search;/*保存货品信息*/void saveCOM*head;/*从文件将货品信息载入链表*/COM*openfile;/*输出货品信息*/void print;/*定义指向文件的指针变量*/FILE*fp;ttdefine CHECK_C0UNT2ptr3-count0COM*ptrl=NULL,*ptr2=NULL;char
[10];/*定义字符数组,用来存放文件名*/char[]={.dat〃};/*文件扩展名.dat*//*输入模块*/COM*input{char stringl[]={number};char string2[]={zzname,z;char string3[]={count};int n=1;if ptrl=C0M*malloc LEN==NULL/*申请空间函数*/{printf/zNo enoughmemory,fail tocreat linklist!,z;getch;/*无回显的从键盘读取任意一个字符*/clrscr;printf Please input depend on theemply goodsnumber==0over:\n〃;{printf z,Please input the No.%d goods%s:\n〃,n,stringl;scanf/z%ldz/,ptrl-num;flushall;if ptrl-num-0{printf/zPlease press any key to back to last Menu:;getch;free ptrl;return0;}printf zzPlease input the No.%dgoods%s:\n〃,n,string2;scanf〃%s〃,ptrl-name;flushall;/*刷新缓冲区函数*/printf Z/Please input the No.%dgoods,%s:\n〃,n,string3;scanf〃%d〃,ptrl-count;flushall;ifCHECK_C0UNTprintf Z/Please inputthe right goodscount!\n〃;}whileCHECK_COUNT;while ptrl-num!=NULL{ifn==l head=ptrl;else ptr2-next=ptrl;ptrl-prior=ptr2;n=n+1;ptr2=ptrl;if ptrl=COM*malloc LEN—NULL{printf Z/No enoughmemory,fail tocreat linklist!/z;getch;}do{printfPlease inputthe No.%d goods%s:\n〃,n,stringl;scanf级ld〃,ptrl-num;flushall;if ptrl-num==0{ptrl-num=NULL;break;}printf/zPlease inputthe No.%dgoods,%s:\n〃,n,string2;scanf〃%s〃,ptrl-name;flushall;printf/zPlease inputtheNo.%dgoods,%s:\n〃,n,string3;scanf〃%d〃,ptrl-count;flushall;ifCHECK_COUNTprintf Please inputtheright goodscount!\n/z;}whileCHECK_COUNT;}ptr2-next=NULL;gotoxy1,24;printf/zFinish theinputting ofgoods5message,press any key to back tolast Menu,please save:/z;getch;returnhead;/*插入模块*/COM*insert{COM*ptr3;char stringl[]={〃goodsnumber〃};char string2[]={〃goodsnanie〃};char string3[]={goodscount};char judge
[10];clrscr;gotoxy18,10;printf Z/Please input inserted goodsfliename:〃;head=openfile;if head==NULLreturnNULL;elsedo{clrscr;printf Please inputinsertedgoodsgoodsmessage:\n〃;ifptr3=COM*mallocLEN==NULL{printf Z/No enoughmemory,fail tocreat node!”;getchO;{printfPlease inputgoods5%s0:\n〃,stringl;scanf〃%ld〃,ptr3-num;flushall;ifptr3-num=0{printfError inputting!please choosethe insertedgoods again\n/z;getch;return;printfPlease inputgoods%s:\n〃,string2;scanf〃%s〃,ptr3-name;flushall;printfPlease inputgoods%s:\n〃,string3;scanf〃%d〃,ptr3-count;flushall;if CHECK_C0UNT2printf Pleaseinputtherightgoodscount0!\n/z;}whileCHECK_C0UNT2;ptrl=head;whileptrl!=NULL{ptr2=ptrl;ptrl=ptrl-next;ptrl-prior=ptr2;ptr2-next=ptr3;ptr3-prior=ptr2;ptr3-〉next=NULL;printf z/\nlnserting success!Cotinue toinsertyes orno:〃;scanf〃%s〃,judge;clrscr;}while!strcmpjudge,〃yes〃;gotoxy20,10;printf Insertingsuccess!\nz/;gotoxy18,11;printf Press any key to back to last Menu\n〃;gotoxy16,12;printf Andmake sureto Save6them oryou willlose them!\n;getch;returnhead;/*删除模块*/COM*delet{char name
[10];char judge
[10];int sei;int del_num;clrscr;gotoxy20,10;printf zzPlease input delectedgoodsfliename:〃;head=openfile;clrscr;ifhead==NULLreturn NULL;else do{do{clrscr;gotoxy3,4;printf Pleaseinput delectedgoodsmessage:〃;gotoxy1,9;printf/z*
1.Del dependongoodsnumber\n/z;gotoxy1,10;printf/z*
2.Del dependongoodsname\n/z;gotoxy10,22;printf/zplease choose a numberbetween1and2:〃;scanf〃%d〃,sel;switch sei{case1:clrscr;gotoxy6,6;printf Z/Pleaseinput goodsnumber:/z;scanf〃%d〃,del_num;break;case2:clrscr;gotoxy6,6;printf Z/Pleaseinputgoodsname z/;scanf〃%s〃,name;break;}}whilesel!=lsel!=2;ptrl=head;if ptrl-num==del_num||strcmpptrl-name,name==0{head=ptrl-next;printf Successto delect goodsmessage!\n/z;}else/*判断是否是目标结点*/{whileptr1!=NULLptrl-num!=del_numstrcmpptrl-name,name!=0{ptr2=ptrl;ptrl=ptrl-next;ptrl-prior=ptr2;if ptrl-num==del_num||strcmp ptrl-name,name=0{ptr2-next=ptrl-next;ptrl-next-prior=ptrl-prior;free ptrl;printf/z\nSuccess todelectgoodsmessage!\n\nzz;else printf〃\nCant findthis goodsmessage!\n\n/z;printf Z/Cotinue todelectyes orno:〃;scanf〃%s〃,judge;}while!strcmpjudge,〃yes〃;clrscr;gotoxy20,10;printf^Delecting success!\n/z;gotoxy18,11;printf Z/Press any key to back to lastMenu\n/Z;gotoxy16,12;printf zzAndmake sureto Save6them oryou willlose them!\n〃;getch;returnhead;/*查找模块*/void search{char name
[10];char judge
[10];int sei;long intsel_num;clrscr;gotoxy18,10;printf Please press searchedgoods,filename:z,;head=openfile;if head==NULL return;else do{do{clrscr;gotoxy5,4;printfCPlease choosethe wayto search:;gotoxy1,9;printf,z*
1.Search dependongoodsnumber\n/z;printf*
1.Search dependongoodsname\nz/;gotoxy10,22;printf/zplease choosea numberbetween1and2:〃;scanf〃%d〃,sel;switch sei{case1:clrscr;printf zzPleaseinputgoodsnumber:z/;scanf〃%ld〃,sel_num;break;case2:clrscr;printf/zPleaseinputgoodsname:zz;scanf〃%s〃,name;break;}whilesei!=lsel!=2;ptrl=head;whileptrl!=NULLptrl-num!=sel_numstrcinpptrl-name,name!=0ptrl=ptrl-next;if ptrl-num==sel_num||strcmpptrl-name,name==0{printfz/\n Successto searchgoodsmessage!\n/z;printfgoodsnumber goodsnamegoodscount\n\n〃;printfPRINT;elseprintf,,\nCan,t findthis goodsmessage!\n\n/z;printf Z/Cotinue tosearchyes orno:〃;scanf〃%s〃,judge;}while!strcmp judge,〃yes〃;gotoxy10,24;printfPlease press any key tobacktolastMenu:;getch;/*输出模块*/void print{int i=l;clrscr;gotoxy18,10;printf Z/Pleaseinputprinted goods’:〃;head=openfile;if head==NULLreturn;elseclrscr;printf/z Theprinted resultas follows:\n/z;printf/zgoodsnumber goodsnamegoodscount\n\n,/;ptrl=head;do{printfPRINT;ptrl=ptrl-next;if i/10==l/*超过十行换页*/{i=0;printfZ/Press any keytochange page:;getch;clrscr;gotoxy0,6;printf/zgoodsnumber goodsnamegoodscount\n\n/z;i=i+l;}whileptrl!=NULL;gotoxy10,24;printf Pleasepressany keytobacktolastMenu:/z;getch;/*保存模块*/void saveCOM*head{clrscr;gotoxy8,13;printf Z/Pleaseinputsaved goodslimit toletter ornumber:〃;scanf〃%s〃,;if fp=fopen strcat,〃wb〃=二NULL/*以二进制只写方式打开一个流*/{printfFail tocreat FILE!”;getch;return;}ptrl=ptr2=head;while ptrl!=NULL{iffwriteptrl,sizeofCOM,1,fp!=1{printf Z/Fail toprint messageto FILE!/z;getch;return;ptrl=ptrl-next;fclosefp;gotoxy10,24;printfSaving success!PressanykeytobacktolastMenu:;getch;/*载入模块*/COM*openfile{intn=l;scanf〃%s〃,;iffp=fopenstrcat,〃rb〃二二NULL{gotoxy15,13;printf Thisisnt exist,please checkif exist,\npress anykey back toMenu;getch;returnNULL;ifptrl=ptr2=COM*mallocLEN==NULL{printf/zNo enoughmemory,fail tocreat linklist!\nPlease pressany keybackto Menu\n〃;getch;return NULL;if freadptrl,sizeof COM,1,fp!=1/*从fp指向的流中读取1个字段,每个字段为COM的字符长,并把它们放到ptrl指向的字符数组中,文件的位置指示器随着所读取的字符数而下移*/{printfFail toprint messagefrom FILE!\nPlease pressanykeybacktoMenu\n〃;getch;returnNULL;}if ptrl-next==NULLhead=ptrl;else{do{if n==lhead=ptrl;else ptr2-next=ptrl;课程设计题目仓库货品信息管理系统
一、系统开发的必要性及介绍
1.必要性仓库管理是现代物流管理的一个重要组成部分,仓库货物管理信息系统的设计,可以实现对存储货物信息及统计单据的计算机管理,简化作业程序,提高作业效率,为企业创造更高的利润
2.主要功能介绍本系统有对库存货品信息的输入、插入、删除、查找等功能,并能将建立和更新的库存信息保存于文件供输出或打印对于查找、删除等功能要求能按货品名、货品号分别进行每个货品的相关信息包括货品号、货品名、货品库存量、进货日期、货品生产厂家及供应商等
二、系统概要设计
1.系统设计任务要求系统能实现库存货品信息的输入、插入、删除、查找等功能,并能将建立和更新的库存信息保存于文件供输出或打印对于查找、删除等功能能够按货品名、货品号分别进行每个货品的相关信息包括货品号、货品名、货品库存量、进货日期、货品生产厂家及供应商等
2.方案确定库存货品信息管理系统要求实现许多功能,可遵循结构化程序设计思想来进行本系统的设计一一自顶向下,逐步细化,也就是将n=n+l;ptr2=ptrl;ifptrl=COM*mallocLEN=NULL{printf/No enoughmemory,fail tocreat linklist!\nPlease pressanykeytoback toMenu\n〃;getch;returnNULL;iffreadptrl,sizeofCOM,1,fp!=1{printfFail toprint messagefrom FILE!\nPlease pressanykeytobacktoMenu\n〃;getch;returnNULL;}}whileptrl-next!=NULL;ptr2-next=ptrl;returnhead;fclosefp;}/*关闭文件函数*/void main{char message[]={〃*The instructionof GOODS SYSTEM*\n\n〃〃You caninput manykinds ofmessages,and youcan use\n〃goodname as\n〃〃This SYSTEM can do operation like insert or delect tothe\n〃/zgoodsmessagethat havesaved,then savedagain,while you〃can search message dependon the goodsnub or goodsname.\n\n\n〃〃*Welcome toenter theGOODSSYSTEM!*\n〃};Char menu[]={〃******************MENU********************\n\n\n〃〃*
1.Input\n〃〃*
2.Output\n〃〃*
3.Insert\n〃〃*
4.Delete\n〃〃*
5.Search\n〃〃*
6.Save\n〃〃*
0.Exit\n〃int sei;delay10;textbackgroundLIGHTGRAY;textcolor BLUE;/*背景为银灰色,字为蓝色*/clrscr;gotoxy4,8;printf〃%s〃,message;gotoxy10,22;printfzz Pleasepressanykey intothe Menu!”;getch;do{clrscr;gotoxy1,7;printf menu;gotoxy10,20;printf zzpleasechoosea number from0to6:〃;scanf级d〃,sel;switch sei{case1:head=input;break;/*输入模块*/case2:print;break;/*输出模块*/case3:head=insert;break;case4:head=delet;break;/*插入模块*/case5:search;break;case6:savehead;break;/*删除模块*/case0:break;}}while sei!=0;/*查找模块*/
五、调试分析和测试结果各模块功能测试/*保存模块*/输入模块功能测试l.COM*input用户逐一输入的数据不断添加就形成了一个列表前面已经表明本系统的数据结构选取动态数据结构一一双向链表,因此此列表在内存中是以链表的形式存储的那么输入模块实际上就是一个建立链表的操作模块通过模块将内存中的已输入的数据存入到指定路径的某save文件中去.*.dat特别指出*为用户自己规定的货品名输入条件型,且>当时退出goodsnumb Id
0.=0型goodsname s型,且>当<时显示输入错误,重输字样goodscount d
0.0调用save时goos9:d:\pll\fu输出结果货品保存在用户指定路径的文件中以免丢失*.dat输出模块
2.Print可将指定文件中的内容显示在屏幕上输出条件调用载入模块时,goosed:\pll\fu输出结果如输出条件正确,则可在屏幕上显示如下goodsnumb goodsnamegoodscount0001a1250002b2300003c180插入模块
3.insert插入模块要完成的是链表的插入操作,即将一个新结点插入一个已有的链表中输入条件调用载入模块goos^dApllXfu按货品名的分别输入,如输错则有信息提number,name,count zj\O输出结果输入正确后,则显示插入成功,返回菜单后,存盘册]除模块
4.Delet I删除模块要完成的是链表的删除操作,即将一个结点从已有的链表中删除输入条件调用载入模块goos9:d:\pll\fu有两种删除方式按号和名删除,如输错则有信息提示输出结果输入正确后,则显示删除成功,返回菜单后,存盘
5.searcli链表的查找操作是;旨在已知链表中查找值为某指定值的结点输入条件调用载入模块goos^dApllXfu有两种查找方式按号和名查找,如输错则有信息提示输出结果输入正确后,则显示查找成功,返回菜单后,存盘保存模块
6.Save保存模块最终将想要保留的数据信息保存于文件载入模块
7.COM*openfHe用于调用
六、系统使用说明书本系统为库存货品信息管理系统软件,能实现库存货品信息的输入、插入、删除、查找等功能,并能建立和更新的库存信息保存于文件供输出或打印对于查找、删除等功能能够按货品名、货品号分别进行每个货品的相关信息包括货品号、货品名、货品库存量、进货日期、货品生产厂家及供应商等本系统功能基本全面,且操作简单,易于学习和掌握下面介绍了此软件的使用说明
1.仓库.exe;
2.进入演示系统后首先是一个动画界面,按任意键即可进入本系统,其画面如下*The instructionof GOODSSYSTEM*You caninput manykinds ofmessages,and youcan usegoodname asThisSYSTEMcandooperationlikeinsertordelectto thegoodsmessagethat havesaved,then savedagain,while youcansearchmessagedependonthegoodsnuborgoodsname.***Welcome toenter theGOODS MIS!***Pleasepressanykeyinto Menu3•任意键即可进入菜单*******************
1.Input*
2.Print*
3.Insert*
4.Delete*
5.Search*
6.Save*O.Escplease chooseanumberfrom0to6:这时可按提示进行你想要的操作啦!
4.对于0—6的具体操作和输入的条件请详见前面的调试分析,您便可轻松操作了!
七、心得体会经过这次课程设计,通过对程序的编制,调试和运行,使我更好的掌握了链表的基本性质,熟悉了各种调用的数据类型,在调试和运行过程中使我更加的了解和熟悉程序运行的环境,提高了我对程序调试分析的能力和对错误的纠正能力这次数据结构的程序设计,对于我来说是一个挑战我对数据结构的学习在程序的设计中得到了充分的应用,使我受益匪浅课程设计是培养学生综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程
八、参考文献严蔚敏,吴伟民.数据结构(C语言版).北京清华大学出版社,2001谭浩强.C程序设计(第二版).北京清华大学出版社,2000吴文虎《程序设计基础》北京清华大学出版社,2003郭福顺,王晓芬,李莲治《数据结构》(修订本),大连理工大学出版社,1997潘道才,陈一华《数据结构》,电子科技大学出版社,1994毕业论文范文参考,希望对你有用软件设计任务划分成许多容易解决的小的子任务,即分解出许多子功能模块进行设计本程序经过分析可划分出6个子任务输入、输出、插入、删除、查找和保存
3.模块划分1程序设计模块连接图库存货品信息管理系统的模块连接结构如下图仓库货品信息管理系统主程序模块
4.环境要求硬件PC机软件电脑安装有TC集成环境
三、系统详细设计
1.数据结构设计1数据结构的选择选取动态数据结构,本系统是通过双向链表来完成的动态存储分配与释放申请存储空间函数malloc函数首部原型为void*mallocunsigned intsize释放存储空间函数free函数首部原型为void freevoid*p2数据类型的选择struct commodity/*定义双向链表结构体*/{int number;/*货物编号*/char name[max];int/*货物名称*/counter;/*货物数量*/动态数据结构一一双向链表struct commodity*piror,*next;/*定义两指针,分别指向其前驱和后继*/;3变量函数说明COM*input操作结果输入货品信息COM*insert_perf操作结果痛入某货品COM*del_perf操作结果;删除某货品serch操作结果查找某货品print_perf操作结果输出某货品saveC0M*head操作结果保存COM*openfile操作结果载入.流程框图2查找模块和载入模块的算法框图在此略返回head结束2插入模块返回NULLN结束对以上各模块的文字解释说明1输入模块其实就是一个建立链表的操作模块建立链表的具体操作就是逐一输入各结点数据,并建立其前后相链的关系首先设三个指针变量head,ptrl,ptr2它们都是指向结构体类型数据o的先使head的值为NULL,这是链表为空的情况用malloc函数开辟一个结点,并使ptrl,ptr2都指向它,之后从键盘读入一个货品的数据给ptrl所指向的结点当输入的ptrl-num不为0时,令head=ptrl;ptr2=ptrl,即把ptrl的值赋给head,使ptr2,ptrl,head都指向这一新开辟的结点,此结点就成为链表中的第一个结点再开辟一个新结点并使Ptrl指向它,读入该结点的数据,如果输入的ptrl-num不为0,则应链入这第二个结点,这时和上一个结点的处理不同,是将ptrl的值赋给ptr2-next,也就是使第一个结点的next成员指向第二个结点,接着将ptr2也指向结点2再开辟一个新结点并使ptrl指向它,读入该结点的数据,同样将ptrl的值赋给ptr2-next,也就是使第三个结点链接到第二个结点之后,并接着将ptrl的值赋给ptr2,使ptr2指向结点3再开辟一个新结点,并使ptrl指向它,输入该结点的数据,如果输入ptrl-num为0,则是输入结束标志,此结点不被链接到链表中,就将NULL赋给ptr2-nexto建立链表过程至此结束,ptrl最后所指结点并未链入链表中2插入模块要完成的是链表的插入操作,即将一个新结点插入到一个已有的链表中,对刚刚建立的链表,首先新设一个指针变量ptrO,并开辟一个结点使ptr3指向它,输入该结点的数据,即新货的有关数据,接下来查找要插入位置结点,找到后只需修改此结点和ptrO指向结点指针域的值即可,链表中所有元素位置均不需移动,这就体现了链表的优点3删除模块要完成的是链表的删除操作,只需修改链表中要删除结点的前一个结点的链指针使之指向被删除结点的后面一个结点即可4保存模块将最终想要保留的数据信息保存于文件中5输出模块:要完成的是依次输出链表中各结点的数据的操作首先找到链表头结点的地址,也就是head的值,然后设一个指针变量ptrl,先指向第一个结点,输出ptrl所指的结点,然后使ptrl后移一个结点,再输入直至链表的尾结点结束
四、系统源代码#includestdio.h/*标准输入/输出头文件*/#includeconio.h/*包含绘制图形函数等头文件*/#includestring.h/*包含字符串处理函数头文件*/#includestdlib.h/*包含动态存储与释放函数头文件*/#includegraphics.h#define LENsizeofCOM ttdefinePRINT。
个人认证
优秀文档
获得点赞 0