C语言超市收银管理系统实现详解

合集下载

c语言课程设计超市收银系统

c语言课程设计超市收银系统

c语言课程设计超市收银系统一、教学目标本课程旨在通过超市收银系统的设计与实现,让学生掌握C语言编程的基本语法、数据结构及算法,培养学生的实际编程能力和问题解决能力。

通过本课程的学习,学生应能熟练运用C语言进行简单应用程序的开发,理解面向对象编程的基本概念,掌握基本的调试技巧。

在技能目标方面,学生应掌握C语言的基本语法,包括数据类型、运算符、控制结构等;能运用函数进行模块化编程;了解并使用面向对象编程思想,包括类、对象、继承、封装等;掌握基本的算法设计和分析方法,能够编写并调试简单的C 语言程序。

在情感态度价值观目标方面,通过超市收银系统的设计与实现,使学生体验到编程的乐趣,增强对计算机科学的兴趣;培养学生的团队合作意识,提高学生解决实际问题的能力;培养学生勇于探索、创新的精神,以及对编程工作的敬业精神和责任感。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、面向对象编程和算法设计。

具体包括以下几个部分:1.C语言基本语法:数据类型、变量、运算符、控制结构(循环、分支)、函数等。

2.数据结构:数组、链表、栈、队列等。

3.面向对象编程:类与对象、继承与封装、多态性等。

4.算法设计与分析:排序算法、查找算法、常用算法思想等。

5.超市收银系统的设计与实现:需求分析、系统设计、编码实现、测试与调试等。

三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式进行教学。

1.讲授法:用于讲解C语言的基本语法、数据结构、面向对象编程和算法设计等理论知识。

2.案例分析法:通过分析具体的编程案例,使学生更好地理解编程思想和方法。

3.实验法:让学生通过动手实践,完成超市收银系统的各个模块的设计与实现,提高实际编程能力。

4.小组讨论法:在课程进行过程中,学生进行小组讨论,培养团队合作精神和问题解决能力。

四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C程序设计语言》(K&R)、《C++ Primer》等。

超市收银c语言课程设计

超市收银c语言课程设计

超市收银c语言课程设计一、教学目标本节课的教学目标是让学生掌握超市收银系统的的基本流程,通过C语言编程实现一个简单的超市收银系统。

具体来说,知识目标包括掌握C语言的基本语法、数据结构和算法;技能目标包括能够使用C语言编写程序,解决实际问题;情感态度价值观目标包括培养学生的编程兴趣,提高学生解决问题的能力。

二、教学内容本节课的教学内容主要包括C语言的基本语法、数据结构和算法。

具体安排如下:1.C语言基本语法:介绍C语言的数据类型、运算符、控制语句等基本语法知识。

2.数据结构:讲解常用的数据结构,如数组、链表、栈和队列等,以及如何在程序中使用这些数据结构。

3.算法:介绍常用的排序和查找算法,如冒泡排序、选择排序、插入排序等,并讲解如何在程序中实现这些算法。

三、教学方法为了达到本节课的教学目标,将采用以下教学方法:1.讲授法:讲解C语言的基本语法、数据结构和算法,让学生掌握相关知识。

2.案例分析法:通过分析实际案例,让学生了解如何使用C语言解决实际问题。

3.实验法:让学生动手编写程序,巩固所学知识,提高编程能力。

四、教学资源为了支持本节课的教学内容和教学方法的实施,将准备以下教学资源:1.教材:选用权威、实用的C语言教材,为学生提供学习参考。

2.参考书:提供相关的参考书籍,丰富学生的知识体系。

3.多媒体资料:制作精美的PPT,直观展示C语言编程过程。

4.实验设备:为学生提供电脑等实验设备,方便学生动手实践。

通过以上教学设计,相信能够帮助学生更好地掌握C语言编程知识,提高解决问题的能力。

五、教学评估本节课的教学评估将采用多元化的评价方式,以全面、客观、公正地评价学生的学习成果。

评估方式包括:1.平时表现:评价学生在课堂上的参与程度、提问回答、小组讨论等,以考察学生的学习态度和积极性。

2.作业:布置相应的编程作业,要求学生独立完成,以检验学生对C语言编程知识的掌握程度。

3.考试:安排一次期末考试,测试学生对C语言基本语法、数据结构和算法的掌握情况。

超市收银c语言课程设计

超市收银c语言课程设计

超市收银c语言课程设计一、课程目标知识目标:1. 学生能理解C语言在超市收银系统中的应用,掌握基本的数据类型、变量、运算符和语法结构。

2. 学生能掌握结构体和数组的使用,实现对商品信息和收银数据的存储与管理。

3. 学生能运用函数和模块化编程思想,实现超市收银系统的各个功能模块。

技能目标:1. 学生能运用C语言编写简单的超市收银系统程序,具备基本的编程能力。

2. 学生能通过调试和修改程序,解决超市收银系统中的常见问题,提高问题解决能力。

