C语言课程设计-商场商品信息管理系统

合集下载

购物管理系统课程设计c语言

购物管理系统课程设计c语言

购物管理系统课程设计c语言一、教学目标本课程旨在通过购物管理系统的设计与实现,让学生掌握C语言编程的基本技能,培养其逻辑思维能力和问题解决能力。

具体目标如下:•掌握C语言的基本语法和数据结构。

•理解面向对象编程的基本概念。

•学习常用的编程调试技巧。

•能够使用C语言独立完成简单程序的编写与调试。

•学会使用购物管理系统作为案例,进行程序设计。

•培养团队协作和项目管理的技能。

情感态度价值观目标:•培养学生的创新意识和解决问题的决心。

•加强学生对编程语言的兴趣,激发其对计算机科学的热爱。

•培养学生面对编程挑战时的耐心和毅力。

二、教学内容教学内容将依据课程目标进行选择和,确保内容既科学又系统。

具体教学大纲如下:1.C语言基础:–数据类型与变量–运算符与表达式–控制结构(条件语句、循环语句)2.面向对象编程:–继承与多态–封装与抽象3.购物管理系统案例学习:–编码与实现–测试与优化4.编程实践与调试技巧:–常见编程错误分析–调试工具的使用三、教学方法为了激发学生的学习兴趣和主动性,将采用多样化的教学方法:1.讲授法:用于讲解C语言的基础知识和面向对象的理论。

2.案例分析法:通过分析购物管理系统的案例,让学生理解编程实践。

3.实验法:引导学生动手实践,完成系统的设计与实现。

4.讨论法:学生进行团队讨论,培养解决问题的能力和团队协作精神。

四、教学资源教学资源的选择和准备将着重于支持教学内容和教学方法的实施,以及丰富学生的学习体验。

资源包括但不限于:1.教材:选用权威、实用的C语言编程教材。

2.多媒体资料:提供相关的教学视频、演示文稿等。

3.实验设备:确保每个学生都有机会在计算机上进行编程实践。

4.在线资源:利用网络资源,如编程论坛、开源项目等,供学生自主学习和探索。

五、教学评估为了全面反映学生的学习成果,将采取多元化的评估方式:1.平时表现:通过课堂参与度、提问和团队协作等方面评估学生的积极性。

2.作业:布置与课程内容相关的编程作业,评估学生的理解和应用能力。

商品管理系统设计c语言课程设计

商品管理系统设计c语言课程设计

商品管理系统设计c语言课程设计一、教学目标本课程的教学目标是使学生掌握商品管理系统的设计与实现方法,培养学生运用C语言进行软件开发的实际能力。

具体目标如下:1.知识目标:使学生了解商品管理系统的功能和结构,掌握C语言的基本语法和编程技巧,了解数据结构的基本概念。

2.技能目标:培养学生能够使用C语言编写程序,实现商品管理系统的功能,培养学生解决实际问题的能力。

3.情感态度价值观目标:培养学生对软件开发的兴趣,增强学生的团队合作意识和创新精神。

二、教学内容本课程的教学内容主要包括三部分:商品管理系统的需求分析、商品管理系统的软件设计、商品管理系统的实现与测试。

具体安排如下:1.商品管理系统的需求分析:介绍商品管理系统的功能和结构,培养学生分析问题和需求的能力。

2.商品管理系统的软件设计:讲解C语言的基本语法和编程技巧,使学生能够使用C语言进行程序设计。

3.商品管理系统的实现与测试:介绍数据结构的基本概念,培养学生使用C语言实现和测试商品管理系统的能力。

三、教学方法为了实现本课程的教学目标,我们将采用多种教学方法,包括讲授法、案例分析法、实验法等。

具体方法如下:1.讲授法:通过讲解商品管理系统的需求分析、软件设计和实现与测试等方面的知识,使学生掌握课程的基本概念和原理。

2.案例分析法:通过分析实际案例,使学生了解商品管理系统的实际应用,培养学生分析问题和解决问题的能力。

3.实验法:通过上机实验,使学生掌握C语言的编程技巧,培养学生实现和测试商品管理系统的能力。

四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将准备多种教学资源,包括教材、参考书、多媒体资料和实验设备。

具体资源如下:1.教材:选用《C语言程序设计》作为教材,系统地介绍C语言的基本语法和编程技巧。

2.参考书:推荐《数据结构》等参考书,帮助学生深入了解数据结构的基本概念。

3.多媒体资料:制作课件和教学视频,生动形象地展示课程内容,提高学生的学习兴趣。

C语言实训商店商品管理信息系统

