c语言超市管理系统报告书_第1页
c语言超市管理系统报告书_第2页
c语言超市管理系统报告书_第3页
c语言超市管理系统报告书_第4页
c语言超市管理系统报告书_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1 需求分析: 随着现代生活质量的提高,超市这种便利的服务开始走进我们的生活,同时随着超市涌入我们的生活,如何更便利的对超市进行系统和有序的操作,成为了我们需要考虑的问题,本程序运用C语言程序设计了一个超市管理系统。关系系统的的功能主要有新购物品入库、物品信息删除、物品信息修改、物品信息查询、物品信息浏览功能,在相应的硬盘上面进行存盘以防止部分数据的丢失。为了更加人性化使用此管理系统,还在MENU选项总添加了系统颜色设置功能,使用户可以根据自己的喜好修改操作界面。2 概要设计(1)数据结构 依据给定的物品信息和数据形式,数组必须用结构体实现。结构类型的层次结构: struct imaint id;char name20;char produce30;int number;float price;(2)模块划分 依据程序的结构反和功能,遵照“自顶而下”的原则,描述该程序的层次结构图一显示了该程序的层次结构,共 5层:如下图: Main函数程序主菜单1 新购物品入库2 物品信息删除3 物品信息修改4 物品信息浏览5 系统颜色设置1 红底黑字2 白底黑字3 黑底红字4 绿底蓝字5 黄底紫字6 系统默认4 物品信息查询4 应用程序退出判断所输编号是否存在是:此编号已被使用,请重新输入否: 输入物品信息图一 图一的层次结构(3)原函数清单:1、 创建函数 void chushihua() 2、 增加物品函数 Tianjia(); 3、删除物品信息函数Shanchu();4、修改物品信息函数 Xiugai(); 5、查询物品信息函数Chazhao();6、浏览物品信息函数Liulan(); 7、系统颜色设置函数 yanseshezhi();8、应用程序退出函数 Jieshu();3 运行环境:Win2003, WinXP, Win2000, NT, WinME, Win9X4 开发工具和编程语言:编程语言:C语言开发工具:microsoft visual C+ 6.05 详细设计:1、结构体变量的定义:struct imaint id;char name20;char produce30;int number;float price;3、 文件的初始化:void chushihua()FILE *fp;struct ima i=1,花生牛奶,湖北武汉,1200,2.5;fp=fopen(ima.dat,w);if(fp=NULL)printf(ttt系统错误,请重试.);exit(0);fwrite(&i,sizeof(struct ima),1,fp);fclose(fp);4、 欢迎菜单(主函数): void main()printf(nn);system(color 1a);printf(t3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3n);printf(t3 3n);printf(t3 3n);printf(t3 欢迎使用 3n);printf(t3 3n);printf(t3 3n);printf(t3 超市库存管理系统 3n);printf(t3 按任意键继续 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3n);printf(t3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3);getch();system(cls);menu();chushihua();menu();5、 选择菜单 void menu()int choice;printf(n【超市库存管理系统】n);printf(-系统菜单显示如下-);printf(nt=【 新购物品入库 】n);printf(nt=【 物品信息删除 】n);printf(nt=【 物品信息修改 】n);printf(nt=【 物品信息查询 】n);printf(nt=【 物品信息浏览 】n);printf(nt=【 系统颜色设置 】n);printf(nt=【 应用程序退出 】n);printf(nt请输入您要选择的菜单.);scanf(%d,&choice);switch(choice)case 1:Tianjia();break;case 2:Shanchu();break;case 3:Xiugai();break;case 4:Chazhao();break;case 5:Liulan();break;case 6:yanseshezhi();break;case 7:Jieshu();break;default:printf(nttttt输入无效,请您重新输入.);getch();system(cls);menu();6、 新购物品入库函数: int panduanID(int id) /*判断所输编号是否已存在*/ FILE *fp;struct ima i;fp=fopen(ima.date,r);if(fp=NULL)printf(ttt系统错误,请您重试.);exit(0);fread(&i,sizeof(struct ima),1,fp);while(!feof(fp)if(i.id=id)fclose(fp);return 1;break;fread(&i,sizeof(struct ima),1,fp);fclose(fp);return 0;void Tianjia() struct ima i;char choice;FILE *fp;fp=fopen(ima.date,ab);if(fp=NULL)printf(ttt系统错误,请您重试.);exit(0); labID:printf(nt请您输入要入库物品的信息.n);printf(tttt 物品的编号:);scanf(%d,&i.id);if(panduanID(i.id)=1)printf(tttt此编号已被使用,请您重新输入.);goto labID;printf(tttt 物品的名称:);scanf(%s,);printf(tttt 物品的生产地:);scanf(%s,duce);printf(tttt 物品的数量:);scanf(%d,&i.number);printf(tttt 物品的单价:);scanf(%f,&i.price);fwrite(&i,sizeof(struct ima),1,fp);fclose(fp);printf(tttttt 物品信息已入库成功!n);printf(n您想继续吗?(y/n);scanf( %c,&choice);if(choice=Y|choice=y)Tianjia();elsesystem(cls);menu();7、 物品信息删除函数: void Shanchu() struct ima i1000;struct ima temp;int delID;char choice;int index=0;int j=0;FILE *fp;fp=fopen(ima.date,r);if(fp=NULL)printf(ttt系统错误,请您重试.);exit(0);fread(&temp,sizeof(struct ima),1,fp);while(!feof(fp)iindex=temp;index+;fread(&temp,sizeof(struct ima),1,fp);fclose(fp);printf(nt请输入要删除的物品的编号:);scanf(%d,&delID);fopen(f:ima.date,w);if(fp=NULL)printf(ttt系统错误,请您重试.);exit(0);for( j=0;jindex;j+)if(ij.id!=delID)fwrite(&ij,sizeof(struct ima),1,fp); fclose(fp);printf(ttttt物品信息已清除!n);printf(n您想继续吗?(y/n);scanf( %c,&choice);if(choice=Y|choice=y)Shanchu();elsesystem(cls);menu();8、 物品信息修改函数: void Xiugai() int index=0; int ID,j; char choice; struct ima i1000; structima temp;FILE *fp;fp=fopen(ima.dat,r);if(fp=NULL)printf(ttt系统错误,请您重试.);exit(0);fread(&temp,sizeof(struct ima),1,fp);while(!feof(fp)iindex=temp;index+;fread(&temp,sizeof(struct ima),1,fp);fclose(fp);fp=fopen(ima.dat,w);if(fp=NULL)printf(ttt系统错误,请您重试.);exit(0);printf(nt请输入要修改的信息的物品的编号:);scanf(%d,&ID);for(j=0;j=index-1;j+)if(ij.id!=ID)fwrite(&ij,sizeof(struct ima),1,fp);elseprintf(tt物品名称修改为:);scanf(%s,);printf(tt物品生产地修改为:);scanf(%s,duce);printf(tt物品数量修改为:);scanf(%d,&ij.number);printf(tt物品单价修改为:);scanf(%f,&ij.price);fclose(fp);printf(tttt物品信息已修改.);printf(n您想继续吗?(y/n);scanf( %c,&choice);if(choice=Y|choice=y)Xiugai();elsesystem(cls);menu();9、 物品信息查询函数: void Chazhao() FILE *fp;int findID;char choice;struct ima i;fp=fopen(ima.date,r);if(fp=NULL)printf(ttt系统错误,请你重试.);exit(0);finID: printf(nt请输入要查询的物品的编号.);scanf(%d,&findID);fread(&i,sizeof(struct ima),1,fp);while(!feof(fp)if(i.id=findID)printf(nnt*物品信息*);printf(nt物品编号.%30dn,i.id);printf(nt-);printf(nt物品名称.%30sn,);printf(nt-);printf(nt生产厂家.%30sn,duce);printf(nt-);printf(nt进口数量.%30dn,i.number);printf(nt-);printf(nt批发价格.%30.3fn,i.price);printf(nt-);printf(n您想继续吗?(y/n);scanf( %c,&choice);if(choice=Y|choice=y)Chazhao();elsesystem(cls);menu();fread(&i,sizeof(struct ima),1,fp);fclose(fp);printf(ttttt输入的编号不存在,请您重新输入.);goto finID;10、 物品信息浏览函数: void Liulan() struct ima i; int index=0;char choice;FILE *fp;fp=fopen(ima.date,r);if(fp=NULL)printf(ttt系统错误,请你重试.);exit(0);fread(&i,sizeof(struct ima),1,fp);while(!feof(fp)index+;printf(nnt*物品信息%d*,index);printf(nt物品编号.%30dn,i.id);printf(nt-);printf(nt物品名称.%30sn,);printf(nt-);printf(nt生产厂家.%30sn,duce);printf(nt-);printf(nt进口数量.%30dn,i.number);printf(nt-);printf(nt批发价格.%30.3fn,i.price);printf(nt-);getch();fread(&i,sizeof(struct ima),1,fp);fclose(fp);printf(n您想继续吗?(y/n);scanf( %c,&choice);if(choice=Y|choice=y)Liulan();elsesystem(cls);menu();11、 系统颜色设置函数: void yanseshezhi() int a;char choice;system(cls);printf(nntt选择以下方案n);printf(nntt1*红底黑字n);printf(nntt2*白底黑字n);printf(nntt3*黑底红字n);printf(nntt4*绿底蓝字n);printf(nntt5*黄底紫字n);printf(nntt6*系统默认n);printf(nnttttt请挑选您喜爱的颜色.); scanf(%d,&a);switch(a)case 1:system(color 40);break;case 2:system(color 70);break;case 3:system(color 04);break;case 4:system(color 21);break;case 5:system(color 65);break;case 6:system(color 1a);break;default:printf(nnttttt输入无效,重新输入.);getch();yanseshezhi();printf(n选择的颜色您还满意吗?(y返回主菜单/n继续选择);scanf( %c,&choice);if(choice=Y|choice=y)system(cls);menu();elseyanseshezhi();12、 应用程序退出函数: void Jieshu()char choice;system(cls);printf(nnnnnnnttt您确定要退出系统吗?nnnttt如果您想退出请按y,其它键将返回主菜单.);scanf( %c,&choice);if(choice=Y|choice=y)system(cls);printf(nnnnnnnnnntttt谢谢您的使用!);printf(nnnnnnnnnnnnnnnn);elsesystem(cls);menu();6 调试分析:在此程序的编程前,我上网搜集了一些关于超市管理系统的资料,然后大体决定了编程的大致算法,即利用函数贯穿整个程序,通过SWITCH函数进行各个函数的选择;同时,进过查阅,我添加了系统颜色设置功能,同是应用了清屏函数,课下讲程序大致写好后,我上机进行了调试;但却出现了80几处错误,大都是提示 miss “;” before tybe;经过分析,程序算法并无错误;后来询问老师,才发现原来在我所编的程序中,有需要变量时,都是用的时候才定义,但正确的方法是应该在函数的开头就应该将所要用的变量进行生命,否则就出现了编译错误。7测试结果:1、欢迎界面2、系统选择界面:3、新购物品入库:4、物品信息删除:5、物品信息修改:6、物品信息查询7、物品信息浏览:8、系统颜色设置:9、应用程序退出:8 参考文献:1.C 语言程序设计教程谭浩强等著 高等教育出版社2.C 语言程序设计习题解析与应用案例分析,黄维通编,清华大学出版社, 20053.C 语言程序设计,李大友主编,清华大学出版社, 1999课程设计总结C语言已学习了两个学期了。总算对其有了初步的认识与了解!虽然不能算熟手,但基本能看懂许多代码。当然让自己独立编写有某些功能的程序还是十分吃力的。比如这次的超市管理系统,虽然基本算法还算简易,但从结构体链表开始就很难把持。只有照着书上的例题去理解,去套用!才能略有小成的把结构体链表版的程序做出来,当然缺陷百出!怎么讲呢?总觉得时间过的很快!一眨眼的工夫,就已经结束了,每天要消化的东西很多! 为期一周的C语言课程设计结束了,通过这一个星期的课设,使我对C语言有了更深入、更全面的了解,同时也发现自己的英文和函数基础不是很好,对很多地方不是特别懂,甚至对有些概念都还很模糊,但通过这次课程设计,使我对C语言有了新的认识,在这一周的时间里,经过不断的与同学之间进行探讨以及老师的指导,使我的C语言水平有了很大程度的提高。通过课设我还发现C语言是一门非常实用的学科,像我的题目-书店图书销售系统,是与实际生活紧密相关的,在以后的工作当中都有可能会用的到。平常在书上学的这些知识在我看来是些最基本的知识!其实C语言应该还包括很多,但就这些基本的知识我们学起来还是很辛苦的,我个人认为C语言的语句块中无非是3个东西,顺序,判断与循环,在一个多星期的代码打下来,编写的语句块中没发现过超出这3种东西的,就算调用的函数,在函数里面还是这3个东西,可以说是极其简单,但就这3种东西拼凑在一起时,就能发挥强大的功能与作用。可谓三个臭皮匠顶个诸葛亮!一般在没有多数的嵌套下还是能很清晰明了的读写代码,可一旦嵌套一多,就开始晕晕眩眩了。 函数的话,我的理解比较浅,我只能说它的作用除了被人调来调去之外,没有别的功能了!当然使用函数会是程序别的清晰明了,这点在编写超市管理系统时也体会到了!, 我认为还有比较重要的是算法,虽然算法并不是代码,但算法能让我们更好的去编写代码,有了算法程序才有灵魂,这是书上说的.个人认为这是个比喻算法是事物解决的方法,不仅仅编程我们生活中也经常用到算法,只是自身没发现而已!当我们的算法到达到一种境界时,我们的思维就会变的灵活,思路就会变的清晰!当然我也没到这种境界,正在努力中这次课设使我对C语言产生了极大的兴趣,相信通过我以后的学习,我的C语言水平一定会有很大的提高。源程序:#include#include#include#includestruct imaint id;char name20;char produce30;int number;float price;void Append();void Selldelete();void Amend();void Findin();void Browse();void colorsetting();void Endprogram();void initialization()FILE *fp;struct ima i=1,花生牛奶,湖北武汉,1200,2.5;fp=fopen(ima.dat恶,w);if(fp=NULL)printf(ttt系统错误,请重试.);exit(0);fwrite(&i,sizeof(struct ima),1,fp);fclose(fp);void menu()int choice;printf(n【超市库存管理系统】n);printf(-系统菜单显示如下-);printf(nt=【 新购物品入库 】n);printf(nt=【 物品信息删除 】n);printf(nt=【 物品信息修改 】n);printf(nt=【 物品信息查询 】n);printf(nt=【 物品信息浏览 】n);printf(nt=【 系统颜色设置 】n);printf(nt=【 应用程序退出 】n);printf(nt请输入您要选择的菜单.);scanf(%d,&choice);switch(choice)case 1:Append();break;case 2:Selldelete();break;case 3:Amend();break;case 4:Findin();break;case 5:Browse();break;case 6:colorsetting();break;case 7:Endprogram();break;default:printf(nttttt输入无效,请您重新输入.);getch();system(cls);menu();void colorsetting() int a;char choice;system(cls);printf(nntt选择以下方案n);printf(nntt1*红底黑字n);printf(nntt2*白底黑字n);printf(nntt3*黑底红字n);printf(nntt4*绿底蓝字n);printf(nntt5*黄底紫字n);printf(nntt6*系统默认n);printf(nnttttt请挑选您喜爱的颜色.); scanf(%d,&a);switch(a)case 1:system(color 40);break;case 2:system(color 70);break;case 3:system(color 04);break;case 4:system(color 21);break;case 5:system(color 65);break;case 6:system(color 1a);break;default:printf(nnttttt输入无效,重新输入.);getch();colorsetting();printf(n选择的颜色您还满意吗?(y返回主菜单/n继续选择);scanf( %c,&choice);if(choice=Y|choice=y)system(cls);menu();elsecolorsetting();int validateID(int id) FILE *fp;struct ima i;fp=fopen(ima.date,r);if(fp=NULL)printf(ttt系统错误,请您重试.);exit(0);fread(&i,sizeof(struct ima),1,fp);while(!feof(fp)if(i.id=id)fclose(fp);return 1;break;fread(&i,sizeof(struct ima),1,fp);fclose(fp);return 0;void Append() struct ima i;char choice;FILE *fp;fp=fopen(ima.date,ab);if(fp=NULL)printf(ttt系统错误,请您重试.);exit(0); labID:printf(nt请您输入要入库物品的信息.n);printf(tttt 物品的编号:);scanf(%d,&i.id);if(validateID(i.id)=1)printf(tttt此编号已被使用,请您重新输入.);goto labID;printf(tttt 物品的名称:);scanf(%s,);printf(tttt 物品的生产地:);scanf(%s,duce);printf(tttt 物品的数量:);scanf(%d,&i.number);printf(tttt 物品的单价:);scanf(%f,&i.price);fwrite(&i,sizeof(struct ima),1,fp);fclose(fp);printf(tttttt 物品信息已入库成功!n);printf(n您想继续吗?(y/n);scanf( %c,&choice);if(choice=Y|choice=y)Append();elsesystem(cls);menu();void Selldelete() struct ima i1000;struct ima temp;int delID;char choice;int index=0;int j=0;FILE *fp;fp=fopen(ima.date,r);if(fp=NULL)printf(ttt系统错误,请您重试.);exit(0);fread(&temp,sizeof(struct ima),1,fp);while(!feof(fp)iindex=temp;index+;fread(&temp,sizeof(struct ima),1,fp);fclose(fp);printf(nt请输入要删除的物品的编号:);scanf(%d,&delID);fopen(f:ima.date,w);if(fp=NULL)printf(ttt系统错误,请您重试.);exit(0);for( j=0;jindex;j+)if(ij.id!=delID)fwrite(&ij,sizeof(struct ima),1,fp); fclose(fp);printf(ttttt物品信息已清除!n);printf(n您想继续吗?(y/n);scanf( %c,&choice);if(choice=Y|choice=y)Selldelete();elsesystem(cls);menu();void Amend() int index=0; int ID,j; char choice; struct ima i1000; structima temp;FILE *fp;fp=fopen(ima.date,r);if(fp=NULL)printf(ttt系统错误,请您重试.);exit(0);fread(&temp,sizeof(struct ima),1,fp);while(!feof(fp)iindex=temp;index+;fread(&temp,sizeof(struct ima),1,fp);fclose(fp);fp=fopen(ima.date,w);if(fp=NULL)printf(ttt系统错误,请您重试.);exit(0);printf(nt请输入要修改的信息的物品的编号:);scanf(%d,&ID);for(j=0;j=index-1;j+)if(ij.id!=ID)fwrite(&ij,sizeof(struct ima),1,fp);elseprintf(tt物品名称修改为:);scanf(%s,);printf(tt物品生产地修改为:);scanf(%s,duce);printf(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论