3. 学生能运用所学知识,对超市收银系统进行优化和扩展,提高系统性能。

情感态度价值观目标:1. 学生通过课程学习,认识到编程在现实生活中的应用价值,激发对计算机编程的兴趣和热情。

2. 学生在团队协作中学会沟通、分享和合作,培养良好的团队精神。

3. 学生在课程实践中,体验编程带来的成就感,增强自信心,培养积极向上的学习态度。

本课程针对高年级学生,结合C语言学科特点,注重理论与实践相结合。

在教学过程中,关注学生的个体差异,激发学生的兴趣和潜能,培养学生编程思维和实际操作能力。

课程目标明确,分解为具体学习成果,便于后续教学设计和评估。

通过本课程的学习,使学生能够掌握C语言编程技能,为实际应用打下坚实基础。

二、教学内容1. C语言基础语法:数据类型、变量定义、运算符、表达式、输入输出语句。

- 教材章节:第一章至第三章- 进度安排:2课时2. 控制结构:顺序结构、选择结构、循环结构。

- 教材章节:第四章- 进度安排:3课时3. 函数:函数定义、调用、参数传递、递归。

- 教材章节:第五章- 进度安排:3课时4. 结构体与数组:结构体定义、数组应用、结构体数组。

- 教材章节:第六章、第七章- 进度安排:4课时5. 文件操作:文件打开、读写、关闭。

- 教材章节:第十章- 进度安排:2课时6. 超市收银系统设计:需求分析、模块划分、代码编写、系统测试。

- 教材章节:综合应用- 进度安排:5课时教学内容依据课程目标进行选择和组织,注重科学性和系统性。

C语言课程设计_超市管理系统

C语言课程设计_超市管理系统

图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语言超市收银管理系统实现

C语言超市收银管理系统实现

C语言超市收银管理系统实现引言:随着社会经济的发展,超市作为一种新型的购物场所,逐渐取代了传统市场的地位,成为人们购物的首选。

超市管理面临诸多的挑战,因此,使用计算机技术来实现超市收银管理系统具有重要意义。

本文将介绍如何使用C语言实现超市收银管理系统。

1.系统需求分析:超市收银管理系统的主要功能包括商品信息管理、销售管理、库存管理和报表管理等。

这些功能对于超市管理人员来说是非常重要的,因此,我们需要分析每个功能所需的具体要求。

(1)商品信息管理:记录商品的信息,包括商品编号、商品名称、商品数量、商品价格等。

这些信息可以使用文件来存储和读取。

(2)销售管理:记录每次销售的详细信息,包括销售时间、销售员、商品名称、销售数量和销售金额等。

此外,还需要实时更新商品的库存信息。

(3)库存管理:根据销售信息实时更新商品的库存数量,当库存数量低于设定的预警值时,系统应发出警报。

(4)报表管理:生成各种销售报表,包括每日销售额、每月销售额、每类商品的销售情况等。

这些报表可以帮助管理人员了解超市的销售情况并进行分析。

2.系统设计:(1)数据结构设计:根据系统需求,我们需要设计一些数据结构来存储不同的数据,比如商品信息、销售信息和库存信息等。

可以使用结构体来表示每个数据项,同时可以使用链表或数组来保存多个数据项。

(2)功能模块设计:根据系统需求,我们可以把系统功能分为不同的模块,比如商品信息管理模块、销售管理模块、库存管理模块和报表管理模块等。

每个模块可以对应一个函数来实现相应的功能。

(3)界面设计:为了方便用户使用,我们可以设计一个简单的控制台界面,用户通过输入相应的命令来调用功能模块。

比如用户输入"add"可以调用商品信息管理模块来添加商品信息。

3.系统实现:(1)商品信息管理模块:实现商品信息的添加、删除、修改和查询功能。

可以使用文件来存储商品信息。

(2)销售管理模块:实现销售信息的记录和销售金额的计算功能。

超市管理系统(C语言课程设计报告)

超市管理系统(C语言课程设计报告)
本设计运用C语言程序设计了一个超市管理系统。主要实现的功能有进货功能、退货功能、商品销售功能、商品信息查询功能、商品信息浏览功能。
1.开发工具和编程语言:
开发工具:Microsoft Visual C++ 6.0
编程语言:C语言
2.模块划分
3.系统功能与函数的对应关系
本系统包括一个主函数和6个被调函数,分别如下:
jez=jez-sl*s[i].shoujia ;//重新计算总金额
printf("取消购买成功\n");
}
}
}
zl=ssje-jez;//找零
printf("找零%5.1f\n",zl);
printf("购买成功\n");
}
if(a!=2)
{
printf("请选择:");
printf("1.返回开始菜单");
for(i=0;i<b;i++)
if((strcmp(str,s[i].bh)==0)||(strcmp(str,s[i].bhstr)==0))//查找要取消购买的商品
{
printf("请输入取消购买的数量");
scanf("%d",&sl);
s[i].kucun =s[i].kucun +sl;//修改库存信息
printf("2.继续购买商品");
scanf("%d",&a);
jez=0;
}
}
}
(3)运行效果
输入:3
输出:请输入购买商品的编号:
输入:1

