1、+打开仓库 openstore()+添加货物 addproduct() +修改货物 editproduct() +删除货物 delproduct() +库存管理 menu_store()-货物出库 instore() -货物进库 outstore() +货物查询 menu_check() +按编号查询 bynumber() +按名称查询 byname() +储存数据 savedata()+所有货物 listall() +退出系统 exit()1.2数据设计商品结构体设计:struct Product int num; char name20; float price; int amount;
2、char fac50; char buss50; struct *next;2各模块的伪码算法:2.1菜单类:menu_init();说明:初始化界面menu_store();库存管理界面menu_check();说明:货物查询界面menu exit();退出界面2.2货物管理类:addproduct( struct Product *head ); struct Product *head 为要添加节点的链表功能:添加货物流程图:editproduct( struct Product *head ); struct Product *head 为要修改节点的链表修改货物delproduct(
3、 struct Product *head );删除货物instore( struct Product *head );outstore( struct Product *head );outinstore( struct Product *head, int ouin );出库进库综合操作类2.3货物查询类:bynumber( struct Product *head, int num ); struct Product *head 为要修改节点的链表, num 为商品编号按编号查询商品byname( struct Product *head, char *name ); struct Pr
4、oduct *head 为要修改节点的链表, name 为商品名称按名称查询商品listall( struct Product *head ); struct Product *head 为要显示链表显示所有商品2.4仓库管理类openstore( ); 打开仓库数据文件到链表打开仓库文件NS流程图:savedata( ); 写仓库链表数据到文件储存货品数据2.5辅助类:cls( ); 换行换行3.函数的调用关系图4,5、调试分析与结果:1 程序运行时初始界面2 新建仓库用键盘输入1,程序调用新建仓库功能函数,要求用户输入货物编号,货物名称,货物价格等。3 打开仓库文件用键盘输入2,程序调用打
5、开仓库文件功能函数,要求用户输入仓库数据文件名,数据文件存在,显示打开成功。4 添加货物用键盘输入3,程序调用添加货物功能函数,要求用户输入货物编号,货物名称,货物价格等。5 修改货物用键盘输入4,程序调用修改货物功能函数,要求用户输入货物编号,货物存在,显示货物详细信息,按任意键后,要求用户输入新货物名称,货物价格等。6 删除货物用键盘输入5,程序调用删除货物功能函数,要求用户输入货物编号,货物存在,显示货物详细信息,按任意键后,删除货物。7 库存管理:用键盘输入6,程序调用库存管理功能函数,显示库存管理子页面,选择2,货物出库,要求用户输入货物编号,货物存在,显示货物详细信息,要求用户输入
6、进库数量。8 货物查询用键盘输入7,程序调用货物查询功能函数,显示货物查询子页面,选择1,按编号查询,要求用户输入货物编号,货物存在,显示货物详细信息。货若物不存在,显示“没有该编号货物”。9 储存数据用键盘输入8,程序调用储存数据功能函数,要求用户输入文件名,将数据储存在指定文件中。10 所有货物用键盘输入9,程序调用所有货物功能函数,显示仓库所有货物。11 退出系统用键盘输入0,程序调用货退出系统功能函数,显示提示保存信息。6.总 结 课程设计是一个相当好的实践环节,通过这短短的三个星期的课程设计,我觉得从中获得到的东西,比上了整个学期的课程学的东西还多,实践是一个有效提高自己编程能力的方
7、法。在这个课程设计项目中,我运用了链表和文件的读写等知识点,而这些都是老师还没有教的,在课程设计实习周中,我用了前半部分的时间仔细了看了链表和文件读写的章节,了解其功能设计,通过不断的调试总结出链表的规律与使用方法。将链表和指针的应用提高到另一个层次。在这一次课程设计中,我学会了怎么去写好一个规的设计文档,熟悉流程图的制作过程。在调试的过程中,出现了一些不可以预料的程序错误,这又让我学会了如何去设置断点,进行单步调试,分析清楚错误出现的原因,及其找到解决错误的方法。同时,本次课程设计我分别用了不用的C编译器去编译代码,发觉不同编译器编译效果的不同,以及库文件等的不同。学会在不同的编译环境中使用
8、不同的函数。5.参考文献1初小璐完全掌握SQL Server 2000 M 机械工业,20042Jeraod V.Post.数据库管理系统(英文版.第三版)美清华大学,2006.13海藩.软件工程导论M.:清华大学,1998.14希仁.计算机网络(第二版)M.:电子工业,2003.6 5戴志诚,国峰.JSP信息化系统建设案例M.:人民邮电,2006.126成晓静,毕靖.网页设计三剑客完全学习手册M.:中国电力,2004.117强.精通JSP编程M.:电子工业,2006.38萨师煊,王珊.数据库系统概论M.:高等教育,2002.29海藩,劲,兆阳.SQL Server2000数据库设计与系统管理
9、M.:清华大学,2000.910禾,蔡锋.Web数据库假设技巧M.:科技技术,1999.411徐建波. Internet与Web设计教程M.:中国矿业大学,2000.1212于书举,许向众.数据库设计与开发教程M.:电子工业,2003.1113安海忠,文斌,林旭新.商业建设与管理M.:人民交通,2006.814T.Umeda and S.Hagiwara.web-based database for EPR centers in semiconductorsJ.BPhysica B:Condensed Matter,3(7),249-252,2006.315Yih-Ling Hedley,Mu
10、hammad Younas.Sampling,information extraction and summarisation of Hidden Web databasesJ.Data & Knowledge Engineering,In Press,Uncorrected Proof,Available online 10 March 2006.2致 我在此向所有关心我的及帮助我的朱老师和同学们致以最真诚的感。在本次课程设计中,我从指导老师及同学身上学到了很多东西。她认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我受益匪浅。无论在理论上还是在实践中,都给与我很大的帮助,使我得到很大
11、的提高,这对于我以后的工作和学习都有一种巨大的帮助,在此感指导老师耐心,认真的的辅导。附录:源代码#include stdlib.hmalloc.hstring.h#define Length sizeof( struct Product )struct Product /定义货品结构体 /编号 /名称 /价格 /库存数量 /生产厂家 /提供商家 struct Product *next;void cls( void ) int i; for( i=0; inum,&name,&price,&amount,&fac,&buss)=NULL) break; pd-next = (struct P
12、roduct *)malloc( Length ); if( pd-next = NULL ) q = pd; pd = pd-next; q-next = NULL; fclose( fp );成功打开仓库数据文件nint savedata( struct Product *head ) struct Product *pd; pd = head;请输入要保存的仓库数据文件名(如:/store.txt,0取消): ) return 1;wb储存文件出错n return 1;正在储存数据.n while( pd!=NULL ) fprintf( fp, ,pd-num,pd-name,pd-p
13、rice,pd-amount,pd-fac,pd-buss);仓库数据保存成功n return 0;/创建链表,新建一个仓库,并输入数据/返回链表struct Product *newstore() struct Product *h = NULL, *pd; for(;) pd = (struct Product *)malloc( Length ); if (!pd)存溢出! return NULL;请输入货品编号(0退出):%dnum);num = 0 )请输入货品名称:name);请输入货品价格:%fprice);请输入货品库存量:amount ); printf(请输入货品的生产厂家
14、: scanf(fac);请输入货品的提供商家:next = h;/添加货品,向链表末尾添加货品/参数:*head链表指针/返回添加货品的链表struct Product *addproduct( struct Product *head ) struct Product *h, *pd; if( !head )请先创建或打开仓库n return head; else h = head; break;num = 0 ) printf( while( h-next! h = h- h-next = pd;/按编号查找货品*head链表指针,*num货品编号/返回:链表结点struct Produ
15、ct *bynumber( struct Product *head, int num ) float total; int n = num;=NULL&num!=n)没有该编号货品。*按编号查询货品*n| 编号 | 名称 | 价格 | 库存 | 生产厂家 | 提供商家 | 价值量 |n|-|-|-|-|-|-|-|n|%6d|%-13s|%-9.3f|%-8d|%-10s|%-10s|, pd-num, pd-name, pd-price, pd- total = pd-price * pd-amount;%-10.3f|n, total);*n return(pd);/按名称查找货品*he
16、ad链表指针,*name货品名称struct Product *byname( struct Product *head, char name20 )strcmp(pd-name, name)!=0) /查找货品没有该名称货品。*按名称查询货品*n|-|-|-|-|-|-|-|n void *checkbynumber( struct Product *head ) struct Product *h = head;请输入查询编号(0退出): return bynumber( h, num); void *checkbyname( struct Product *head )请输入货品名称(0退出): return byname( h, name);/修改货品struct Product *editproduct( struct Product *head )
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1