c语言数据结构课程设计-文章编辑及c语言课程设计-超市进销存管理信息系统_第1页
c语言数据结构课程设计-文章编辑及c语言课程设计-超市进销存管理信息系统_第2页
c语言数据结构课程设计-文章编辑及c语言课程设计-超市进销存管理信息系统_第3页
c语言数据结构课程设计-文章编辑及c语言课程设计-超市进销存管理信息系统_第4页
c语言数据结构课程设计-文章编辑及c语言课程设计-超市进销存管理信息系统_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

算法与数据结构课程设计报告题目:文章编辑设计者: 专业班级: 学号: 指导教师: 所属系部:计算机科学与技术系目录1.问题描述及要求 11.1问题描述 11.2基本要求 12.需求分析 12.1输入数据的形式和范围 12.2输出形式 13.算法思想描述 14.概要设计 14.1统计字符个数函数及算法流程图 14.2统计指定字符串个数函数及算法流程图 24.3删除指定字符串函数及算法流程图 35.详细设计 45.1文章输入函数 45.2文章输出函数 45.3统计字符个数函数 45.4统计指定字符串个数函数 55.5删除指定字符串函数 55.6源程序清单 66.测试数据及分析 116.1文章输入函数 116.2文章输出函数 116.3统计字符个数函数 126.4统计指定字符串个数函数 126.5删除指定字符串函数 137.课程设计总结 148.参考资料 14 . 文章编辑1.问题描述及要求1.1问题描述功能:输入一页文字,程序可以统计出文字、数字、空格的个数。1.2基本要求(1)静态存储一页文章,每行最多不超过80个字符,共N行;(2)分别统计出其中英文字母数和空格数及整篇文章总字数;(3)统计某一字符串在文章中出现的次数,并输出该次数;(4)删除某一子串,并将后面的字符前移;(5)存储结构使用线性表,分别用几个子函数实现相应的功能。2.需求分析2.1输入数据的形式和范围可以输入大写、小写的英文字母、任何数字及标点符号。2.2输出形式(1)分行输出用户输入的各行字符;(2)分4行输出"全部字母数"、"数字个数"、"空格个数"、"文章总字数;(3)输出删除某一字符串后的文章;3.算法思想描述本程序是对输入的文字进行操作,故使用静态的字符数组作为存储结构,定义如下:charstr[N][80];//存储文章的字符数组对于文本的输入,采用头插法将文本信息存储到链表已申请好的存储空间中;对于文本内容的统计,使用循环对已存储的文章进行匹配,大写字母数、小写字母数、空格数、数字数直接通过条件比较即可得到;对于文本内容的处理,查找部分仍是使用循环对已存储的文章进行匹配,判断需要查找的字符或者字符串是否与文章中某部分内容相同,如果存在相同的记录相同的个数。删除部分先使用程序的查找功能对文章中需要删除的字符或者字符串进行查找,然后对其进行删除。4.概要设计本程序主要定义了3个函数:voidcount(),voidcheckstring(),voidoutputdelstr()4.1统计字符个数函数及算法流程图函数:voidcount()功能:统计字母、数字、空格的个数流程图如下:i=0i=0i<Nj=0len=strlen(len[i])j<lenj>=lenj++i++if(str[i][j]>='a'&&str[i][j]<='z')cnum++;if(str[i][j]>='A'&&str[i][j]<='Z')cnum++;if(str[i][j]>='0'&&str[i][j]<='9')dnum++;if(str[i][j]=='')snum++;算法结束i>=N4.2统计指定字符串个数函数及算法流程图函数:voidcheckstring()功能:统计某一个指定的字符串的个数流程图如下:i=0i=0i<Np1=strstr(p1,p2)p1!=nullp1=strstr(p1,p2)+1strnum++i++算法结束i>=Np1=null4.3删除指定字符串函数及算法流程图函数:voidoutputdelstr()功能:删除某一个指定的字符串流程图如下:i=0i=0p1=strstr(p1,p2)i<Np1!=nullp=p1=strstr(p1,p2);while(*(p+len-1)){*p=*(p+len);p++;}i++算法结束i>=Np1=null5.详细设计5.1文章输入函数intintput()//文章输入函数{printf("请输入第%d行文字\n",i+1);gets(str[i]);//读取数组的内容if(strlen(str[i])>80) { printf("每行最多输入80字符,请重新输入第%d行文字\n",i+1);/*当每行输入文字大于80字符时输出此语句,并且重新输入文字*/gets(str[i]); } returnstrlen(str[i]);//返回数组的长度 }5.2文章输出函数voidoutput()//文章输出函数{for(i=0;i<N;i++){puts(str[i]);//输出数组的内容}}5.3统计字符个数函数voidcount()//统计字符个数的函数{for(j=0;j<len[i];j++){if(str[i][j]>='a'&&str[i][j]<='z')cnum++;//统计小写字母if(str[i][j]>='A'&&str[i][j]<='Z')cnum++;//统计大写字母if(str[i][j]>='0'&&str[i][j]<='9')dnum++;//统计数字if(str[i][j]=='')snum++;//统计空格}}5.4统计指定字符串个数函数voidcheckstring()//统计指定字符串个数函数{charcstr[20];char*p1,*p2;printf("请输入需要统计的字符串:");gets(cstr);p2=cstr;for(i=0;i<N;i++){p1=str[i];while(strstr(p1,p2)!=NULL)/*strstr()函数的原型是:externchar*strstr(char*str1,char*str2);功能是找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。*/{strnum++;p1=strstr(p1,p2)+1;}}printf("字符串:%s在文章中出现的次数为:%d\n",cstr,strnum);}5.5删除指定字符串函数voidoutputdelstr()//删除指定字符串函数{charcstr[20];char*p,*p1,*p2;intlen;printf("请输入要删除的字符串:");gets(cstr);len=strlen(cstr);p2=cstr;for(i=0;i<N;i++){p1=str[i];while(strstr(p1,p2)!=NULL){p=p1=strstr(p1,p2);while(*(p+len-1)){*p=*(p+len);p++;}}}printf("删除字符串:%s后文章为:\n",cstr);output();//输出删除字符串后的文章}5.6源程序清单#include<stdio.h>#include<string.h>#include<stdlib.h>#defineN3//文章的行数charstr[N][80];//存储文章的字符数组,为全局变量inti,j;intlen[N];intdnum=0,cnum=0,snum=0,anum=0,strnum=0;//为各变量赋初值voidmenu();//菜单显示函数intintput();//文章输入函数voidoutput();//文章输出函数voidcount();//统计字符个数函数voidcheckstring();//统计指定字符串个数函数voidoutputdelstr();//删除指定字符串函数intmain()//主函数{ printf("**************************\n"); printf("*本网络101第4组黄耿宇*\n"); printf("**************************\n");charkey,t;for(i=0;i<N;i++){len[i]=intput();anum+=len[i];}for(i=0;i<N;i++){count();//调用count()函数}while(1){ printf("**************************\n"); printf("*本网络101第4组黄耿宇*\n"); printf("**************************\n"); printf("\n");printf("您输入的文章为:\n");output();//调用output()函数 printf("\n");printf("文章中的字母个数为:%d\n",cnum); printf("数字个数为:%d\n",dnum);printf("空格个数为:%d\n",snum);printf("文章总字数为:%d\n",anum); printf("\n");menu();//调用menu()函数printf("\n");printf("请输入操作:");key=getchar();//接收回车printf("\n");switch(key){case'1'://当key=1时执行此语句调用checkstring()函数{fflush(stdin);//功能:清空输入缓冲区,确保不影响后面的数据读取checkstring();//调用checkstring()函数}break;case'2'://当key=2时执行此语句调用outputdelstr()函数{fflush(stdin);outputdelstr();//outputdelstr()函数}break;case'0':exit(0);//当key=0时执行此语句退出系统default:{printf("此菜单不存在!\n");}break;}t=getchar();//接收回车system("pause");/*是一个系统函数,调用“pause”命令,在命令行上输出“请按任意键继续”一行文字,等待用户按一个键,然后返回。*/}system("pause");return0;}voidmenu()//菜单显示函数{printf("**********************\n");printf("*菜单*\n");printf("**********************\n");printf("*1统计字符串*\n");printf("*2删除字符串*\n");printf("*0退出系统*\n");printf("**********************\n");}intintput()//文章输入函数{printf("请输入第%d行文字\n",i+1);gets(str[i]);//读取数组的内容if(strlen(str[i])>80) { printf("每行最多输入80字符,请重新输入第%d行文字\n",i+1);/*当每行输入文字大于80字符时输出此语句,并且重新输入文字*/gets(str[i]); } returnstrlen(str[i]);//返回数组的长度 }voidoutput()//文章输出函数{for(i=0;i<N;i++){puts(str[i]);//输出数组的内容}}voidcount()//统计字符个数的函数{for(j=0;j<len[i];j++){if(str[i][j]>='a'&&str[i][j]<='z')cnum++;//统计小写字母if(str[i][j]>='A'&&str[i][j]<='Z')cnum++;//统计大写字母if(str[i][j]>='0'&&str[i][j]<='9')dnum++;//统计数字if(str[i][j]=='')snum++;//统计空格}}voidcheckstring()//统计指定字符串个数函数{charcstr[20];char*p1,*p2;printf("请输入需要统计的字符串:");gets(cstr);p2=cstr;for(i=0;i<N;i++){p1=str[i];while(strstr(p1,p2)!=NULL)//strstr()函数的原型是:externchar*strstr(char*str1,char*str2); //功能是找出str2字符串在str1字符串中第一次出现的位置(不包括str2的串结束符)。{strnum++;p1=strstr(p1,p2)+1;}}printf("字符串:%s在文章中出现的次数为:%d\n",cstr,strnum);}voidoutputdelstr()//删除指定字符串函数{charcstr[20];char*p,*p1,*p2;intlen;printf("请输入要删除的字符串:");gets(cstr);len=strlen(cstr);p2=cstr;for(i=0;i<N;i++){p1=str[i];while(strstr(p1,p2)!=NULL){p=p1=strstr(p1,p2);while(*(p+len-1)){*p=*(p+len);p++;}}}printf("删除字符串:%s后文章为:\n",cstr);output();//输出删除字符串后的文章}6.测试数据及分析6.1文章输入函数6.2文章输出函数6.3统计字符个数函数6.4统计指定字符串个数函数6.5删除指定字符串函数7.课程设计总结为期一周的课程设计结束了,在这一周里我完成了编写文本编辑程序的任务。任务书上要求是对输入的信息进行操作,自己开始是不知道该向什么方向去努力,自己应该如何去编写这个程序,后来通过对照着任务书上的要求和到网上查找相关资料,慢慢找到了感觉。所以自己在整个课程设计的编写程序过程中遇到的困难及问题都通过查阅资料、向老师提问得以解决。本次课程设计自己最大的体会就是不管写什么程序,自己首先得对这个问题要分析透彻,要知道自己要干什么,然后才能让自己干什么。通过本次课程设计,我学到了很多:增强了查阅相关参考资料的能力,独立分析解决问题的能力;自己的上机动手的能力和对课程设计的理解,得到很多启示;课程设计为我们提供了一个即动手又动脑、独立实践的机会,将课本上的知识理论和实际有机的结合起来,锻炼了我们的分析解决实际问题的能力。这次课程设计使我我对数据逻辑结构的特点和存储表示方式的有了更深的了解和认识,培养了我在具体应用中选择合适的数据结构和存储结构的能力,同时也使我认识到自己在学习编程方面还有很多的不足。今后我要多读一些纺织方面的书籍,不能只拘泥于课本上的知识,并注重理论与实践的结合,多上机练习编写程序,提高自己的实际动手能力和独立思考的能力,不断充实自己,更好的掌握编程思想。8.参考资料[1]陈守孔,《算法与数据结构.C语言版》,清华大学出版社,2009年6月[2]徐凤生,《数据结构与算法-C语言版》,机械工业出版社,2010年6月[3]廖雷,《C程序设计实践教程》,电子工业出版社,2006年7月摘要该系统主要是介绍超市进销存管理信息系统的环境、功能作用、所用到的语言、设计的方案等各方面的内容。主要是让使用者了解此系统,使他们能更好的运用本系统,使此系统发挥出应有的作用。本系统运用计算机管理信息技术,对超市的进销存过程进行详细的分析,实现了对超市的进货、出售和库存的科学管理。