c语言课程设计超市管理系统

c语言课程设计超市管理系统

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

C语言程序设计超市管理系统1

程序设计——超市管理系统学院:专业:班级:姓名:学号:指导老师:超市管理系统课程设计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语言课程设计报告)

超市管理系统(C语言课程设计报告)

超市管理系统本设计运用C语言程序设计了一个超市管理系统。

主要实现得功能有进货功能、退货功能、商品销售功能、商品信息查询功能、商品信息浏览功能。

1、开发工具与编程语言:开发工具:MicrosoftVisual C++6、0编程语言:C语言2.模块划分3、系统功能与函数得对应关系本系统包括一个主函数与6个被调函数,分别如下:(1)主函数void main()(2)功能选择函数 void gongneng()(3)进货功能函数 void jinhuo()(4)退货功能函数 void tuihuo()(5)商品销售函数 void spxs()(6)信息查询函数void xxcx()(7)信息浏览函数 void spxxpx()4、结构体类型说明商品信息包括:商品编号、商品名称、商品进价、商品售价、商品库存数量。

结构体类型定义为:structxinxi//结构体char bh[30];//商品编号char bhstr[30];//商品名称float jinjia;//商品进价float shoujia;//商品售价int kucun;//商品库存数量};5、系统函数得设计与实现5.1主函数主函数中运行功能选择函数,运行时可以显示系统界面,系统界面如图5-1所示。

图5-1 系统主界面主函数中可以实现各种功能得选择。

5、2进货功能函数(1)流程图进货功能函数实现进货功能,能够实现要进货商品得信息添加或录入。

进货时,先检测本商品就是否存在,若存在则修改库存数量等相关信息;否则添加本商品得相关信息。

进货流程图如图5-2所示。

开始菜单进货功能输入商品得名称ﻩﻩ(2)系统代码voi d jin hu o()//进货处理函数 {ch ar str[30]; i nt i,a=2; wh ile(a ==2) {print f("请输入商品得名称:"); sca nf("%s",s tr); for(i=0;i<b ;i++)if(strcmp(st r,s[i]、bhst r)==0)//查找要进货得商品 {pr intf("编号:%s ,进价:%5.1f,售价:%5.1f,库存数量:%d\n",s[i]、bh,s[i]、jinj ia,s [i]、shoujia,s[i ]、kucun); print f("请输入新库存数量:");s canf ("%d ",&s[i]、kuc un);//修改库存信息 pri ntf ("库存信息修改完成\n "); ﻩbr eak; }if(i>=b)//如果没有找到要进货得商品,则添加商品信息 {printf("添加商品信息:\n");printf("请输入商品编号:");scanf("%s",s[i]、bh);printf("请输入商品名称:");scanf("%s",s[i]、bhstr);printf("请输入商品进价:");scanf("%f",&s[i]、jinjia);printf("请输入商品售价:");scanf("%f",&s[i]、shoujia);printf("请输入商品库存数量:");scanf("%d",&s[i]、kucun);printf("商品信息添加完成\n");b++;}printf("请选择:");printf("1、返回开始菜单");printf("2、继续进行进货处理");scanf("%d",&a);}}(3)运行效果输入:选项1输出:请输入商品得名称:输入:1输出:添加商品信息请输入商品编号:……输入:1输出:商品信息添加完成请选择:1、返回开始菜单2、继续进行进货处理输入:2输出:请输入商品名称:输入:1输出:编号:1,进价:1、0,售价:1、0,库存数量:1请输入新库存:输入:2输出:库存信息修改完成请选择:1、返回开始菜单2、继续进行进货处理输入:1返回开始菜单运行效果图如图5-3所示。

C语言实现超市计价收款系统

C语言实现超市计价收款系统

