C语言课程设计-商场商品信息管理系统
- 格式:doc
- 大小:416.92 KB
- 文档页数:27
购物管理系统课程设计c语言一、教学目标本课程旨在通过购物管理系统的设计与实现,让学生掌握C语言编程的基本技能,培养其逻辑思维能力和问题解决能力。
具体目标如下:•掌握C语言的基本语法和数据结构。
•理解面向对象编程的基本概念。
•学习常用的编程调试技巧。
•能够使用C语言独立完成简单程序的编写与调试。
•学会使用购物管理系统作为案例,进行程序设计。
•培养团队协作和项目管理的技能。
情感态度价值观目标:•培养学生的创新意识和解决问题的决心。
•加强学生对编程语言的兴趣,激发其对计算机科学的热爱。
•培养学生面对编程挑战时的耐心和毅力。
二、教学内容教学内容将依据课程目标进行选择和,确保内容既科学又系统。
具体教学大纲如下:1.C语言基础:–数据类型与变量–运算符与表达式–控制结构(条件语句、循环语句)2.面向对象编程:–继承与多态–封装与抽象3.购物管理系统案例学习:–编码与实现–测试与优化4.编程实践与调试技巧:–常见编程错误分析–调试工具的使用三、教学方法为了激发学生的学习兴趣和主动性,将采用多样化的教学方法:1.讲授法:用于讲解C语言的基础知识和面向对象的理论。
2.案例分析法:通过分析购物管理系统的案例,让学生理解编程实践。
3.实验法:引导学生动手实践,完成系统的设计与实现。
4.讨论法:学生进行团队讨论,培养解决问题的能力和团队协作精神。
四、教学资源教学资源的选择和准备将着重于支持教学内容和教学方法的实施,以及丰富学生的学习体验。
资源包括但不限于:1.教材:选用权威、实用的C语言编程教材。
2.多媒体资料:提供相关的教学视频、演示文稿等。
3.实验设备:确保每个学生都有机会在计算机上进行编程实践。
4.在线资源:利用网络资源,如编程论坛、开源项目等,供学生自主学习和探索。
五、教学评估为了全面反映学生的学习成果,将采取多元化的评估方式:1.平时表现:通过课堂参与度、提问和团队协作等方面评估学生的积极性。
2.作业:布置与课程内容相关的编程作业,评估学生的理解和应用能力。
商品管理系统设计c语言课程设计一、教学目标本课程的教学目标是使学生掌握商品管理系统的设计与实现方法,培养学生运用C语言进行软件开发的实际能力。
具体目标如下:1.知识目标:使学生了解商品管理系统的功能和结构,掌握C语言的基本语法和编程技巧,了解数据结构的基本概念。
2.技能目标:培养学生能够使用C语言编写程序,实现商品管理系统的功能,培养学生解决实际问题的能力。
3.情感态度价值观目标:培养学生对软件开发的兴趣,增强学生的团队合作意识和创新精神。
二、教学内容本课程的教学内容主要包括三部分:商品管理系统的需求分析、商品管理系统的软件设计、商品管理系统的实现与测试。
具体安排如下:1.商品管理系统的需求分析:介绍商品管理系统的功能和结构,培养学生分析问题和需求的能力。
2.商品管理系统的软件设计:讲解C语言的基本语法和编程技巧,使学生能够使用C语言进行程序设计。
3.商品管理系统的实现与测试:介绍数据结构的基本概念,培养学生使用C语言实现和测试商品管理系统的能力。
三、教学方法为了实现本课程的教学目标,我们将采用多种教学方法,包括讲授法、案例分析法、实验法等。
具体方法如下:1.讲授法:通过讲解商品管理系统的需求分析、软件设计和实现与测试等方面的知识,使学生掌握课程的基本概念和原理。
2.案例分析法:通过分析实际案例,使学生了解商品管理系统的实际应用,培养学生分析问题和解决问题的能力。
3.实验法:通过上机实验,使学生掌握C语言的编程技巧,培养学生实现和测试商品管理系统的能力。
四、教学资源为了支持本课程的教学内容和教学方法的实施,我们将准备多种教学资源,包括教材、参考书、多媒体资料和实验设备。
具体资源如下:1.教材:选用《C语言程序设计》作为教材,系统地介绍C语言的基本语法和编程技巧。
2.参考书:推荐《数据结构》等参考书,帮助学生深入了解数据结构的基本概念。
3.多媒体资料:制作课件和教学视频,生动形象地展示课程内容,提高学生的学习兴趣。
商店销售管理系统#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);}。
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.主函数主函数为无返回值空类型函数,主要功能是实现执行购物和查询功能。
*******************实践教学*******************软件学院(本科)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语言开发,具有快速执行和高效处理数据的能力,能够有效地管理大量商品信息。
易用性:系统界面简洁清晰,操作简单直观,不需要复杂的操作步骤,便于用户快速上手使用,无需专业的技术知识。
易用性:系统界面简洁清晰,操作简单直观,不需要复杂的操作步骤,便于用户快速上手使用,无需专业的技术知识。
易用性:系统界面简洁清晰,操作简单直观,不需要复杂的操作步骤,便于用户快速上手使用,无需专业的技术知识。
目录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 总体设计按系统分析的功能要求将系统划分为以下几个主要功能模块:一、文件管理⏹文件打开、关闭:对于刚输入或进行操作后的商品信息,在建立新的商品库存量后,可以把其保存在一个文件中,并对该文件可进行打开和关闭操作。
c语言课程设计超市购物系统一、教学目标本课程的目标是使学生掌握C语言编程的基本知识,能够运用C语言设计并实现一个简单的超市购物系统。
在知识目标方面,要求学生掌握C语言的基本语法、数据类型、运算符、控制结构等。
在技能目标方面,要求学生能够熟练使用C语言进行程序设计,具备解决实际问题的能力。
在情感态度价值观目标方面,要求学生培养对编程的兴趣和热情,培养团队合作意识和自主学习能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构等。
具体安排如下:1.第一章:C语言概述,介绍C语言的发展历程、特点及应用领域。
2.第二章:基本数据类型和运算符,介绍整型、浮点型、字符型数据及其运算符。
3.第三章:控制结构,介绍顺序结构、选择结构、循环结构。
4.第四章:函数,介绍函数的定义、声明、调用及返回值。
5.第五章:数组和字符串,介绍一维数组、多维数组、字符串的基本操作。
6.第六章:指针,介绍指针的概念、运算及应用。
7.第七章:结构体和联合体,介绍结构体、联合体的定义和应用。
8.第八章:文件操作,介绍文件的基本操作及其应用。
三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法。
在讲授法中,教师通过讲解、示范等方式传授知识;在案例分析法中,教师通过分析实际案例,引导学生运用所学知识解决问题;在实验法中,学生通过动手实践,加深对知识的理解和运用。
四、教学资源本课程的教学资源包括教材、多媒体资料和实验设备。
教材选用《C程序设计原理与应用》,多媒体资料包括教学PPT、视频教程等,实验设备包括计算机、网络设备等。
这些资源将有助于学生更好地学习C语言,提高编程能力。
五、教学评估本课程的评估方式包括平时表现、作业、考试等。
平时表现主要评估学生的课堂参与度、提问回答、团队合作等情况,占总评的30%。
作业主要评估学生的编程能力和理解力,占总评的30%。
考试分为期中考试和期末考试,期中考试占40%,期末考试占60%,考试内容主要包括理论知识及编程实践。
c语言商品信息课程设计一、课程目标知识目标:1. 学生能理解C语言在商品信息处理中的应用,掌握基本的变量定义、数据类型及运算符使用。
2. 学生能够运用C语言编写程序,实现商品信息的输入、存储、计算和输出。
3. 学生掌握使用结构体来组织商品信息,并能运用数组管理多个商品的数据。
技能目标:1. 学生能够设计商品信息管理系统的基本框架,编写相应的C语言代码实现功能模块。
2. 学生能够通过调试程序,解决在商品信息处理中遇到的问题,优化程序性能。
3. 学生能够运用所学知识,完成一个小型的商品信息管理系统的开发,提高实际编程能力。
情感态度价值观目标:1. 培养学生对于编程的兴趣,激发他们利用计算机技术解决实际问题的热情。
2. 学生通过小组合作开发商品信息管理系统,增强团队协作能力和沟通技巧。
3. 学生能够在编程实践中体会到编程的逻辑性与严谨性,培养耐心和细心的学习态度。
课程性质分析:本课程设计旨在通过商品信息管理的实际案例,使学生在实践中掌握C语言编程的基本技能,同时培养解决实际问题的能力。
学生特点分析:考虑到学生年级特点,他们在前期的学习中已经掌握了C语言的基础知识,有基本的编程能力,但对复杂问题的解决尚需引导和练习。
教学要求:1. 教学内容应贴近实际应用,提高学生的学习兴趣和参与度。
2. 教学过程中要注重引导学生主动思考,培养解决问题的能力。
3. 教学评价要关注学生的程序设计思维和实际操作能力,以及团队协作能力的培养。
二、教学内容1. 商品信息管理系统概述:介绍商品信息管理系统的基本概念、功能及在实际生活中的应用,使学生了解课程设计背景和意义。
2. C语言基础知识回顾:复习基本的变量定义、数据类型、运算符、控制结构等,为后续编程打下基础。
- 教材章节:第1章-第3章3. 结构体与数组:讲解结构体的定义和使用,以及如何用数组存储和管理商品信息。
- 教材章节:第6章4. 函数的定义与调用:介绍如何将商品信息管理系统的功能模块化,编写相应的函数,提高代码的可读性和可维护性。
c语言商品信息课程设计一、教学目标本课程旨在通过C语言编程,使学生掌握商品信息管理的基本概念和技能,培养学生的编程思维和问题解决能力。
具体目标如下:知识目标:使学生了解C语言的基本语法和数据结构,掌握结构体和指针的运用,了解动态内存分配,能够使用C语言编写简单的商品信息管理系统。
技能目标:培养学生能够通过C语言实现商品信息的增删改查功能,掌握结构体数组的运用,培养学生编程解决问题的能力。
情感态度价值观目标:培养学生对计算机编程的兴趣,培养学生勇于探索、创新的精神,培养学生团队协作的能力。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、结构体和指针的运用、动态内存分配以及商品信息管理系统的设计和实现。
具体安排如下:1.C语言的基本语法:介绍C语言的基本数据类型、运算符、表达式、语句等。
2.数据结构:介绍数组、链表、栈和队列等基本数据结构。
3.结构体和指针的运用:介绍结构体的定义和使用,指针的基本概念和运用。
4.动态内存分配:介绍动态内存分配的基本方法,如malloc和calloc。
5.商品信息管理系统的设计和实现:介绍如何使用C语言实现一个简单的商品信息管理系统,包括商品的增删改查等功能。
三、教学方法为了激发学生的学习兴趣和主动性,本课程将采用多种教学方法,如讲授法、讨论法、案例分析法、实验法等。
1.讲授法:通过讲解C语言的基本语法、数据结构、结构体和指针的运用等理论知识,使学生掌握基本概念。
2.讨论法:通过分组讨论,引导学生深入思考和理解编程问题,培养学生的团队协作能力。
3.案例分析法:通过分析实际案例,使学生了解商品信息管理系统的设计和实现过程。
4.实验法:通过编写代码和调试程序,使学生掌握C语言编程的技巧,培养学生的动手能力。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:《C程序设计语言》(K&R)或《C Primer Plus》。
商品管理信息系统#include "stdio.h"#include "string.h"#define NAME_MAX_LEN 20#define Prod_MAX_NUM 50typedef struct{int num;char name[NAME_MAX_LEN];double unitprice;int amount;double totalprice;}prodNode;typedef struct sequence{prodNode data[Prod_MAX_NUM];int len;}seq;seq product;void inputGoods(){int i,n;printf("请输入商品个数:\n");scanf("%d",&n);if (n<0)return;for (i=0;i<n;i++){printf("请输入第%d个商品记录。
\n",i+1);printf("输入商品的编号:\n");scanf("%d",&product.data[i].num);printf("输入商品的名字:\n");scanf("%s",product.data[i].name);printf("输入商品的单价:\n");scanf("%lf",&product.data[i].unitprice);printf("输入商品的数量:\n");scanf("%d",&product.data[i].amount);product.data[i].totalprice=product.data[i].unitprice*product.data[i].amount;}product.len=n;}void outputGoods()int i;if (product.len==0){printf("\n无数据!\n");return;}printf("\n商品的记录为:\n");printf("编号\t名字\t单价\t数量\t总价\n");for (i=0;i<product.len;i++){printf("%d\t%s\t%lf\t%d\t%.2lf",product.data[i].num,product.data[i].name,product.data[i].unitpric e,product.data[i].amount,product.data[i].totalprice);printf("\n");}}void saveGoods(){int i;FILE *fp;if (product.len==0){printf("\n无数据!\n");return;}fp=fopen("d:\\商品管理信息系统\\goods.txt","w");if (fp==NULL){printf("文件打开失败!\n");return;}for (i=0;i<product.len;i++){ fprintf(fp,"\n");fprintf(fp,"%d\t",product.data[i].num);fprintf(fp,"%s\t",product.data[i].name);fprintf(fp,"%lf\t",product.data[i].unitprice);fprintf(fp,"%d\t",product.data[i].amount);fprintf(fp,"%.2lf",product.data[i].totalprice);}fclose(fp);printf("已成功存盘!\n");void readGoods(){int i;FILE *fp;fp=fopen("d:\\商品管理信息系统\\goods.txt","r");if (fp==NULL){printf("文件打开失败!\n");return;}i=0;while (!feof(fp)){fscanf(fp,"%d",&product.data[i].num);fscanf(fp,"%s",product.data[i].name);fscanf(fp,"%lf",&product.data[i].unitprice);fscanf(fp,"%d",&product.data[i].amount);fscanf(fp,"%lf",&product.data[i].totalprice);i++;}product.len=i;fclose(fp);printf("已从文件成功读取%d条成绩记录!\n",product.len); }void insertOneGoods(){prodNode G;int i,pos;if (product.len==Prod_MAX_NUM){printf("表已满!\n");return;}printf("请输入插入位置:");scanf("%d",&pos);if (pos<0||pos>product.len){ printf("插入位置出错!\n");return;}printf("请输入要插入的商品记录:\n");printf("请输入编号:");do {scanf("%d",&G.num);if (G.num<=0)printf("输入的编号不合理,请重新输入。
#include<stdio.h>#include<string.h>#include<conio.h>#include<stdlib.h>#define N 100struct commodity{char option[20];char name[20];char price[10];char production_date[8];char stale_date[8];char finished_goods[20];char saleroom[20];};void print_1();void create();void edit();void print_2(); /*invoked of edit*/void edit_add(); /*invoked of edit*/void edit_modify(); /*invoked of edit*/void edit_delete(); /*invoked of edit*/void delete_option(); /*invoked of 2delete*/void delete_name(); /*invoked of 2delete*/void show();void search();void search_option(); /*invoked of search*/void search_name(); /*invoked of search*/main(){char choose='\0',yes_no='\0';do{print_1();choose=getch();switch(choose){case'1':create();break; /*create information of commodity*/case'2':edit();break; /*edit information of commodity*/case'3':show();break; /*show information of commodity*/case'4':search();break; /*search information of commodity*/case'0':exit(0);default:printf("\n %c is illegality option!\n",choose);}printf("\n Do you want to continue(y/n)?");do{yes_no=getche();}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');}while(yes_no=='Y'||yes_no=='y');}void print_1() /*show limiting surface of menu*/{clrscr(); /*clearn screen of function*/printf("********************************************************************* ***********\n");printf("************** Manage'system of Commodity Information *************\n");printf("********************************************************************* ***********\n");printf(" |***********************************************|\n");printf(" | Please input option number |\n");printf("|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|\n");printf(" | 1-----Create commodity information |\n");printf(" | 2-----Edit commodity information |\n");printf(" | 3-----Show commodity information |\n");printf(" | 4-----Search commodity information |\n");printf(" | 0-----Exit system |\n");printf(" |***********************************************|\n"); }void create() /*create information of commodity for function*/{int i=0,j,num;struct commodity temp={0};FILE *fp=NULL;fp=fopen("D:\\commodity.txt","w");if(fp==NULL){printf("\n File of information of commodity opening failed.\n");return ;}clrscr(); /*clearn screen of function*/ printf("Please input want to input the number of goods!");scanf("%d",&num);for(j=1;num>=j;j++){printf("\nPlease input %d record:\n",j);printf(" number:");do{gets(temp.option);}while(strcmp(temp.option,"")==0);printf(" name:");gets();printf(" price:");gets(temp.price);printf(" production:");gets(temp.production_date);printf(" stale_date:");gets(temp.stale_date);printf(" finished_goods:");gets(temp.finished_goods);printf(" saleroom:");gets(temp.saleroom);fprintf(fp,"%s %s %s %s %s %s %s\n",temp.option,,temp.price,temp.production_date,temp.stale_date,temp.finished_goods,temp.stale_date);i++;}fclose(fp);}void edit() /*edit information of commodity for function*/ {char choose='\0',yes_no='\0',pass[20]={0},old[20]={0},w;int i=0,j,m=0;FILE *fp_code;fp_code=fopen("D:\\code.txt","r");if(fp_code==NULL){printf("\n File of code opening failed.\n");return ;}fscanf(fp_code,"%s",old);fclose(fp_code);for(j=0;j<=2;j++){printf("Intput password:");i=0;do{w=getch();if(w!='\r'){putch('*');pass[i]=w;i++;}elsebreak;}while(1);if(strcmp(pass,old)==0)break;else{printf("\nYour code is wrong\n");m++;if(m>=3)exit(1);}}do{print_2();printf(" ");choose=getch();switch(choose){case'1':edit_add();break; /*add new information of commodity*/case'2':edit_modify();break; /*modify information of commodity*/case'3':edit_delete();break; /*delete information of commodity*/case'0':exit(0);default:printf("\n %c is illegality option!\n",choose);}printf("\n Do you want to continue(y/n)?");do{yes_no=getche();}while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n');}while(yes_no=='Y'||yes_no=='y');}void print_2() /*show limiting surface of menu*/{clrscr(); /*clearn screen of function*/printf("********************************************************************* ***********\n");printf("************** Manage'system of Commodity Information *************\n");printf("********************************************************************* ***********\n");printf(" |***********************************************|\n");printf(" | Please input option number |\n");printf("|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|\n");printf(" | 1-----Add commodity information |\n");printf(" | 2-----Modify commodity information |\n");printf(" | 3-----Delete commodity information |\n");printf(" | 0-----Exit system |\n");printf(" |***********************************************|\n"); }void edit_add() /*add new information of commodity*/{char c='\0';int n=0;struct commodity temp={0},record[N]={0},*p=NULL;FILE *fp=NULL;fp=fopen("D:\\commodity.txt","r");if(fp==NULL){printf("\n File opening failed.\n");return;}p=record;while(feof(fp)==0){fscanf(fp,"%s%s%s%s%s%s%s",p->option,p->name,p->price,p->production_date,p->stale_d ate,p->finished_goods,p->saleroom);p++;n++;}fclose(fp);do{printf("\n Please input new option:");do{gets(temp.option);}while(strcmp(temp.option," ")==0);printf(" Please input new name:");gets();printf(" Please input new price:");gets(temp.price);printf(" Please input new production:");gets(temp.production_date);printf(" Please input new stale_date:");gets(temp.stale_date);printf(" Please input new finished_goods:");gets(temp.finished_goods);printf(" Please input new saleroom:");gets(temp.saleroom);for(p=record;p<record+n;p++)if(strcmp(temp.option,p->option)==0){printf("\n The option is repeat,if you want to input again(y/n)?");do{c=getche();}while(c!='Y'&&c!='y'&&c!='N'&&c!='n');putchar('\n');break;}if(p==record+n){*p=temp;break;}}while(c=='y'||c=='Y');fp=fopen("D:\\commodity.txt","w");if(fp==NULL){printf("\n File opening failed.\n");return;}for(p=record;p<record+n+1;p++)fprintf(fp,"\n%6s%10s%8s%8s%8s%8s%8s",p->option,p->name,p->price,p->production_dat e,p->stale_date,p->finished_goods,p->saleroom);fclose(fp);}void edit_modify() /*modify information of commodity*/{char c='\0';int n=0;struct commodity *find=NULL,temp={0},record[100]={0},*p=NULL;FILE *fp=NULL;fp=fopen("D:\\commodity.txt","r");if(fp==NULL){printf("\n File opening failed.\n");return;}p=record;while(!feof(fp)){fscanf(fp,"%s%s%s%s%s%s%s",p->option,p->name,p->price,p->production_date,p->stale_d ate,p->finished_goods,p->saleroom);p++;n++;}fclose(fp);if(n==0){printf("\n No record in this file.\n");return;}printf("\n Please input you want to commodity'option:");gets(temp.option);for(p=record;p<record+n;p++)if(strcmp(temp.option,p->option)==0){find=p;break;}if(p==record+n){printf("\n No this commodity.\n");return;}do{printf("\n Please input right option.:");do{gets(temp.option);}while(strcmp(temp.option," ")==0);printf(" Please input right name:");gets();printf(" Please input right price:");gets(temp.price);printf(" Please input right production:");gets(temp.production_date);printf(" Please input right stale_date:");gets(temp.stale_date);printf(" Please input right finished_goods:");gets(temp.finished_goods);printf(" Please input right saleroom:");gets(temp.saleroom);for(p=record;p<record+n;p++)if(strcmp(temp.option,p->option)==0&&(p!=find)){printf("\n The option is repeat,do you want to continue?(y/n)");do{c=getche();}while(c!='Y'&&c!='y'&&c!='N'&&c!='n');putchar('\n');break;}if(p==record+n){*find=temp;break;}}while((c=='y')||(c=='Y'));fp=fopen("D:\\commodity.txt","w");if(fp==NULL){printf("\n File opening is failed.\n");return;}for(p=record;p<record+n;p++)fprintf(fp,"\n%6s%10s%8s%8s%8s%8s%8s",p->option,p->name,p->price,p->production_dat e,p->stale_date,p->finished_goods,p->saleroom);fclose(fp);}void edit_delete() /*delete information of commodity*/{char c='\0';printf("\n According to the option(o) to delete, delete or by the name(n)?");c=getche();if(c=='o'||c=='O')delete_option();elseif(c=='n'||c=='N')delete_name();elseprintf("\n This char is illegal.\n");}void delete_option() /*delete information of commodity by option*/{char tempoption[10]=" ";int n=0;struct commodity record[N]={0},*p=NULL,*k=NULL;FILE *fp=NULL;fp=fopen("D:\\commodity.txt","r");if(fp==NULL){printf("\n File opening is failed.\n");return;}p=record;while(!feof(fp)){fscanf(fp,"%s%s%s%s%s%s%s",p->option,p->name,p->price,p->production_date,p->stale_d ate,p->finished_goods,p->saleroom);p++;n++;}fclose(fp);printf("\n Please input you want to delete the option:");gets(tempoption);for(k=record;k<record+n;k++)if(strcmp(tempoption,k->option)==0)break;if(k<record+n)for(p=k;p<k+n-1;p++)*p=*(p+1);elseprintf("\n No such commodify.\n");fp=fopen("D:\\commodity.txt","w");if(fp==NULL){printf("\n File opening failed.\n");return;}for(p=record;p<record+n-1;p++)fprintf(fp,"\n%6s%10s%8s%8s%8s%8s%8s",p->option,p->name,p->price,p->production_dat e,p->stale_date,p->finished_goods,p->saleroom);fclose(fp);}void delete_name() /*delete information of commodity by name*/ {char tempname[20]="";int n=0;struct commodity record[N]={0},*p=NULL,*k=NULL;FILE *fp=NULL;fp=fopen("D:\\commodity.txt","w");if(fp==NULL){printf("\n File opening failed.\n");return;}p=record;while(!feof(fp)){fscanf(fp,"%s%s%s%s%s%s%s",p->option,p->name,p->price,p->production_date,p->stale_d ate,p->finished_goods,p->saleroom);p++;n++;}fclose(fp);printf("\n Please input you want to delete the name:");gets(tempname);for(k=record;p<(record+n-1);p++)if(strcmp(tempname,k->name)==0)break;if(record+n)for(p=k;p<k+n-1;p++)*p=*(p+1);elseprintf("\n No such commodity.\n");fp=fopen("D:\\commodity.txt","w");if(fp==NULL){printf("\n File opening failed.\n");return;}for(p=record;p<record+n-1;p++)fprintf(fp,"\n%6s%10s%8s%8s%8s%8s%8s",p->option,p->name,p->price,p->production_dat e,p->stale_date,p->finished_goods,p->saleroom);fclose(fp);}void show() /*show information of commodity*/{int n=0;struct commodity temp={0};FILE *fp=NULL;fp=fopen("D:\\commodity.txt","r");if(fp==NULL){printf("\n File opening failed.\n");return;}clrscr(); /*clearn screen of function*/printf(" option name price production stale_date finishde_good saleroom\n");while(!feof(fp)){fscanf(fp,"%s%s%s%s%s%s%s",temp.option,,temp.price,temp.production_date,temp.stale_date,temp.finished_goods,temp.stale_date);printf("\n%5s%11s%8s%10s%10s%15s%14s",temp.option,,temp.price, temp.production_date,temp.stale_date,temp.finished_goods,temp.stale_date);n++;}if(n==0)printf("\n This file has not commodity information.\n");elseprintf("\n This file has commodity'quantity is %d.",n);fclose(fp);}void search() /*search information of commodity*/{char c='\0';printf("\n According to the option(o) to inquires, inquires or by the name(n)?");c=getche();if(c=='o'||c=='O')search_option(); /*search information of commodity by option*/elseif(c=='n'||c=='N')search_name(); /*search information of commodity by name*/ elseprintf("\n This char is illegal.\n");}void search_option() /*search information of commodity by option*/{int flag=0,n=0;char tempoption[10]="";struct commodity temp={0};FILE *fp=NULL;fp=fopen("D:\\commodity.txt","r");if(fp==NULL){printf("\n File opening failed.\n");return;}printf("\n Please input you want to search commodity information by option:");gets(tempoption);while(!feof(fp)){fscanf(fp,"%s%s%s%s%s%s%s",temp.option,,temp.price,temp.production_date,te mp.stale_date,temp.finished_goods,temp.saleroom);if(strcmp(tempoption,temp.option)==0){if(flag==0)printf(" option name price production stale_date finishde_good saleroom\n");printf("\n%5s%11s%8s%10s%10s%15s%14s",temp.option,,temp.price,temp.production_date,temp.stale_date,temp.finished_goods,temp.stale_date);flag=1;}n++;}if(n==0)printf("\n This file has not commodity'information.\n");elseif(flag==0)printf("\n This file has not this commodity.\n");fclose(fp);}void search_name() /*search information of commodity by name*/{int flag=0,n=0;char tempname[10]="";struct commodity temp={0};FILE *fp=NULL;fp=fopen("D:\\commodity.txt","r");if(fp==NULL){printf("\n File opening failed.\n");return;}printf("\n Please input you want to search commodity information by option:");gets(tempname);while(!feof(fp)){fscanf(fp,"%s%s%s%s%s%s%s",temp.option,,temp.price,temp.production_date,te mp.stale_date,temp.finished_goods,temp.saleroom);if(strcmp(tempname,)==0){if(flag==0)printf(" option name price production stale_date finishde_good saleroom\n");printf("\n%5s%11s%8s%10s%10s%15s%14s",temp.option,,temp.price,temp.production_date,temp.stale_date,temp.finished_goods,temp.stale_date);flag=1;}n++;}if(n==0)printf("\n This file has not commodity'information.\n");elseif(flag==0)printf("\n This file has not this commodity.\n");fclose(fp);}。
c 课程设计商品管理系统一、教学目标本课程的教学目标是使学生掌握商品管理系统的基本概念、设计和实现方法。
通过本课程的学习,学生将能够理解商品管理系统的业务流程,掌握系统设计的基本原则和技术,提高解决实际问题的能力。
1.了解商品管理系统的起源和发展历程。
2.掌握商品管理系统的业务流程和基本功能。
3.理解商品管理系统的设计原则和技术架构。
4.能够运用相关工具和技术进行商品管理系统的需求分析。
5.能够根据需求分析结果设计商品管理系统的基本架构。
6.能够编写商品管理系统的核心代码,并进行调试和优化。
情感态度价值观目标:1.培养学生对商品管理系统的兴趣,提高其主动学习和探索的精神。
2.培养学生团队协作的能力,使其能够有效地与他人共同完成任务。
3.培养学生关注社会问题,提高其对商品管理系统在社会中的作用和价值的认识。
二、教学内容本课程的教学内容主要包括商品管理系统的基本概念、业务流程、设计原则和技术架构。
具体包括以下几个部分:1.商品管理系统的基本概念:介绍商品管理系统的发展历程、定义、功能和应用场景。
2.商品管理系统的业务流程:讲解商品管理系统的各个环节,如商品信息管理、库存管理、销售管理等。
3.商品管理系统的设计原则:阐述商品管理系统设计时应遵循的原则,如模块化、灵活性、可扩展性等。
4.商品管理系统的技术架构:介绍商品管理系统常用的技术架构,如客户端/服务器架构、B/S架构等。
5.商品管理系统的实现方法:讲解如何根据设计原则和技术架构实现一个商品管理系统,包括需求分析、系统设计、编码实现等步骤。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性。
主要教学方法包括:1.讲授法:教师讲解商品管理系统的基本概念、设计原则和技术架构,为学生提供系统的知识结构。
2.案例分析法:分析实际案例,使学生更好地理解商品管理系统的业务流程和实现方法。
3.实验法:让学生动手编写代码,实现商品管理系统的部分功能,提高学生的实际操作能力。
购物系统课程设计c语言一、教学目标本课程旨在通过购物系统的设计与实现,让学生掌握C语言编程的基本语法、数据结构及算法,培养学生的实际编程能力和问题解决能力。
具体目标如下:1.理解C语言的基本语法和编程规范。
2.掌握常用的数据结构如数组、链表、栈和队列。
3.学习基本的算法设计与分析方法。
4.能够使用C语言编写简单的程序。
5.能够运用数据结构解决实际问题。
6.能够独立分析问题,设计并实现算法。
情感态度价值观目标:1.培养学生对编程的兴趣和热情。
2.培养学生的团队协作精神和自主学习能力。
3.培养学生面对编程挑战时的耐心和毅力。
二、教学内容教学内容围绕C语言编程展开,具体包括:1.C语言基础:变量、数据类型、运算符、控制结构。
2.函数:递归、参数传递、全局和局部变量。
3.数组和字符串:排序、查找、文本处理。
4.链表:单向链表、双向链表、链表操作。
5.栈和队列:数据结构定义、基本操作。
6.算法:排序算法、搜索算法、图算法。
7.文件操作:文件读写、文件权限。
三、教学方法为了提高学生的编程能力,将采用以下教学方法:1.讲授法:系统讲解C语言的基本概念和语法。
2.案例分析法:通过分析具体的案例,让学生理解数据结构和算法的应用。
3.实验法:上机实验,让学生亲手编写代码,巩固理论知识。
4.讨论法:分组讨论,培养学生的团队协作能力和问题解决能力。
四、教学资源为了支持教学,将准备以下教学资源:1.教材:《C程序设计语言》(K&R)或《C Primer Plus》。
2.多媒体资料:PPT课件、视频教程。
3.实验设备:计算机、网络环境。
4.在线资源:编程练习、开源项目代码。
5.辅助软件:集成开发环境(IDE)、调试工具。
五、教学评估为了全面、公正地评估学生的学习成果,将采用以下评估方式:1.平时表现:考察学生在课堂上的参与度、提问和回答问题的积极性等。
2.作业:布置课后编程作业,评估学生的编程能力和应用能力。
3.实验报告:评估学生在实验过程中的问题解决能力和团队合作精神。
C语言商品信息管理系统#include#includestruct shmas{int no;char name[40];float jinjia;float shoujia;int jinhuo;int xiaoshou;int shengyu;struct shmas *next;};struct shmas *creat(int a);void print(struct shmas *he,int b,int w);struct shmas *insert(struct shmas *hi,struct shmas *hq);struct shmas *del(struct shmas *hv,int v);int main(){int n,x,o,z,l,u;struct shmas *h1,*h2,*h3;printf("***************************欢迎使用商品管理系统!!***************************\n");printf("首先请先创造一个商品文档\n");printf("请输入商品种类的数目:");scanf("%d",&n);h1=creat(n); //在这里开始建立一个大的循环,还需一个清屏函数do{system("cls");h3=h1;while(h3->next!=0){h3=h3->next;}print(h1,h3->no,0);printf("请选择你要进行的功能(按下与之对应的数字键):\n"); printf("1、添加新的商品\n");printf("2、删除已有的商品\n");printf("3、统计销售状况\n");printf("4、显示商品的信息\n");printf("5、退出系统\n");scanf("%d",&x);switch(x){case 1:printf("请输入要添加商品种类的数目:");scanf("%d",&o);h2=creat(o);h1=insert(h2,h1);break;case 2:printf("请输入要删除商品种类的编号:");scanf("%d",&z);h1=del(h1,z);break;case 3:print(h1,h3->no,1);printf("按任意键数字键继续系统运行:\n"); scanf("%d",&l);switch(l){case 1:default:break;}printf("继续运行程序。
*******************实践教学*******************软件学院(本科)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.9 sales 函数 (28)3.10 print 函数 (29)3.11 save 函数 (33)3.12 menu 函数 (34)4 系统运行 (36)5 总结 (41)1 系统分析1.1 课程设计内容1 设计一商场商品信息管理系统,功能包括:1. 文件操作:可建立、打开、保存、关闭数据文件。
2. 输入商品信息数据:数据包括商品编号、商品名、商品类别、商品数量、商品价格等。
3. 编辑数据:可添加、删除、修改数据。
4. 输入进货、销售信息:输入商品编号、数量完成进货或销售操作。
5. 计算:应在输入进货及销售信息时,自动更改商品数量。
6. 查询:可按商品编号、商品名或类别查询;还可查询需进货的商品。
7. 排序:可按编号、名称或类型排序。
8. 浏览:可浏览输入、查询或排序后的数据。
1.2 系统功能需求分析本系统应具有以下功能:1、文件操作功能:可建立、打开、保存、关闭数据文件。
2、数据输入功能: 数据包括商品编号、商品名、商品类别、商品数量、商品价格等。
购物管理系统c语言课程设计一、课程目标知识目标:1. 理解C语言在购物管理系统中的应用,掌握基本数据类型、变量、运算符和表达式;2. 学会使用C语言控制结构(如顺序、选择、循环结构),实现购物管理系统的功能模块;3. 掌握数组、函数、指针在购物管理系统中的运用,实现商品信息、用户信息的存储和管理;4. 了解文件操作在购物管理系统中的应用,实现对数据的持久化存储。
技能目标:1. 能够运用C语言编写简单的购物管理系统程序,实现商品浏览、购买、支付等基本功能;2. 学会使用调试工具,分析并解决程序中出现的错误;3. 能够根据实际需求,设计和优化购物管理系统的功能模块,提高程序的可用性和可维护性;4. 培养良好的编程习惯,编写规范、简洁、高效的代码。
情感态度价值观目标:1. 激发学生对C语言编程的兴趣,培养主动学习和解决问题的能力;2. 培养学生的团队协作精神,学会与他人共同分析和解决问题;3. 增强学生的实践能力,认识到编程在实际应用中的重要性;4. 培养学生诚实守信、认真负责的品质,树立正确的价值观。
本课程旨在帮助学生将所学的C语言知识应用于购物管理系统的实际开发中,通过实践提高编程能力,培养良好的编程习惯,同时关注团队协作和价值观的培养,为将来的学习和工作打下坚实基础。
二、教学内容1. C语言基础知识回顾:- 变量、数据类型、常量- 运算符、表达式、语句- 顺序结构程序设计2. 控制结构:- 选择结构(if、switch)- 循环结构(for、while、do-while)3. 函数与模块化设计:- 函数定义、调用、声明- 作用域规则、局部变量、全局变量- 模块化设计理念4. 数组与指针:- 数组的定义、初始化、访问- 指针的概念、操作、应用- 指针与数组的关系5. 文件操作:- 文件打开、关闭、读写- 文件存储格式、数据持久化6. 购物管理系统功能模块设计:- 商品信息管理- 用户信息管理- 购物车功能实现- 订单管理7. 编程规范与调试:- 代码风格、命名规则- 调试技巧、错误处理8. 实践项目:- 搭建购物管理系统框架- 编写各功能模块代码- 系统测试、优化教学内容将按照以上大纲进行安排和进度规划,与课本内容紧密关联,确保学生能够将所学知识应用于实际项目中。
c 课程设计商店管理系统一、教学目标本课程的教学目标是使学生掌握商店管理系统的基本概念、原理和实现方法。
通过本课程的学习,学生将能够:1.理解商店管理系统的需求和功能;2.掌握商店管理系统的基本架构和设计原则;3.熟悉商店管理系统的主要模块和操作流程;4.学会使用商店管理系统进行日常商店管理;5.能够对商店管理系统进行简单的维护和升级。
二、教学内容本课程的教学内容主要包括以下几个部分:1.商店管理系统的需求分析:介绍商店管理系统的功能和需求,分析商店管理系统的目标用户和应用场景;2.商店管理系统的设计:讲解商店管理系统的基本架构和设计原则,介绍商店管理系统的主要模块和操作流程;3.商店管理系统的实现:教授学生如何使用商店管理系统进行日常商店管理,包括商品管理、库存管理、销售管理等;4.商店管理系统的维护和升级:讲解如何对商店管理系统进行维护和升级,以保证系统的稳定性和可靠性。
三、教学方法本课程采用讲授法、案例分析法和实验法等多种教学方法相结合的方式进行教学。
1.讲授法:通过讲解和演示,使学生掌握商店管理系统的基本概念、原理和操作方法;2.案例分析法:通过分析实际案例,使学生更好地理解和应用商店管理系统的知识和技能;3.实验法:通过实际操作和模拟实验,使学生熟练掌握商店管理系统的使用和维护方法。
四、教学资源本课程的教学资源包括教材、多媒体资料和实验设备等。
1.教材:选用合适的教材,为学生提供系统的理论知识和实践指导;2.多媒体资料:制作多媒体课件和教学视频,丰富教学手段,提高学生的学习兴趣和效果;3.实验设备:准备相应的实验设备,为学生提供实践操作的机会,培养学生的实际操作能力。
五、教学评估本课程的评估方式包括平时表现、作业和考试等。
评估方式应客观、公正,能够全面反映学生的学习成果。
1.平时表现:通过课堂参与、提问和小组讨论等方式评估学生的平时表现,占总评的30%;2.作业:布置适量的作业,评估学生的理解和应用能力,占总评的20%;3.考试:进行期中考试和期末考试,评估学生对课程知识的掌握程度,占总评的50%。
目录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"进行添加商品,接下来只要按要求分别输入商品编号、商品名称、商品类别、商品数量和价格,系统就会自动按我们的输入进行保存,其保存结果可以在查询或浏览函数中输出,输入完毕后,系统显示提示,按任意键便可返回主菜单。