《C语言课程设计超市管理系统.doc》由会员分享,可在线阅读,更多相关《C语言课程设计超市管理系统.doc(17页珍藏版)》请在三一办公上搜索。
1、1课程设计的目的随着社会的发展,超市成为百姓购买日常用品的首选之地,琳琅满目的商品在管理方面也是一大问题,超市对商品的管理统计是很重要的,因此一个超市商品管理系统可以大大地帮助超市人员管理商品情况。以下程序供参考使用:该程序一共有5个模块6个选项,不但可以进行超市商品信息的显示,修改,删除,更可以对商品的价格进行统计,对商品的进货价格 出货价格 以及净利润等进行统计,操作界面简洁,方便的进行操作。程序用了指针、链表、数组.结构体等知识点,可运用于小的管理软件。软件运用菜单实现交互式 管理,用户轻松的按键既可实现对软件的操作,操作简单,功能使用可以满足一般小型超市的管理,用户对进货出货的价格数量
2、一目了然。 2 2设计方案论证21设计思路建立一个全局链表,在内存中存储数据,例如:商品数量 出货进货价格等。主函数可以调用5个模块函数,分别完成增加,显示,修改,删除,商品详细,结束等功能。在主函数中可以设置调用5个函数的方法,按1,2,3,4,5,6数字键,则分别可以执行某个功能模块。 主要功能模块即如图1所示:显示全部息商品买卖操作登陆商品信息删除商品信息库存商品修改结束商品管理图1.超市管理功能模块2.2.程序设计自定义函数就是一般先进行函数声明,然后进行定义。 数据结构体的定义:将一个货物的信息作为一个结构体,由于利用链表所以在结构体中别忘记指向后继结点的指针。如下: struct
3、student int no; char name20; int zong; float jin; float chu; int chuliang; float sort; int kucun;float xiaoshousum; float jingliave; ;main()主函数:主函数是程序的入口,利用循环语句,当运行到指定函数入口时,跳出循环,执行其他模块方法,当选择退出时结束整个程序。商品详细信息如图2显示商品信息开始结束图2显示信息买卖信息如图3输入商品编号商品是否存在NY开始结束修改买卖数量数量是否正确NY图3.查询信息删除信息如图4开始输入要删除的商品ID该商品是否存在删除该
4、商品信息结束YN图4.删除信息修改信息如图5开始输入商品编号商品是否存在修改商品信息结束YN图5 修改信息2.3.源程序#include #include #include #include #define MAX 50 void prudctInfo(); void sort(); void prudctgoto(); void prudctinsert();void prudctdelete();void prudctupdate();void average(); int now_no=0; struct student int no; char name20; int zong; fl
5、oat jin; float chu; int chuliang; float sort; int kucun;float xiaoshousum; float jingliave; ; struct student stuMAX,*p; main()/主函数 char as; start: printf(tttt超市商品管理系统nn); /一下为功能选择模块 do printf(ntttt1.商品详细ntttt2.商品买卖ntttt3.库存商品登陆ntttt4.库存商品删除ntttt5.库存商品修改ntttt6.退出n); printf(tttt选择功能选项:); as=getch(); s
6、witch(as) case 1: system(cls); prudctInfo(); break; case 2: system(cls); prudctgoto(); break; break; case 3: system(cls); prudctinsert(); break; case 4: system(cls); prudctdelete(); break; case 5: system(cls); prudctupdate(); break; case 6: system(exit); exit(0); default: system(cls); goto start; wh
7、ile(1); /至此功能选择结束 void prudctInfo()/显示数据函数 int i; char as; float ave; do printf(tt商品详细n); printf(t编号t商品名t库存t单价t销售数t销售额t净利润n); for(i=0;inow_no;i+) stui.kucun=stui.zong-stui.chuliang; stui.xiaoshousum=stui.chu*stui.chuliang;stui.jingliave=stui.chu*(stui.chu-stui.jin); printf(t%d t%s t%d t%.2ft%dt%.2ft
8、%.2fn, stui.no,stui.name,stui.kucun,stui.chu,stui.chuliang,stui.xiaoshousum,stui.jingliave); printf(tt按任意键返回主菜单.); as=getch(); goto exit; while(as!=n); exit: system(cls); void prudctgoto()/插入数据函数 int i=0; char ch; int numberID=0;int geshu=0;int a =0;do printf(tt商品一览n); printf(t编号t商品名t库存t单价n); for(i=
9、0;inow_no;i+) stui.kucun=stui.zong-stui.chuliang; printf(t%d t%s t%d t%.2fn, stui.no,stui.name,stui.kucun,stui.chu); a =-1;printf(n商品编号:); scanf(%d,&numberID);for(i=0;inow_no;i+) if(stui.no=numberID) a=i; if(a=-1)printf(没这个商品!); ch=getch(); system(cls); elseprintf(n卖出个数:); scanf(%d,&geshu);if(stua.z
10、onggeshu)printf(没这么多商品); ch=getch(); system(cls); elsefflush(stdin);stua.chuliang = geshu;printf(是否继续输入?(Y/N); ch=getch(); system(cls); while(ch!=n); system(cls); void prudctinsert()/原始数据录入模块 int i=0; char ch; do printf(tttt1.输入商品信息n输入第%d个商品情报n,i+1); printf(n登陆商品编号:); scanf(%d,&stui.no); fflush(stdi
11、n); printf(n登陆商品名:); fflush(stdin); gets(stui.name); printf(n登陆超市进货商品个数:); fflush(stdin); scanf(%d,&stui.zong); printf(n登陆商品进货单价:); fflush(stdin); scanf(%f,&stui.jin); printf(n登陆商品售出单价:); fflush(stdin); scanf(%f,&stui.chu); stui.chuliang=0;printf(nn); i+; now_no=i; printf(%d,now_no); printf(是否继续输入?(
12、Y/N); ch=getch(); system(cls); while(ch!=n); system(cls); void prudctdelete()int inum,i,j; printf(输入要删除商品编号:); fflush(stdin); scanf(%d,&inum); for(i=0;inow_no;i+) if(stui.no=inum) for(j=i;jnow_no;j+) stui=stui+1; now_no=now_no-1; break; system(cls); void prudctupdate()char ch; do printf(ntt输入新商品信息n)
13、; printf(n登陆商品编号:); scanf(%d,&stunow_no.no); fflush(stdin); printf(n登陆商品名:); fflush(stdin); gets(stunow_no.name); printf(n登陆超市进货商品个数:); fflush(stdin); scanf(%d,&stunow_no.zong); printf(n登陆商品进货单价:); fflush(stdin); scanf(%f,&stunow_no.jin); printf(n登陆商品售出单价:); fflush(stdin); scanf(%f,&stunow_no.chu);
14、printf(n登陆超市商品卖去个数:); fflush(stdin); scanf(%d,&stunow_no.chuliang); printf(nn); now_no=now_no+1; printf(是否继续输入?(Y/N); ch=getch(); system(cls); while(ch!=n); void sort()/排序数据函数 struct student temp; int i,j; for(i=1;inow_no;i+) for(j=1;j=now_no-i;j+) if(stuj-1.jingliavestuj.jingliave) temp=stuj; stuj=
15、stuj-1; stuj-1=temp; 3设计结果与分析在VC 6.0环境中输入源程序,在没有提示错误的情况下编译,生成.exe可执行文件。运行程序,会看到如图6所示界面。运行主函数时,首先调用函数main图6 程序主界面这个界面是运行函数后首先出现的界面,运行函数时,该函数是一个菜单函数,用switch语句来实现各功能模块的转移,出来该页面后用户可根据提示输入信息,从而实现各种目的。键盘输入1,进入商品详细目录 用以显示全部商品详细信息图7 显示信息界面该页面用printf输出,在利用指针读出链表中数据并利用合理计算 计算出净利润等数据,再用while语句进行循环输出部数据输入2按回车进入
16、商品买卖页面。如图8所示图8 买卖信息界面用scanf输入数据,用if语句和while语句来实现循环每一次修改的数据输入3按回车会进入商品登陆页面,此页面用来登陆商品。如图9所示图9 登录信息界面将数据登陆入链表个变量中输入4按回车进入商品修改模块如图10所示图10修改信息界面6输入5按回车进入商品删除模块如图11所示使用printf()函数和scanf( )函数,并且利用指针从而实现各种功能。其中用到了while循环语句,实现对链表中个数据的重写功能。运行完后退出该函数图11删除信息界面4设计体会这次计算机C语言程序设计是一次综合性设计,它不仅检验了我这个学期C语言程序学的是否扎实,同时也使
17、我在高级语言设计上有所提高,我从中得到了很深的体会原来计算机语言是如此的神奇。题目中设计到了很多本学期没有学透的内容,如:函数的调用和结构体的定义和使用,通过这次设计让我对这些内容有了进一步的了解,重要的是我能过使用这些东西编一个使用的程序。总而言之,这次高级语言课程设计给了我一次很大的锻炼机会,我相信我以后会很好的提高我的计算机水平,它代表着先进的科技水平,它在很多方面都有所应用,所以我会更加努力的学习它,并进一步丰富我的知识,提高我的编程能力。5参考文献1 鲁沐浴,C语言最新编程技巧200例M,北京:电子工业出版社, 1997.1:23-352 梁翎,李爱齐,C语言程序设计实用技巧与程序实例M,上海:上海科普出版社, 1996.5:57-633 杨莉,C语言指针的研究与运用J. 期刊门户,2008,11(2):44-764 涂刚,C语言实验教学的探讨J,论文天下,2007,36(7):89-109