C语⾔实现超市计价收款系统本⽂实例为⼤家分享了C语⾔实现超市计价收款系统的具体代码,供⼤家参考,具体内容如下学习⼀个⽉的C语⾔,写了⼀个简易的超市计价收款系统源码如下#include<stdio.h>#include<stdlib.h>#include<string.h>#define M 10typedef struct //定义商品的结构体{char name[10];int num;float price;int ID;}Store;Store store[M];void shuru( ) //定义输⼊商品的函数{int i;int isgo;int n;for(i=0;i<M;i++){store[i].ID=i+1;//⾃定义商品的IDprintf("输⼊商品的名字\n");scanf("%s",&store[i].name);printf("输⼊商品的价格\n");scanf("%f",&store[i].price);printf("还需要输⼊商品吗?\n");printf("1.YES,2.NO\n");scanf("%d",&isgo);if(isgo!=2)//判断是否继续输⼊商品{}else//不输⼊商品直接跳出,展⽰所有商品的信息{for(n=0;n<=i;n++){printf("商品ID\t商品名字\t商品价格\n");printf("%d\t,%s\t,%f\n",store[n].ID,store[n].name,store[n].price);}i=10;}}}void shopp() //购物函数{int isgo=1;int i;int n;int number;int shoppid;float pricenum;float pricesum=0.0;float priceguke;printf("库存的商品如下\n");for(n=0;n<M;n++){printf("商品ID\t商品名字\t商品价格\n");printf("%d\t,%s\t,%f\n",store[n].ID,store[n].name,store[n].price);if(store[n].price==0)//这⾥是为了不把没定义的商品不显⽰出来{n=M;}}while(isgo)//购物{printf("按下你需要的商品ID和数量\n");scanf("%d,%d",&shoppid,&number);pricenum=(store[shoppid-1].price)*number;pricesum=pricesum+pricenum;printf("你购买的商品%s是%d个,价格是%f,总⾦额是%f\n",store[shoppid-1].name,number,pricenum,pricesum); printf("是否继续购物\n");printf("0.退出,1.继续\n");scanf("%d",&isgo);}printf("输⼊顾客⽀付的⾦钱\n");//结算scanf("%f",&priceguke);if(priceguke>=pricesum){printf("收到顾客%f元,找回顾客%f元\n",priceguke,priceguke-pricesum);}else{printf("收到的钱⼩于总⾦额\n");}printf("谢谢光临\n");}main(){int xitong=1;while(xitong!=3){printf("-------------------欢迎登录好浪费超市系统-----------------------\n");printf("1.输⼊商品信息\n");printf("2.购买商品\n");printf("3.退出系购买商品统\n");scanf("%d",&xitong);switch(xitong){case 1:shuru();break;case 2:shopp();break;case 3:printf("欢迎再次使⽤好浪费超市系统\n");}}}以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。

C++语言课业(超市收银系统)C

C++语言课业(超市收银系统)C

×××××××××××××××学院×××××××××系课业任务书专业:班级:学生姓名:指导教师:项目名称:超市收银系统年月日项目名称超市收银系统起止时间完成地点成果形式A4纸打印稿课业简介通过课业,使学生巩固C++的使用,学会软件设计的基本方法,包括从需求分析、概要设计、详细设计到编码、测试及调试的过程。

在项目的完成过程中,注意发挥学生的主动性,调动学生的探索精神,培养学生的创新精神、科学思维精神与自主学习的能力,并培养学生的编程思路,同时通过分组实践,提高学生团队合作能力。

知识目标1.掌握设计一个项目的基本思路和设计思想。

2.巩固C++基本概念。

3.对C++的数据类型、分支及循环有较深刻的理解并能正确的使用。

4.掌握程序设计中基本的算法和编程技巧。

5.掌握程序的调试方法,增强纠错改错的能力。

6.提高学生团队合作能力。

能力目标1.使用C++编程的能力。

2.增强纠错改错的能力。

3.撰写设计文档的能力。

4.认识问题、分析问题和解决实际问题的能力。

任务内容超市收银系统:根据不同的顾客和销售方式,收银的方式也不同(1)正常销售:按商品的实际价格计价(2)会员销售:按商品的实际价格*95%计价,并记录会员号码和积分(积分按实收金额计分,一元积一分)(3)返券销售(只有现金才能返券):满一百返20元,记录收代币券金额,和现金金额,以便于返券打印小票包括:超市广告、消费时间、商品数量、商品总价、实收金额、现金、代币券、找零等(1) 进行需求分析和数据分析。

(2) 画流程图。

(3) 编写程序代码。

(4) 上机调试,确保程序代码正确。

(5) 编写使用说明书。

1.优秀总体规划设计合理;能够实现所有功能;界面友好:清楚,易用;代码质量高:包括命名合理,正确应用空白和缩进,变量的正确使用,分支及循环的合理使用,适当的注释;设计报告格式规范,内容完整,表达清楚,文字简洁。

C语言实现超市管理系统

C语言实现超市管理系统

