C课程设计 小型超市管理系统
- 格式:doc
- 大小:418.00 KB
- 文档页数:39
图6 程序主界面
这个界面是运行函数后首先出现的界面,运行函数时,该函数是一个菜单函数,用switch 语句来实现各功能模块的转移,出来该页面后用户可根据提示输入信息,从而实现各种目的。
②键盘输入1,进入商品详细目录用以显示全部商品详细信息
图7 显示信息界面
该页面用printf输出,在利用指针读出链表中数据并利用合理计算计算出净利润等数据,再用while语句进行循环输出部数据
③输入2按回车进入商品买卖页面。
如图8所示
图8 买卖信息界面
用scanf输入数据,用if语句和while语句来实现循环每一次修改的数据④输入3按回车会进入商品登陆页面,此页面用来登陆商品。
如图9所示
图9 登录信息界面
将数据登陆入链表个变量中
⑤输入4按回车进入商品修改模块如图10所示
图10修改信息界面
6输入5按回车进入商品删除模块如图11所示
使用printf()函数和scanf( )函数,并且利用指针从而实现各种功能。
其中用到了while 循环语句,实现对链表中个数据的重写功能。
运行完后退出该函数
图11删除信息界面
4.设计体会。
超市管理系统 c 课程设计一、课程目标知识目标:1. 学生能理解超市管理系统的基本概念,掌握其功能模块和使用方法。
2. 学生能掌握数据库的基本操作,包括数据查询、插入、删除和修改。
3. 学生了解面向对象编程的基本思想,并能运用到超市管理系统的设计与实现中。
技能目标:1. 学生能够运用所学知识,设计并实现一个简单的超市管理系统。
2. 学生能够熟练运用编程工具和数据库管理系统,完成系统的开发与调试。
3. 学生通过小组合作,提高沟通协调能力和团队协作精神。
情感态度价值观目标:1. 学生培养对计算机编程和数据库管理的兴趣,激发学习积极性。
2. 学生认识到信息技术在生活中的应用,增强实践操作能力和创新意识。
3. 学生通过课程学习,培养认真负责、严谨细致的学习态度,提高解决问题的能力。
课程性质:本课程为信息技术课程,以实践操作为主,注重培养学生的动手能力和创新能力。
学生特点:六年级学生已具备一定的计算机操作基础,对新鲜事物充满好奇,但需加强对编程和数据库知识的引导。
教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的积极性,引导他们通过小组合作,共同完成课程任务。
在教学过程中,关注学生的个体差异,给予个性化指导,确保每位学生都能达到课程目标。
将课程目标分解为具体的学习成果,以便在教学设计和评估中有的放矢。
二、教学内容1. 超市管理系统概述:介绍超市管理系统的基本概念、功能模块及其在实际生活中的应用。
- 教材章节:第一章 超市管理系统简介2. 数据库基础知识:讲解数据库的基本概念、数据表的设计与创建、数据操作(查询、插入、删除和修改)。
- 教材章节:第二章 数据库基础、第三章 数据表设计与操作3. 面向对象编程:介绍面向对象编程的基本思想,以超市管理系统为例,讲解类的定义、属性和方法的编写。
- 教材章节:第四章 面向对象编程基础4. 超市管理系统设计与实现:结合教材内容,指导学生进行系统设计,包括界面设计、功能模块划分等,并动手实现系统功能。
图6 程序主界面这个界面是运行函数后首先出现的界面,运行函数时,该函数是一个菜单函数,用switch 语句来实现各功能模块的转移,出来该页面后用户可根据提示输入信息,从而实现各种目的。
②键盘输入1,进入商品详细目录用以显示全部商品详细信息图7 显示信息界面该页面用printf输出,在利用指针读出链表中数据并利用合理计算计算出净利润等数据,再用while语句进行循环输出部数据③输入2按回车进入商品买卖页面。
如图8所示图8 买卖信息界面用scanf输入数据,用if语句和while语句来实现循环每一次修改的数据④输入3按回车会进入商品登陆页面,此页面用来登陆商品。
如图9所示图9 登录信息界面将数据登陆入链表个变量中⑤输入4按回车进入商品修改模块如图10所示图10修改信息界面6输入5按回车进入商品删除模块如图11所示使用printf()函数和scanf( )函数,并且利用指针从而实现各种功能。
其中用到了while 循环语句,实现对链表中个数据的重写功能。
运行完后退出该函数图11删除信息界面4.设计体会原文已完。
下文为附加文档,如不需要,下载后可以编辑删除,谢谢!施工组织设计本施工组织设计是本着“一流的质量、一流的工期、科学管理”来进行编制的。
编制时,我公司技术发展部、质检科以及项目部经过精心研究、合理组织、充分利用先进工艺,特制定本施工组织设计。
一、工程概况:西夏建材城生活区27#、30#住宅楼位于银川市新市区,橡胶厂对面。
本工程由宁夏燕宝房地产开发有限公司开发,银川市规划建筑设计院设计。
本工程耐火等级二级,屋面防水等级三级,地震防烈度为8度,设计使用年限50年。
本工程建筑面积:27#楼3824.75m2;30#楼3824.75 m2。
室内地坪±0.00以绝对标高1110.5 m为准,总长27#楼47.28m;30#楼47.28 m。
总宽27#楼14.26m;30#楼14.26 m。
设计室外地坪至檐口高度18.6 00m,呈长方形布置,东西向,三个单元。
超市管理系统 c 课程设计一、教学目标本节课的学习目标为:1.知识目标:学生需要掌握超市管理系统的基本概念、架构和主要模块,了解系统的设计原理和实施方法。
2.技能目标:学生能够使用编程语言实现简单的超市管理系统,具备分析和解决实际问题的能力。
3.情感态度价值观目标:培养学生对信息技术的兴趣,增强其对科技改变生活的认识,提高其创新意识和团队协作能力。
二、教学内容本节课的教学内容主要包括:1.超市管理系统的基本概念和架构,包括前端、后端和数据库等主要模块。
2.系统设计原理,包括需求分析、系统设计、编码和测试等环节。
3.系统实施方法,包括技术选型、开发环境和工具的使用等。
4.实例分析,通过分析具体的超市管理系统案例,使学生更好地理解和掌握相关知识。
三、教学方法本节课采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:教师讲解基本概念、架构和设计原理,为学生提供系统的知识结构。
2.案例分析法:通过分析具体案例,使学生更好地理解和掌握相关知识。
3.实验法:学生动手实践,实际操作超市管理系统,提高其技能水平。
4.讨论法:分组讨论,培养学生的团队协作能力和创新意识。
四、教学资源本节课的教学资源包括:1.教材:提供系统知识结构,为学生学习奠定基础。
2.参考书:丰富学生的知识面,提高其自学能力。
3.多媒体资料:通过图片、视频等形式,生动展示超市管理系统的设计和实施过程。
4.实验设备:为学生提供实际操作平台,提高其技能水平。
五、教学评估本节课的评估方式包括:1.平时表现:通过观察学生在课堂上的参与度、提问回答等情况,评估其对知识的掌握程度。
2.作业:布置相关的编程练习,评估学生对知识的应用能力和动手能力。
3.考试:期末进行超市管理系统知识的考试,评估学生对知识的全面掌握程度。
评估方式应客观、公正,能够全面反映学生的学习成果。
教师应及时给予反馈,帮助学生提高。
六、教学安排本节课的教学安排如下:1.进度:按照教材的章节顺序,合理安排每个章节的教学内容和时间。
c语言课程设计超市管理系统一、教学目标本节课的教学目标是使学生掌握C语言编程基础,能够运用C语言实现简单的超市管理系统。
具体目标如下:1.知识目标:–掌握C语言的基本语法和数据类型。
–了解函数的定义和调用。
–掌握数组的声明和使用。
–理解指针的概念和应用。
2.技能目标:–能够使用C语言编写简单的程序。
–能够运用函数实现模块化编程。
–能够使用数组存储和管理数据。
–能够运用指针处理内存地址和数据。
3.情感态度价值观目标:–培养学生的编程兴趣和自信心。
–培养学生解决问题的能力和创新精神。
–培养学生团队合作和交流分享的意识。
二、教学内容本节课的教学内容主要包括C语言的基本语法、数据类型、函数、数组和指针。
具体安排如下:1.C语言的基本语法和数据类型:介绍C语言的构成要素,包括变量、常量、运算符、表达式等。
2.函数的定义和调用:讲解函数的声明、定义和调用方式,并通过实例演示函数的使用。
3.数组的声明和使用:介绍数组的声明、初始化和使用方法,并通过实例展示数组在超市管理系统中的应用。
4.指针的概念和应用:讲解指针的定义、声明和使用,并通过实例说明指针在超市管理系统中的应用。
三、教学方法本节课采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:通过讲解C语言的基本语法、数据类型、函数、数组和指针的概念和用法。
2.案例分析法:通过分析超市管理系统的实际案例,引导学生运用C语言编程解决实际问题。
3.实验法:安排课堂实验,让学生动手实践,加深对C语言编程的理解和应用。
4.讨论法:学生分组讨论,促进学生之间的交流与合作,培养团队合作精神。
四、教学资源本节课所需的教学资源包括:1.教材:选用权威、实用的C语言教材,为学生提供系统、全面的学习资料。
2.参考书:提供相关领域的参考书籍,拓展学生的知识面。
3.多媒体资料:制作课件、教学视频等多媒体资料,增强课堂教学的趣味性和生动性。
4.实验设备:准备计算机、编程环境等实验设备,确保学生能够动手实践。
超市管理系统课程设计c一、教学目标本课程旨在通过学习超市管理系统,使学生掌握相关的知识、技能及情感态度价值观。
具体目标如下:知识目标:学生能够理解并掌握超市管理系统的相关概念、理论和方法。
技能目标:学生能够运用所学知识,独立完成超市管理系统的搭建、维护和优化。
情感态度价值观目标:学生能够认识到超市管理系统在现代商业运作中的重要性,培养对专业领域的热爱和敬业精神。
二、教学内容本课程的教学内容主要包括超市管理系统的基本概念、架构、关键技术以及实践操作。
具体安排如下:1.超市管理系统的基本概念:介绍超市管理系统的定义、功能、发展历程和趋势。
2.超市管理系统的架构:讲解超市管理系统的整体架构,包括前端展示、后端管理、数据库设计等。
3.超市管理系统的关键技术:深入剖析超市管理系统中的关键技术,如商品管理、库存管理、销售数据分析等。
4.超市管理系统的实践操作:通过实际操作,使学生熟练掌握超市管理系统的使用和维护。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式,包括:1.讲授法:讲解基本概念、理论和关键技术。
2.案例分析法:分析实际案例,使学生更好地理解和运用所学知识。
3.实验法:让学生亲自动手操作,提高实践能力。
4.讨论法:鼓励学生积极参与课堂讨论,培养独立思考和团队协作的能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的教材,为学生提供系统的学习资料。
2.参考书:提供丰富的参考资料,帮助学生拓宽知识面。
3.多媒体资料:制作精美的PPT、视频等多媒体资料,提高课堂趣味性。
4.实验设备:准备充足的实验设备,确保学生能够顺利进行实践操作。
五、教学评估为了全面、客观地评估学生的学习成果,我们将采用以下评估方式:1.平时表现:通过观察学生在课堂上的参与程度、提问回答等情况,评估其学习态度和理解能力。
2.作业:布置适量的作业,要求学生在规定时间内完成,以检验其对知识的掌握程度。
c语言课程设计超市购物系统一、教学目标本课程的目标是使学生掌握C语言编程的基本知识,能够运用C语言设计并实现一个简单的超市购物系统。
在知识目标方面,要求学生掌握C语言的基本语法、数据类型、运算符、控制结构等。
在技能目标方面,要求学生能够熟练使用C语言进行程序设计,具备解决实际问题的能力。
在情感态度价值观目标方面,要求学生培养对编程的兴趣和热情,培养团队合作意识和自主学习能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构等。
具体安排如下:1.第一章:C语言概述,介绍C语言的发展历程、特点及应用领域。
2.第二章:基本数据类型和运算符,介绍整型、浮点型、字符型数据及其运算符。
3.第三章:控制结构,介绍顺序结构、选择结构、循环结构。
4.第四章:函数,介绍函数的定义、声明、调用及返回值。
5.第五章:数组和字符串,介绍一维数组、多维数组、字符串的基本操作。
6.第六章:指针,介绍指针的概念、运算及应用。
7.第七章:结构体和联合体,介绍结构体、联合体的定义和应用。
8.第八章:文件操作,介绍文件的基本操作及其应用。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法。
在讲授法中,教师通过讲解、示范等方式传授知识;在案例分析法中,教师通过分析实际案例,引导学生运用所学知识解决问题;在实验法中,学生通过动手实践,加深对知识的理解和运用。
四、教学资源本课程的教学资源包括教材、多媒体资料和实验设备。
教材选用《C程序设计原理与应用》,多媒体资料包括教学PPT、视频教程等,实验设备包括计算机、网络设备等。
这些资源将有助于学生更好地学习C语言,提高编程能力。
五、教学评估本课程的评估方式包括平时表现、作业、考试等。
平时表现主要评估学生的课堂参与度、提问回答、团队合作等情况,占总评的30%。
作业主要评估学生的编程能力和理解力,占总评的30%。
考试分为期中考试和期末考试,期中考试占40%,期末考试占60%,考试内容主要包括理论知识及编程实践。
程序设计——超市管理系统学院:专业:班级:姓名:学号:指导老师:超市管理系统课程设计1)需求分析:设计题目:超市管理系统设计要求:有一个小型超市,出售N(N>=10)种商品,设计并实现一个系统系统功能需求分析:1.保存及输出:超市中的各种商品信息保存在指定文件中,可以把它们输出显示。
2.计算并排序:计算每类商品的总价值(sum,单精度)及平均价(aver,单精度,输出一位小数),将每类商品按平均价从大到小的顺序排序打印出来。
3.统计:统计输出库存量低于100的货号及类别。
统计输出有两种以上(含两种)商品库存量低于100的商品类别。
2)概要设计:系统总体设计框架:系统功能模块图:3)详细设计:主要功能模块的算法设计思路:本程序主要分为八个模块:主模块、信息输出修改模块、新建信息模块、排序模块、计算模块、统计模块1、统计模块2、打印模块。
1)主模块:通过调用各分模块实现功能;2)信息输出修改模块:输出显示文件中商品信息内容,添加商品信息,删除商品信息,修改商品信息;3)新建商品信息模块:建立一个新结构体,为链表存信息用,并且将信息保存在指定的文件中;4)排序模块:把文件中顺序零乱的商品信息按单价的大小从高到低进行排序,放到链表里存储;5)计算模块:将所有商品的价格与库存量进行累加求和;6)打印模块:将商品信息按每类平均价格排序(从高到低)按顺序打印出来;7)统计模块1:统计库存量低于100的货名及类别;8)统计模块2:统计商品库存量有2种以上(含2种)低于100的商品类别工作流程图:4)主要源程序代码:#include "stdio.h" /*输入,输出头文件*/ #include "stdlib.h" /*申请空间头文件*/#include "string.h" /*对字符串加工头文件*/ #include "conio.h" /*清屏头文件*/FILE *fp;int n=0; /*定义文件指针类型*/int i,j,a[4],m; /*定义整数类型*/float aver[4],sum[4],g[4],h; /*定义浮点类型*/char c[5]="elec"; /*定义字符数组类型*/ char d[5]="comm"; /*定义字符数组类型*/char e[5]="food"; /*定义字符数组类型*/char f[5]="offi"; /*定义字符数组类型*/struct good /*定义结构体*/{int num; /*商品编号*/char name[20]; /*商品名称*/char kind[40]; /*商品类型*/float price; /*商品价格*/char unit[10]; /*商品单位*/int quantity; /*商品数量*/struct good *next; /*定义结构体指针类型*/}*head,*p1,*p2;struct good *createlist() /*创建链表函数*/{struct good *head1,*p1,*p2; /*定义结构体指针类型*/if((fp=fopen("goods message.txt","w"))==NULL) /*判断能否打开文件*/ {printf("can not open the file");exit(0); /*结束程序*/}head1=(struct good *)malloc(sizeof(struct good)); /*申请头结点空间*/p1=head1;p2=head1;printf("*********************************************\n");printf("请输入信息:编号,名称,类型,价格,单位,数目\n");printf(" (以输入“-1”表示结束输入)\n");printf("*********************************************\n");printf("____________________\n");scanf("%d %s %s %f %s %d",&p1->num,p1->name,p1->kind,&p1->price,p1->unit,&p 1->quantity); /*输入商品信息*/printf("____________________\n");p1->next=NULL;fprintf(fp,"%d %s %s %f %s %d",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->quantity); /*将商品信息写入文件*/while(1){p1=(struct good *)malloc(sizeof(struct good)); /*申请新空间*/printf("*********************************************\n");printf("请输入信息:编号,名称,类型,价格,单位,数目\n");printf(" (以输入“-1”表示结束输入)\n");printf("*********************************************\n");printf("____________________\n");scanf("%d",&p1->num);if(p1->num==-1) /*申请空间结束条件*/{printf("____________________\n\n");fprintf(fp,"%d",-1);fclose(fp);return head1; /*返回头指针*/}scanf("%s %s %f %s %d",p1->name,p1->kind,&p1->price,p1->unit,&p1->quantity); /*输入商品信息*/printf("________________\n");fprintf(fp,"%d %s %s %f %s %d",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->quantity); /*将商品信息写入文件*/p1->next=NULL;p2->next=p1;p2=p1;}}struct good *paixu(struct good*head2) /*链表排序函数*/struct good *p6,*p7,*r,*s; /*定义结构体指针类型*/for(i=0;i<=3;i++) /*赋初值值*/{a[i]=0;sum[i]=0;aver[i]=0;}p6=(struct good *)malloc(sizeof(struct good)); /*申请新空间*/ p6->next=head2;head2=p6;while(p6->next!=NULL) /*判断循环结束条件*/{p7=p6->next;r=p6;while(p7->next!=NULL) /*判断循环结束条件*/{if((p7->next->price)>(r->next->price)) /*判断是否调换*/r=p7;p7=p7->next;}if(p6!=r) /*判断循环结束条件*/s=r->next; /*指针调换*/r->next=s->next;s->next=p6->next;p6->next=s;}p6=p6->next;}p6=head2;head2=head2->next;free(p6); /*释放第一个无效空间*/return head2;}void jisuan(){p1=head;do{if(strcmp(p1->kind,c)==0) /*判断是否为电器类型*/{sum[0]=sum[0]+(p1->price)*(p1->quantity); /*求电器总价*/ a[0]=a[0]+p1->quantity; /*求电器总件数*/}if(strcmp(p1->kind,d)==0) /*判断是否为日用品类型*/{sum[1]=sum[1]+(p1->price)*(p1->quantity); /*求日用品总价*/ a[1]=a[1]+p1->quantity; /*求日用品总件数*/}if(strcmp(p1->kind,e)==0) /*判断是否为办公用品类型*/{sum[2]=sum[2]+(p1->price)*(p1->quantity); /*求办公用品总价*/ a[2]=a[2]+p1->quantity; /*求办公用品总件数*/}if(strcmp(p1->kind,f)==0) /*判断是否为食品类型*/{sum[3]=sum[3]+(p1->price)*(p1->quantity); /*求食品总价*/a[3]=a[3]+p1->quantity; /*求食品总件数*/}p1=p1->next;}while (p1!=NULL); /*遍历链表结束条件*/for(i=0;i<4;i++)aver[i]=sum[i]/a[i]; /*求每类商品平均价*/printf("****************************************************\n"); printf("商品类型\t 平均价\t 总库存量\n");printf("****************************************************\n");printf("____________________________________________________\n"); printf("电器总价值:%0.1f\t平均价:%0.1f\t总库存量:%d\n",sum[0],aver[0],a[0]); printf("____________________________________________________\n"); printf("日用品总价值:%0.1f\t平均价:%0.1f\t总库存量:%d\n",sum[1],aver[1],a[1]); printf("____________________________________________________\n"); printf("食品总价值:%0.1f\t平均价:%0.1f\t总库存量:%d\n",sum[2],aver[2],a[2]); printf("____________________________________________________\n"); printf("办公用品总价值:%0.1f\t平均价:%0.1f\t总库存量:%d\n",sum[3],aver[3],a[3]);printf("____________________________________________________\n");}void shuchu() /*输出商品信息函数*/{do{struct good *p3,*p4,*p5; /*定义结构体指针类型*/int n=0,p=0,q=0,r=0;printf("所有商品信息:\n");printf("编号,名称,类型,价格,单位,数目\n");printf("**********************************\n");if((fp=fopen("goods message.txt","rb+"))==NULL) /*判断能否打开文件*/{printf("can not open the file");exit(0); /*结束程序*/}head=(struct good *)malloc(sizeof(struct good)); /*申请头结点空间*/p3=head;fscanf(fp,"%d %s %s %f %s %d",&p3->num,p3->name,p3->kind,&p3->price,p3->unit,&p3->quantity);/*从文件中写到链表*/while(1){p4=(struct good *)malloc(sizeof(struct good)); /*申请头结点空间*/fscanf(fp,"%d ",&p4->num);if(p4->num!=-1) /*判断循环结束条件*/{fscanf(fp,"%s %s %f %s %d",p4->name,p4->kind,&p4->price,p4->unit,&p4->quantity); /*从文件中写到链表*/ p4->next=NULL;p3->next=p4;p3=p4;}else{p3->next=NULL;break;}}fclose(fp); /*关闭文件*/p3=head;while(p3!=NULL){printf(" %d %s %s %0.1f %s %d\n\n",p3->num,p3->name,p3->kin d,p3->price,p3->unit,p3->quantity);printf("__________________________________\n");p3=p3->next;}printf("**********************************\n");printf("//////////////////////////////////\n");while(n!=4){p3=head;printf("**********************************\n");printf("1 添加商品信息\n");printf("2 删除某商品信息\n");printf("3 修改某商品信息\n");printf("4 返回(当你完成了对某一商品的添加、删除或者修改后请按4返回)\n");printf("**********************************\n");scanf("%d",&n);if(n==1) /*添加商品信息*/{printf("请输入商品编号名称类型价格单位数目\n");printf("**********************************\n");p4=(struct good *)malloc(sizeof(struct good)); /*申请空间*/scanf("%d %s %s %f %s %d",&p4->num,p4->name,p4->kind,&p4->price,p4->unit,&p 4->quantity); /*输入商品信息*/p4->next=NULL;while(p3->next!=NULL) /*判断循环结束条件*/{p3=p3->next;}p3->next=p4;p3=head;if((fp=fopen("goods message.txt","w"))==NULL) /*判断能否打开文件*/{printf("can not open the file");exit(0); /*结束程序*/}while(p3!=NULL){fprintf(fp,"%d %s %s %f %s %d",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity) ;/*将商品信息写入文件*/p3=p3->next;}fprintf(fp,"%d",-1);fclose(fp); /*关闭文件*/printf("**********************************\n");printf("__________________________________\n");printf("------------请按4返回-------------\n");printf("__________________________________\n");printf("**********************************\n");}if(n==2) /*删除商品*/{printf("**********************************\n");printf("请输入需要删除的商品编号\n");printf("**********************************\n");scanf("%d",&p);printf("**********\n");printf("1 确认删除\n2 取消删除\n");printf("**********\n");scanf("%d",&r);if(r==1){if((head->num)==p){head=head->next;free(p3); /*释放空间*/}else{p4=head;p3=p4->next;while(p3!=NULL) /*判断循环结束条件*/ {if((p3->num)==p){p5=p3->next;free(p3); /*释放空间*/p4->next=p5;break;}p3=p3->next;p4=p4->next;}}if((fp=fopen("goods message.txt","w"))==NULL) /*判断能否打开文件*/{printf("can not open the file");exit(0); /*结束程序*/}p3=head;while(p3!=NULL) /*判断循环结束条件*/{fprintf(fp,"%d %s %s %f %s %d",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*将商品信息写入文件*/p3=p3->next;}fprintf(fp,"%d",-1);fclose(fp); /*关闭文件*/}if(r==2)continue; /*继续循环*/printf("**********************************\n");printf("__________________________________\n");printf("------------请按4返回-------------\n");printf("__________________________________\n");printf("**********************************\n");}if(n==3) /*修改某商品信息*/{printf("请输入需要修改的商品编号\n");scanf("%d",&q);while(p3!=NULL) /*判断循环结束条件*/{if((p3->num)==q) /*判断是否为所需要修改的商品*/{printf("请输入商品单价与库存量(如果单价不变请输入原来的单价)\n");scanf("%f %d",&p3->price,&p3->quantity); /*输入商品价格与库存量*/}p3=p3->next;}if((fp=fopen("goods message.txt","w"))==NULL) /*判断能否打开文件*/{printf("can not open the file");exit(0); /*结束程序*/}p3=head;while(p3!=NULL) /*判断循环结束条件*/{fprintf(fp,"%d %s %s %f %s %d",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*将商品信息写入文件*/p3=p3->next;}fprintf(fp,"%d",-1);fclose(fp); /*关闭文件*/printf("**********************************\n");printf("__________________________________\n");printf("------------请按4返回-------------\n");printf("__________________________________\n");printf("**********************************\n");}if(n==4) /*退出*/break;}printf("**********\n");printf("1 继续修改\n---------\n2 返回\n");printf("**********\n");scanf("%d",&p);if(p==1)continue; /*继续循环*/if(p==2)break; /*跳出循环*/}while(n!=2);fclose(fp); /*关闭文件*/}void printf0(struct good *p) /*遍历链表并打印电器类商品函数*/{struct good *p3; /*定义结构体指针类型*/p3=p;while (p3!=NULL) /*判断遍历链表循环结束条件*/{if(strcmp(p3->kind,c)==0) /*判断商品类型是否为电器类型*/{printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*输出电器类商品信息*/ printf("________________________________________________\n");}p3=p3->next;}return;}void printf1(struct good *p) /*遍历链表并打印日用品类商品函数*/{struct good *p3; /*定义结构体指针类型*/p3=p;while (p3!=NULL) /*判断遍历链表循环结束条件*/{if(strcmp(p3->kind,d)==0) /*判断商品类型是否为日用品类型*/{printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*输出日用品类商品信息*/ printf("________________________________________________\n");}p3=p3->next;}return;}void printf2(struct good *p) /*遍历链表并打印办公用品类商品函数*/{struct good *p3; /*定义结构体指针类型*/p3=p;while (p3!=NULL) /*判断遍历链表循环结束条件*/{if(strcmp(p3->kind,e)==0) /*判断商品类型是否为办公用品类型*/{printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*输出办公用品类商品信息*/ printf("________________________________________________\n");}p3=p3->next;}return;}void printf3(struct good *p) /*遍历链表并打印食品类商品函数*/{struct good *p3; /*定义结构体指针类型*/p3=p;while (p3!=NULL) /*判断遍历链表循环结束条件*/{if(strcmp(p3->kind,f)==0) /*判断商品类型是否为食品类型*/{printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*输出食品类商品信息*/ printf("________________________________________________\n");}p3=p3->next;}return;}void shunxudayin(){for(i=0;i<4;i++)g[i]=aver[i]; /*将平均价赋给新数组*/for(j=0;j<3;j++) /*将新数组用冒泡排序法排序*/for(i=j+1;i<4;i++){if(g[j]<g[i]){h=g[j];g[j]=g[i];g[i]=h;}}printf("\n****************************\n");printf("商品平均价格排序表(从高到低)\n");printf("****************************\n");printf("________________________________________________\n");printf("编号\t名称\t类别\t单价\t单位\t数量\n");printf("________________________________________________\n"); for(j=0;j<4;j++)for(i=0;i<4;i++){if (aver[i]==g[j]) /*判断每类商品平均价格的先后顺序*/switch(i){case 0:printf0(head); /*调用遍历链表并打印电器类商品函数*/break;case 1:printf1(head); /*调用遍历链表并打印日用品类商品函数*/break;case 2:printf2(head);/*调用遍历链表并打印办公用品类商品函数*/break;case 3:printf3(head); /*调用遍历链表并打印食品类商品函数*/break;}}void tongji1(){p1=head;printf("\n************************\n");printf("库存量低于100的货名及类别\n");printf("************************\n");printf("________________________\n");printf("商品名称\t商品类型\n");printf("________________________\n");while(p1!=NULL) /*判断遍历链表循环结束条件*/{if(p1->quantity<100) /*判断库存量是否小于100*/{printf("%s\t%s\n",p1->name,p1->kind); /*输出商品名称及类别*/ printf("________________________\n");}p1=p1->next;}}void tongji2()printf("\n**********************************************\n");printf("商品库存量有2种以上(含2种)低于100的商品类别:\n");printf("**********************************************\n");printf("________\n");if((a[0]<100)&&(a[0]>=2)) /*判断电器类库存量是否为2种以上(含2种)低于100*/{printf("电器\n");printf("________\n");}if((a[1]<100)&&(a[1]>=2)) /*判断日用品类库存量是否为2种以上(含2种)低于100*/{printf("日用品\n");printf("________\n");}if((a[2]<100)&&(a[2]>=2)) /*判断食品类库存量是否为2种以上(含2种)低于100*/{printf("食品\n");printf("________\n");if((a[3]<100)&&(a[3]>=2)) /*判断办公用品类库存量是否为2种以上(含2种)低于100*/{printf("办公用品\n");printf("________\n");}}int main(int argc, char* argv[]){struct good *p1,*p2; /*定义结构体指针类型*/while(1){printf("***********************************************\n");printf("1 ----------输出查看或者修改已存信息-----------\n");printf("-----------------------------------------------\n");printf("2 -----重新输入新信息(并且删除原有信息)------\n");printf("-----------------------------------------------\n");printf("3 统计商品信息(如果您还没有查看过信息请先按1)\n");printf("-----------------------------------------------\n");printf("4 -------------------退出---------------------\n");printf("***********************************************\n");scanf("%d",&m);if(m==1)shuchu(); /*调用输出信息函数*/if(m==2){system("cls");head=createlist(); /*调用建立链表函数*/}if(m==3){printf("统计结果如下\n");head=paixu(head); /*调用链表排序函数*/ jisuan(); /*调用计算函数*/ shunxudayin(); /*调用顺序打印函数*/ tongji1(); /*调用统计1函数*/tongji2(); /*调用统计2函数*/}if(m==4){p1=head;while(p1!=NULL) /*判断遍历链表结束条件*/ {p2=p1->next;free(p1); /*释放空间*/p1=p2;}break;}}return 0; /*结束程序*/ }5)调试分析过程描述:测试数据:01 milk drink 2.5 box 502 apple fruit 3 kilo 2测试输出结果:存在问题的思考:源代码出错,漏了一些分号导致程序频频出错,在进行编写时注意小地方别出错!否则会影响大局!6)总结:学习体会与收获:通过这个超市管理系统程序设计实验,我从理论知识跨越到实践上,感到收效良多,从崇拜计算机到学会控制计算机,在心理上不再觉得计算机是万能的,人的大脑才是万能的,算法才是万能的数学才是万能的,在这次实验中,实现一个完整的程序大大加深了我对C语言课程的兴趣!对C语言课程设计的认识以及自己的建议:C语言课程设计就是通过编译实现需要的功能的一种程序的设计,建议自己以后在这方面多下功夫,真正实现自己编译以个完整的C程序,实现自己的梦想和未来!。
程序设计——超市管理系统学院:专业:班级:姓名:学号:指导老师:超市管理系统课程设计1)需求分析:设计题目:超市管理系统设计要求:有一个小型超市,出售N(N>=10)种商品,设计并实现一个系统系统功能需求分析:1.保存及输出:超市中的各种商品信息保存在指定文件中,可以把它们输出显示。
2.计算并排序:计算每类商品的总价值(sum,单精度)及平均价(aver,单精度,输出一位小数),将每类商品按平均价从大到小的顺序排序打印出来。
3.统计:统计输出库存量低于100的货号及类别。
统计输出有两种以上(含两种)商品库存量低于100的商品类别。
2)概要设计:系统总体设计框架:系统功能模块图:3)详细设计:主要功能模块的算法设计思路:本程序主要分为八个模块:主模块、信息输出修改模块、新建信息模块、排序模块、计算模块、统计模块1、统计模块2、打印模块。
1)主模块:通过调用各分模块实现功能;2)信息输出修改模块:输出显示文件中商品信息内容,添加商品信息,删除商品信息,修改商品信息;3)新建商品信息模块:建立一个新结构体,为链表存信息用,并且将信息保存在指定的文件中;4)排序模块:把文件中顺序零乱的商品信息按单价的大小从高到低进行排序,放到链表里存储;5)计算模块:将所有商品的价格与库存量进行累加求和;6)打印模块:将商品信息按每类平均价格排序(从高到低)按顺序打印出来;7)统计模块1:统计库存量低于100的货名及类别;8)统计模块2:统计商品库存量有2种以上(含2种)低于100的商品类别工作流程图:4)主要源程序代码:#include "stdio.h" /*输入,输出头文件*/#include "stdlib.h" /*申请空间头文件*/#include "string.h" /*对字符串加工头文件*/#include "conio.h" /*清屏头文件*/FILE *fp;int n=0; /*定义文件指针类型*/int i,j,a[4],m; /*定义整数类型*/float aver[4],sum[4],g[4],h; /*定义浮点类型*/char c[5]="elec"; /*定义字符数组类型*/char d[5]="comm"; /*定义字符数组类型*/char e[5]="food"; /*定义字符数组类型*/char f[5]="offi"; /*定义字符数组类型*/struct good /*定义结构体*/{int num; /*商品编号*/char name[20]; /*商品名称*/char kind[40]; /*商品类型*/float price; /*商品价格*/char unit[10]; /*商品单位*/int quantity; /*商品数量*/struct good *next; /*定义结构体指针类型*/}*head,*p1,*p2;struct good *createlist() /*创建链表函数*/{struct good *head1,*p1,*p2; /*定义结构体指针类型*/if((fp=fopen("goods message.txt","w"))==NULL) /*判断能否打开文件*/{printf("can not open the file");exit(0); /*结束程序*/}head1=(struct good *)malloc(sizeof(struct good)); /*申请头结点空间*/p1=head1;p2=head1;printf("*********************************************\n");printf("请输入信息:编号,名称,类型,价格,单位,数目\n");printf(" (以输入“-1”表示结束输入)\n");printf("*********************************************\n");printf("____________________\n");scanf("%d %s %s %f %s %d",&p1->num,p1->name,p1->kind,&p1->price,p1->u nit,&p1->quantity); /*输入商品信息*/printf("____________________\n");p1->next=NULL;fprintf(fp,"%d %s %s %f %s %d",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->quantity); /*将商品信息写入文件*/while(1){p1=(struct good *)malloc(sizeof(struct good)); /*申请新空间*/printf("*********************************************\n");printf("请输入信息:编号,名称,类型,价格,单位,数目\n");printf(" (以输入“-1”表示结束输入)\n");printf("*********************************************\n");printf("____________________\n");scanf("%d",&p1->num);if(p1->num==-1) /*申请空间结束条件*/{printf("____________________\n\n");fprintf(fp,"%d",-1);fclose(fp);return head1; /*返回头指针*/}scanf("%s %s %f %s %d",p1->name,p1->kind,&p1->price,p1->unit,&p1->qua ntity); /*输入商品信息*/printf("________________\n");fprintf(fp,"%d %s %s %f %s %d",p1->num,p1->name,p1->kind,p1->price,p1->unit,p1->quantity); /*将商品信息写入文件*/p1->next=NULL;p2->next=p1;p2=p1;}}struct good *paixu(struct good*head2) /*链表排序函数*/{struct good *p6,*p7,*r,*s; /*定义结构体指针类型*/for(i=0;i<=3;i++) /*赋初值值*/{a[i]=0;sum[i]=0; aver[i]=0; }p6=(struct good *)malloc(sizeof(struct good)); /*申请新空间*/ p6->next=head2;head2=p6;while(p6->next!=NULL) /*判断循环结束条件*/{p7=p6->next;r=p6;while(p7->next!=NULL) /*判断循环结束条件*/{if((p7->next->price)>(r->next->price)) /*判断是否调换*/r=p7;p7=p7->next;}if(p6!=r) /*判断循环结束条件*/{s=r->next; /*指针调换*/r->next=s->next;s->next=p6->next;p6->next=s;}p6=p6->next;}p6=head2;head2=head2->next;free(p6); /*释放第一个无效空间*/return head2;}void jisuan(){p1=head;do{if(strcmp(p1->kind,c)==0) /*判断是否为电器类型*/ {sum[0]=sum[0]+(p1->price)*(p1->quantity); /*求电器总价*/a[0]=a[0]+p1->quantity; /*求电器总件数*/}if(strcmp(p1->kind,d)==0) /*判断是否为日用品类型*/{sum[1]=sum[1]+(p1->price)*(p1->quantity); /*求日用品总价*/a[1]=a[1]+p1->quantity; /*求日用品总件数*/}if(strcmp(p1->kind,e)==0) /*判断是否为办公用品类型*/ {sum[2]=sum[2]+(p1->price)*(p1->quantity); /*求办公用品总价*/a[2]=a[2]+p1->quantity; /*求办公用品总件数*/}if(strcmp(p1->kind,f)==0) /*判断是否为食品类型*/{sum[3]=sum[3]+(p1->price)*(p1->quantity); /*求食品总价*/a[3]=a[3]+p1->quantity; /*求食品总件数*/}p1=p1->next;}while (p1!=NULL); /*遍历链表结束条件*/for(i=0;i<4;i++)aver[i]=sum[i]/a[i]; /*求每类商品平均价*/printf("****************************************************\n"); printf("商品类型 \t 平均价\t 总库存量\n");printf("****************************************************\n"); printf("____________________________________________________\n"); printf("电器总价值:%0.1f\t平均价:%0.1f\t总库存量:%d\n",sum[0],aver[0],a[0]);printf("____________________________________________________\n"); printf("日用品总价值:%0.1f\t平均价:%0.1f\t总库存量:%d\n",sum[1],aver[1],a[1]);printf("____________________________________________________\n"); printf("食品总价值:%0.1f\t平均价:%0.1f\t总库存量:%d\n",sum[2],aver[2],a[2]);printf("____________________________________________________\n"); printf("办公用品总价值:%0.1f\t平均价:%0.1f\t总库存量:%d\n",sum[3],aver[3],a[3]);printf("____________________________________________________\n"); }void shuchu() /*输出商品信息函数*/{do{struct good *p3,*p4,*p5; /*定义结构体指针类型*/int n=0,p=0,q=0,r=0;printf("所有商品信息:\n");printf("编号,名称,类型,价格,单位,数目\n");printf("**********************************\n");if((fp=fopen("goods message.txt","rb+"))==NULL) /*判断能否打开文件*/{printf("can not open the file");exit(0); /*结束程序*/}head=(struct good *)malloc(sizeof(struct good)); /*申请头结点空间*/p3=head;fscanf(fp,"%d %s %s %f %s %d",&p3->num,p3->name,p3->kind,&p3->price,p3->unit,&p3->quantity); /*从文件中写到链表*/while(1){p4=(struct good *)malloc(sizeof(struct good)); /*申请头结点空间*/fscanf(fp,"%d ",&p4->num);if(p4->num!=-1) /*判断循环结束条件*/{fscanf(fp,"%s %s %f %s %d",p4->name,p4->kind,&p4->price,p4->unit,&p4->quantity); /*从文件中写到链表*/p4->next=NULL;p3->next=p4;p3=p4;}else{p3->next=NULL;break;}}fclose(fp); /*关闭文件*/p3=head;while(p3!=NULL){printf(" %d %s %s %0.1f %s %d\n\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity);printf("__________________________________\n");p3=p3->next;}printf("**********************************\n");printf("//////////////////////////////////\n");while(n!=4){p3=head;printf("**********************************\n");printf("1 添加商品信息\n");printf("2 删除某商品信息\n");printf("3 修改某商品信息\n");printf("4 返回(当你完成了对某一商品的添加、删除或者修改后请按4返回)\n");printf("**********************************\n");scanf("%d",&n);if(n==1) /*添加商品信息*/{printf("请输入商品编号名称类型价格单位数目\n");printf("**********************************\n");p4=(struct good *)malloc(sizeof(struct good)); /*申请空间*/scanf("%d %s %s %f %s %d",&p4->num,p4->name,p4->kind,&p4->price,p4->unit,&p4->quantity); /*输入商品信息*/p4->next=NULL;while(p3->next!=NULL) /*判断循环结束条件*/{p3=p3->next;}p3->next=p4;p3=head;if((fp=fopen("goods message.txt","w"))==NULL) /*判断能否打开文件*/{printf("can not open the file");exit(0); /*结束程序*/}while(p3!=NULL){fprintf(fp,"%d %s %s %f %s %d",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity) ; /*将商品信息写入文件*/p3=p3->next;}fprintf(fp,"%d",-1);fclose(fp); /*关闭文件*/printf("**********************************\n");printf("__________________________________\n");printf("------------请按4返回-------------\n");printf("__________________________________\n");printf("**********************************\n");}if(n==2) /*删除商品*/{printf("**********************************\n");printf("请输入需要删除的商品编号\n");printf("**********************************\n");scanf("%d",&p);printf("**********\n");printf("1 确认删除\n2 取消删除\n");printf("**********\n");scanf("%d",&r);if(r==1){if((head->num)==p){head=head->next;free(p3); /*释放空间*/}else{p4=head;p3=p4->next;while(p3!=NULL) /*判断循环结束条件*/{if((p3->num)==p){p5=p3->next;free(p3); /*释放空间*/p4->next=p5;break;}p3=p3->next;p4=p4->next;}}if((fp=fopen("goods message.txt","w"))==NULL) /*判断能否打开文件*/{printf("can not open the file");exit(0); /*结束程序*/}p3=head;while(p3!=NULL) /*判断循环结束条件*/fprintf(fp,"%d %s %s %f %s %d",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*将商品信息写入文件*/p3=p3->next;}fprintf(fp,"%d",-1);fclose(fp); /*关闭文件*/}if(r==2)continue; /*继续循环*/printf("**********************************\n");printf("__________________________________\n");printf("------------请按4返回-------------\n");printf("__________________________________\n");printf("**********************************\n");}if(n==3) /*修改某商品信息*/{printf("请输入需要修改的商品编号\n");scanf("%d",&q);while(p3!=NULL) /*判断循环结束条件*/{if((p3->num)==q) /*判断是否为所需要修改的商品*/{printf("请输入商品单价与库存量(如果单价不变请输入原来的单价)\n");scanf("%f %d",&p3->price,&p3->quantity); /*输入商品价格与库存量*/}p3=p3->next;}if((fp=fopen("goods message.txt","w"))==NULL) /*判断能否打开文件*/{printf("can not open the file");exit(0); /*结束程序*/}p3=head;while(p3!=NULL) /*判断循环结束条件*/fprintf(fp,"%d %s %s %f %s %d",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*将商品信息写入文件*/p3=p3->next;}fprintf(fp,"%d",-1);fclose(fp); /*关闭文件*/printf("**********************************\n");printf("__________________________________\n");printf("------------请按4返回-------------\n");printf("__________________________________\n");printf("**********************************\n");}if(n==4) /*退出*/break;}printf("**********\n");printf("1 继续修改\n---------\n2 返回\n");printf("**********\n");scanf("%d",&p);if(p==1)continue; /*继续循环*/if(p==2)break; /*跳出循环*/}while(n!=2);fclose(fp); /*关闭文件*/}void printf0(struct good *p) /*遍历链表并打印电器类商品函数*/{struct good *p3; /*定义结构体指针类型*/p3=p;while (p3!=NULL) /*判断遍历链表循环结束条件*/{if(strcmp(p3->kind,c)==0) /*判断商品类型是否为电器类型*/{printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->price,p3->unit,p3->quantity); /*输出电器类商品信息*/printf("________________________________________________\n");}p3=p3->next;}return;}void printf1(struct good *p) /*遍历链表并打印日用品类商品函数*/ {struct good *p3; /*定义结构体指针类型*/p3=p;while (p3!=NULL) /*判断遍历链表循环结束条件*/{if(strcmp(p3->kind,d)==0) /*判断商品类型是否为日用品类型*/{printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->pr ice,p3->unit,p3->quantity); /*输出日用品类商品信息*/printf("________________________________________________\n");}p3=p3->next;}return;}void printf2(struct good *p) /*遍历链表并打印办公用品类商品函数*/ {struct good *p3; /*定义结构体指针类型*/p3=p;while (p3!=NULL) /*判断遍历链表循环结束条件*/{if(strcmp(p3->kind,e)==0) /*判断商品类型是否为办公用品类型*/{printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->pr ice,p3->unit,p3->quantity); /*输出办公用品类商品信息*/printf("________________________________________________\n");}p3=p3->next;}return;}void printf3(struct good *p) /*遍历链表并打印食品类商品函数*/{struct good *p3; /*定义结构体指针类型*/p3=p;while (p3!=NULL) /*判断遍历链表循环结束条件*/{if(strcmp(p3->kind,f)==0) /*判断商品类型是否为食品类型*/{printf("%d\t%s\t%s\t%0.1f\t%s\t%d\n",p3->num,p3->name,p3->kind,p3->pr ice,p3->unit,p3->quantity); /*输出食品类商品信息*/ printf("________________________________________________\n");}p3=p3->next;}return;}void shunxudayin(){for(i=0;i<4;i++)g[i]=aver[i]; /*将平均价赋给新数组*/for(j=0;j<3;j++) /*将新数组用冒泡排序法排序*/for(i=j+1;i<4;i++){if(g[j]<g[i]){h=g[j];g[j]=g[i];g[i]=h;}}printf("\n****************************\n");printf("商品平均价格排序表(从高到低)\n");printf("****************************\n");printf("________________________________________________\n");printf("编号\t名称\t类别\t单价\t单位\t数量\n");printf("________________________________________________\n");for(j=0;j<4;j++)for(i=0;i<4;i++){if (aver[i]==g[j]) /*判断每类商品平均价格的先后顺序*/switch(i){case 0:printf0(head); /*调用遍历链表并打印电器类商品函数*/break;case 1:printf1(head); /*调用遍历链表并打印日用品类商品函数*/break;case 2:printf2(head);/*调用遍历链表并打印办公用品类商品函数*/break;case 3:printf3(head); /*调用遍历链表并打印食品类商品函数*/break;}}}void tongji1(){p1=head;printf("\n************************\n");printf("库存量低于100的货名及类别\n");printf("************************\n");printf("________________________\n");printf("商品名称\t商品类型\n");printf("________________________\n");while(p1!=NULL) /*判断遍历链表循环结束条件*/{if(p1->quantity<100) /*判断库存量是否小于100*/{printf("%s\t%s\n",p1->name,p1->kind); /*输出商品名称及类别*/ printf("________________________\n");}p1=p1->next;}}void tongji2(){printf("\n**********************************************\n"); printf("商品库存量有2种以上(含2种)低于100的商品类别:\n"); printf("**********************************************\n");printf("________\n");if((a[0]<100)&&(a[0]>=2)) /*判断电器类库存量是否为2种以上(含2种)低于100*/{printf("电器\n");printf("________\n");}if((a[1]<100)&&(a[1]>=2)) /*判断日用品类库存量是否为2种以上(含2种)低于100*/{printf("日用品\n");printf("________\n");}if((a[2]<100)&&(a[2]>=2)) /*判断食品类库存量是否为2种以上(含2种)低于100*/{printf("食品\n");printf("________\n");}if((a[3]<100)&&(a[3]>=2)) /*判断办公用品类库存量是否为2种以上(含2种)低于100*/{printf("办公用品\n");printf("________\n");}}int main(int argc, char* argv[]){struct good *p1,*p2; /*定义结构体指针类型*/while(1){printf("***********************************************\n");printf("1 ----------输出查看或者修改已存信息-----------\n");printf("-----------------------------------------------\n");printf("2 -----重新输入新信息(并且删除原有信息)------\n");printf("-----------------------------------------------\n");printf("3 统计商品信息(如果您还没有查看过信息请先按1)\n");printf("-----------------------------------------------\n");printf("4 -------------------退出---------------------\n");printf("***********************************************\n");scanf("%d",&m);if(m==1)shuchu(); /*调用输出信息函数*/if(m==2){system("cls");head=createlist(); /*调用建立链表函数*/}if(m==3){printf("统计结果如下\n");head=paixu(head); /*调用链表排序函数*/ jisuan(); /*调用计算函数*/shunxudayin(); /*调用顺序打印函数*/tongji1(); /*调用统计1函数*/tongji2(); /*调用统计2函数*/}if(m==4){p1=head;while(p1!=NULL) /*判断遍历链表结束条件*/{p2=p1->next;free(p1); /*释放空间*/p1=p2;}break;}}return 0; /*结束程序*/}5)调试分析过程描述:测试数据:01 milk drink 2.5 box 502 apple fruit 3 kilo 2测试输出结果:存在问题的思考:源代码出错,漏了一些分号导致程序频频出错,在进行编写时注意小地方别出错!否则会影响大局!6)总结:学习体会与收获:通过这个超市管理系统程序设计实验,我从理论知识跨越到实践上,感到收效良多,从崇拜计算机到学会控制计算机,在心理上不再觉得计算机是万能的,人的大脑才是万能的,算法才是万能的数学才是万能的,在这次实验中,实现一个完整的程序大大加深了我对C语言课程的兴趣!对C语言课程设计的认识以及自己的建议:C语言课程设计就是通过编译实现需要的功能的一种程序的设计,建议自己以后在这方面多下功夫,真正实现自己编译以个完整的C程序,实现自己的梦想和未来!如有侵权请联系告知删除,感谢你们的配合!。
c 超市管理系统课程设计一、课程目标知识目标:1. 了解超市管理系统的基本概念和功能模块;2. 掌握数据库设计的基本原则,能运用实体关系模型进行数据库设计;3. 学会使用一种编程语言(如Python)实现超市管理系统的功能。
技能目标:1. 能够分析超市业务需求,设计出合理的数据库结构;2. 能够编写程序实现商品信息、库存管理、销售管理等基本功能;3. 能够运用所学的知识解决实际超市管理问题,具备一定的项目实践能力。
情感态度价值观目标:1. 培养学生主动学习和探究问题的兴趣,激发学生学习计算机技术的热情;2. 培养学生团队协作精神,提高沟通与交流能力;3. 增强学生对信息技术在实际生活中的应用意识,认识到所学知识的社会价值。
课程性质:本课程为信息技术学科,结合学生年级特点,注重理论与实践相结合,强调学生的动手实践能力。
学生特点:学生具备一定的计算机操作基础,对编程有一定了解,但项目实践经验不足。
教学要求:结合课程性质、学生特点,通过项目驱动的教学方法,引导学生主动参与教学活动,培养实际操作能力。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 超市管理系统概述:介绍超市管理系统的基本概念、功能模块及其在实际生活中的应用。
相关教材章节:第一章 超市管理系统简介2. 数据库设计:讲解数据库设计的基本原则,引导学生运用实体关系模型进行数据库设计。
相关教材章节:第二章 数据库设计基础3. 编程语言基础:复习Python编程基础,为后续实现超市管理系统功能做准备。
相关教材章节:第三章 Python编程基础4. 超市管理系统功能实现:(1)商品信息管理:实现商品信息的增加、删除、修改和查询功能。
相关教材章节:第四章 商品信息管理(2)库存管理:实现库存的入库、出库、库存查询等功能。
相关教材章节:第五章 库存管理(3)销售管理:实现销售数据的录入、查询、统计分析等功能。
相关教材章节:第六章 销售管理5. 项目实践:指导学生分组进行超市管理系统的设计与实现,培养学生团队协作和实际操作能力。
c语言课程设计超市管理系统一、教学目标本课程的目标是让学生掌握C语言编程的基本知识,能够运用C语言设计简单的超市管理系统。
具体分为以下三个部分:1.知识目标:使学生了解C语言的基本语法、数据类型、运算符、控制结构等,为编写程序打下基础。
2.技能目标:培养学生使用C语言进行程序设计的能力,使其能够独立完成简单的程序编写和调试。
3.情感态度价值观目标:培养学生对计算机科学的兴趣,增强其自主学习和解决问题的意识,使其认识到计算机技术在实际生活中的重要性。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构等,以及运用C语言设计简单的超市管理系统。
具体安排如下:1.第一章:C语言概述,使学生了解C语言的基本概念,掌握C语言的编译环境和基本语法。
2.第二章:数据类型和运算符,让学生掌握C语言中的基本数据类型和运算符,能够进行简单的数学运算。
3.第三章:控制结构,培养学生掌握C语言的条件语句和循环语句,能够实现分支和循环控制。
4.第四章:函数,使学生了解函数的概念和作用,掌握函数的定义和调用。
5.第五章:数组和字符串,让学生掌握数组和字符串的基本操作,能够运用数组和字符串解决实际问题。
6.第六章:指针,培养学生掌握指针的概念和运用,能够利用指针处理数据。
7.第七章:结构体和文件,使学生了解结构体的概念,掌握文件的基本操作。
8.第八章:超市管理系统设计,引导学生运用所学知识设计并实现一个简单的超市管理系统。
三、教学方法为了提高教学效果,本课程将采用以下教学方法:1.讲授法:讲解C语言的基本概念、语法和编程技巧,使学生掌握编程的基本方法。
2.案例分析法:通过分析实际案例,让学生了解C语言在实际应用中的重要性,提高其学习兴趣。
3.实验法:安排上机实验,让学生动手编写程序,培养其实际编程能力。
4.讨论法:学生进行小组讨论,分享学习心得和经验,提高其自主学习和合作能力。
四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:《C程序设计语言》2.参考书:《C Primer Plus》、《C和指针》3.多媒体资料:课件、教学视频4.实验设备:计算机、编程环境通过以上教学资源,为学生提供丰富的学习资料和实践平台,帮助其更好地掌握C语言编程技能。
c 超市管理系统课程设计一、课程目标知识目标:1. 让学生理解超市管理系统的基本概念和功能,掌握系统的基本操作流程。
2. 使学生了解并掌握超市商品分类、库存管理、销售管理等核心环节的基本原理。
3. 帮助学生掌握超市管理系统数据库的相关知识,如数据表设计、查询和更新操作。
技能目标:1. 培养学生运用所学知识设计并实现一个简单的超市管理系统,提高实际操作能力。
2. 培养学生分析问题、解决问题的能力,能针对超市管理系统的实际问题提出合理的解决方案。
3. 提高学生的团队协作能力,通过小组合作完成课程项目。
情感态度价值观目标:1. 培养学生对超市管理系统课程的学习兴趣,激发其探索精神和创新意识。
2. 培养学生严谨、认真的学习态度,使其认识到知识在实际工作中的应用价值。
3. 增强学生的社会责任感,使其认识到超市管理系统在提高企业效率、降低成本、提升消费者体验等方面的重要性。
本课程针对高年级学生,结合学科特点和教学要求,旨在使学生通过学习超市管理系统课程,掌握相关知识技能,培养实际操作能力,提高团队协作水平,同时注重培养学生的情感态度价值观,为未来从事相关工作打下坚实基础。
二、教学内容1. 超市管理系统概述:介绍超市管理系统的基本概念、功能、发展及应用场景,使学生了解课程背景及意义。
教材章节:第一章 超市管理系统的概念与发展2. 超市商品管理:讲解商品分类、编码、库存管理等知识点,使学生掌握商品管理的基本原理。
教材章节:第二章 超市商品管理3. 超市销售管理:分析销售管理环节,包括销售订单、销售退货、销售统计等,帮助学生了解销售管理流程。
教材章节:第三章 超市销售管理4. 超市库存管理:探讨库存管理的基本原理,包括库存盘点、库存预警、补货策略等,使学生掌握库存管理方法。
教材章节:第四章 超市库存管理5. 超市管理系统数据库:介绍数据库的基本概念、设计方法,以及SQL语言的使用,让学生掌握数据库操作技能。
教材章节:第五章 超市管理系统数据库6. 超市管理系统实践:指导学生运用所学知识,设计并实现一个简单的超市管理系统,培养学生的实际操作能力。
超市管理系统c语言课程设计一、课程目标知识目标:1. 掌握C语言的基本语法和数据结构,如数组、结构体等;2. 学会使用C语言进行简单的文件操作;3. 了解超市管理系统的基本功能和需求;4. 学习如何设计、编写和调试C语言程序。
技能目标:1. 能够运用所学知识设计并实现一个简单的超市管理系统;2. 培养独立分析问题、解决问题的能力;3. 提高编程实践能力,熟练使用C语言进行程序设计;4. 学会使用调试工具,提高程序调试效率。
情感态度价值观目标:1. 培养对计算机编程的兴趣,激发学习积极性;2. 培养团队协作意识,学会与他人共同解决问题;3. 增强学生的自信心,鼓励他们勇于挑战困难;4. 培养良好的编程习惯,注重代码规范和优化。
本课程旨在让学生通过学习C语言,设计并实现一个超市管理系统,掌握编程的基本方法和技巧。
针对学生的年级特点,课程内容注重实践操作,培养学生动手能力和解决问题的能力。
在教学过程中,注重激发学生的学习兴趣,培养团队协作精神,提高学生的综合素质。
课程目标的设定遵循具体、可衡量原则,为教学设计和评估提供明确方向。
二、教学内容1. C语言基础语法:变量定义、数据类型、运算符、表达式、控制结构(顺序、选择、循环);2. 函数:函数定义、调用、参数传递、返回值、库函数使用;3. 数组与字符串:一维数组、二维数组、字符串处理;4. 结构体与文件操作:结构体定义、初始化、结构体数组、文件打开、读写、关闭;5. 超市管理系统功能模块设计:用户模块(登录、注册)、商品模块(增删改查)、购物车模块(添加、删除、结算)、库存模块(库存管理);6. 程序调试与优化:错误类型分析、调试工具使用、代码优化。
教学内容依据课程目标进行选择和组织,确保学生掌握C语言基础知识,并能运用所学设计超市管理系统。
教学大纲明确指出教材相关章节,安排合理的教学进度,使教学内容具有科学性和系统性。
教学中注重理论与实践相结合,提高学生的编程实践能力。
c 超市销售管理系统课程设计一、课程目标知识目标:1. 学生能够理解超市销售管理系统的基本概念和功能,掌握系统的组成部分及其工作原理。
2. 学生能够掌握数据库管理的基本操作,包括数据录入、查询、更新和删除。
3. 学生能够运用所学知识,分析和解决超市销售管理中的实际问题。
技能目标:1. 学生能够运用编程语言设计和开发一个简单的超市销售管理系统,实现商品信息管理、销售记录管理和数据分析等功能。
2. 学生能够运用数据库技术进行数据存储和管理,熟练使用SQL语句进行数据操作。
3. 学生能够通过团队协作,合理分工,共同完成课程项目,提高项目管理和沟通协调能力。
情感态度价值观目标:1. 学生培养对信息技术课程的兴趣,激发主动学习和探究精神,形成积极的学习态度。
2. 学生在项目实践中,增强合作意识,培养团队精神和责任感,学会尊重和倾听他人意见。
3. 学生通过分析超市销售管理中的实际问题,认识到信息技术在生活中的广泛应用,培养将所学知识应用于实际生活的意识。
课程性质:本课程为信息技术课程,旨在让学生掌握超市销售管理系统的设计与实现方法,培养实际操作能力和团队协作能力。
学生特点:学生具备一定的编程基础和数据库知识,具有较强的学习能力和实践操作欲望。
教学要求:结合学生特点和课程性质,注重理论与实践相结合,强调动手实践,培养学生解决实际问题的能力。
在教学过程中,关注学生的个体差异,提供个性化指导,确保每位学生都能达到课程目标。
通过课程学习,使学生能够将所学知识应用于实际项目,提高信息技术素养。
二、教学内容1. 超市销售管理系统概述:介绍系统的基本概念、功能、应用场景,使学生了解课程学习的背景和实际意义。
- 教材章节:第一章 超市销售管理系统概述- 内容:超市销售管理系统的发展、功能模块、应用案例2. 数据库设计与实现:讲解数据库的基本概念、设计方法,指导学生运用数据库技术实现超市销售管理系统的数据存储和管理。
- 教材章节:第二章 数据库设计与实现- 内容:数据库原理、E-R模型、关系模型、SQL语句、数据库设计3. 系统功能模块设计与实现:分析超市销售管理系统的功能模块,引导学生运用编程语言进行模块设计。
C 毕业课程设计超市管理系统一、教学目标本课程旨在让学生掌握超市管理系统的基本知识和技能,能够运用C语言进行程序设计,实现超市管理的基本功能,如商品信息管理、库存管理、销售管理等。
同时,通过本课程的学习,培养学生的问题解决能力和团队协作能力,提高学生的创新意识和实践能力。
具体来说,知识目标包括:1.掌握C语言的基本语法和编程方法。
2.理解超市管理系统的业务流程和需求分析。
3.学习常用的数据结构和算法,并能够应用于实际问题解决。
技能目标包括:1.能够使用C语言编写简单的程序,实现超市管理的基本功能。
2.学会使用调试工具,能够发现和修复程序中的错误。
3.能够进行团队合作,共同完成一个完整的超市管理系统项目。
情感态度价值观目标包括:1.培养学生对计算机科学的兴趣和热情,提高学生的学习积极性。
2.培养学生的问题解决能力和创新意识,让学生感受到编程的乐趣。
3.培养学生的团队协作意识,让学生学会与他人合作共同完成任务。
二、教学内容本课程的教学内容主要包括三个部分:C语言基础知识、超市管理系统的设计与实现、项目实践。
1.C语言基础知识:包括C语言的基本语法、数据类型、运算符、控制结构等。
这部分内容是学习后续章节的基础,需要学生掌握。
2.超市管理系统的设计与实现:包括需求分析、系统设计、模块划分等。
这部分内容让学生了解超市管理系统的业务流程,学会如何将实际问题转化为程序设计问题。
3.项目实践:学生分组完成一个超市管理系统项目,包括商品信息管理、库存管理、销售管理等。
这部分内容让学生将所学知识应用于实际问题解决,提高学生的实践能力。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法相结合的方式进行教学。
1.讲授法:教师讲解C语言的基本语法和编程方法,让学生掌握基础知识。
2.案例分析法:通过分析真实的超市管理系统案例,让学生了解业务流程和需求分析。
3.实验法:学生动手编写程序,实现超市管理的基本功能,培养学生的实践能力。
超市管理系统c语言课程设计一、教学目标本节课的学习目标包括知识目标、技能目标和情感态度价值观目标。
知识目标要求学生掌握超市管理系统的基本概念、设计方法和实现技术。
技能目标要求学生能够使用C语言进行简单的程序设计,掌握数据结构的基本操作,以及运用面向对象编程思想进行软件开发。
情感态度价值观目标则是培养学生对计算机科学的兴趣和热情,提高他们的问题解决能力和团队合作意识。
通过对本节课的学习,学生将了解超市管理系统的设计原理,掌握C语言编程方法,培养实际操作能力,提高对计算机科学的兴趣和热情。
二、教学内容本节课的教学内容主要包括超市管理系统的基本概念、C语言编程基础、数据结构的基本操作以及面向对象编程思想。
首先,介绍超市管理系统的基本概念,包括系统架构、功能模块和设计原则。
然后,通过C语言编程实例,使学生掌握C语言的基本语法、数据类型、运算符、控制结构等编程基础。
接下来,讲解数据结构的基本操作,如链表、栈、队列等,并引导学生运用这些数据结构实现超市管理系统的相关功能。
最后,引入面向对象编程思想,让学生了解类、对象、封装、继承等基本概念,并运用面向对象的方法设计超市管理系统。
三、教学方法为了激发学生的学习兴趣和主动性,本节课将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等。
首先,通过讲授法向学生传授超市管理系统的基本概念、C语言编程基础和数据结构的基本操作。
然后,运用讨论法引导学生探讨面向对象编程思想的优点和适用场景,以及如何在超市管理系统中运用这一思想。
接下来,通过案例分析法分析具体的超市管理系统案例,让学生了解实际应用中的问题和解决方案。
最后,利用实验法让学生动手实践,编写简单的超市管理系统程序,提高实际操作能力。
四、教学资源本节课的教学资源包括教材、参考书、多媒体资料和实验设备。
教材和参考书将提供超市管理系统的基本概念、C语言编程方法和数据结构的基本操作等知识,为学生学习提供理论支持。
多媒体资料将通过图片、视频等形式展示超市管理系统的实际应用场景,帮助学生更好地理解课程内容。
东莞理工学院三级项目设计报告课程:学号:姓名:班级:教师:2012年1月1日目录第一章系统概述 (3)1.1 功能简介 (3)1.2 设计思路 (3)第二章系统功能的分析和设计 (4)2.1初始录入/添加函数 (4)2.2修改/删除函数 (4)2.3 查询/显示全部(利润)函数 (4)2.3.1 显示全部 (4)2.3.1 按条件查询 (5)2.4 查看过期食品函数 (5)2.5 退出系统 (5)第三章调试及运行结果 (6)3.1 主菜单 (6)3.2初始录入/添加功能 (6)3.3修改/删除功能 (6)3.4查询/显示全部(利润)功能 (7)3.5 查看过期食品功能 (8)第四章总结 (9)4.1 遇到的问题及解决方法 (9)4.2 收获和体会 (9)附录:程序代码 (10)第一章系统概述1.1 功能简介本软件是一个简单的小型超市商品管理系统,软件窗口为DOS页面。
小型超市商品管理系统的功能主要是实现小型超市商品的信息化管理。
通过小型超市商品管理系统,商品管理人员可以实现对商品信息的增加、删除、修改、查询和计算利润等操作。
本系统最大的优点就是操作简便快捷等。
1.2 设计思路将商品信息定义为一个good类,在类中包含私有数据成员int num,string name,double cost,double price,string indate,int kpdate,string brand,string sort,string trademark,分别表示商品编号、商品名、进价、售价、食品出产日期、保质期、化妆品牌、日用品类型、饮料商标。
公有成员函数包括in( ) ,change( ) ,search( ) ,profit( ) ,分别通过其四个子函数分别对应四种不同的商品用来实现对商品信息的数据初始录入和增加数据、修改和删除数据、查询和显示全部数据、计算商品利润功能。
然后定义了一个menu( ) 菜单函数,使功能菜单显示在运行窗口以提示用户如何进行操作。
一、课程设计的目的与要求 (1)二、系统分析 (1)1。
1概述 (1)2.1需求分析 (1)2.3开发及运行环境 (2)三、系统设计 (3)3。
2功能分析 (3)3。
3系统设计概要 (5)3.3。
1系统总体结构 (5)3。
3。
2系统用例图 (7)3.4系统模块设计 (14)3。
5数据库设计 (20)3。
6登陆以及主窗体模块 (20)3。
6。
1登录窗体 (21)3。
6。
2注销和退出 (21)3.7商品类别管理模块 (21)3。
7。
1添加商品类别 (21)3。
7.2编辑商品类别 (21)3。
7。
3删除商品类别 (22)3.8商品管理模块 (22)3。
8。
1添加商品 (22)3。
8。
2编辑商品 (22)3。
9员工管理 (22)3。
9.1添加员工 (23)3。
9。
2编辑员工 (23)3。
9。
3删除员工 (23)3.10会员管理模块 (23)3.10.1添加员工 (23)3.10。
2编辑员工 (24)3。
10。
3删除会员 (24)3.11积分规则模块 (24)3.12查看统计信息模块 (24)3。
13日常销售模块 (24)四、致谢词 (25)五、参考文献 (25)--------------------------------------------------------------------------------------------------------------------------------------------一、课程设计的目的与要求为了更好的培养当代大学生的实践与理论相结合的理念,课程设计已逐渐成为我们大学生必修的课程。
社会在不断发展,信息应用水平也不断提高,当今社会对人才的培养与需求已不断加强。
课程设计是围绕一门主要基础课或专业课,运用所学课程的知识,结合实际应用设计而进行的一次综合分析设计能力的训练。
不仅可以提高我们的动手实践能力也能提高我们团队的合作精神!通过本次银行账户管理信息系统课程设计实践,经历一个小型管理系统开发的全过程,不仅可以对本学期C#课程学习温故知新的作用也能进一步掌握管理信息系统的理论和方法。
超市会员管理系统c 课程设计一、课程目标知识目标:1. 让学生掌握超市会员管理系统的基本概念和功能模块;2. 使学生了解数据库在会员管理系统中的应用,包括数据表的设计、数据查询与更新;3. 帮助学生理解会员管理系统中业务逻辑与数据之间的关系。
技能目标:1. 培养学生运用所学知识设计并实现一个简单的超市会员管理系统;2. 提高学生在实际问题中分析需求、设计数据库和编写代码的能力;3. 培养学生通过小组合作、沟通与协作解决问题的能力。
情感态度价值观目标:1. 培养学生对计算机科学和信息技术的兴趣,激发他们探索未知、创新实践的热情;2. 培养学生具备良好的团队合作精神,学会尊重他人、倾听意见、分享成果;3. 培养学生关注社会热点问题,认识到信息技术在现实生活中的应用价值。
课程性质:本课程为信息技术学科的教学内容,旨在让学生结合实际生活中的会员管理系统,运用所学编程知识和数据库技能进行实际操作。
学生特点:本课程针对初中年级学生,他们已经具备一定的计算机操作能力和编程基础,对新鲜事物充满好奇,喜欢动手实践。
教学要求:在教学过程中,要注重理论与实践相结合,关注学生的个体差异,提供个性化的指导与帮助。
同时,鼓励学生积极参与小组讨论,培养他们的团队协作能力。
通过本课程的学习,使学生在知识、技能和情感态度价值观方面均取得具体、可衡量的成果。
二、教学内容1. 会员管理系统的基本概念:介绍超市会员管理系统的定义、功能及在实际生活中的应用。
相关教材章节:第一章 计算机管理系统概述2. 数据库设计与实现:讲解数据库在会员管理系统中的重要性,学习如何设计数据表、建立关系及进行数据查询与更新。
相关教材章节:第二章 数据库设计基础;第三章 SQL语言3. 编程实现会员管理系统:结合所学编程知识,设计并实现一个简单的会员管理系统。
相关教材章节:第四章 程序设计基础;第五章 面向对象编程4. 项目实践:分组进行项目实践,让学生动手设计并实现一个超市会员管理系统,包括需求分析、数据库设计、编程实现等环节。
江苏师范大学科文学院本科生课程设计课程名称: C++课程设计题目:小型超市管理系统专业班级: 14电信1班学生姓名:杨顺顺学生学号: 148326141日期: 2016.12.10指导教师:袁博宇科文学院教务部印制指导教师签字:年月日目录摘要 (1)1概述 (2)2 设计方案简述 (3)2.1 设计内容 (3)2.2 设计目的与要求 (3)2.3 系统分析与设计 (3)3 详细设计 (12)3.1 系统总体设计 (12)3.2 源程序代码 (13)4 运行结果 (28)5设计体会 (32)摘要当代社会中伴随着计算机技术在各行各业日益广泛和深入的应用,超市对货品于职员的管理不在像过去一样靠手工去做,在一些超市管理中也开始信息化。
信息化的管理可以为超市节省大量人力物力,提高其运行效率,从而为顾客提供更好的服务,实现超市的业务提升。
本系统就是为了适应这种要求而设计的。
集信息的显示、输入、修改、删除、查询等各种处理为一体,信息维护起来非常方便。
大大减少了超市的人力和物力。
本系统大致要做到以下几点:(1)操作简便,节省大量人力;(2)可以方便的进行货品管理,安全、高效;(3)可以迅速计算销售额和所买卖货品;(4)可以迅速查到所需信息,便于管理1 概述1.1任务:超市管理系统对职员商品信息进行高效简洁的管理,使之能正常高效的进行售卖活动。
系统充分考虑到超市管理系统对货物资料进行登记并处理。
考虑到进货、退货、库存预警、年月日销售额结算等多种特殊情况,同时可将相关资料进行有效处理。
1.2目标:当代社会中伴随着计算机技术在各行各业日益广泛和深入的应用,超市对货品于职员的管理不在像过去一样靠手工去做,在一些超市管理中也开始信息化。
信息化的管理可以为超市节省大量人力物力,提高其运行效率,从而为顾客提供更好的服务,实现超市的业务提升。
本系统就是为了适应这种要求而设计的。
集信息的显示、输入、修改、删除、查询等各种处理为一体,信息维护起来非常方便。
大大减少了超市的人力和物力。
本系统大致要做到以下几点:(1)操作简便,节省大量人力;(2)可以方便的进行货品管理,安全、高效;(3)可以迅速计算销售额和所买卖货品;(4)可以迅速查到所需信息,便于管理。
2.设计方案简述2.1设计内容设计一个简单的超市管理系统。
1.暂定有三个货架,分别放着日常用品、食品和家电。
2.可以实货架商品的增加和出售。
3.设计查询功能,可以查找商品的现状。
4.不同商品有不同属性:食品类,保质期,家电,颜色。
5.重载运算符>>。
2.2设计目的与要求2.2.1设计目的达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的基本思路和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2.2.2 设计要求要求利用面向对象的方法以及C++的编程思想来完成系统的设计;要求在设计的过程中,建立清晰的类层次;在系统的设计中,至少要用到面向对象的一种机制。
2.3 系统分析与设计2.3.1主要知识点1)类,类内包含构造函数、成员函数、私有数据成员和某些输入输出函数;2)运算符重载,定义一个重载运算符的函数,在需要执行被重载的运算符是,系统自动调用该函数;3)继承与派生:1.基类即父类,被继承的已有类;2.派生类即子类,新建立的类;3.这些类的定义和声明同类; 4.虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。
2.3.2关键技术1)程序共有四个头文件和四个源文件。
头文件Supermarket,包含增加Add,出售Sale和查询Search三个公有成员函数;源文件Supermarket,增加函数,出售函数和查询函数的功能相似,选择功能,输出商品类型列表。
头文件Goods,在这个头文件中有四个类,一个基类和三个派生类。
基类Goods中设置增加AddGoods,出售SaleGoods,显示函数virtual ShowMe。
同时定义统一的出售函数Sale。
保护成员包括,商品名称name[],商品数量number[]和商品分类的数量count。
派生类,日常用品类DailyGoods,食物Food和家电ElectricalAppliance,除了自身的无参构造函数,均从基类中继承增加AddGoods,出售SaleGoods,显示函数virtual ShowMe,并根据课题要求加入运算符重载函数istream operator >>(istream &in,DailyGoods &d)。
同时借助函数Input_file和函数Save_file将商品信息输出并保存到文件中。
源文件Goods,实现各函数功能。
头文件diaplay,保存了小系统的基本页面和选择页面。
登录界面Loading,功能选择界面SelectMenu,商品功能列表GoodList 和结束页面End。
源文件display,进行头文件的各项函数的功能实现。
头文件file,是关于文件的存储,打开和关闭的功能。
源文件main,实现功能的汇总和实现方式。
2)部分函数的实现//Supermaket*Add函数int Supermarket::Add(){int Good_num;system("cls");GoodList(); //调用GoodList()函数语言cout<<"\t\t您要增加什么类型的商品?";cin>>Good_num;return Good_num;}*Sale函数int Supermarket::Sale(){int Good_num;system("cls");GoodList(); //调用GoodList()函数语言cout<<"\t\t您要出售什么类型的商品?";cin>>Good_num;return Good_num;}*Search函数int Supermarket::Search(){int Good_num;system("cls");GoodList(); //调用GoodList()函数语言cout<<"\t\t您想要查询什么类型的商品?";cin>>Good_num;return Good_num;}//Goods*Sale函数void Goods::Sale()//统一定义商品出售函数功能模块{int flag=0;string goods_name;int goods_number;cout<<"商品名称:"; cin>>goods_name;cout<<"出售数量:"; cin>>goods_number;for(int i=0;i<count;i++) //count 在Goods.h中定义的保护成员{if(name[i]==goods_name){if(number[i]<goods_number){flag=1;cout<<endl<<"\t\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞"<<endl;cout<<"\t\t\t !!! 货存不足!!!"<<endl;}else{flag=1;number[i]-=goods_number;cout<<endl<<"\t\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞"<<endl;cout<<"\t\t\t !!!出售成功!!!"<<endl;}}}if(flag==0){getchar();cout<<endl<<"\t\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞"<<endl;cout<<"\t\t\t 没有该物品! "<<endl;getchar();}}*AddGoods函数void DailyGoods::AddGoods()//增加日常用品{system("cls");int flag=1;ShowMe();cout<<endl<<"\t\t>>>>>>>>请输入要增加日常用品的信息<<<<<<<<<"<<endl<<endl;cout<<"商品名称:"; cin>>name[count];cout<<"商品数量:"; cin>>number[count];for(int i=0;i<count;i++){if(name[i]==name[count])//判断该物品是否已经存在{number[i]+=number[count];flag=0;}}if(flag)count++;//用于新增物品cout<<endl<<endl<<"\t\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞"<<endl;cout<<"\t\t\t !!! 添加商品成功!!!"<<endl;cout<<"\t\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞"<<endl;}void Food::AddGoods()//增加食品{system("cls");int flag=1;ShowMe();cout<<endl<<"≯≯≯≯≯≯≯≯≯≯≯≯≯≯≯请输入需要增加的食品信息≮≮≮≮≮≮≮≮≮≮≮≮≮≮≮"<<endl;cout<<"商品名称:"; cin>>number[count];for(int i=0;i<count;i++){if(name[i]==name[count])//判断该物品是否存在{number[i] += number[count];flag=0;}}if(flag){cout<<"商品数量:"; cin>>number[count];cout<<"保质期:"; cin>>SaveTime[count];count++; //用于新增物品}cout<<endl<<endl<<endl<<"\t\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞"<<endl<<endl;cout<<"\t\t\t 添加商品成功!!! "<<endl;cout<<endl<<endl<<endl<<endl;cout<<endl<<"\t\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞"<<endl<<endl;}void ElectricalAppliance::AddGoods()//增加家电{system("cls");int flag=1;ShowMe();cout<<endl<<"≯≯≯≯≯≯≯≯≯≯≯≯≯≯≯请输入要增加的家电的信息≮≮≮≮≮≮≮≮≮≮≮≮≮≮≮"<<endl<<endl;cout<<"商品名称:"; cin>>name[count];for(int i=0;i<count;i++){if(name[i]==name[count])//判断该物品是否已经存在{cout<<"商品数量:";cin>>number[count];number[i]+=number[count];flag=0;}}if(flag){cout<<"商品数量:";cin>>number[count];cout<<"颜色:";cin>>color[count];count++;//用于新增物品}cout<<endl<<endl<<"\t\t*************************************"<<endl;cout<<"\t\t !!! 添加商品成功!!!!"<<endl;cout<<"\t\t*************************************"<<endl;}*SaleGoods函数void DailyGoods::SaleGoods()//出售日常用品{system("cls");ShowMe();cout<<endl<<"≯≯≯≯≯≯≯≯≯≯≯≯≯≯≯请输入要出售的日常用品信息≮≮≮≮≮≮≮≮≮≮≮≮≮≮≮"<<endl<<endl;Sale();//调用基类Goods里的Sale()函数}void Food::SaleGoods()//出售食品{system("cls");ShowMe();cout<<endl<<"~~~~~~~~~~~~~~~~~~~~~~~~请输入要出售的食品信息~~~~~~~~~~~~~~~~~~~~~~~~"<<endl<<endl;Sale(); //调用基类Goods里的Sale函数}void ElectricalAppliance::SaleGoods() //卖出家电{system("cls");ShowMe();cout<<endl<<">>>>>>>>请输入要出售的家电信息>>>>>>>>"<<endl<<endl;Sale();//调用基类Goods里的Sale()函数}*ShowMe函数void DailyGoods::ShowMe() //显示日常用品{cout<<endl<<" 超市商品管理系统**日常用品区 "<<endl<<endl;cout<<endl<<"现有日常用品类商品库存:"<<endl<<endl;for(int i=0;i<count;i++){cout<<" 【"<<i+1<<"】"<<"日常用品名称:"<<setiosflags(ios::left)<<setw(15)<<name[i];cout<<"现存数量:"<<number[i]<<"个"<<endl;cout<<"-----------------------------------------------"<<endl;}}void Food::ShowMe() //显示食品信息{cout<<endl<<" 超市商品管理系统**食品区"<<endl<<endl;cout<<endl<<"现有食品类商品库存:"<<endl<<endl;for(int i=0;i<count;i++){cout<<" 【"<<i+1<<"】"<<"食品名称:"<<setiosflags(ios::left)<<setw(15)<<name[i]; //执行由有参数指定区域内的动作cout<<"现存数量:"<<setw(4)<<number[i]<<setw(8)<<"千克"; // setw( n ) 设域宽为n个字符cout<<"保质期:"<<setw(3)<<SaveTime[i]<<"天"<<endl;cout<<"-----------------------------------------------------------"<<endl;}}void ElectricalAppliance::ShowMe() //显示家电信息{cout<<endl<<" 超市商品管理系统**家电区"<<endl<<endl;cout<<endl<<"现有家电类商品库存:"<<endl<<endl;for(int i=0;i<count;i++){cout<<" 【"<<i+1<<"】"<<"家电名称:"<<setiosflags(ios::left)<<setw(15)<<name[i];cout<<"现存数量:"<<number[i]<<setw(6)<<"台";cout<<"颜色:"<<color[i]<<endl;cout<<"------------------------------------------------------------"<<endl;}}*文件的输入和保存函数void DailyGoods::Input_file(ostream&outfile)//将DailyGoods类商品信息打印到文件中{outfile<<endl<<"现有日常用品类商品库存:"<<endl<<endl;for(int i=0;i<count;i++){outfile<<"【"<<i+1<<"】"<<"日常用品名称:"<<setiosflags(ios::left)<<setw(15)<<name[i];outfile<<"现存数量:"<<number[i]<<"个"<<endl;}outfile<<endl<<endl<<endl<<endl<<endl;}void DailyGoods::Save_file(ostream&Write_DailyGoods)//用于将DailyGoods商品信息单独保存到文件中{Write_DailyGoods<<count<<endl;for(int i=0;i<count;i++){Write_DailyGoods<<name[i]<<" "<<number[i]<<endl;}}void Food::Input_file(ostream&outfile)//将Food类商品信息打印到文件中{outfile<<endl<<"现有食品类商品库存:"<<endl<<endl;for(int i=0;i<count;i++){outfile<<"【"<<i+1<<"】"<<"食品名称:"<<setiosflags(ios::left)<<setw(15)<<name[i];outfile<<"现存数量:"<<setw(4)<<number[i]<<setw(8)<<"千克";outfile<<"保质期:"<<setw(3)<<SaveTime[i]<<"天"<<endl;}outfile<<endl<<endl<<endl<<endl<<endl;}void Food::Save_file(ostream&Write_Food)//用于将Food商品信息保存到文件中{Write_Food<<count<<endl;for(int i=0;i<count;i++){Write_Food<<name[i]<<" "<<number[i]<<" "<<SaveTime[i]<<endl;}}void ElectricalAppliance:: Input_file(ostream&outfile)//将ElectricalAppliance类商品信息打印到文件中{outfile<<endl<<"现有家电类(ElectricalAppliance)商品库存:"<<endl<<endl;for(int i=0;i<count;i++){ outfile<<"【"<<i+1<<"】"<<"家电名称:"<<setiosflags(ios::left)<<setw(15)<<name[i];outfile<<"现存数量:"<<number[i]<<setw(6)<<"台"; outfile<<"颜色:"<<color[i]<<endl;}outfile<<endl<<endl<<endl<<endl<<endl;}voidElectricalAppliance::Save_file(ostream&Write_ElectricalAppliance)//用于将ElectricalAppliance商品信息保存到文件中{Write_ElectricalAppliance<<count<<endl;for(int i=0;i<count;i++){Write_ElectricalAppliance<<name[i]<<" "<<number[i]<<" "<<color[i]<<endl;}}//Display函数void SelectMenu()//实现商品操作的列表{cout<<endl<<"∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴超市商品管理系统∵∴∵∴∵∴∵∴∵∴∵ "<<endl<<endl;cout<<"\t 可操作选项:"<<endl<<endl;cout<<endl<<endl;cout<<"\t\t\t 1 增加商品"<<endl;cout<<"\t\t\t 2 出售商品"<<endl;cout<<"\t\t\t 3 查询商品"<<endl;cout<<"\t\t\t "<<endl<<endl;cout<<"\t您要进行的操作是:";}void GoodList()//商品类别列表{cout<<endl<<"∴∵∴∵∴∵∴∵∴∵∴∴∵∵∴超市商品管理系统∵∴∵∴∵∴∵∴∵∴∵"<<endl<<endl;cout<<"\t 我们提供的商品有:"<<endl;cout<<endl<<endl;cout<<"\t\t\t 1 日常用品类"<<endl;cout<<"\t\t\t 2 食品类"<<endl;cout<<"\t\t\t 3 家电类"<<endl;cout<<"\t\t "<<endl<<endl;}3 详细设计3.1系统总体设计3.2源程序代码//Supermarket.h#pragma once //保证头文件只被编译一次#include<iostream>using namespace std;class Supermarket //要求(1)超市类,描述函数Add,Sale,Search{public:int Add(); //增加商品函数,可以增加新商品,也可以增加已有商品int Sale(); //按照商品名称卖出商品函数(如果商品现有数量小于卖出数量,则不能继续卖出,并给出提示信息)int Search(); //按照商品类别查询商品情况的函数,查询结果:每类商品中有哪些商品,每种花商品的名称和现有数量int Good_num;};//Supermarket.cpp#pragma once#include"Goods.h"#include"Supermarket.h"#include"Display.h"using namespace std;//增加商品的函数int Supermarket::Add(){int Good_num;system("cls");GoodList(); //调用GoodList()函数语言cout<<"\t\t您要增加什么类型的商品?";cin>>Good_num;return Good_num;}//按照商品名称卖出商品的函数int Supermarket::Sale(){int Good_num;system("cls");GoodList(); //调用GoodList()函数语言cout<<"\t\t您要出售什么类型的商品?";cin>>Good_num;return Good_num;}//按照商品类别查询商品情况的函数int Supermarket::Search(){int Good_num;system("cls");GoodList(); //调用GoodList()函数语言cout<<"\t\t您想要查询什么类型的商品?";cin>>Good_num;return Good_num;}//Goods.h#pragma once#include<iostream>#include<string>#include<fstream>using namespace std;//商品类Goodsclass Goods{public:virtual void AddGoods()=0; //增加商品virtual void SaleGoods()=0; //出售商品virtual void ShowMe()=0; //显示商品名称、现有数量、和食品类的保质期、以及家电的颜色void Sale(); //统一定义商品出售函数功能模块protected:string name[100]; //记录商品名称int number[100]; //记录商品数量int count; //记录各类商品的各自的商品种数};//派生类:日常用品类DailyGoodsclass DailyGoods:public Goods{public:DailyGoods(); //无参构造函数void AddGoods(); //增加商品void SaleGoods();//出售商品friend istream operator >>(istream &in,DailyGoods &d);//对DailyGoods类重载运算符>>,用于文件中读取日常用品类的信息void ShowMe(); //显示商品属性void Input_file(ostream&outfile); //用于将商品信息输出到文件中void Save_file(ostream&Write_DailyGoods); //用于将商品信息单独保存到文件中};//派生类:食品类Foodclass Food:public Goods{public:Food(); //无参构造函数void AddGoods(); //增加商品void SaleGoods();//出售商品//friend istream operator >>(istream &in,Food &f);//对Food类重载运算符>>,用于文件中读取日常用品类的信息void ShowMe(); //显示商品属性void Input_file(ostream&outfile); //用于将商品信息输出到文件中void Save_file(ostream&Write_Food); //用于将商品信息单独保存到文件中private:int SaveTime[100]; //保质期};//派生类:家电类ElectricalApplianceclass ElectricalAppliance:public Goods{public:ElectricalAppliance();//无参构造函数void AddGoods(); //增加商品void SaleGoods(); //出售商品//friend istream operator >>(istream &in,ElectricalAppliance &e);//对ElectricalAppliance类重载运算符>>,用于文件中读取日常用品类的信息void ShowMe(); //显示商品属性void Input_file(ostream&outfile); //用于将商品信息输出到文件中void Save_file(ostream&Write_ElectricalAppliance); //用于将商品信息单独保存到文件中private:string color[100]; //颜色属性};//Goods.cpp#pragma once#include"Goods.h"#include"Supermarket.h"#include"Display.h"#include<fstream>#include<iomanip>using namespace std;void Goods::Sale()//统一定义商品出售函数功能模块{int flag=0;string goods_name;int goods_number;cout<<"商品名称:"; cin>>goods_name;cout<<"出售数量:"; cin>>goods_number;for(int i=0;i<count;i++) //count 在Goods.h中定义的保护成员{if(name[i]==goods_name){if(number[i]<goods_number){flag=1;cout<<endl<<"\t\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞"<<endl;cout<<"\t\t\t !!! 货存不足!!!"<<endl;}else{flag=1;number[i]-=goods_number;cout<<endl<<"\t\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞"<<endl;cout<<"\t\t\t !!!出售成功!!!"<<endl;}}}if(flag==0){getchar();cout<<endl<<"\t\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞"<<endl;cout<<"\t\t\t 没有该物品! "<<endl;}}//日常用品类函数定义DailyGoods::DailyGoods()//类外定义构造函数,初始化货存日常用品信息{count=4;name[0]="台灯";number[0]=76;name[1]="毛巾";number[1]=68;name[2]="杯子";number[2]=53;name[3]="水壶";number[3]=48;}void DailyGoods::AddGoods()//增加日常用品{system("cls");int flag=1;ShowMe();cout<<endl<<"\t\t>>>>>>>>请输入要增加日常用品的信息<<<<<<<<<"<<endl<<endl; cout<<"商品名称:"; cin>>name[count];cout<<"商品数量:"; cin>>number[count];for(int i=0;i<count;i++){if(name[i]==name[count])//判断该物品是否已经存在{number[i]+=number[count];flag=0;}}if(flag)count++;//用于新增物品cout<<endl<<endl<<"\t\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞"<<endl;cout<<"\t\t\t !!! 添加商品成功!!!"<<endl;cout<<"\t\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞"<<endl;}void DailyGoods::SaleGoods(){system("cls");ShowMe();cout<<endl<<"≯≯≯≯≯≯≯≯≯≯≯≯≯≯≯请输入要出售的日常用品信息≮≮≮≮≮≮≮≮≮≮≮≮≮≮≮"<<endl<<endl;Sale();//调用基类Goods里的Sale()函数}void DailyGoods::ShowMe(){cout<<endl<<" 超市商品管理系统**日常用品区"<<endl<<endl;cout<<endl<<"现有日常用品类商品库存:"<<endl<<endl;for(int i=0;i<count;i++){cout<<" 【"<<i+1<<"】"<<"日常用品名称:"<<setiosflags(ios::left)<<setw(15)<<name[i];cout<<"现存数量:"<<number[i]<<"个"<<endl;cout<<"-----------------------------------------------"<<endl;}}void DailyGoods::Input_file(ostream&outfile)//将DailyGoods类商品信息打印到文件中{outfile<<endl<<"现有日常用品类商品库存:"<<endl<<endl;for(int i=0;i<count;i++){outfile<<"【"<<i+1<<"】"<<"日常用品名称:"<<setiosflags(ios::left)<<setw(15)<<name[i];outfile<<"现存数量:"<<number[i]<<"个"<<endl;}outfile<<endl<<endl<<endl<<endl<<endl;}void DailyGoods::Save_file(ostream&Write_DailyGoods)//用于将DailyGoods商品信息单独保存到文件中{Write_DailyGoods<<count<<endl;for(int i=0;i<count;i++){Write_DailyGoods<<name[i]<<" "<<number[i]<<endl;}}//食品类Food的函数定义Food::Food() //类外定义构造函数,初始化火车食品信息{count=6;name[0]="苹果"; number[0]=360; SaveTime[0]=15;name[1]="香蕉"; number[1]=500; SaveTime[1]=5;name[2]="李子"; number[2]=450; SaveTime[2]=2;name[3]="西瓜"; number[3]=350; SaveTime[3]=8;name[4]="杨梅"; number[4]=400; SaveTime[4]=7;name[5]="芒果"; number[5]=300; SaveTime[5]=21;}void Food::AddGoods(){system("cls");int flag=1;ShowMe();cout<<endl<<"≯≯≯≯≯≯≯≯≯≯≯≯≯≯≯请输入需要增加的食品信息≮≮≮≮≮≮≮≮≮≮≮≮≮≮≮"<<endl;cout<<"商品名称:"; cin>> name[count];for(int i=0;i<count;i++){if(name[i]==name[count])//判断该物品是否存在{number[i] += number[count];flag=0;}}if(flag){cout<<"商品数量:"; cin>>number[count];cout<<"保质期:"; cin>>SaveTime[count];count++; //用于新增物品}cout<<endl<<endl<<endl<<"\t\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞"<<endl<<endl;cout<<"\t\t\t 添加商品成功!!! "<<endl;cout<<endl<<endl<<endl<<endl;cout<<endl<<"\t\t∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞∞"<<endl<<endl;}void Food::SaleGoods(){system("cls");ShowMe();cout<<endl<<"~~~~~~~~~~~~~~~~~~~~~~~~请输入要出售的食品信息~~~~~~~~~~~~~~~~~~~~~~~~"<<endl<<endl;Sale(); //调用基类Goods里的Sale函数}void Food::ShowMe(){cout<<endl<<" 超市商品管理系统**食品区"<<endl<<endl;cout<<endl<<"现有食品类商品库存:"<<endl<<endl;for(int i=0;i<count;i++){cout<<" 【"<<i+1<<"】"<<"食品名称:"<<setiosflags(ios::left)<<setw(15)<<name[i]; //执行由有参数指定区域内的动作cout<<"现存数量:"<<setw(4)<<number[i]<<setw(8)<<"千克"; // setw( n ) 设域宽为n个字符cout<<"保质期:"<<setw(3)<<SaveTime[i]<<"天"<<endl;cout<<"-----------------------------------------------------------"<<endl;}}void Food::Input_file(ostream&outfile)//将Food类商品信息打印到文件中{outfile<<endl<<"现有食品类商品库存:"<<endl<<endl;for(int i=0;i<count;i++){outfile<<"【"<<i+1<<"】"<<"食品名称:"<<setiosflags(ios::left)<<setw(15)<<name[i];outfile<<"现存数量:"<<setw(4)<<number[i]<<setw(8)<<"千克";outfile<<"保质期:"<<setw(3)<<SaveTime[i]<<"天"<<endl;}outfile<<endl<<endl<<endl<<endl<<endl;}void Food::Save_file(ostream&Write_Food)//用于将Food商品信息保存到文件中{Write_Food<<count<<endl;for(int i=0;i<count;i++){Write_Food<<name[i]<<" "<<number[i]<<" "<<SaveTime[i]<<endl;}}//家电类(ElectricalAppliance)的函数定义ElectricalAppliance::ElectricalAppliance()//类外定义构造函数,初始化货存家电信息{count=3;name[0]="空调" ; number[0]=123; color[0]="黑色";name[1]="冰箱" ; number[1]=111; color[1]="白色";name[2]="电视" ; number[2]=104; color[2]="红色";name[3]="洗衣机";number[3]=125; color[3]="蓝色";}void ElectricalAppliance::AddGoods()//增加家电{system("cls");int flag=1;ShowMe();cout<<endl<<"≯≯≯≯≯≯≯≯≯≯≯≯≯≯≯请输入要增加的家电的信息≮≮≮≮≮≮≮≮≮≮≮≮≮≮≮"<<endl<<endl;cout<<"商品名称:"; cin>>name[count];for(int i=0;i<count;i++){if(name[i]==name[count])//判断该物品是否已经存在{cout<<"商品数量:";cin>>number[count];number[i]+=number[count];flag=0;}}if(flag){cout<<"商品数量:";cin>>number[count];cout<<"颜色:";cin>>color[count];count++;//用于新增物品}cout<<endl<<endl<<"\t\t*************************************"<<endl; cout<<"\t\t !!! 添加商品成功!!!!"<<endl;cout<<"\t\t*************************************"<<endl;}void ElectricalAppliance::SaleGoods(){system("cls");ShowMe();cout<<endl<<">>>>>>>>请输入要出售的家电信息>>>>>>>>"<<endl<<endl;Sale();//调用基类Goods里的Sale()函数}void ElectricalAppliance::ShowMe(){cout<<endl<<" 超市商品管理系统**家电区"<<endl<<endl;cout<<endl<<"现有家电类商品库存:"<<endl<<endl;for(int i=0;i<count;i++){cout<<" 【"<<i+1<<"】"<<"家电名称:"<<setiosflags(ios::left)<<setw(15)<<name[i];cout<<"现存数量:"<<number[i]<<setw(6)<<"台";cout<<"颜色:"<<color[i]<<endl;cout<<"------------------------------------------------------------"<<endl;}}void ElectricalAppliance:: Input_file(ostream&outfile)//将ElectricalAppliance类商品信息打印到文件中{outfile<<endl<<"现有家电类(ElectricalAppliance)商品库存:"<<endl<<endl; for(int i=0;i<count;i++){ outfile<<"【"<<i+1<<"】"<<"家电名称:"<<setiosflags(ios::left)<<setw(15)<<name[i];outfile<<"现存数量:"<<number[i]<<setw(6)<<"台"; outfile<<"颜色:"<<color[i]<<endl;}outfile<<endl<<endl<<endl<<endl<<endl;}void ElectricalAppliance::Save_file(ostream&Write_ElectricalAppliance)//用于将ElectricalAppliance商品信息保存到文件中{Write_ElectricalAppliance<<count<<endl;for(int i=0;i<count;i++){Write_ElectricalAppliance<<name[i]<<" "<<number[i]<<" "<<color[i]<<endl; }}//Display.h#pragma once#include<iostream>using namespace std;void Loading(); //登入系统的页面void SelectMenu(); //实现商品造作的列表void GoodList(); //商品类别列表void End(); //退出时的结束画面//Display.cpp#pragma once#include"Goods.h"#include"Display.h"using namespace std;void Loading()//登陆系统时的界面{system("cls");cout<<endl<<endl<<endl<<endl<<endl<<endl;cout<<"\t ☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★"<<endl;cout<<"\t ☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★"<<endl;cout<<"\t ☆★☆☆★☆"<<endl;cout<<"\t ☆★☆☆★☆"<<endl;cout<<"\t ☆★☆☆★☆"<<endl;cout<<"\t ☆★☆欢迎进入超市商品管理系统☆★☆"<<endl;cout<<"\t ☆★☆☆★☆"<<endl;cout<<"\t ☆★☆☆★☆"<<endl;cout<<"\t ☆★☆☆★☆"<<endl;cout<<"\t ☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★"<<endl;cout<<"\t ☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★"<<endl;cout<<endl<<endl<<endl<<endl;}void SelectMenu()//实现商品操作的列表{cout<<endl<<"∴∵∴∵∴∵∴∵∴∵∴∵∴∵∴超市商品管理系统∵∴∵∴∵∴∵∴∵∴∵ "<<endl<<endl;cout<<"\t 可操作选项:"<<endl<<endl;cout<<endl<<endl;cout<<"\t\t\t 1 增加商品"<<endl;cout<<"\t\t\t 2 出售商品"<<endl;cout<<"\t\t\t 3 查询商品"<<endl;cout<<"\t\t\t "<<endl<<endl;cout<<"\t您要进行的操作是:";}void GoodList()//商品类别列表{cout<<endl<<"∴∵∴∵∴∵∴∵∴∵∴∴∵∵∴超市商品管理系统∵∴∵∴∵∴∵∴∵∴∵"<<endl<<endl;cout<<"\t 我们提供的商品有:"<<endl;cout<<endl<<endl;cout<<"\t\t\t 1 日常用品类"<<endl;cout<<"\t\t\t 2 食品类"<<endl;cout<<"\t\t\t 3 家电类"<<endl;cout<<"\t\t "<<endl<<endl;}void End()//退出时的结束画面{system("cls");cout<<endl<<endl<<endl<<endl<<endl<<endl;cout<<"\t ☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★"<<endl;cout<<"\t ☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★"<<endl;cout<<"\t ☆★☆☆★☆"<<endl;cout<<"\t ☆★☆☆★☆"<<endl;cout<<"\t ☆★☆☆★☆"<<endl;cout<<"\t ☆★☆谢谢进入超市商品管理系统☆★☆"<<endl;cout<<"\t ☆★☆☆★☆"<<endl;cout<<"\t ☆★☆☆★☆"<<endl;cout<<"\t ☆★☆☆★☆"<<endl;cout<<"\t ☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★"<<endl;cout<<"\t ☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★"<<endl;cout<<endl<<endl<<endl<<endl;}//file.h#pragma once#include"Supermarket.h"#include"Goods.h"#include"Display.h"#include<conio.h>#include<stdlib.h>//用于控制运行窗口属性的必要头文件#include<fstream>//文件操作#include<iomanip>using namespace std;int screen(){DailyGoods dailygoods;Food food;ElectricalAppliance electricalappliance;/*创建文件,用于读取与输出信息*/。