C语言实训商店商品管理信息系统
第三部分 课程设计总结…………………………………………………… 1. 个人总结…………………………………………………………………… 2. 结束语……………………………………………………………………
附录 A 程序清单……………………………………………………………… 附录 B 用户使用说明书……………………………………………………… 参考文献…………………………………………………………………………
销售量(用#结束输入):");
scanf("%d",&temp.xsl);
printf("
销售额(用#结束输入):");
scanf("%f",&z);
temp.xse=z;
printf("
剩余数(用#结束输入):");
scanf("%d",&temp.sys);
printf("
毛利(用#结束输入):");
为了实现上述功能,有关语句都应放在 do-while 循环体中。 设计算法时应考虑如何时程序具有容错能力。例如,当用户在应答是否继续时, 如果输入的是合法数据(即 y、Y、n 或 N),则程序继续下一步操作;如果输入 的是非法数据(即 y、Y、n 或 N 以外的字符),则应让用户重新输入,这时需要 在是否继续的问题上加一个循环判断,这种功能常用 do-while 实现。 (4)流程图(如下图所示):
|
1——按原来顺序显示
|
|
2——按销售额高低显示
|
|
3——按毛利高低显示
|
|
4——返回
|
|
0——退出系统
|

C语言商店销售管理系统课程设计

C语言商店销售管理系统课程设计

商店销售管理系统#include <stdio.h>#include <time.h>#define N 1000 //N代表货物的最大种类struct goods{char name[10];//商品名称int amount;//商品数量int num;//商品编号float price;//商品价格}sp[N],sc[N];//定义全局变量int flag=1;FILE *fp;int i=0;int k=0;int b=0;chakan()//显示目前的库存{int zong=0;fp=fopen("chaoshi.txt","r");for(i=1;i<=(k+b);i++)fread(&sp[i],sizeof(struct goods),1,fp);fclose(fp);for(i=1;i<=k;i++){zong=zong+sp[i].num;}if(zong!=0){printf(" 目前库存情况为:名称数量价格编号\n");for(i=1;i<=(k+b);i++){printf(" %s %d %f %d\n",sp[i].name,sp[i].amount,sp[i].price,sp[i].num);}}else printf("\n #####目前库存为#####\n");}jinhuo()//进货模块{do{k++;i++;printf(" 请输入商品的名称.数量.价格.标号(>0)例如:a 1 2.5 111\n\t\t\t");scanf("%s %d %f %d%c",sp[i].name,&sp[i].amount,&sp[i].price,&sp[i]. num);printf(" 是否继续,是(1),否(0)\n\t\t\t");scanf("%d",&flag);}while(flag!=0);fp=fopen("chaoshi.txt","w");for(i=1;i<=k;i++)fwrite(&sp[i],sizeof(struct goods),1,fp);fclose(fp);chakan();}xiaoshou()//销售模块{float m[100];int z=1;int j[100];int a[100];int g=0;int y=0;int h=0;float zong=0;fp=fopen("chaoshi.txt","r");for(i=1;i<=k;i++)fread(&sp[i],sizeof(struct goods),1,fp);fclose(fp);do{g++;y++;loop: printf(" 请输入商品编号和数量,例如:(100 20)\n\t\t\t");scanf("%d %d",&j[y],&a[y]);for(z=1;z<=k;z++){if(j[y]==sp[z].num){h++;sp[z].amount=sp[z].amount-a[y];m[y]=(float)a[y]*sp[z].price;sc[y]=sp[z];}}if(h==0){printf(" 输入有误,请重新输入\n\t\t\t");goto loop;}fp=fopen("chaoshi.txt","wt");for(i=1;i<=k;i++)fwrite(&sp[i],sizeof(struct goods),1,fp);fclose(fp);printf(" 是否继续,是(1),否(0)\n\t\t\t");scanf("%d",&flag);}while(flag!=0);printf("\n############################################\n");printf(" 编号名称单价数量总计\n");for(y=1;y<=g;y++){printf(" %4d%10s%8.2f%6d%13.2f\n",sc[y].num,sc[ y].name,sc[y].price,a[y],m[y]);zong=zong+m[y];}printf(" 您此次一共消费%f 元,欢迎您下次光临\n",zong);shijian();}zengjia()//增加商品数量模块{float m;int z=1;int j[100],a[100];int g=0;int y=0;int zong=0;int h=0;fp=fopen("chaoshi.txt","r");for(i=1;i<=k;i++)fread(&sp[i],sizeof(struct goods),1,fp);fclose(fp);do{g++;y++;loop: printf(" 请输入商品编号和数量,例如:(100 20)\n\t\t\t");scanf("%d %d",&j[y],&a[y]);for(z=1;z<=k;z++){if(j[y]==sp[z].num){h++;sp[z].amount=sp[z].amount+a[y];m=a[y]*sp[z].price;sc[y]=sp[z];}}if(h==0){printf(" 输入有误,请重新输入\n\t\t\t");goto loop;}fp=fopen("chaoshi.txt","wt");for(i=1;i<=k;i++)fwrite(&sp[i],sizeof(struct goods),1,fp);fclose(fp);printf(" 是否继续,是(1),否(0)\n\t\t\t");scanf("%d",&flag);}while(flag!=0);chakan();}shanchu()//删除商品模块{int z;int j[100],a[100];int c=0;int y=0;int h=0;do{c++;loop: printf(" 请输入您想删除的商品编号\n\t\t\t");scanf("%d",&j[y]);for(z=1;z<=k;z++){h++;if(j[y]==sp[z].num)sp[z]=sp[z+1];}if(h==0){printf(" 输入有误,请重新输入\n\t\t\t");goto loop;}fp=fopen("chaoshi.txt","wt");for(i=1;i<=(k-1);i++)fwrite(&sp[i],sizeof(struct goods),1,fp);fclose(fp);printf(" 是否继续,是(1),否(0)\n\t\t\t");scanf("%d",&flag);}while(flag!=0);chakan();}shijian(){struct tm when;time_t now;time(&now);when=*localtime(&now);printf(" %s\n",asctime(&when));}main()//主函数{int choice;do{printf("\n\n\n ********超市管理系统*******\n\n");printf(" 1.进货\n");printf(" 2.销售\n");printf(" 3.增加商品数量\n");printf(" 4.删除商品\n");printf(" 5.查看目前库存\n");printf(" 0.返回主菜单\n");printf(" 请选择您要进行的操作\n\t\t\t");scanf("%d",&choice);switch(choice){case 1:jinhuo();break;case 2:xiaoshou();break;case 3:zengjia();break;case 4:shanchu();break;case 5:chakan();break;case 0:break;default :printf(" 输入有误,请重新输入\n\t\t\t");}}while(choice!=0);}。

c商店购物管理系统课程设计报告

c商店购物管理系统课程设计报告

2016-2017学年第二学期《C语言程序设计》课程设计报告题目:商店购物管理系统专业:网络工程班级:16(3)班姓名:代应豪指导教师:代美丽成绩:计算机学院2017 年 4月 25 日目录1设计的内容及要求 (1)1.1设计内容 (1)2概要设计 (2)2.1系统的功能介绍 (2)2.2总体程序框图 (2)3设计模块或程序代码 (3)3.1模块描述 (3)3.2结构体建立语句 (3)3.3主函数定义 (4)4程序设计心得与体会 (10)致谢 (11)源程序 (12)1设计的内容及要求1.1设计内容《商店购物管理系统》用C语言制作一个商店购物系统,为顾客提供一个查询商品,快捷购物的平台。

该系统主要有以下功能:1)购物包括会员购物和普通顾客购物;2)系统需存储会员的一般信息:卡号,姓名,密码,卡上余额,已消费总额等信息,会员购物享受九折优惠;3)非会员顾客消费满200元即可免费成为会员,如果需要可获会员卡一张,即可享受会员服务;4)对于商品查询,系统存储商品的一些基本信息:商品代码,商品名,存放位置,剩余量,单价等,输入商品名即可调出商品的所有信息。

1.2设计任务及具体要求本次程序设计主要侧重于知识的运用,把平时学到的运用到实践中去,对我们所学的理论知识进一步深化。

其次程序设计也是要求学生遵循软件开发过程的基本规范,按要求独立自主完成课程设计任务。

要求:明确课程设计的目的,能根据课程设计的要求,查阅相关文献,为完成设计准备必要的知识;提高学生用高级语言进行程序设计的能力,重点提高用C语言进行文件操作和绘图应用的编程技术水平;初步了解软件开发的一般方法和步骤;提高撰写技术文档的能力。

2概要设计2.1系统的功能介绍该系统的主要功能是实现商品购买,商品信息查询!当购买物品到达一定的金额是,会给出会员来进行打折,会员可进行登录查询,注册!2.2总体程序框图进入购物主界面购物函数模块查询函数模块会员购物函数模块普通顾客购物模块免费注册会员判断暂不注册免费注册会员3 设计模块或程序代码3.1模块描述1.主函数主函数为无返回值空类型函数,主要功能是实现执行购物和查询功能。

C语言课程设计商品信息管理系统

C语言课程设计商品信息管理系统

*******************实践教学*******************软件学院(本科)2014年秋季学期计算机应用基础课程设计说明书题 题题题题题题题题题题题题题题题2014题题题4题题 题题题题题题 题题1417700221题题题题题题题题 题题目录1系统分析 (1)1.1课程设计内容 (1)1.2系统功能需求分析 (1)1.3数据结构设计 (2)2系统设计 (3)2.1总体设计 (3)2.2详细设计 (4)2.2.1界面设计 (4)2.2.2各功能模块的设计 (5)3系统编码设计 (11)3.1main 函数 (11)3.2load 函数 (12)3.3creat 创建链表函数 (13)3.4search 函数 (16)3.5add 数 (20)3.6amend 函数 (22)3.7del 函数 (25)3.8purchase 函数 (26)3.9sales 函数 (28)3.10print 函数 (29)3.11save 函数 (33)3.12menu 函数 (34)4系统运行 (36)5总结 (41)1 系统分析1.1 课程设计内容1设计一商场商品信息管理系统,功能包括:1.文件操作:可建立、打开、保存、关闭数据文件。

2.输入商品信息数据:数据包括商品编号、商品名、商品类别、商品数量、商品价格等。

3.编辑数据:可添加、删除、修改数据。

4.输入进货、销售信息:输入商品编号、数量完成进货或销售操作。

5.计算:应在输入进货及销售信息时,自动更改商品数量。

6.查询:可按商品编号、商品名或类别查询;还可查询需进货的商品。

7.排序:可按编号、名称或类型排序。

8.浏览:可浏览输入、查询或排序后的数据。

1.2 系统功能需求分析本系统应具有以下功能:1、文件操作功能:可建立、打开、保存、关闭数据文件。

2、数据输入功能: 数据包括商品编号、商品名、商品类别、商品数量、商品价格等。

以及输入商品编号、数量完成进货或销售操作。

c语言商店商品管理系统

c语言商店商品管理系统

c语言商店商品管理系统本文档旨在介绍《C语言商店商品管理系统》的目的和功能。

该项目的目的是开发一个用于管理商店商品的系统,使用C语言编写。

通过该系统,商店管理员能够方便地管理商品的进货、销售和库存。

系统的主要功能包括:商品信息管理:管理员可以添加新商品、更新商品信息、删除商品等操作。

商品信息包括商品名称、编号、价格、库存等参数。

进货管理:管理员可以录入商品的进货信息,包括进货数量、进货价格、供应商等信息。

系统会自动更新库存数量。

销售管理:管理员可以录入商品的销售信息,包括销售数量、销售价格、销售日期等信息。

系统会自动更新库存数量。

库存管理:管理员可以查看当前库存情况,包括各个商品的库存数量和库存总值。

报表生成:系统可以根据销售和进货信息生成报表,包括销售统计、进货统计、利润统计等。

通过实现以上功能,该系统将帮助商店管理员更好地管理商品信息,提高运营效率,并为商店的进货、销售和库存管理提供可靠数据支持。

该项目将采用简单的策略和方法实现,以确保系统的稳定性和易用性,并避免引入复杂的法律问题。

请注意,文档内容仅为扩写《C语言商店商品管理系统》项目简介而提供,不包含无法确认的引用内容。

【C语言商店商品管理系统】请注意,文档内容仅为扩写《C语言商店商品管理系统》项目简介而提供,不包含无法确认的引用内容。

【C语言商店商品管理系统】该《C语言商店商品管理系统》具有以下特点和优势:高效性:采用C语言开发,具有快速执行和高效处理数据的能力,能够有效地管理大量商品信息。

高效性:采用C语言开发,具有快速执行和高效处理数据的能力,能够有效地管理大量商品信息。

易用性:系统界面简洁清晰,操作简单直观,不需要复杂的操作步骤,便于用户快速上手使用,无需专业的技术知识。

易用性:系统界面简洁清晰,操作简单直观,不需要复杂的操作步骤,便于用户快速上手使用,无需专业的技术知识。

易用性:系统界面简洁清晰,操作简单直观,不需要复杂的操作步骤,便于用户快速上手使用,无需专业的技术知识。

C语言课程设计-商场商品信息管理系统

C语言课程设计-商场商品信息管理系统

目录1 系统分析 (2)1.1 课程设计内容 (2)1.2 系统功能需求分析 (2)1.3 数据结构设计 (3)2 系统设计 (3)2.1 总体设计 (3)2.2 详细设计 (4)2.2.1 界面设计 (4)2.2.2 各功能模块的设计 (6)3 系统编码设计 (9)3.1 main函数 (9)4 系统运行 (22)5 总结 (26)1 系统分析1.1 课程设计内容商场商品信息管理系统1.2 系统功能需求分析本系统应具有以下功能:1、文件操作功能文件操作:可建立、打开、保存、关闭数据文件。

如果是新建的文件,可输入商品信息数据:数据包括商品编号、商品名、商品类别、商品数量、商品价格等。

2、数据输入功能输入进货信息:输入商品编号、数量完成进货操作。

输入销售信息:输入商品编号、数量完成销售操作,注意当销售数量大于商品数量时,应出现错误提示。

3、数据添加、修改、删除功能添加:添加一种或多种新商品,并能输入其商品信息。

修改:修改商品信息,可包括商品编号、名称、种类、数量和单价。

删除:删除一类或多类商品的所有信息。

4、计算功能可通过查询商品信息功能,自动计算并输出需要进货的商品信息。

5、查询功能可分别按商品编号、名称、类别和需要进货的商品进行查询。

6、排序功能可分别按商品编号、名称、类别等进行排序。

7、数据显示功能可分别浏览输入、查询和排序后的商品信息。

1.3 数据结构设计struct goods /*商品结构体*/{ long int num; /*商品编号*/char name[20]; /*商品名称*/char sort[20]; /*商品类别*/long int count; /*商品库存量*/long int price; /*商品单价*/}goods[200]; /*最多200个商品*/2 系统设计2.1 总体设计按系统分析的功能要求将系统划分为以下几个主要功能模块:一、文件管理⏹文件打开、关闭:对于刚输入或进行操作后的商品信息,在建立新的商品库存量后,可以把其保存在一个文件中,并对该文件可进行打开和关闭操作。

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

目录1 系统分析 (2)1.1 课程设计内容 (2)1.2 系统功能需求分析 (2)1.3 数据结构设计 (3)2 系统设计 (3)2.1 总体设计 (3)2.2 详细设计 (4)2.2.1 界面设计 (4)2.2.2 各功能模块的设计 (6)3 系统编码设计 (9)3.1 main函数 (9)4 系统运行 (22)5 总结 (26)1 系统分析1.1 课程设计内容商场商品信息管理系统1.2 系统功能需求分析本系统应具有以下功能:1、文件操作功能文件操作:可建立、打开、保存、关闭数据文件。

如果是新建的文件,可输入商品信息数据:数据包括商品编号、商品名、商品类别、商品数量、商品价格等。

2、数据输入功能输入进货信息:输入商品编号、数量完成进货操作。

输入销售信息:输入商品编号、数量完成销售操作,注意当销售数量大于商品数量时,应出现错误提示。

3、数据添加、修改、删除功能添加:添加一种或多种新商品,并能输入其商品信息。

修改:修改商品信息,可包括商品编号、名称、种类、数量和单价。

删除:删除一类或多类商品的所有信息。

4、计算功能可通过查询商品信息功能,自动计算并输出需要进货的商品信息。

5、查询功能可分别按商品编号、名称、类别和需要进货的商品进行查询。

6、排序功能可分别按商品编号、名称、类别等进行排序。

7、数据显示功能可分别浏览输入、查询和排序后的商品信息。

1.3 数据结构设计struct goods /*商品结构体*/{ long int num; /*商品编号*/char name[20]; /*商品名称*/char sort[20]; /*商品类别*/long int count; /*商品库存量*/long int price; /*商品单价*/}goods[200]; /*最多200个商品*/2 系统设计2.1 总体设计按系统分析的功能要求将系统划分为以下几个主要功能模块:一、文件管理⏹文件打开、关闭:对于刚输入或进行操作后的商品信息,在建立新的商品库存量后,可以把其保存在一个文件中,并对该文件可进行打开和关闭操作。

二、进出货管理⏹商品进货: 输入数据后商品信息能自动更新进行添加⏹商品销售: 输入数据后商品信息能自动更新进行减少三、商品数据管理⏹增加/删除商品: 添加或删除某条商品的信息⏹修改商品信息: 对某条商品的信息进行修改四、浏览商品信息管理⏹查询商品信息:可分别按商品编号、名称、类别或需要进货商品查询⏹排序商品信息: 可按商品编号、名称、类别分别排排序⏹浏览商品信息:可浏览输入、查询或排序后的数据。

(此处可用图形描述功能模块划分,类似下图)2.2 详细设计2.2.1 界面设计1、菜单设计⏹欢迎界面:⏹系统提示:商场商品信息管理系统商品数据管理浏信览息商管品理文件管理进出货管理打开关闭保存查询数据输入数据排序数据修改添加出货进货删除菜单设计:2、输入界面的设计3、信息显示界面的设计2.2.2 各功能模块的设计根据划分的功能模块,定义以下函数实现各功能:(这部分应介绍各函数的原型,各功能模块实现所用的算法,可用流程图描述)1、主函数main()定义主函数为空类型(void);利用选择结构(switch)实现在在主函数中的调用各个子函数,利用goto 和子函数中的return语句实现返回主菜单的循环。

声明各个子函数输出欢迎界面输出菜单switch(m)1 输入商品信息2 排序商品信息3 输入商品进货信息4 输入商品销售信息5 增加/删除商品6 修改商品信息7 查询商品信息8 浏览商品信息9 保存商品信息清屏幕2、子函数(1)void input():< 输入函数 >确定新的库存量n,输入商品信息,用for循环语句直到输入商品种类等于n,结束输入;(2)void sequence():< 排序函数 >对已有的商品进行排序,可按商品编号、名称、类别进行排序;(3)void purchase():< 进货函数 >进货函数主要是针对已有库存的商品,在原来的商品数量再增加:(4)void sale():< 销售函数 >要求用户输入所销售的编号,系统用for 循环查询该商品是否存在,不存在要求再进行输入,直到输入正确,输出销售商品:(5)void edit():< 添加/删除商品 >因为在进货函数已经实现对已有商品的数量的增加,此模块函数主要实现对新商品的添加或对旧商品的删除,并自动处理数据,可以在浏览中输出,用选择语句switch进行俩者操作的选择:(6)void correct():< 修改数据函数 >对有错误信息商品进行修改,输入需要修改的商品编号,用for 循环与if语句找到此商品,重新输入该商品的新信息,并输出:(7)void search():< 查询函数 >用switch(k)语句可分别按商品编号、名称、类别或需要进货商品查询;每个case 选择中均用for语句查找要查询的商品,并输出查询结果。

(8)void scan():< 浏览商品函数 >可分别进行浏览输入的商品信息、查询的商品信息、排序后商品信息,用switch 进行这三种方式的选择。

(9)void reserve():< 保存文件 >建立文件FILE *fp;char file[15]用来存放文件保存路径以及文件名,进行清屏,输入文件路径及文件名,利用fp=fopen("file","w+")实现创建并打开一个文件,并得到该文件的地址的功能,显示fprintf(fp,"商品编号\t商品名 \t 商品类别\t商品数量\t商品价格\n"); 最后输出已保存文件,程序中是由PR("商品编号\t商品名 \t商品类别\t商品数量\t商品价格\n");语句执行。

3 系统编码设计(这部分将代码列出,注意,每个函数开始处要介绍函数的功能,重要的代码应有注释,代码格式按锯齿式编排)3.1 main函数#include"stdio.h"#include"string.h"#include"stdlib.h"#define PR printf#define SC scanfstruct goods{long int num;char name[20];char sort[20];long int count;long int price;}goods[200];int k,n,i;void main (){void input();void sequence();void purchase();void sell();void edit();void correct();void search();void scan();void reserve();void exit();PR("\n******************************************************************\n *\t\t\t\t\t\t\t\t *\n");PR(" * ▏▎▍▌ ▋▊█ ▇▆▅▄ ▃▂▁*");PR("\n *\t\t\t\t\t\t\t\t *\n * Welcome\t\t\t\t\t\t *\n *\t\t\t\t\t\t\t\t *\n");PR(" *\t\t to go into ....\t\t\t\t * ");PR("\n *\t\t\t\t\t\t\t\t *\n");PR(" * -the Goods Information Manageaent System- *\n *\t\t\t\t\t\t\t\t *\n ");PR(" * ▁▂▃▄ ▅▆▇█ ▉▊▋▌ ▍▏*\n");PR(" *\t\t\t\t\t\t\t\t *\n ******************************************************************");PR("\n\n\tPlease press any key to continue:");getch();system("cls");PR("\n\n ---$-----$--------$----------$-----------$---------$-------$------$-----$---");PR("\n 系统使用--温馨提示:\n\n →商品编号、数量、单价:采用十进制数,规定长度最长为8位;\n\n →商品名称为26位字母组成字符串,长度最长为20位;\n\n\t →商品类别:以26个小写字母分别代表着26种商品类别;\n\n\t →该商品需要进货的库存量:count<50;\n");PR(" ---$-----$--------$----------$-----------$---------$-------$------$-----$---");PR(" \nplease press any key to continue");getch();system("cls"); /*清屏*/lp: for(i=0;i<1;i++)PR("\n\n——★—☆——★—☆——☆—★——☆—★——☆—☆——★—\n");PR("\n\t\t\t 商品信息管理系统\t\n\n");PR("\t 1 →输入商品信息\n\n");PR("\t 2 →排序商品信息\n\n");PR("\t 3 →输入进货信息\t\t6 →修改商品信息\n\n");PR("\t 4 →输入销售信息\t\t7 →查询商品信息\n\n");PR("\t 5 →增加/删除商品\t\t8 →浏览商品信息\n\n");PR("\t\t\t\t\t9 →保存商品信息\n\n");PR(" \t\t ——☆—★——☆—★——☆—☆——★—☆——★—☆——★—");/*菜单选择界面*/PR("\n\n");PR("\t请选择您所要的操作(或选择(0)退出):");SC("%d",&k);system("cls");switch(k) /*用switch语句实现功能选择*/{case 1: input();break;case 2: sequence();break;case 3: purchase();break;case 4: sell();break;case 5: edit();break;case 6: correct();break;case 7: search();break;case 8: scan();break;case 9: reserve();break;case 0: PR("\n\n\t / / / / / ^_^ \\ \\ \\ \\ \\ \n\n\t…………谢谢使用,欢迎再来,再见O(∩_∩)O…………");exit(0); /*退出系统*/default: puts("输入错误,请按任意健返回主菜单:\n"); break;}system("cls"); /*清屏*/goto lp; /*返回主界面*/}void input() /*功能1:输入商品信息*/{PR("\n 请输入需要建立新库存的商品种类数量:");SC("%d",&n);system("cls");PR("\n …………………………………………………………………………………………………\n");for(i=0;i<n;i++) /*用循环实现输入n个商品*/{PR("\n\t*请输入商品的编号:");SC("%ld",&goods[i].num);PR("\n\t 请输入商品的名称:");SC("%s",goods[i].name);PR("\n\t 请输入商品的种类:");SC("%s",goods[i].sort);PR("\n\t 请输入商品的数量:");SC("%d",&goods[i].count);PR("\n\t 请输入商品的单价:");SC("%d",&goods[i].price);PR("\n …………………………………………………………………………………………………\n");}PR("\tPlease press any key to continue:");getch();return; /*返回主界面*/}void sequence() /*功能2:排序商品信息*/{long temp;char p1[30],p2[30];for(k=0;k<n-1;k++) /*(1): 按编号排序*/for(i=0;i<n-k-1;i++) /*用起泡法排序*/if(goods[i].num>goods[i+1].num) /*按编号由小到大排序*/{temp=goods[i].num;goods[i].num=goods[i+1].num;goods[i+1].num=temp;strcpy(p1,goods[i].name);strcpy(goods[i].name,goods[i+1].name);strcpy(goods[i+1].name,p1);strcpy(goods[i].sort,goods[i+1].sort);strcpy(goods[i+1].sort,p2);}PR("--------------------------------------------------------------------------------");PR("\n\t\t按商品编号排序后的商品信息\n\n");PR("\t商品编号商品名称商品类别商品数量商品单价\n"); /*输出排序后商品信息*/for(i=0;i<n;i++){PR("\t %5ld %5s %5s %5ld %5ld\n",goods[i]. num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);}for(k=0;k<n-1;k++) /*(2): 按商品名称排序*/for(i=0;i<n-k-1;i++)if(strcmp(goods[i].name,goods[i+1].name)>0){strcpy(p1,goods[i].name);strcpy(goods[i].name,goods[i+1].name);strcpy(goods[i+1].name,p1);temp=goods[i].num;goods[i].num=goods[i+1].num;goods[i+1].num=temp;strcpy(p2,goods[i].sort);strcpy(goods[i].sort,goods[i+1].sort);strcpy(goods[i+1].sort,p2);}PR("--------------------------------------------------------------------------------");PR("\n\t\t按商品名称排序后的商品信息\n");PR("\n\t商品名称商品编号商品类别商品数量商品单价\n"); /*输出排序后商品信息*/for(i=0;i<n;i++){PR("\t %5s %5ld %5s %5ld %5ld\n",goods[i].nam e,goods[i].num,goods[i].sort,goods[i].count,goods[i].price);}for(k=0;k<n-1;k++) /*(3): 按商品类别排序*/for(i=0;i<n-k-1;i++) /*用起泡法排序*/if(strcmp(goods[i].sort,goods[i+1].sort)>0){strcpy(goods[i].sort,goods[i+1].sort);strcpy(goods[i+1].sort,p2);temp=goods[i].num;goods[i].num=goods[i+1].num;goods[i+1].num=temp;strcpy(p1,goods[i].name);strcpy(goods[i].name,goods[i+1].name);strcpy(goods[i+1].name,p1);}PR("--------------------------------------------------------------------------------");PR("\n\t\t按商品类别排序后的商品信息\n\n");PR("\t商品类别商品编号商品名称商品数量商品单价\n"); /*输出排序后商品信息*/for(i=0;i<n;i++){PR("\t %5s %5ld %5s %5ld %5ld\n",goods[i]. sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);}PR("--------------------------------------------------------------------------------");PR("please press any key to continue:");getch();return; /*返回主界面*/}void purchase() /*功能3:进货商品信息*/{long temp; /*定义临时变量表示刚进货的商品编号*/int j;PR("\n\t\5请输入刚进货的商品编号:");SC("%ld",&temp);PR("\n\t\5请输入刚进货的商品数量:");SC("%d",&j);PR("\n\n\n\tpress any key to contiue:");getch();system("cls");PR("\n\t输出进货后的商品信息:");for(i=0;i<n;i++) /*循环,寻找与进货相同的商品信息*/if(temp==goods[i].num)goods[i].count=goods[i].count+j; /*自动更改商品数量*/ PR("\n\t商品编号商品名商品类别商品数量商品价格");for(i=0;i<n;i++) /*循环,输出进货后的商品信息*/{PR("\n\t %4ld %4s %4s %ld %4ld",goods[i].num,g oods[i].name,goods[i].sort,goods[i].count,goods[i].price);}PR("\n\n\t\tPress any key to enter menu:");getch(); /*返回功能选择界面*/return;}void sell() /*功能4:销售商品信息*/{long temp; /*定义临时变量temp表示刚销售的商品编号*/int j;PR("\n\t\5请输入刚销售的商品编号:");SC("%ld",&temp);PR("\n\t\5请输入刚销售的商品数量:");SC("%d",&j);for(i=0;i<n;i++) /*循环,找到刚销售的商品信息*/{if(temp==goods[i].num){for(;j>goods[i].count;) /*如果销售额大于库存量,则出现错误提示*/{PR("\n\t售出数量大于商品原有数量,出现错误,请重新输入:");SC("%d",&j);}goods[i].count=goods[i].count-j; /*完成自动更改商品数量的功能*/}}PR("\n\tpress any key to contiue:");getch();system("cls"); /*清屏*/PR("\n\n *销售后商品信息:");PR("\n\t商品类别商品编号商品名称商品数量商品单价\n");for(i=0;i<n;i++) /*循环,输出销售后商品信息*/{PR("\t %4s %4ld %4s %4ld %4ld\n",goods[i ].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);}PR("\n\tPress any key to enter menu:");getch();return; /*返回功能选择界面*/void edit() /*功能5:添加或删除商品信息*/{void add(); /*声明子函数*/void dele();PR("\n\t请选择:1.添加商品信息; 2.删除商品信息;");PR("\t*请输入1或2 继续:");SC("%d",&k);switch(k) /*用switch语句实现功能选择*/{case 1: add();break;case 2: dele();break;}getch();return; /*返回主菜单*/}void add() /*添加商品信息*/{/*定义子函数*/PR("\t*请输入所添加商品的商品编号:");SC("%ld",&goods[n].num);PR("\n\t请输入所添加商品的名称:");SC("%s",goods[n].name);PR("\n\t请输入所添加商品的类别:");SC("%s",goods[n].sort);PR("\n\t请输入所添加商品的数量:");SC("%d",&goods[n].count);PR("\n\t请输入所添加商品的价格:");SC("%d",&goods[n].price);n=n+1;PR("\n");}void dele() /*删除商品信息*/{/*定义子函数*/int temp; /*定义局部变量*/int j;for(i=0;i<n;i++){PR("\n\t商品编号商品名商品类别商品数量商品价格"); PR("\n\t %5ld %5s %5s %5ld %5ld",goods[i].n um,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);PR("\n");PR("\n");PR("\n*请输入要删除的商品编号:");SC("%ld",&temp);PR("\n\n");for(i=0;i<n;i++){if(temp==goods[i].num){for(j=i;j<n;j++){goods[j].num=goods[j+1].num;strcpy(goods[j].name,goods[j+1].name);strcpy(goods[j].sort,goods[j+1].sort);goods[j].count=goods[j+1].count;goods[j].price=goods[j+1].price;}n=n-1; /*商品总库存量减少*/}}for(i=0;i<n;i++){PR("\n\t商品编号商品名商品类别商品数量商品价格"); /*输出删除后的商品信息*/PR("\n\t %5ld %5s %5s %5ld %5ld",goods[i].n um,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);PR("\n");}PR("Please press any key to continue:");getch();return; /*返回主界面*/}void correct() /*功能6:修改商品信息*/{long temp; /*定义局部变量*/PR("\n\t请输入要修改的商品的编号:");SC("%ld",&temp); /*输入新的商品信息*/PR("\n");for(i=0;i<n;i++) /*保存新的商品信息*/{if(temp==goods[i].num){PR("\t请输入一个新的的商品编号:");SC("%ld",&goods[i].num);PR("\n\t请输入新的商品的名称:");SC("%s",goods[i].name);PR("\n\t请输入新的商品的类别:");SC("%s",goods[i].sort);PR("\n\t请输入新的商品的数量:");SC("%d",&goods[i].count);PR("\n\t请输入新的商品价格:");SC("%d",&goods[i].price);PR("\n");}}for(i=0;i<n;i++){PR("\n\t新的商品名称商品编号商品类别商品数量商品单价\n");PR("\t %4s %4ld %4s %4ld %4 ld",goods[i].name,goods[i].num,goods[i].sort,goods[i].count,goods[i].price);PR("\n");}PR("Please press any key to continue:"); /*返回功能选择界面*/getch();return; /*返回主菜单*/}void search() /*功能7:查询商品信息*/{int k; /*定义局部变量*/long temp1;char temp2[30],temp3[20];PR("\n\t\5按商品编号查询,请按1\t\t\t\5按商品名查询,请按2\n\t\5按商品类别查询,请按3\t\t\t\5查需要进货的商品,请按4\n");PR("\n\n\n\t\t\t请输入数字确定查询方式:");SC("%d",&k);PR("\n");PR("Press any key to continue:");getch();system("cls");switch(k) /*实现查询方式的选择*/{case 1:{ PR("\n\n\n\n\n\t\t请输入要查询的商品的编号:"); /*按商品编号查询*/SC("%ld",&temp1);system("cls"); /*清屏*/for(i=0;i<n;i++){if(temp1==goods[i].num){PR("\n");PR("\n\t商品编号商品名商品类别商品数量商品价格");PR("\n\t %5ld %5s %5s %5ld %5ld",goods[i].num,g oods[i].name,goods[i].sort,goods[i].count,goods[i].price);}}}break; /*跳出switch语句*/case 2:{ PR("\n\n\n\n\n\t\t请输入要查询的商品名:"); /*按商品名查询数据*/SC("%s",temp2);system("cls");for(i=0;i<n;i++){if(strcmp(temp2,goods[i].name)==0){PR("\n");PR("\n\t商品编号商品名商品类别商品数量商品价格");PR("\n\t %5ld %5s %5s %5ld %5ld",goods[i].num,g oods[i].name,goods[i].sort,goods[i].count,goods[i].price);}}}break; /*跳出switch语句*/case 3:{PR("\n\n\n\n\n\t\t请输入要查询的商品类别:"); /*按商品类别查询数据*/SC("%s",temp3);system("cls");for(i=0;i<n;i++){if(strcmp(temp3,goods[i].sort)==0){PR("\n");PR("\n\t商品编号商品名商品类别商品数量商品价格");PR("\n\t %5ld %5s %5s %5ld %5ld",goods[i].num,g oods[i].name,goods[i].sort,goods[i].count,goods[i].price);}}}break; /*跳出switch语句*/case 4:{int a=50;for(i=0;i<n;i++) /*查询需要进货的商品名*/{if(goods[i].count<a)PR("\n\t\t\4需要进货的商品名:%s 现有库存量:%ld\n",goods[i].name,goods[i].count);}}break; /*跳出switch语句*/}PR("\n\n\t\tPress any key to enter menu:");getch();return; /*返回主界面*/}void scan() /*功能8:浏览商品信息*/{PR("\n\t浏览输入的商品信息,请按1\n\n\t浏览查询的商品信息,请按2\n\n\t浏览排序后商品信息,请按3\n");PR("请选择:");SC("%d",&k);switch(k){case 1:{ PR("\t\t\t浏览输入的商品信息\n");PR("\t商品编号商品名商品类别商品数量商品价格\n");/*输出浏览商品信息*/for(i=0;i<n;i++){PR("\t%5ld %5s %5s %5ld %ld",goods[i].num,goods [i].name,goods[i].sort,goods[i].count,goods[i].price);PR("\n");}PR("Press any key to enter menu:");getch();return;}break; /*跳出switch语句*/case 2:{ PR("\t\t\t浏览查询的商品信息\n");PR("\t商品编号商品名商品类别商品数量商品价格\n");/*输出浏览商品信息*/for(i=0;i<n;i++){PR("\t%5ld %5s %5s %5ld %ld",goods[i].num,g oods[i].name,goods[i].sort,goods[i].count,goods[i].price);PR("\n");}PR("\nPress any key to enter menu:");getch();return;}break; /*跳出switch语句*/case 3:{ PR("\t\t\t浏览按商品编号排序的商品信息\n");PR("\t商品编号商品名商品类别商品数量商品价格\n");/*输出浏览商品信息*/for(i=0;i<n;i++){PR("\t%5ld %5s %5s %5ld %ld",goods[i].num,goods [i].name,goods[i].sort,goods[i].count,goods[i].price);PR("\n");}PR("\nPress any key to enter menu:");getch();return; /*返回主界面*/}break; /*跳出switch语句*/}}void reserve() /*功能9:保存文件*/{FILE *fp;char file[15]; /*用来存放文件保存路径以及文件名*/system("cls"); /*清屏*/PR("\n\t*请输入文件路径及文件名:");SC("%s",file);fp=fopen("file","w+"); /*创建并打开一个文件,并得到该文件的地址*/ fprintf(fp,"商品编号\t商品名\t商品类别\t商品数量\t商品价格\n");PR("商品编号\t商品名\t 商品类别\t 商品数量\t 商品价格\n");for(i=0;i<n;i++){fprintf(fp,"%ld\t\t%s\t\t%s\t\t%d\t\t%d\n",goods[i].num,goods[i].name,goods[i].sort,g oods[i].count,goods[i].price);PR("%ld\t\t%s\t\t%s\t\t%d\t\t%d\n",goods[i].num,goods[i].name,goods[i].sort,goods[i ].count,goods[i].price);}fclose(fp); /*关闭文件*/PR("文件已经保存!\n");getch();system("cls"); /*清屏*/}void quit() /*退出系统*/{exit(0);}4 系统运行1、输入新商品操作:首先由主菜单选择"1"进入运行input函数,清屏进入input函数界面,提示我们要进行商品信息的输入,包括商品编号、名称、种类、数量和单价,利用for 输入完成后,显示出“Please press any key to continue”,再按任意健可返回主菜单,其运行界面如下:2、商品排序操作:主菜单选择"2"可调用sequence函数,进入商品信息排序界面,其结果会自动显示出来,如下图所示:3、进出货操作:由主菜单选择"3"或"4",转入调用purchase 或sale函数中,清屏,出现进货或出货新页面,屏幕显示要求我们按照商品编号,输入需要进货的商品的数量,销售商品操作界面即要我们输入已销售商品的数量,当系统出现"please press any key to continue" 提示我们进出货操作已完成,数据已自动进行更改,按任意键可输出更新后的数据,再按任意键即可返回主菜单,其操作界面如下:4、添加或删除商品此模块操作的主要功能是实现对新商品的添加或删除,由主菜单选择"5"可进入选择页面,它提供了添加或删除商品的选择,如选择"1"进行添加商品,接下来只要按要求分别输入商品编号、商品名称、商品类别、商品数量和价格,系统就会自动按我们的输入进行保存,其保存结果可以在查询或浏览函数中输出,输入完毕后,系统显示提示,按任意键便可返回主菜单。

相关文档
最新文档