C语⾔实现超市管理系统本⽂实例为⼤家分享了C语⾔实现超市管理系统的具体代码,供⼤家参考,具体内容如下超市管理系统1.包括管理员和顾客2.管理员有登⼊,录⼊商品信息,显⽰所有商品信息功能3.顾客有购物车和结算功能4.购物车具有显⽰商品列表,显⽰购物车商品,往购物车添加商品的功能函数void UpdateKu();//更新购物车信息函数void calculate();//计算所购商品价格并修改保存int menu1();//打印主菜单函数int menu2();//打印管理员菜单函数int menu3();//打印顾客函数void CreateGoods();//录⼊商品信息函数void ShowGoods();//显⽰库存信息函数void ShopCart();//对购物车进⾏操作int ShopCartMenu();//打印购物车菜单void ShowCart();//显⽰购物列表void add();//在购物车⾥添加商品建⽴库存函数void CreateGoods(){//⼿动建⽴库存信息FILE *fp;//定义⽂件指针int i;printf("请输⼊需要录⼊的商品个数:\n");scanf("%d",&n);//输⼊数量printf("请依次输⼊货物信息:\n");printf("--------------------------------------------\n");for(i=0;i<n;i++){//向⽂件中写⼊信息printf("第%d个商品:\n",i+1);printf("货号:");fflush(stdin);//清空输⼊流gets(goods[i].ID);//输⼊货号printf("品名:");fflush(stdin);//清空输⼊流gets(goods[i].brand);//输⼊品名printf("进价: ");fflush(stdin);//清空输⼊流scanf("%lf",&goods[i].inprice);//输⼊进价printf("售价:");fflush(stdin);//清空输⼊流scanf("%lf",&goods[i].outprice);//输⼊售价printf("数量:");fflush(stdin);//清空输⼊流scanf("%d",&goods[i].storage);//输⼊数量printf("保质期:");fflush(stdin);//清空输⼊流gets(goods[i].date);//输⼊货号printf("\n");}if((fp=fopen("kucun.txt","w"))==NULL){//判断⽂件是否创建失败printf("创建⽂件失败。

C#实现简单超市收银系统

C#实现简单超市收银系统

C#实现简单超市收银系统本⽂实例为⼤家分享了C#实现简单超市收银系统的具体代码,供⼤家参考,具体内容如下今天使⽤⼀直学习的抽象类等做了个简单的超市收银系统,不难,不过⾥⾯的逻辑要理清楚。

⾸先我们要知道我们要实现的功能。

超市⼀般有仓库,有收银台,有各种各样的商品,每⼀个商品都有Name,Price,Count等属性。

我们可以写⼀个抽象⽗类,这样我们才能将每件商品属性设置⼀样。

新建⼀个ProduckFather类作为商品的⽗类并将属性和构造函数写好,每次新建商品时写好参数就会⽅便很多abstract class ProduckFather{private string _name;private double _price;private int _count;private string _id;public string Name { get => _name; set => _name = value; }public double Price { get => _price; set => _price = value; }public int Count { get => _count; set => _count = value; }public string Id { get => _id; set => _id = value; }public ProduckFather(string name,double price,int count){ = name;this.Price = price;this.Count = count;}}```接下来创造⾃⼰的商品,这⾥只举Apple⼀个例⼦,不在重复代码```csharpclass Apple:ProduckFather{public Apple(string name,double price,int count):base(name,price,count){}}接下来就是仓库类了,这⼀部分是个重点,他要实现存储的功能,那么我们⽤什么来存储呢?我们既要存不同种类的物品,数量也不会相同,⾸选是list(集合)或dictionary(键值对),问题是集合存储虽然容易,想要拿到固定的东西却⽐较复杂list就相当于是⼀个⼤仓库,虽然什么东西都能存储,但是每次找东西都要翻半天,所以我们可以使集合中每⼀个元素都是⼀个集合,⽽且这个集合必须是⽗类类型的,不然⽆法装有其他类型的物品。

C语言超市收银管理系统实现详解

C语言超市收银管理系统实现详解

超市收银管理程序的设计与实现1摘要和关键字1.1摘要该系统主要用于超市商品管理人员对于商品的信息(包括商品号、商品名、单价)进行输入、删除、修改和查询。

除此之外,当销售人员输入商品号及销售数量时,系统应计算应收钱数,并根据实际收银计算找零数量。

最后,系统能对销售情况进行查询。

AbstractThe system is mainly used in the supermarket goods management personnel of the product information (including commodity number, name of goods, unit price) input, delete, modify, and query. In addition, when sales staff input article number and sales volume, the system should be calculated according to the actual amount receivable, and cashier calculation quantity change. Finally, the system can inquire the sales situation.1.2 关键字登陆系统操作菜单建立信息库查询付款KeywordsLogin system Operation menu Set up information database Inquire Pay2 正文2.1 引言随着经济的发展,人们每天接触并且需要处理的信息越来越多,人们就需要寻求一个工具来实现信息的管理和处理。

尤其是超市里,需要管理各种商品的数目及销售情况,而超市收银管理程序则是针对这种问题而产生的,系统能够实现对商品信息的录入、修改、查询、删除操作,并且在销售时能计算出应收钱数,并能根据实际收钱而计算找零,最后能对销售情况进行查询。

C语言课程设计—超市收银课设

C语言课程设计—超市收银课设