本系统主要包括以下几大模块:输入单据:出库、入库、物品清单;查询:数量查询、价格查询、生产地查询。

关键词

:销售;管理信息系统;C语言

Abstract

Thistextmainlyintroducesthesupermarketandenterstosellsuchcontentsofvariousfieldsastheenvironmentwhichstoresthemanagementinformationsystem,schemeonthefunction,language,designused,etc..Letuserfindoutaboutsystemthis,enablethemfineapplicationthissystemmainly,makethissystemgiveplaytoduefunction.Thissystemusestheinformationtechnologyofcomputermanagement,sellthecourseofstoringtocarryondetailedanalysistotheenteringofthesupermarket,haverealizedthepurchase,saleandscientificmanagementheldinstoretothesupermarket.

Thissystemismajorandincludesfollowingseveralbigmodules:Theinputreceipts:

Thewarehouseisgoneouttobeputinstoragethattheproductendproductdetailedlistisinquiredabout:

Thereportformbeingputinstorageisgoneoutthereportformproductendproductdetailedlistreportforminwarehousetoselltomovebackthemoneylistreportformtoadvance.keywords:

Sell

;managementinformationsystem

;Clanguage

目录1概述 11.1设计思想 11.2设计原则 11.3性能需求 12总体设计 22.1系统功能设计图 22.2系统功能设计 22.2.1系统颜色模块功能 32.2.2销售管理模块功能 32.2.3进货管理模块功能 32.2.4库存管理模块功能 32.3系统模块的运用方法 32.3.1输入记录模块 32.3.2查询记录模块 32.3.3输出记录模块 33详细设计使用 43.1数据定义 43.2主函数流程图 53.3源程序 74调试分析 84.1进入主界面 84.2系统菜单界面 84.3商品信息查询窗口 105总结 11参考文献 12致谢 13附件 141概述1.1设计思想(1)系统分成几个相对独立的模块,但这些模块都进行集中式管理。(2)分层的模块化程序设计思想,整个系统采用模块化结构设计作为应用程序,有较强的可操作性和扩展性。(3)合理的数据设计,在应用系统设计中,相对独立的模块间以数据相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。1.2设计原则为了使本系统功能齐全完备,操作简便,最大限度的提高软件的质量,从而满足用户的实际需要,在设计开发过程中遵循了如下原则:(1)合法性原则:依据产品核算系统的工作规定以及要求,参照核算实际的工作情况,进行诸如产品进货、销售等工作。(2)实用性原则:适合产品信息管理工作的实际需求,并能够处理一些特殊情况的要求,此外,尽可能预留空间,以便扩充功能。(3)准确性原则:对输入的相关资料建立检错机制,及时报错,使用户能够及时准确的输入合法资料(如:类型匹配,长度不超限等)。(3)易操作原则:要求设计的系统功能齐全,界面友好,操作方便,必要的地方进行提示。(5)源程序可读性原则:为了便于其他设计,维护人员读懂代码或以后的代码修改,软件升级维护,即可能做好代码注释工作。1.3性能需求(1)数据精确度产品的进货单和销售单中,单价、金额采用浮点数,保留至小数点后两位。2总体设计2.1系统功能设计图超市信息管理超市信息管理销售管理进货管理库存管理系统颜色管理查询系统颜色信息维护系统颜色信息查询进货系统查询销售信息维护销售信息查询库存信息维护库存信息维护进货信息图2-1超市管理系统功能结构2.2系统功能设计系统功能设计是使整个系统能基本实现超市的进、销、存等管理功能,能让超市管理者更直观的了解超市的经营状况,以做出相应的经营决策。管理信息系统(MIS)就是进行信息的收集、传送、存储、编制成各种凭证、报表、台帐、图形等信息,同时对这些信息进行维护,通过实测超市的各种运行情况,并利用过去的历史数据预测未来的发展,从超市全局的角度出发进行决策,利用信息控制超市的行为,辅助超市完成其目标。本系统共包括四大模块,分别是系统颜色模块,销售管理模块,进货管理模块,库存管理模块。每个模块的功能如下:2.2.1系统颜色模块功能(1)实现系统颜色转换;(2)查看系统颜色;2.2.2销售管理模块功能(1)实现销售信息的查询;(2)实现商品销售信息的盘点。2.2.3进货管理模块功能(1)实现进货信息的查询;(2)实现进货信息的更新,包括增加、删除、修改功能。2.2.4库存管理模块功能(1)实现商品信息的查询;(2)实现商品信息的更新,包括增加、删除、修改功能;(3)实现库存信息的查询;(4)实现库存信息的更新,包括增加、删除、修改功能。2.3系统模块的运用方法2.3.1输入记录模块输入记录模块的功能:输入各种商品的信息;2.3.2查询记录模块查询记录模块的功能:查询各种商品的信息;2.3.3输出记录模块输出记录模块的功能:输出各种商品的信息;3详细设计使用3.1数据定义使用C语言创建的结构体和定义的函数如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>structproduce_node{intid; charname[20]; charproduce[30]; intnumber; doubleprice; doubleprice1; structproduce_node*next;};structima{ intid; charname[20]; charproduce[30]; intnumber; doubleprice; doubleprice1; structima*next;}; voidliren(); voidchushou(intcount); voidAppend(); voidSelldelete(); voidAmend(); voidFindin(); voidBrowse(); voidcolorsetting(); voidEndprogram(); voidzonghe(); structproduce_node*lianbiao(); structproduce_node*Create_produce_Doc();structproduce_node*InsertDoc(structproduce_node*head,structproduce_node*produce); structproduce_node*DeleteDoc(structproduce_node*head,intnum);3.2主函数流程图控制整个程序的运行,通过主函数模块分别调用各个模块,实现各项功能,流程图如图3.1所示。开始开始输入输入判断判断是输入编号否是输入编号否是判断否是判断否应用程序退出系统颜色设置物品价值总和浏览物品的预计利润物品信息浏览物品信息修改物品信息删除物品信息查询新购物品入库物品出售管理应用程序退出系统颜色设置物品价值总和浏览物品的预计利润物品信息浏览物品信息修改物品信息删除物品信息查询新购物品入库物品出售管理否判断否判断是是退出程序执行相应的函数退出程序执行相应的函数图3.1主函数流程图3.3源程序 见附件4调试分析4.1进入主界面打开系统,进入主界面,显示“欢迎使用超市管理系统”然后使用者可以按任意键进入下一界面,此界面整齐美观,界面友好,是使用者更容易接受。主界面显示图如图4.1所示。图4.1主界面4.2系统菜单界面在主界面按任意键进入系统菜单界面,界面显示“1新购商品入库;2………商品信息删除;3………商品信息修改;4………..商品信息查询;5……….商品信息浏览;6……….系统颜色设置;7………应用程序退出;8………...物品价值总和浏览;9…………物品的出售管理;10……….商品的预计利润”使用者可以按相应的数字键进入子系统。系统菜单界面如图4.2所示。图4.2系统菜单4.3商品信息查询窗口在系统菜单按4进入商品信息查询子菜单,输入所查询的商品编号,界面显示的物品信息有“商品编号、商品名称、生产厂家、进口数量、进货价格、出售价格”然后会问你是否继续,继续按Y,不想继续按N。商品信息查询窗口如图4.3所示。图4.3商品信息查询5总结本文共分为五大部分,第一部分简要叙述了计算机科学及IT产业的发展状况和本系统基本概况。第二,三部分分别按照软件工程的要求出发,首先进行问题定义,解决目标问题,其次进行可行性研究,分别从技术可行性,经济可行性和操作可行性进行分析,然后进行的总体设计和详细设计阐述了如何实现具体功能。第四部分为系统调试其中包括子模块测试和总体测试。第五部分为帮助文件和参考文献。

