c语言课程设计-小型超市管理系统
- 格式:doc
- 大小:306.50 KB
- 文档页数:46
实验题目:超市管理系统一、实验目的1.熟悉 c 语言的编译连接和运行过程。
2.掌握 c 语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。
3.掌握if 语句及switch 语句的运用方法及嵌套应用方法。
4.掌握实现循环结构的三种语句while 、do-while. 、for 的使用。
5.掌握函数的定义方法和调用方法。
6.能够采用模块化思想调试程序。
二.实验内容1.编写程序并进行调试运行。
2.输入商品资料,并保存于文件。
每件商品包含信息如:商品号、商品名、商品类别、商品总量、商品上限和下限、商品价格、进货日期、生产日期、保质期等。
3.对已存入的商品信息进行更新操作,包括添加一件商品信息、删除某件商品信息和修改商品信息。
4.通过按商品名、商品种类、商品进货量的方式查询商品信息。
5.输入某商品号后对其利润进行统计、对进货价格相同的商品进行统计。
6 对商品的库存量和利润进行排序。
7.最后输出商品信息,供需要时打印。
二、需求分析1.该程序可用于对商品的基本信息的存储、更新、查询、输出、统计、排序等操作,以实现管理者对商品的管理和消费者对商品的了解。
2.其中更新功能包括:添加信息、删除信息、修改信息、可根据需要添加一个或多件商品信息,也可对个别商品信息进行适当的删除或修改。
以便随时更新商品信息。
3.程序中设计的查询功能可根据需要从若干数据中查询某件商品信息,并且可根据三种不同的方法查询:按商品名查询、按商品种类查询和按商品进货量查询。
以满足不同的需要。
四、概要设计1、方案设计对系统进行分析,给出结构图分析:系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计—自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计结构图如下:超市管理管理系统查询模块排序模块退出系统退出系统查询模块排序模块统计模块*更新模块*输出信息¥录入信息按商品名查询利润排行库存量排行退出系统第二类商品第一类商品退出系统2 •功能模块说明:对各个模块进行功能的描述(1).输入模块:录入需要管理的商品信息并将信息保存于文件中,以方便日后进行打印、读取、更新等操作。
超市收银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 课程设计一、课程目标知识目标: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语言课程设计超市管理系统一、教学目标本节课的教学目标是使学生掌握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程序,实现自己的梦想和未来!。
c语言课程设计小型超市一、教学目标本节课的教学目标是让学生掌握C语言编程的基本概念和技能,通过编写一个小型超市管理系统,使学生能够理解和运用C语言的基本数据类型、控制结构、函数等知识,培养学生的编程思维和解决问题的能力。
具体来说,知识目标包括:1.掌握C语言的基本数据类型(整型、浮点型、字符型等);2.理解C语言的控制结构(顺序结构、分支结构、循环结构等);3.掌握C语言的函数定义和调用。
技能目标包括:1.能够使用C语言编写简单的程序;2.能够运用C语言的基本数据类型和控制结构解决问题;3.能够编写和调用函数,实现模块化编程。
情感态度价值观目标包括:1.培养学生的编程兴趣,提高学生对计算机科学的热爱;2.培养学生的团队合作意识,学会与他人交流和分享;3.培养学生的创新精神,鼓励学生积极探索和解决问题。
二、教学内容本节课的教学内容主要包括C语言的基本数据类型、控制结构、函数等知识。
具体安排如下:1.引入小型超市管理系统的背景,引导学生思考如何用C语言实现超市的管理;2.讲解C语言的基本数据类型,让学生了解整型、浮点型、字符型等数据类型的使用;3.介绍C语言的控制结构,包括顺序结构、分支结构和循环结构,并通过实例让学生掌握这些结构的运用;4.讲解C语言的函数定义和调用,让学生了解如何编写和调用函数,实现模块化编程。
为了激发学生的学习兴趣和主动性,本节课将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。
具体安排如下:1.采用讲授法讲解C语言的基本数据类型、控制结构和函数等知识,让学生掌握基本概念;2.通过案例分析法,让学生分析小型超市管理系统的需求,引导学生思考如何用C语言实现系统功能;3.学生进行小组讨论,让学生共同探讨问题的解决方案,培养学生的团队合作意识;4.利用实验法,让学生动手编写和调试程序,提高学生的编程能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:《C程序设计语言》(K&R);2.参考书:《C Primer Plus》(Deitel & Deitel);3.多媒体资料:教学PPT、视频教程等;4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)。
程序设计——超市管理系统学院:专业:班级:姓名:学号:指导老师:超市管理系统课程设计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程序,实现自己的梦想和未来!如有侵权请联系告知删除,感谢你们的配合!。
小型超市管理系统课程设计一、课程目标知识目标:1. 让学生理解小型超市管理系统的基本概念、功能模块及其运行原理;2. 掌握数据库管理、商品信息录入、查询、修改和删除等基本操作;3. 了解系统安全与权限设置的相关知识。
技能目标:1. 培养学生运用所学知识设计小型超市管理系统各功能模块的能力;2. 提高学生实际操作数据库、处理商品信息的能力;3. 培养学生分析问题、解决问题的能力。
情感态度价值观目标:1. 培养学生对计算机信息管理的兴趣,激发学习积极性;2. 培养学生的团队协作精神,提高沟通与交流能力;3. 增强学生的信息安全意识,树立正确的价值观。
课程性质:本课程为信息技术课程,结合实际案例,培养学生的动手操作能力和实际问题解决能力。
学生特点:学生具备一定的计算机操作基础,对数据库管理有一定了解,但实际应用能力有待提高。
教学要求:注重理论与实践相结合,以学生为主体,教师引导学生主动探究、实践,提高学生的综合能力。
通过本课程的学习,使学生能够将所学知识应用于实际生活,提高小型超市管理效率。
课程目标分解为具体学习成果,以便于后续教学设计和评估。
二、教学内容1. 小型超市管理系统概述- 系统需求分析- 功能模块划分2. 数据库设计- 数据库基本概念- 表的设计与创建- 数据完整性约束3. 商品信息管理- 商品信息录入- 商品信息查询、修改与删除- 商品分类管理4. 系统安全与权限设置- 用户登录与验证- 用户权限分配- 系统安全策略5. 系统实现与测试- 系统功能模块实现- 数据库操作实现- 系统测试与优化6. 实践项目:小型超市管理系统设计与实现- 项目需求分析- 系统设计与实现- 系统测试与评价教学内容安排与进度:第一周:小型超市管理系统概述、数据库设计第二周:商品信息管理、系统安全与权限设置第三周:系统实现与测试、实践项目启动第四周:实践项目实施与指导第五周:实践项目展示与评价教材章节关联:本教学内容与教材中数据库应用、信息管理系统设计等章节相关联,结合实际案例,使学生能够学以致用,提高综合应用能力。
c 超市管理系统课程设计一、课程目标知识目标:1. 了解超市管理系统的基本概念和功能模块;2. 掌握数据库设计的基本原则,能运用实体关系模型进行数据库设计;3. 学会使用一种编程语言(如Python)实现超市管理系统的功能。
技能目标:1. 能够分析超市业务需求,设计出合理的数据库结构;2. 能够编写程序实现商品信息、库存管理、销售管理等基本功能;3. 能够运用所学的知识解决实际超市管理问题,具备一定的项目实践能力。
情感态度价值观目标:1. 培养学生主动学习和探究问题的兴趣,激发学生学习计算机技术的热情;2. 培养学生团队协作精神,提高沟通与交流能力;3. 增强学生对信息技术在实际生活中的应用意识,认识到所学知识的社会价值。
课程性质:本课程为信息技术学科,结合学生年级特点,注重理论与实践相结合,强调学生的动手实践能力。
学生特点:学生具备一定的计算机操作基础,对编程有一定了解,但项目实践经验不足。
教学要求:结合课程性质、学生特点,通过项目驱动的教学方法,引导学生主动参与教学活动,培养实际操作能力。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. 超市管理系统概述:介绍超市管理系统的基本概念、功能模块及其在实际生活中的应用。
相关教材章节:第一章 超市管理系统简介2. 数据库设计:讲解数据库设计的基本原则,引导学生运用实体关系模型进行数据库设计。
相关教材章节:第二章 数据库设计基础3. 编程语言基础:复习Python编程基础,为后续实现超市管理系统功能做准备。
相关教材章节:第三章 Python编程基础4. 超市管理系统功能实现:(1)商品信息管理:实现商品信息的增加、删除、修改和查询功能。
相关教材章节:第四章 商品信息管理(2)库存管理:实现库存的入库、出库、库存查询等功能。
相关教材章节:第五章 库存管理(3)销售管理:实现销售数据的录入、查询、统计分析等功能。
相关教材章节:第六章 销售管理5. 项目实践:指导学生分组进行超市管理系统的设计与实现,培养学生团队协作和实际操作能力。
c 超市管理系统课程设计一、课程目标知识目标:1. 让学生理解超市管理系统的基本概念和功能,掌握系统的基本操作流程。
2. 使学生了解并掌握超市商品分类、库存管理、销售管理等核心环节的基本原理。
3. 帮助学生掌握超市管理系统数据库的相关知识,如数据表设计、查询和更新操作。
技能目标:1. 培养学生运用所学知识设计并实现一个简单的超市管理系统,提高实际操作能力。
2. 培养学生分析问题、解决问题的能力,能针对超市管理系统的实际问题提出合理的解决方案。
3. 提高学生的团队协作能力,通过小组合作完成课程项目。
情感态度价值观目标:1. 培养学生对超市管理系统课程的学习兴趣,激发其探索精神和创新意识。
2. 培养学生严谨、认真的学习态度,使其认识到知识在实际工作中的应用价值。
3. 增强学生的社会责任感,使其认识到超市管理系统在提高企业效率、降低成本、提升消费者体验等方面的重要性。
本课程针对高年级学生,结合学科特点和教学要求,旨在使学生通过学习超市管理系统课程,掌握相关知识技能,培养实际操作能力,提高团队协作水平,同时注重培养学生的情感态度价值观,为未来从事相关工作打下坚实基础。
二、教学内容1. 超市管理系统概述:介绍超市管理系统的基本概念、功能、发展及应用场景,使学生了解课程背景及意义。
教材章节:第一章 超市管理系统的概念与发展2. 超市商品管理:讲解商品分类、编码、库存管理等知识点,使学生掌握商品管理的基本原理。
教材章节:第二章 超市商品管理3. 超市销售管理:分析销售管理环节,包括销售订单、销售退货、销售统计等,帮助学生了解销售管理流程。
教材章节:第三章 超市销售管理4. 超市库存管理:探讨库存管理的基本原理,包括库存盘点、库存预警、补货策略等,使学生掌握库存管理方法。
教材章节:第四章 超市库存管理5. 超市管理系统数据库:介绍数据库的基本概念、设计方法,以及SQL语言的使用,让学生掌握数据库操作技能。
教材章节:第五章 超市管理系统数据库6. 超市管理系统实践:指导学生运用所学知识,设计并实现一个简单的超市管理系统,培养学生的实际操作能力。
超市管理系统本设计运用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语言程序设计超市管理系统目录第一章课程设计目的要求设计目的 (3)设计要求 (3)设计思路 (3)第二章课程设计任务内容课程设计题目 (3)课程设计任务 (4)设计内容 (4)各组员任务 (4)第三章详细设计说明系统模块图 (4)主要函数定义 (5)主函数 (5)其他函数 (7)结构体的建立和文件的使用 (8)结构体的建立 (8)文件的使用 (9)第四章课程设计心得与体会 (10)附录·程序源代码参考文献第一章课程设计目的要求设计“超市管理系统”的主要目的是锻炼学生综合运用所学的 C 语言程序设计知识的能力,独自利用 C 语言知识编写承训解决实际问题的能力,培养同学严谨的工作态度和良好的程序设计习惯,让同学们认识到必须重视实践环节,多读程序,多编写程序,多上机实践。
进一步培养结构化程序设计的思想,加深对高级语言要素和控制结构的理解。
通过课程设计的训练,学生能够了解程序设计的基本开发过程,掌握编写、调试和测试 C 语言程序的基本过程,掌握程序设计的技巧的大体流程。
本次程序设计主要侧重于知识的运用,把平时学到的运用到实践中去。
设计目标:1.熟悉c语言的编译连接和运行过程。
2.掌握c语言的数据类型,熟悉整型、实型、字符型变量的定义方式及如何给它们赋值。
3.掌握if语句及switch语句的运用方法及嵌套应用方法。
4.掌握实现循环结构的三种语句while、 do-while.、for 的使用。
5.掌握函数的定义方法和调用方法。
6.能够采用模块化思想调试程序。
7.指针和文件的使用,结构体的使用设计要求:1. 源程序要有适当的注释,使程序容易阅读。
2. 必须用结构体和文件等数据结构。
3. 程序的运行结果要求使用文件作备份。
4. 至少输出一份报表,鼓励自行增加新功能。
第二章课程设计任务内容课程设计题目超市管理系统课程设计任务系统为超市管理系统,在此系统当中需要用到许多函数,包括系统函数以及自定义的函数,在这个系统当中,总共分为五个模块:管理员登陆、客户信息管理、商品管理、购物结算、销售结算。
超市管理系统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语言进行简单的程序设计,掌握数据结构的基本操作,以及运用面向对象编程思想进行软件开发。
情感态度价值观目标则是培养学生对计算机科学的兴趣和热情,提高他们的问题解决能力和团队合作意识。
通过对本节课的学习,学生将了解超市管理系统的设计原理,掌握C语言编程方法,培养实际操作能力,提高对计算机科学的兴趣和热情。
二、教学内容本节课的教学内容主要包括超市管理系统的基本概念、C语言编程基础、数据结构的基本操作以及面向对象编程思想。
首先,介绍超市管理系统的基本概念,包括系统架构、功能模块和设计原则。
然后,通过C语言编程实例,使学生掌握C语言的基本语法、数据类型、运算符、控制结构等编程基础。
接下来,讲解数据结构的基本操作,如链表、栈、队列等,并引导学生运用这些数据结构实现超市管理系统的相关功能。
最后,引入面向对象编程思想,让学生了解类、对象、封装、继承等基本概念,并运用面向对象的方法设计超市管理系统。
三、教学方法为了激发学生的学习兴趣和主动性,本节课将采用多种教学方法,如讲授法、讨论法、案例分析法和实验法等。
首先,通过讲授法向学生传授超市管理系统的基本概念、C语言编程基础和数据结构的基本操作。
然后,运用讨论法引导学生探讨面向对象编程思想的优点和适用场景,以及如何在超市管理系统中运用这一思想。
接下来,通过案例分析法分析具体的超市管理系统案例,让学生了解实际应用中的问题和解决方案。
最后,利用实验法让学生动手实践,编写简单的超市管理系统程序,提高实际操作能力。
四、教学资源本节课的教学资源包括教材、参考书、多媒体资料和实验设备。
教材和参考书将提供超市管理系统的基本概念、C语言编程方法和数据结构的基本操作等知识,为学生学习提供理论支持。
多媒体资料将通过图片、视频等形式展示超市管理系统的实际应用场景,帮助学生更好地理解课程内容。
超市会员管理系统c 课程设计一、课程目标知识目标:1. 让学生掌握超市会员管理系统的基本概念和功能模块;2. 使学生了解数据库在会员管理系统中的应用,包括数据表的设计、数据查询与更新;3. 帮助学生理解会员管理系统中业务逻辑与数据之间的关系。
技能目标:1. 培养学生运用所学知识设计并实现一个简单的超市会员管理系统;2. 提高学生在实际问题中分析需求、设计数据库和编写代码的能力;3. 培养学生通过小组合作、沟通与协作解决问题的能力。
情感态度价值观目标:1. 培养学生对计算机科学和信息技术的兴趣,激发他们探索未知、创新实践的热情;2. 培养学生具备良好的团队合作精神,学会尊重他人、倾听意见、分享成果;3. 培养学生关注社会热点问题,认识到信息技术在现实生活中的应用价值。
课程性质:本课程为信息技术学科的教学内容,旨在让学生结合实际生活中的会员管理系统,运用所学编程知识和数据库技能进行实际操作。
学生特点:本课程针对初中年级学生,他们已经具备一定的计算机操作能力和编程基础,对新鲜事物充满好奇,喜欢动手实践。
教学要求:在教学过程中,要注重理论与实践相结合,关注学生的个体差异,提供个性化的指导与帮助。
同时,鼓励学生积极参与小组讨论,培养他们的团队协作能力。
通过本课程的学习,使学生在知识、技能和情感态度价值观方面均取得具体、可衡量的成果。
二、教学内容1. 会员管理系统的基本概念:介绍超市会员管理系统的定义、功能及在实际生活中的应用。
相关教材章节:第一章 计算机管理系统概述2. 数据库设计与实现:讲解数据库在会员管理系统中的重要性,学习如何设计数据表、建立关系及进行数据查询与更新。
相关教材章节:第二章 数据库设计基础;第三章 SQL语言3. 编程实现会员管理系统:结合所学编程知识,设计并实现一个简单的会员管理系统。
相关教材章节:第四章 程序设计基础;第五章 面向对象编程4. 项目实践:分组进行项目实践,让学生动手设计并实现一个超市会员管理系统,包括需求分析、数据库设计、编程实现等环节。
摘要该系统主要是介绍超市进销存管理信息系统的环境、功能作用、所用到的语言、设计的方案等各方面的内容。
主要是让使用者了解此系统,使他们能更好的运用本系统,使此系统发挥出应有的作用。
本系统运用计算机管理信息技术,对超市的进销存过程进行详细的分析,实现了对超市的进货、出售和库存的科学管理。
本系统主要包括以下几大模块:输入单据:出库、入库、物品清单;查询:数量查询、价格查询、生产地查询。
关键词 : 销售;管理信息系统;C语言AbstractThis text mainly introduces the supermarket and enters to sell such contents of various fields as the environment which stores the management information system , scheme on the function , language , design used ,etc.. Let user find out about system this , enable them fine application this system mainly, make this system give play to due function . This system uses the information technology of computer management,sell the course of storing to carry on detailed analysis to the entering of the supermarket, have realized the purchase , sale and scientific management held in store to the supermarket.This system is major and includes following several big modules : The input receipts : The warehouse is gone out to be put in storage that the product end product detailed list is inquired about : The report form being put in storage is gone out the report form product end product detailed list report form in warehouse to sell to move back the money list report form to advance.keywords : Sell ; management information system ;C language目录1概述 (1)1.1 设计思想 (1)1.2 设计原则 (1)1.3性能需求 (1)2总体设计 (2)2.1系统功能设计图 (2)2.2系统功能设计 (2)2.2.1 系统颜色模块功能 (3)2.2.2 销售管理模块功能 (3)2.2.3 进货管理模块功能 (3)2.2.4 库存管理模块功能 (3)2.3系统模块的运用方法 (3)2.3.1输入记录模块 (3)2.3.2查询记录模块 (3)2.3.3输出记录模块 (3)3详细设计使用 (4)3.1数据定义 (4)3.2主函数流程图 (5)3.3源程序 (7)4调试分析 (8)4.1进入主界面 (8)4.2 系统菜单界面 (8)4.3 商品信息查询窗口 (10)5总结 (11)参考文献 (12)致谢 (13)附件 (14)1概述1.1 设计思想(1)系统分成几个相对独立的模块,但这些模块都进行集中式管理。
(2)分层的模块化程序设计思想,整个系统采用模块化结构设计作为应用程序,有较强的可操作性和扩展性。
(3)合理的数据设计,在应用系统设计中,相对独立的模块间以数据相互连接,使各模块间的耦合性较低,方便系统运行,提高系统安全性。
1.2 设计原则为了使本系统功能齐全完备,操作简便,最大限度的提高软件的质量,从而满足用户的实际需要,在设计开发过程中遵循了如下原则:(1)合法性原则:依据产品核算系统的工作规定以及要求,参照核算实际的工作情况,进行诸如产品进货、销售等工作。
(2)实用性原则:适合产品信息管理工作的实际需求,并能够处理一些特殊情况的要求,此外,尽可能预留空间,以便扩充功能。
(3)准确性原则:对输入的相关资料建立检错机制,及时报错,使用户能够及时准确的输入合法资料(如:类型匹配,长度不超限等)。
(3)易操作原则:要求设计的系统功能齐全,界面友好,操作方便,必要的地方进行提示。
(5)源程序可读性原则:为了便于其他设计,维护人员读懂代码或以后的代码修改,软件升级维护,即可能做好代码注释工作。
1.3性能需求(1)数据精确度产品的进货单和销售单中,单价、金额采用浮点数,保留至小数点后两位。
2总体设计2.1系统功能设计图图2-1 超市管理系统功能结构2.2系统功能设计系统功能设计是使整个系统能基本实现超市的进、销、存等管理功能,能让超市管理者更直观的了解超市的经营状况,以做出相应的经营决策。
管理信息系统(MIS)就是进行信息的收集、传送、存储、编制成各种凭证、报表、台帐、图形等信息,同时对这些信息进行维护,通过实测超市的各种运行情况,并利用过去的历史数据预测未来的发展,从超市全局的角度出发进行决策,利用信息控制超市的行为,辅助超市完成其目标。
本系统共包括四大模块,分别是系统颜色模块,销售管理模块,进货管理模块,库存管理模块。
每个模块的功能如下:2.2.1 系统颜色模块功能(1)实现系统颜色转换;(2)查看系统颜色;2.2.2 销售管理模块功能(1)实现销售信息的查询;(2)实现商品销售信息的盘点。
2.2.3 进货管理模块功能(1)实现进货信息的查询;(2)实现进货信息的更新,包括增加、删除、修改功能。
2.2.4 库存管理模块功能(1)实现商品信息的查询;(2)实现商品信息的更新,包括增加、删除、修改功能;(3)实现库存信息的查询;(4)实现库存信息的更新,包括增加、删除、修改功能。
2.3系统模块的运用方法2.3.1输入记录模块输入记录模块的功能:输入各种商品的信息;2.3.2查询记录模块查询记录模块的功能:查询各种商品的信息;2.3.3输出记录模块输出记录模块的功能:输出各种商品的信息;3详细设计使用3.1数据定义使用C语言创建的结构体和定义的函数如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>struct produce_node{ int id;char name[20];char produce[30];int number;double price;double price1;struct produce_node *next;};struct ima{ int id;char name[20];char produce[30];int number;double price;double price1;struct ima *next;};void liren();void chushou(int count);void Append();void Selldelete();void Amend();void Findin();void Browse();void colorsetting();void Endprogram();void zonghe();struct produce_node * lianbiao();struct produce_node *Create_produce_Doc();struct produce_node *InsertDoc(struct produce_node *head,struct produce_node *produce);struct produce_node *DeleteDoc(struct produce_node *head,int num);3.2主函数流程图控制整个程序的运行,通过主函数模块分别调用各个模块,实现各项功能,流程图如图3.1所示。
图3.1 主函数流程图3.3源程序见附件4调试分析4.1进入主界面打开系统,进入主界面,显示“欢迎使用超市管理系统”然后使用者可以按任意键进入下一界面,此界面整齐美观,界面友好,是使用者更容易接受。
主界面显示图如图4.1所示。
图4.1主界面4.2 系统菜单界面在主界面按任意键进入系统菜单界面,界面显示“1.......新购商品入库;2………商品信息删除;3………商品信息修改;4………..商品信息查询;5……….商品信息浏览;6……….系统颜色设置;7………应用程序退出;8………...物品价值总和浏览;9…………物品的出售管理;10……….商品的预计利润”使用者可以按相应的数字键进入子系统。
系统菜单界面如图4.2所示。
图4.2系统菜单4.3 商品信息查询窗口在系统菜单按4进入商品信息查询子菜单,输入所查询的商品编号,界面显示的物品信息有“商品编号、商品名称、生产厂家、进口数量、进货价格、出售价格”然后会问你是否继续,继续按Y,不想继续按N。
商品信息查询窗口如图4.3所示。
图4.3 商品信息查询5总结本文共分为五大部分,第一部分简要叙述了计算机科学及IT产业的发展状况和本系统基本概况。
第二,三部分分别按照软件工程的要求出发,首先进行问题定义,解决目标问题,其次进行可行性研究,分别从技术可行性,经济可行性和操作可行性进行分析,然后进行的总体设计和详细设计阐述了如何实现具体功能。
第四部分为系统调试其中包括子模块测试和总体测试。
第五部分为帮助文件和参考文献。
在此次设计当中让我认识到开发一项好的软件不是某一个人就能完成的任务。
一个团队的小组,一个勤奋的小组非常重要,沟通是解决问题的最好办法。
所以小组中的每个成员的能力与协作能力也是至关重要的。
同时,不仅是团队内部的交流,更多需要协调好团队之间的交流。
其次呢,在实习中我了解到,在开发一个项目时一定要先做好规划,按照软件的开发过程,详细地写好每一个必要的文档。
由于开发者能力有限,加上时间仓促,本系统难免会出现一些不足之处,我们深表歉意,如发现还有其它问题,希望老师批评指正。