课程设计报告课程名称《C语言程序设计》课题名称超市收银系统的设计与实现专业统计学班级1201班学号************姓名马游指导教师杨子华陈世清李杰君2013年5月20日湖南工程学院课程设计任务书课程名称《C语言程序设计》课题超市收银系统的设计与实现专业班级统计1201班学生姓名马游学号************指导老师杨子华陈世清李杰君审批任务书下达日期2013 年5月20日任务完成日期2013年6月23 日目录1.系统需求分析 (1)1.1系统要求1.2功能要求2.总体设计 (1)2.1模块划分2.2系统功能模块图2.3模块功能说明2.4商品函数数据类型3.详细设计 (3)3.1商品进货流程图3.2商品修改流程图4.程序调试分析 (4)5.总结 (9)6.系统使用说明 (9)附件:源程序清单1.系统需求分析1.1系统要求:实现对超市商品的收银以及各项数据的显示、查询、修改、排序等操作的管理。

1.2功能要求:1)本系统采用一个结构体数组,数据的结构应当包括:商品编号、商品名称、单价、库存量、购买量、总价、成本、利润。

2)本系统显示这样的菜单:请选择系统功能项:a、收银b、数据查询c、数据管理⑴入库⑵删除⑶修改d、利润统计⑴按类统计利润并排序⑵统计总利润e、退出系统3)执行一个具体的功能之后,程序将重新显示菜单。

4)将数据保存到文件中。

5)进入系统前要求先输入密码2.总体设计2.1模块划分首先输入管理员的账号、密码,成功登入系统,然后系统模块分为“商品管理”、“商品销售”、“查看利润”三个部分。

商品管理又包含:商品进货,商品添加,商品浏览,商品搜索,商品删除,商品修改或返回上一级。

2.2系统功能模块图2.3模块功能说明(1).登入模块:输入账号,密码登入。

(2).商品管理模块:对商品条形码,名称,单价,库存量,购买量,成本价,利润等信息录入的管理。

还可对已建立的商品信息进行查询,并且可根据需要选择按商品名查询或按商品种类查询或按商品进货量查询。

超市管理系统c实现

超市管理系统c实现