在此次设计当中让我认识到开发一项好的软件不是某一个人就能完成的任务。一个团队的小组,一个勤奋的小组非常重要,沟通是解决问题的最好办法。所以小组中的每个成员的能力与协作能力也是至关重要的。同时,不仅是团队内部的交流,更多需要协调好团队之间的交流。其次呢,在实习中我了解到,在开发一个项目时一定要先做好规划,按照软件的开发过程,详细地写好每一个必要的文档。由于开发者能力有限,加上时间仓促,本系统难免会出现一些不足之处,我们深表歉意,如发现还有其它问题,希望老师批评指正。通过此次编程培养了我们结构化程序设计的思想,加深了对高级语言基本语言要素和控制结构的理解,锻炼我们独立思考制作程序的能力,并且掌握了一些课程设计的相关知识与实践操作能力,为以后的学习提供了锻炼的机会。经过设计和开发,销售管理系统基本开发完毕以及各类相关报表的打印。并提供部分系统维护功能,使用户方便进行数据备份和恢复、数据删除。对于数据的一致性的问题也通过程序进行了有效的解决。从而是我对c语言这门课程有了更好的了解。参考文献[1]姜灵芝,余健.C语言课程设计案例精编.北京:清华大学出版社,2008[2]王新,孙雷.C语言课程设计.北京:清华大学出版社,2009[3]游洪跃、彭骏、谭斌.C语言程序设计实验与课程设计教程.北京:清华大学出版社,2011[4]王连相.C/C++程序设计上机指导与测试.北京:中国铁道出版社,2006[5]C语言函数手册,机械工业出版社,1999[6]王勇领.计算机数据处理系统分析与设计.北京:清华大学出版社,2007.3[7]张基温.信息系统开发案例.北京;清华大学出版社,2006.3致谢经过五天的艰苦努力,我终于完成了超市管理系统的全部设计过程,并使该系统达到可实际应用的阶段。软件设计是一个精细漫长的过程。在整个过程中,都需要周密的计划和安排,每一步骤,都需要按照软件工程标准来完成。在设计中,我始终坚持理论指导实践原则,并通过实践来加强理论的学习,通过实习锻炼,我熟悉了软件的一般过程,加强了对实际问题的处理能力。实践证明,在高科技突飞猛进的时代,光靠课堂所学的知识是远远不够的,必须依靠实践去不断的深化认识,尤其是计算机科学,操作性和实践性很强,只有加强实际的动手能力,才能更好的掌握这一现代化工具。

这次学习,无论是从技术上还是对环境的适应能力上讲,对我今后步入社会都打下了一个良好的基础。在学习过程中,我也遇到了一些困难,主要表现了技术和经验的欠缺,但通过努力,终于一一克服了。在编写程序的过程中,我们得到了马生菊老师的精心指导以及孜孜不倦的教诲,在老师的指导下,我们的能力得到了提高,同时养成了科学、严谨的作风和习惯,在此,我们对老师的精心栽培表示衷心的感谢!感谢我们小组同学对我的帮助和指点。在课设的整个过程中,我的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意。附件 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h>structproduce_node{intid; charname[20]; charproduce[30]; intnumber; doubleprice; doubleprice1; structproduce_node*next;};structima{ intid; charname[20]; charproduce[30]; intnumber; doubleprice; doubleprice1; structima*next;}; voidliren(); voidchushou(intcount); voidAppend(); voidSelldelete(); voidAmend(); voidFindin(); voidBrowse(); voidcolorsetting(); voidEndprogram(); voidzonghe(); structproduce_node*lianbiao(); structproduce_node*Create_produce_Doc();structproduce_node*InsertDoc(structproduce_node*head,structproduce_node*produce); structproduce_node*DeleteDoc(structproduce_node*head,intnum); voidmenu() { intchoice; printf("\n∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞【小型超市管理系统】∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞\n"); printf("系统菜单显示如下"); printf("\n\t1=====================【新购商品入库】\n"); printf("\n\t2=====================【商品信息删除】\n"); printf("\n\t3=====================【商品信息修改】\n"); printf("\n\t4=====================【商品信息查询】\n"); printf("\n\t5=====================【商品信息浏览】\n"); printf("\n\t6=====================【系统颜色设置】\n"); printf("\n\t7=====================【应用程序退出】\n"); printf("\n\t8=====================【商品价值总和浏览】\n"); printf("\n\t9=====================【商品的出售管理】\n"); printf("\n\t10====================【商品的预计的利润】\n"); printf("\n\t请输入您要选择的菜单"); scanf("%d",&choice); switch(choice) { case1: Append(); break; case2: Selldelete(); break; case3: Amend(); break; case4: Findin(); break; case5: Browse(); break; case6: colorsetting(); break; case7: Endprogram(); break; case8: zonghe(); break; case9: {inti; printf("请输入您要卖出的数量:"); scanf("%d",&i); chushou(i);} break; case10: liren(); break; default: printf("\n\t\t\t\t\t输入无效,请您重新输入"); getch(); system("cls"); menu(); } } voidcolorsetting() {inta; charchoice; system("cls"); printf("\n\n\t\t选择以下方案\n"); printf("\n\n\t\t1**************红底黑字\n"); printf("\n\n\t\t2**************白底黑字\n"); printf("\n\n\t\t3**************黑底红字\n"); printf("\n\n\t\t4**************绿底蓝字\n"); printf("\n\n\t\t5**************黄底紫字\n"); printf("\n\n\t\t6**************系统默认\n"); printf("\n\n\t\t\t\t\t请挑选您喜爱的颜色<1-5>"); scanf("%d",&a); switch(a) { case1: system("color40"); break; case2: system("color70"); break; case3: system("color04"); break; case4: system("color21"); break; case5: system("color65"); break; case6: system("color1a"); break; default: printf("\n\n\t\t\t\t\t输入无效,重新输入"); getch(); colorsetting(); } printf("\n选择的颜色您还满意吗?(y返回主菜单/n继续选择)"); scanf("%c",&choice); if(choice=='Y'||choice=='y') { system("cls"); menu(); } else { colorsetting(); } } intvalidateID(intid) { FILE*fp; structimai; fp=fopen("ima.date","r"); if(fp==NULL) { printf("\t\t\t系统错误,请您重试"); exit(0); } fread(&i,sizeof(structima),1,fp); while(!feof(fp)) { if(i.id==id) { fclose(fp); return1; break; } fread(&i,sizeof(structima),1,fp); } fclose(fp); return0; } voidAppend() { structproduce_node*i; structproduce_nodej; charchoice; FILE*fp; fp=fopen("ima.date","ab"); i=&j; if(fp==NULL) { printf("\t\t\t系统错误,请您重试"); exit(0); } labID: printf("\n\t请您输入要入库商品的信息...\n"); printf("\t\t\t\t商品的编号:"); scanf("%d",&j.id); if(validateID(j.id)==1) { printf("\t\t\t\t此编号已被使用,请您重新输入\n"); gotolabID; } else printf("****************************此编号没有被使用您可以使用**********************************\n"); i=lianbiao(); while(i!=NULL) { fwrite(i,sizeof(structproduce_node),1,fp); i=i->next; } fclose(fp); printf("\t\t\t\t\t\t商品信息已入库成功!!!\n"); free(i); printf("\n您想继续吗?(y/n)"); scanf("%c",&choice); if(choice=='Y'||choice=='y') { Append(); } else { system("cls"); menu(); } } voidSelldelete() {structimai[1000]; structimatemp; intdelID; charchoice; intindex=0; intj=0; FILE*fp; fp=fopen("ima.date","r"); if(fp==NULL) { printf("\t\t\t系统错误,请您重试"); exit(0); } fread(&temp,sizeof(structima),1,fp); while(!feof(fp)) { i[index]=temp; index++; fread(&temp,sizeof(structima),1,fp); } fclose(fp); printf("\n\t请输入要删除的商品的编号:"); scanf("%d",&delID); fopen("ima.date","w");/*打开文件*/ if(fp==NULL) { printf("\t\t\t系统错误,请您重试"); exit(0); } for(j=0;j<index;j++) { if(i[j].id!=delID) { fwrite(&i[j],sizeof(structima),1,fp); } } fclose(fp); printf("\t\t\t\t\t商品信息已清除!!!\n"); printf("\n您想继续吗?(y/n)"); scanf("%c",&choice); if(choice=='Y'||choice=='y') { Selldelete(); } else { system("cls"); menu(); } } voidAmend() {intindex=0; intID,j; charchoice; structimai[1000]; struct imatemp; FILE*fp; fp=fopen("ima.date","r"); if(fp==NULL) { printf("\t\t\t系统错误,请您重试"); exit(0); } fread(&temp,sizeof(structima),1,fp); while(!feof(fp)) { i[index]=temp; index++; fread(&temp,sizeof(structima),1,fp); } fclose(fp); fp=fopen("ima.date","w"); if(fp==NULL) { printf("\\t\t\t系统错误,请您重试"); exit(0); } printf("\n\t请输入要修改的信息的商品的编号:"); scanf("%d",&ID); for(j=0;j<=index-1;j++) { if(i[j].id!=ID) { fwrite(&i[j],sizeof(structima),1,fp); } else { printf("\t\t商品名称修改为:"); scanf("%s",i[j].name); printf("\t\t商品生产地修改为:"); scanf("%s",i[j].produce); printf("\t\t商品数量修改为:"); scanf("%d",&i[j].number); printf("\t\t商品进货单价修改为:"); scanf("%lf",&i[j].price); printf("\t\t商品出售单价修改为:"); scanf("%lf",&i[j].price1); fwrite(&i[j],sizeof(structima),1,fp); } } fclose(fp); printf("\t\t\t\t商品信息已修改"); printf("\n您想继续吗?(y/n)"); scanf("%c",&choice); if(choice=='Y'||choice=='y') { Amend(); } else { system("cls"); menu(); } } voidFindin() { inta=0; FILE*fp; intfindID;charchoice;structimai; fp=fopen("ima.date","r"); if(fp==NULL) { printf("\t\t\t系统错误,请你重试"); exit(0); } printf("\n\t请输入要查询的商品的编号.."); scanf("%d",&findID); fread(&i,sizeof(structima),1,fp); while(!feof(fp)) { if(i.id==findID) { a=1; printf("\n\n\t***************商品信息******************"); printf("\n\t商品编号...%30d\n",i.id); printf("\n\t"); printf("\n\t商品名称...%30s\n",); printf("\n\t"); printf("\n\t生产厂家...%30s\n",duce); printf("\n\t"); printf("\n\t进口数量...%30d\n",i.number); printf("\n\t"); printf("\n\t进货价格...%30.3f\n",i.price); printf("\n\t"); printf("\n\t出售价格...%30.3f\n",i.price1); printf("\n\t"); printf("\n您想继续吗?(y/n)"); scanf("%c",&choice); if(choice=='Y'||choice=='y') { Findin(); } else { system("cls"); menu(); } } fread(&i,sizeof(structima),1,fp); } fclose(fp); if(a!=1) { printf("\t\t\t\t\t输入的编号不存在,请您重新输入"); printf("\n您想继续吗?(y/n)"); scanf("%c",&choice); if(choice=='Y'||choice=='y') { Findin(); } else { system("cls"); menu(); } } } voidBrowse() {structimai; intindex=0; charchoice; FILE*fp; fp=fopen("ima.date","r"); if(fp==NULL) { printf("\t\t\t系统错误,请你重试"); exit(0); } fread(&i,sizeof(structima),1,fp); while(!feof(fp)) { printf("\n\n\t****************商品信息%d*****************",++index); printf("\n\t商品编号...%30d\n",i.id); printf("\n\t"); printf("\n\t商品名称...%30s\n",); printf("\n\t"); printf("\n\t生产

温馨提示

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

评论

0/150

提交评论