超市管理系统c实现#include<stdio.h>#include<malloc.h>#include<string.h>typedef struct goods{char Name[10];char num[10];char prd_date[10];char sf_date[10];float price;char unit[20];char number[3];struct goods *next;}goods;void Lulu(int i,goods *t,goods *q);void shuchu(goods *t);void xiugai(char *ch,goods *t);void chaxun(char *ch,goods *t);void add(goods *t);void shanchu(goods *t);void main(){goods head,*p,*q;int i,t,m;char num[10];head.next=NULL;i=0;printf("1录入商品的信息\n");printf("请输入要录入商品的个数:\n");scanf("%d",&t);while(i<t){q=&head;p=(goods*)malloc(sizeof(goods));p->next=NULL;Lulu(i,p,q);while(q->next)q=q->next;q->next=p;i++;}printf("请选择您所需要的功能:\n");printf("2查看所有商品\n");printf("3修改商品信息\n");printf("4查询信商品信息\n");printf("5增加新商品信息\n");printf("6删除商品信息\n");printf("0退出程序\n");scanf("%d",&m);while(m!=0){q=&head;if(m==2){while(q->next){q=q->next;shuchu(q);}printf("请选择您所需要的功能:\n"); printf("2查看所有商品\n");printf("3修改商品信息\n");printf("4查询信商品信息\n");printf("5增加新商品信息\n");printf("6删除商品信息\n");printf("0退出程序\n");}if(m==3){printf("请输入要修改商品的编号:\n");scanf("%s",&num);xiugai(num,q);}if(m==4){printf("请输入要查询商品的编号:\n");scanf("%s",num);chaxun(num,q);}if(m==5){add(q);}if(m==6){shanchu(q);}scanf("%d",&m);}}void Lulu(int i,goods *t,goods *q){int flag;goods* l;printf("请输入第%d个商品的编号:\n",i+1);while(1){l=q;flag=0;scanf("%s",t->num);while(l){if(!strcmp(l->num,t->num)){printf("输入的编号已存在,请重新输入\n");flag=1;break;}l=l->next;}if(!flag) break;}printf("请输入第%d个商品的名称:\n",i+1);scanf("%s",t->Name);printf("请输入第%d个商品的生产日期:\n",i+1);scanf("%s",t->prd_date);printf("请输入第%d个商品的保质期:\n",i+1);scanf("%s",t->sf_date);printf("请输入第%d个商品的价格:\n",i+1);scanf("%f",&t->price);printf("请输入第%d个商品的单位:\n",i+1);scanf("%s",t->unit);printf("请输入第%d个商品的所属柜组:\n",i+1);scanf("%s",t->number);}void shuchu(goods *t){printf("商品的编号:%s\n",t->num);printf("商品的名称:%s\n",t->Name);printf("商品的生产日期:%s\n",t->prd_date);printf("商品的保质期:%s\n",t->sf_date);printf("商品的价格:%.2f元\n",t->price);printf("商品的单位:%s\n",t->unit);printf("商品所属柜组:%s\n",t->number);printf("\n\n");}void xiugai(char *ch,goods *t){int i,m,flag=1;t=t->next;while(t){if(strcmp(t->num,ch)==0){flag=0;break;}elset=t->next;}if(flag==1){printf("编号不存在,请选择0退出修改重新选择修改商品信息,重新输入编号");}while(1){printf("请选择要修改的商品的信息\n");printf("1修改商品的编号\n");printf("2修改商品的名称\n");printf("3.修改商品的价格\n");printf("4.修改商品的单位\n");printf("5.修改商品所属柜组\n");printf("输入0结束修改\n");scanf("%d",&m);i=m;if(i==1){printf("请输入商品的新编号:\n");scanf("%s",t->num);}if(i==2){printf("请输入商品的新名称:\n");scanf("%s",t->Name);}if(i==3){printf("请输入商品的新价格:\n");scanf("%f",&t->price);}if(i==4){printf("请输入商品的新单位:\n");scanf("%s",t->unit);}if(i==5){printf("请输入商品所属的新柜组:\n");scanf("%s",t->number);}if(i==0)break;}printf("请选择您所需要的功能:\n");printf("2查看所有商品\n");printf("3修改商品信息\n");printf("4查询信商品信息\n");printf("5增加新商品信息\n");printf("6删除商品信息\n");printf("0退出程序\n");}void chaxun(char *ch,goods *t){int flag=1;t=t->next;while(t){if(strcmp(t->num,ch)==0){flag=0;break;}t=t->next;}if(flag==1){printf("编号不存在,重新输入编号");}elseshuchu(t);printf("请选择您所需要的功能:\n");printf("2查看所有商品\n");printf("3修改商品信息\n");printf("4查询信商品信息\n");printf("5增加新商品信息\n");printf("6删除商品信息\n");printf("0退出程序\n");}void add(goods *t){goods *q,*p;int flag,word=1;q=(goods*)malloc(sizeof(goods));while(word){p=t;flag=0;printf("请输入要增加的商品的编号:\n");scanf("%s",q->num);while(p->next){if(strcmp(p->next->num,q->num)==0){flag=1;break;}p=p->next;}if(flag==1){printf("商品编号有重复,请重新输入商品的编号\n");continue;}elseword=0;printf("请输入商品的名称:\n");scanf("%s",q->Name);printf("请输入商品的生产日期:\n");scanf("%s",q->prd_date);printf("请输入商品的保质期:\n");scanf("%s",q->sf_date);printf("请输入商品的价格:\n");scanf("%f",&q->price);printf("请输入商品的单位:\n");scanf("%s",q->unit);printf("请输入商品所属柜组:\n");scanf("%s",q->number);}p=t;while(p->next){if(strcmp(p->next->num,t->num)>0)break;elsep=p->next;}q->next=p->next;p->next=q;printf("请选择您所需要的功能:\n");printf("2查看所有商品\n");printf("3修改商品信息\n");printf("4查询信商品信息\n");printf("5增加新商品信息\n");printf("6删除商品信息\n");printf("0退出程序\n");}void shanchu(goods *p){goods *q,*t;char num[10];q=p;printf("请输入要删除的商品编号:\n");scanf("%s",num);while(q->next)if(strcmp(q->next->num,num)==0)break;else q=q->next;if(q->next){t=q->next;q->next=q->next->next;free(t);}elseprintf("没有该编号的商品");printf("请选择您所需要的功能:\n");printf("2查看所有商品\n");printf("3修改商品信息\n");printf("4查询信商品信息\n");printf("5增加新商品信息\n");printf("6删除商品信息\n");printf("0退出程序\n");}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

超市收银管理程序的设计与实现1摘要和关键字1.1摘要该系统主要用于超市商品管理人员对于商品的信息(包括商品号、商品名、单价)进行输入、删除、修改和查询。

除此之外,当销售人员输入商品号及销售数量时,系统应计算应收钱数,并根据实际收银计算找零数量。

最后,系统能对销售情况进行查询。

AbstractThe system is mainly used in the supermarket goods management personnel of the product information (including commodity number, name of goods, unit price) input, delete, modify, and query. In addition, when sales staff input article number and sales volume, the system should be calculated according to the actual amount receivable, and cashier calculation quantity change. Finally, the system can inquire the sales situation.1.2 关键字登陆系统操作菜单建立信息库查询付款KeywordsLogin system Operation menu Set up information database Inquire Pay2 正文2.1 引言随着经济的发展,人们每天接触并且需要处理的信息越来越多,人们就需要寻求一个工具来实现信息的管理和处理。

尤其是超市里,需要管理各种商品的数目及销售情况,而超市收银管理程序则是针对这种问题而产生的,系统能够实现对商品信息的录入、修改、查询、删除操作,并且在销售时能计算出应收钱数,并能根据实际收钱而计算找零,最后能对销售情况进行查询。

2.2 需求分析(1)销售人员能对商品信息(商品号、商品名、单价)进行输入,建立商品信息库。

(2)输出商品信息库中全部商品的信息(商品号、商品名、售价、数量),并且输出所购商品清单。

(3)销售人员根据顾客需求录入所购商品的商品号及数量,并能实现所购商品的数量修改以及商品删除。

(4)根据所购商品的数量及单价计算出应付钱数,并根据实际收钱数目计算找零数目,并输出。

(5)销售人员通过此程序能查询销售情况,输出商品的信息(商品号、商品名、单价、剩余数量),并计算卖出商品的获利情况。

2.3 数据结构设计struct good goods[N]:总体商品信息数组,全局变量struct good buy_g[j]:所购商品信息数组,全局变量Int j:累计所购商品种类Int select:操作选项build():建立商品信息库函数display():输出商品信息库中信息函数buy():购买商品函数money():计算应付钱数和找零函数add():添加所购商品函数(add()函数子函数)check():查看销售情况函数fp:指向文件的指针total():应付钱数pay():实收钱数2.4 算法设计该系统主要包括登陆系统、商品信息库建立系统、商品信息库输出系统、购物系统、结账系统以及销售情况查询系统。

其中购物系统包括商品添加及显示系统、修改购买商品系统以及删除购买商品系统,逻辑结构清晰,使用方便。

2.4.1 登陆系统登陆系统由销售人员操作,是系统选择门户,其中选择1则执行商品信息库建立的操作,选择2执行商品信息库输出操作,选择3执行购物操作,选择4执行结账操作,选择5执行销售情况查询操作。

void main(){void build(),display(),buy(),money();void add(),check();int select;printf("***************************\n");printf("1.建立商品信息库\n");printf("2.输出商品信息\n");printf("3.购买商品\n");printf("4.结账\n");printf("5.查看销售情况\n");printf("6.退出\n");printf("***************************\n");while(1){printf("请输入选择序号\n");scanf("%d",&select);if(select<1||select>6){printf("输入有误,请重新输入\n");}elseswitch(select){case 1:build();continue;case 2:display();continue;case 3:buy();continue;case 4:money(j);continue;case 5:check();continue;case 6:printf("谢谢使用。

\n");exit(0);}}}2.4.2 商品信息库建立系统由工作人员操作,用于录入超市商品的信息(商品序号、商品名、进价、售价、数量),并建立商品信息库。

void build(){FILE *fp;int i;printf("请依次输入商品信息\n");for( i=0;i<N;i++){printf("商品序号:");scanf("%s",goods[i].num);printf("商品名:");scanf("%s",goods[i].name);printf("进价:");scanf("%f",&goods[i].in_price);printf("售价:");scanf("%f",&goods[i].out_price);printf("数量:");scanf("%d",&goods[i].amount);}if((fp=fopen("goods","w"))==NULL){printf("can't open the file\n");return;}fwrite(goods,sizeof(struct good),N,fp);fclose(fp);printf("***************************\n");}2.4.3 商品信息库输出系统商品信息库输出系统用于输出超市所有商品信息,用于检查商品信息录入是否有误。

void display(){int i;FILE *fp;if((fp=fopen("goods","r"))==NULL){printf("can't open the file\n");return;}for(i=0;fread(goods+i,sizeof(struct good),1,fp)!=0;i++){printf("商品序号商品名售价数量\n");printf("%5s\t%7s\t%8.2f\t%d\n",goods[i].num,goods[i].name,goods[i].out_price,goods[i] .amount);printf("***************************\n");}fclose(fp);}2.4.4 购物系统用于顾客购买商品时操作,通过录入商品序号实现查找,其中包括购买商品及显示系统、修改系统及删除系统三个子函数。

选择1执行购买商品及显示操作,选择2执行修改商品数量操作,选择3执行删除操作,选择4退出,返回上一层。

void buy(){int menu();void add();void revise();void show();void del();while(1){switch(menu()){case 1:add();show();break;case 2:revise();break;case 3:del();break;case 4:printf("***************************\n");printf("1.建立商品信息库\n");printf("2.输出商品信息\n");printf("3.购买商品\n");printf("4.结账\n");printf("5.查看销售情况\n");printf("6.退出\n");printf("***************************\n");return;}}}int menu (){int choose;printf("***************************\n");printf("1.购买商品\n");printf("2.修改数量\n");printf("3.删除商品\n");printf("4.退出\n");printf("***************************\n");printf("请选择操作序号\n");while(scanf("%d",&choose)){if(choose<1||choose>5){printf("输入错误,请重新输入!\n");continue;}else break;}return choose;}2.4.4.1 商品添加及显示系统通过输入商品序号并且与商品信息库中数据比较实现查找,并输出所选商品的信息(商品号、商品名、售价、数量),在输入所购数量后,存入buy_g[]数组中存储,并且显示出所购商品的信息以及购买数量。

相关文档
最新文档