C语言课程设计《商品销售管理系统》
C语言课程设计《商品销售管理系统》
商品销售管理系统目录一、需求分析 (2)二、概要设计 (2)三、详细设计 (4)四、调试分析 (14)五、用户手册 (14)六、测试数据 (15)七、附录 (18)—1—一、需求分析商品销售管理程序商品信息:商品编号、商品名称、商品类别(普通电视机、DVD、带DVD 的电视机,带DVD的电视机的售价为普通电视机和DVD单价之和的80%)、商品进货价格、商品销售价格、商品数量、供应商名称等。
记录每一次销售商品的数量和价格,并提供对已售出商品的价格、数量进行统计、排序功能,但允许用户退商品。
(要求:1.源文件采用多文件的工程结构2.数据存储采用文件形式3.标准的C 输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学)二、概要设计(一)按系统分析的功能要求将系统划分为以下几个主要功能模块:1、文件管理文件打开、关闭:对于刚输入或进行操作后的商品信息,在建立新的商品库存量后,可以把其保存在一个文件中,并对该文件可进行打开和关闭操作。
2、进出货管理(1)商品进货: 输入数据后商品信息能自动更新进行添加(2)商品销售: 输入数据后商品信息能自动更新进行减少3、商品数据管理(1)增加/删除商品: 添加或删除某条商品的信息(2)修改商品信息: 对某条商品的信息进行修改4、浏览商品信息管理(1)查询商品信息:可分别按商品编号、名称、类别或需要进货商品查询(2)排序商品信息: 可按商品编号、名称、类别分别排排序(3)浏览商品信息:可浏览输入、查询或排序后的数据。
(二)本程序结构(1)结构体设计struct goods{ long int num;char name[20];char sort[20];long int count;long int price;}goods[200];(2)各功能函数设计:void input() /*功能1:输入商品信息*/—2—void sequence() /*功能2:排序商品信息*/void purchase() /*功能3:进货商品信息*/void sell() /*功能4:销售商品信息*/void edit() /*功能5:添加或删除商品信息*/void correct() /*功能6:修改商品信息*/void search() /*功能7:查询商品信息*/void scan() /*功能8:浏览商品信息*/void reserve() /*功能9:保存文件*/void quit() /*退出系统*/(3)主函数设计:void main (){void input();void sequence();void purchase();void sell();void edit();void correct();void search();void scan();void reserve();lp: for(i=0;i<1;i++)scanf("%d",&k);system("cls");switch(k) /*用switch语句实现功能选择*/system("cls"); /*清屏*/goto lp; /*返回主界面*/}三、详细设计(1)各功能函数:void input() /*功能1:输入商品信息*/{printf("\n 请输入需要建立新库存的商品种类数量:");scanf("%d",&n);system("cls");printf("\n …………………………………………………………………………………………………\n");for(i=0;i<n;i++) /*用循环实现输入n个商品*/{printf("\n\t*请输入商品的编号:");scanf("%ld",&goods[i].num);printf("\n\t 请输入商品的名称:");—3—scanf("%s",goods[i].name);printf("\n\t 请输入商品的种类:");scanf("%s",goods[i].sort);printf("\n\t 请输入商品的数量:");scanf("%d",&goods[i].count);printf("\n\t 请输入商品的单价:");scanf("%d",&goods[i].price);printf("\n …………………………………………………………………………………………………\n");}printf("\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(p2,goods[i].sort);strcpy(goods[i].sort,goods[i+1].sort);strcpy(goods[i+1].sort,p2);}printf("--------------------------------------------------------------------------------\n");printf("\n\t\t按商品编号排序后的商品信息\n\n");printf("\t商品编号商品名称商品类别商品数量商品单价\n"); /*输出排序后商品信息*/for(i=0;i<n;i++){printf("\t %5ld %5s %5s %5ld %5ld\n",go ods[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);}printf("--------------------------------------------------------------------------------\n");printf("\n\t\t按商品名称排序后的商品信息\n");printf("\n\t商品名称商品编号商品类别商品数量商品单价\n"); /*输出排序后商品信息*/for(i=0;i<n;i++){printf("\t %5s %5ld %5s %5ld %5ld\n",goods[ i].name,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(p2,goods[i].sort);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);}printf("--------------------------------------------------------------------------------");printf("\n\t\t按商品类别排序后的商品信息\n\n");printf("\t商品类别商品编号商品名称商品数量商品单价\n"); /*输出排序后商品信息*/for(i=0;i<n;i++){printf("\t %5s %5ld %5s %5ld %5ld\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);}printf("--------------------------------------------------------------------------------");printf("please press any key to continue:");getch();return; /*返回主界面*/}void purchase() /*功能3:进货商品信息*/ {long temp; /*定义临时变量表示刚进货的商品编号*/int j;printf("\n\t\5请输入刚进货的商品编号:");scanf("%ld",&temp);printf("\n\t\5请输入刚进货的商品数量:");scanf("%d",&j);printf("\n\n\n\tpress any key to contiue:");getch();system("cls");printf("\n\t输出进货后的商品信息:");for(i=0;i<n;i++) /*循环,寻找与进货相同的商品信息*/if(temp==goods[i].num)goods[i].count=goods[i].count+j; /*自动更改商品数量*/printf("\n\t商品编号商品名商品类别商品数量商品价格");for(i=0;i<n;i++) /*循环,输出进货后的商品信息*/{printf("\n\t %4ld %4s %4s %ld %4ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);}printf("\n\n\t\tPress any key to enter menu:");getch(); /*返回功能选择界面*/return;}—6—void sell() /*功能4:销售商品信息*/{long temp; /*定义临时变量temp表示刚销售的商品编号*/int j;printf("\n\t\5请输入刚销售的商品编号:");scanf("%ld",&temp);printf("\n\t\5请输入刚销售的商品数量:");scanf("%d",&j);for(i=0;i<n;i++) /*循环,找到刚销售的商品信息*/{if(temp==goods[i].num){for(;j>goods[i].count;) /*如果销售额大于库存量,则出现错误提示*/{printf("\n\t售出数量大于商品原有数量,出现错误,请重新输入:");scanf("%d",&j);}goods[i].count=goods[i].count-j; /*完成自动更改商品数量的功能*/}}printf("\n\tpress any key to contiue:");getch();system("cls"); /*清屏*/printf("\n\n *销售后商品信息:");printf("\n\t商品类别商品编号商品名称商品数量商品单价\n");for(i=0;i<n;i++) /*循环,输出销售后商品信息*/{printf("\t %4s %4ld %4s %4ld %4ld\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);}printf("\n\tPress any key to enter menu:");getch();return; /*返回功能选择界面*/}void edit() /*功能5:添加或删除商品信息*/ {void add(); /*声明子函数*/void dele();—7—printf("\n\t请选择:1.添加商品信息; 2.删除商品信息;");printf("\t*请输入 1或2 继续:");scanf("%d",&k);switch(k) /*用switch语句实现功能选择*/{case 1: add();break;case 2: dele();break;}getch();return; /*返回主菜单*/}void add() /*添加商品信息*/{ /*定义子函数*/printf("\t*请输入所添加商品的商品编号:");scanf("%ld",&goods[n].num);printf("\n\t请输入所添加商品的名称:");scanf("%s",goods[n].name);printf("\n\t请输入所添加商品的类别:");scanf("%s",goods[n].sort);printf("\n\t请输入所添加商品的数量:");scanf("%d",&goods[n].count);printf("\n\t请输入所添加商品的价格:");scanf("%d",&goods[n].price);n=n+1;printf("\n");}void dele() /*删除商品信息*/{ /*定义子函数*/int temp; /*定义局部变量*/int j;for(i=0;i<n;i++){printf("\n\t商品编号商品名商品类别商品数量商品价格");printf("\n\t %5ld %5s %5s %5ld %5ld",good s[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("\n");printf("\n*请输入要删除的商品编号:");scanf("%ld",&temp);printf("\n\n");—8—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++){printf("\n\t商品编号商品名商品类别商品数量商品价格"); /*输出删除后的商品信息*/printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("Please press any key to continue:");getch();return; /*返回主界面*/}void correct() /*功能6:修改商品信息*/ {long temp; /*定义局部变量*/printf("\n\t请输入要修改的商品的编号:");scanf("%ld",&temp); /*输入新的商品信息*/printf("\n");for(i=0;i<n;i++) /*保存新的商品信息*/{if(temp==goods[i].num){printf("\t请输入一个新的的商品编号:");scanf("%ld",&goods[i].num);printf("\n\t请输入新的商品的名称:");scanf("%s",goods[i].name);printf("\n\t请输入新的商品的类别:");—9—scanf("%s",goods[i].sort);printf("\n\t请输入新的商品的数量:");scanf("%d",&goods[i].count);printf("\n\t请输入新的商品价格:");scanf("%d",&goods[i].price);printf("\n");}}for(i=0;i<n;i++){printf("\n\t新的商品名称商品编号商品类别商品数量商品单价\n");printf("\t %4s %4ld %4s %4ld %4ld",goods[i].name,goods[i].num,goods[i].sort,goods[i].count,goods[ i].price);printf("\n");}printf("Please press any key to continue:"); /*返回功能选择界面*/ getch();return; /*返回主菜单*/}void search() /*功能7:查询商品信息*/{int k; /*定义局部变量*/long temp1;char temp2[30],temp3[20];printf("\n\t\5按商品编号查询,请按1\t\t\t\5按商品名查询,请按2\n\t\5按商品类别查询,请按3\t\t\t\5查需要进货的商品,请按4\n");printf("\n\n\n\t\t\t请输入数字确定查询方式:");scanf("%d",&k);printf("\n");printf("Press any key to continue:");getch();system("cls");switch(k) /*实现查询方式的选择*/{case 1:{ printf("\n\n\n\n\n\t\t请输入要查询的商品的编号:"); /*按商品编号查询*/scanf("%ld",&temp1);system("cls"); /*清屏*/for(i=0;i<n;i++){—10—if(temp1==goods[i].num){printf("\n");printf("\n\t商品编号商品名商品类别商品数量商品价格");printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i] .num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);}}}break; /*跳出switch语句*/case 2:{ printf("\n\n\n\n\n\t\t请输入要查询的商品名:"); /*按商品名查询数据*/scanf("%s",temp2);system("cls");for(i=0;i<n;i++){if(strcmp(temp2,goods[i].name)==0){printf("\n");printf("\n\t商品编号商品名商品类别商品数量商品价格");printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i] .num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);}}}break; /*跳出switch语句*/case 3:{ printf("\n\n\n\n\n\t\t请输入要查询的商品类别:"); /*按商品类别查询数据*/scanf("%s",temp3);system("cls");for(i=0;i<n;i++){if(strcmp(temp3,goods[i].sort)==0){printf("\n");printf("\n\t商品编号商品名商品类别商品数量商品价格");printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i] — 11 —.price);}}}break; /*跳出switch语句*/case 4:{ int a=50;for(i=0;i<n;i++) /*查询需要进货的商品名*/{if(goods[i].count<a)printf("\n\t\t\4需要进货的商品名:%s 现有库存量:%ld\n",goods[i].name,goods[i].count);}}break; /*跳出switch语句*/}printf("\n\n\t\tPress any key to enter menu:");getch();return; /*返回主界面*/}void scan() /*功能8:浏览商品信息*/ {printf("\n\t浏览输入的商品信息,请按1\n\n\t浏览查询的商品信息,请按2\n\n\t浏览排序后商品信息,请按3\n");printf("请选择:");scanf("%d",&k);switch(k){case 1:{ printf("\t\t\t浏览输入的商品信息\n");printf("\t商品编号商品名商品类别商品数量商品价格\n");/*输出浏览商品信息*/for(i=0;i<n;i++){printf("\t%5ld %5s %5s %5ld %ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("Press any key to enter menu:");getch();return;} break; /*跳出switch语句*/case 2:{ printf("\t\t\t浏览查询的商品信息\n");—12—printf("\t商品编号商品名商品类别商品数量商品价格\n");/*输出浏览商品信息*/for(i=0;i<n;i++){printf("\t%5ld %5s %5s %5ld %ld",goods[i] .num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("\nPress any key to enter menu:");getch();return;} break; /*跳出switch语句*/case 3:{ printf("\t\t\t浏览按商品编号排序的商品信息\n");printf("\t商品编号商品名商品类别商品数量商品价格\n");/*输出浏览商品信息*/for(i=0;i<n;i++){printf("\t%5ld %5s %5s %5ld %ld",goods[i].num ,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("\nPress any key to enter menu:");getch();return; /*返回主界面*/} break; /*跳出switch语句*/}}void reserve() /*功能9:保存文件*/{FILE *fp;char file[15]; /*用来存放文件保存路径以及文件名*/system("cls"); /*清屏*/printf("\n\t*请输入文件路径及文件名:");scanf("%s",file);fp=fopen("file","w+"); /*创建并打开一个文件,并得到该文件的地址*/fprintf(fp,"商品编号\t商品名 \t商品类别\t商品数量\t商品价格\n"); printf("商品编号\t商品名 \t 商品类别\t 商品数量\t 商品价格\n");for(i=0;i<n;i++)—13—{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,goods[i].count,goods[i].price);printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\n",goods[i].num,goods[i].name,goo ds[i].sort,goods[i].count,goods[i].price);}fclose(fp); /*关闭文件*/printf("文件已经保存!\n");getch();system("cls"); /*清屏*/}void quit() /*退出系统*/{exit(0);}四、调试手册(1)、sp.c(225) : warning C4013: 'add' undefined; assuming extern returning int add()函数声明错误。
c语言销售管理系统课程设计
c语言销售管理系统课程设计一、课程目标知识目标:1. 学生能理解C语言在开发销售管理系统中的应用,掌握基本的程序结构、语法和常用库函数。
2. 学生能掌握使用C语言进行数据存储、读取、计算和展示的方法,并能应用于销售管理系统的设计与实现。
3. 学生能理解销售管理系统的业务流程,掌握相关算法和数据处理方法。
技能目标:1. 学生能运用所学知识,独立设计并编写简单的销售管理系统模块,如商品信息管理、销售记录管理等。
2. 学生能通过调试和优化程序,提高销售管理系统的稳定性和效率。
3. 学生能运用所学知识解决实际问题,具备一定的编程实践能力。
情感态度价值观目标:1. 学生在学习过程中,培养对编程的兴趣和热情,形成积极向上的学习态度。
2. 学生通过团队协作,培养沟通、协作和解决问题的能力,增强团队意识。
3. 学生能够认识到编程在现实生活中的应用价值,激发对计算机技术发展的关注和探索。
课程性质:本课程为实践性较强的课程,旨在让学生通过动手实践,掌握C语言在销售管理系统中的应用。
学生特点:学生具备一定的C语言基础,对编程有一定了解,但实际操作经验不足。
教学要求:注重理论与实践相结合,强调动手实践,培养学生解决实际问题的能力。
在教学过程中,关注学生的个体差异,因材施教,提高学生的编程水平和综合素质。
二、教学内容1. 销售管理系统概述:介绍销售管理系统的基本概念、功能模块及其在实际应用中的重要性。
- 教材章节:第一章 引言2. C语言基础回顾:回顾C语言的基本语法、数据类型、运算符、控制结构等,为后续编程实践打下基础。
- 教材章节:第二章 C语言基础3. 数据存储与读取:学习文件操作、内存分配等知识,掌握数据在销售管理系统中的存储和读取方法。
- 教材章节:第三章 文件操作、第四章 内存管理4. 销售管理系统功能模块设计:- 商品信息管理:学习结构体、数组等知识,实现商品信息的添加、修改、查询和删除功能。
- 教材章节:第五章 结构体与数组- 销售记录管理:学习链表、排序等知识,实现销售记录的录入、查询、统计和排序功能。
C语言课程设计商品销售管理系统
C语言课程设计商品销售管理系统商品销售管理系统目录一、需求分析 (2)二、概要设计 (2)三、详细设计 (4)四、调试分析 (14)五、用户手册 (14)六、测试数据 (15)七、附录 (18)—1—一、需求分析商品销售管理程序商品信息:商品编号、商品名称、商品类别(普通电视机、DVD、带DVD的电视机,带DVD的电视机的售价为普通电视机和DVD单价之和的80%)、商品进货价格、商品销售价格、商品数量、供应商名称等。
记录每一次销售商品的数量和价格,并提供对已售出商品的价格、数量进行统计、排序功能,但允许用户退商品。
(要求:1.源文件采用多文件的工程结构 2.数据存储采用文件形式3.标准的C输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学)二、概要设计(一)按系统分析的功能要求将系统划分为以下几个主要功能模块:1、文件管理文件打开、关闭:对于刚输入或进行操作后的商品信息,在建立新的商品库存量后,能够把其保存在一个文件中,并对该文件可进行打开和关闭操作。
2、进出货管理(1)商品进货: 输入数据后商品信息能自动更新进行添加(2)商品销售: 输入数据后商品信息能自动更新进行减少3、商品数据管理(1)增加/删除商品: 添加或删除某条商品的信息(2)修改商品信息: 对某条商品的信息进行修改4、浏览商品信息管理(1)查询商品信息:可分别按商品编号、名称、类别或需要进货商品查询(2)排序商品信息: 可按商品编号、名称、类别分别排排序(3)浏览商品信息:可浏览输入、查询或排序后的数据。
(二)本程序结构(1)结构体设计struct goods{ long int num;char name[20];char sort[20];long int count;long int price;}goods[200];(2)各功能函数设计:void input() /*功能1:输入商品信息*/—2—void sequence() /*功能2:排序商品信息*/void purchase() /*功能3:进货商品信息*/void sell() /*功能4:销售商品信息*/void edit() /*功能5:添加或删除商品信息*/ void correct() /*功能6:修改商品信息*/void search() /*功能7:查询商品信息*/void scan() /*功能8:浏览商品信息*/void reserve() /*功能9:保存文件*/void quit() /*退出系统*/(3)主函数设计:void main (){void input();void sequence();void purchase();void sell();void edit();void correct();void search();void scan();void reserve();lp: for(i=0;i<1;i++)scanf("%d",&k);system("cls");switch(k) /*用switch语句实现功能选择*/。
c语言课程设计销售管理系统
c语言课程设计销售管理系统一、教学目标本章节的教学目标旨在让学生掌握C语言编程基础,能够运用C语言设计销售管理系统。
具体目标如下:1.知识目标:学生需要掌握C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,了解结构体和文件操作等相关概念。
2.技能目标:学生能够运用C语言进行程序设计,具备编写和调试C语言程序的能力。
学生能够运用结构体设计销售管理系统的相关数据结构,并使用文件操作实现数据的持久化存储。
3.情感态度价值观目标:学生能够体验到编程的乐趣,培养对计算机科学的兴趣。
通过完成销售管理系统的项目,培养学生的创新能力和团队合作意识。
二、教学内容本章节的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,以及结构体和文件操作等相关概念。
具体安排如下:1.C语言基本语法和数据类型:介绍C语言的基本语法规则,包括变量声明、数据类型、运算符等。
2.控制结构:讲解条件语句和循环语句的用法,包括if语句、switch语句、for循环、while循环等。
3.函数:介绍函数的定义和调用,包括主函数、参数传递、返回值等。
4.结构体:讲解结构体的定义和使用,包括结构体的声明、成员访问、结构体数组等。
5.文件操作:介绍文件操作的基本方法,包括文件的打开、读写、关闭等。
6.销售管理系统的实现:引导学生运用所学知识设计和实现一个简单的销售管理系统,包括数据结构的设计、功能的实现和文件的操作。
三、教学方法本章节的教学方法采用讲授法、案例分析法和实验法相结合的方式。
具体安排如下:1.讲授法:教师通过讲解C语言的基本语法、数据类型、运算符、控制结构、函数等基础知识,引导学生理解和掌握相关概念。
2.案例分析法:教师通过分析典型的销售管理系统的案例,引导学生运用所学知识进行系统设计和功能实现。
3.实验法:教师引导学生进行实验,让学生亲自动手编写和调试C语言程序,培养学生的编程能力和解决问题的能力。
c语言销售管理系统课程设计
c语言销售管理系统课程设计一、教学目标本课程的目标是让学生掌握C语言销售管理系统的基本概念、设计方法和实现技巧。
通过本课程的学习,学生应能够:1.理解销售管理系统的业务流程和需求分析。
2.掌握C语言的基本语法和数据结构。
3.学会使用C语言进行程序设计和调试。
4.能够独立完成销售管理系统的模块设计和实现。
5.培养学生的团队协作能力和问题解决能力。
二、教学内容本课程的教学内容主要包括以下几个部分:1.销售管理系统的需求分析:介绍销售管理系统的业务流程,让学生了解销售管理系统的基本功能和需求。
2.C语言基础:讲解C语言的基本语法、数据类型、运算符、控制结构等,为学生进行程序设计打下基础。
3.数据结构:介绍常用的数据结构,如数组、链表、栈和队列等,让学生学会如何选择合适的数据结构来解决实际问题。
4.销售管理系统的模块设计:引导学生运用C语言和数据结构知识,分模块设计销售管理系统。
5.程序调试与优化:讲解程序调试的方法和技巧,让学生能够独立发现和解决问题。
三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学:1.讲授法:讲解基本概念、原理和方法,让学生掌握销售管理系统的设计思路。
2.案例分析法:分析实际案例,让学生了解销售管理系统的应用场景。
3.实验法:让学生动手实践,培养实际编程能力和问题解决能力。
4.讨论法:学生进行小组讨论,促进学生之间的交流与合作。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C语言程序设计》等相关教材,为学生提供理论基础。
2.参考书:提供一些销售管理系统的经典案例和源代码,供学生参考学习。
3.多媒体资料:制作课件、教学视频等,丰富教学手段,提高学生的学习兴趣。
4.实验设备:提供计算机、编程环境等,让学生能够进行实际编程和调试。
五、教学评估本课程的评估方式将包括以下几个方面:1.平时表现:评估学生在课堂上的参与程度、提问和回答问题的表现等,占总评的20%。
C语言课程设计销售管理系统报告(大全五篇)
C语言课程设计销售管理系统报告(大全五篇)第一篇:C语言课程设计销售管理系统报告报告正文1、题目与要求:1.1 某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。
每个销售员都将当日出售的每种产品各写一张便条交上来。
每张便条内容有•销售员的代号•产品的代号•这种产品当天的销售额1.2 每位销售员每天可能上缴0-5张便条。
假设手机到了上个月的所有便条,编写一个处理系统,读取上月的销售情况(自己设定),进行如下处理:•计算上个月没人每种产品的销售额•按销售额对销售员进行排序,输出排序结果(销售员代号)•统计每种产品的总销售额,对这些产品从高到低的顺序输出结果(须输出产品的代号和销售额)•输出统计报表2、需求分析本程序将用到文件系统,list.txt文件内容作为数据源,其中单行内容代表一张纸条。
程序运行后首先将文件系统的原始数据读取并保存到程序的结构体数组当中,所以应提供文件输入的操作;由于纸条数据零散,所以要对原始数据进行分类操作并提供一个数组用于保存分类信息;在程序中要进行统计工作,所以要提供显示、排序等操作;另外应提供键盘式选择菜单实现功能选择。
3、功能实现设计3.1总体设计根据上面的分析,可以将这个系统分为如下五大模块:查看每人每种产品的销售额、按销售额对销售员排序、对每种产品总销售额从高到低排序、输出统计报表和退出。
其中主要模块是前四个模块。
3.2流程图3.3详细设计:3.3.1【头文件和预定义】 #include #include#include #include #define M 155 3.3.2【功能函数声明】 void detail(); void foreach(); void menu(); void product(); void readdata(); void seller(); void total(); void choice(); 3.3.3【数据结构】原始数据有销售员代号、产品代号和销售额,所以定义一个全局结构体数组scrip用于保存原始数据。
销售管理系统c语言课程设计
销售管理系统c语言课程设计一、课程目标知识目标:1. 理解C语言在销售管理系统中的应用场景和优势;2. 掌握C语言基本语法和数据结构,如数组、结构体、文件操作等;3. 学会使用C语言实现销售管理系统的基本功能,如商品信息管理、销售记录管理、数据查询等。
技能目标:1. 培养学生运用C语言解决实际问题的能力;2. 提高学生分析需求、设计系统、编写代码、调试程序的能力;3. 培养学生团队协作、沟通表达和解决问题的能力。
情感态度价值观目标:1. 培养学生对编程和计算机科学的兴趣,激发学生的创新意识;2. 增强学生的自信心,培养学生面对困难勇于挑战的精神;3. 引导学生关注社会热点问题,理解销售管理系统在现实生活中的应用,培养学生的社会责任感。
课程性质:本课程为实践性较强的课程,以项目为导向,结合实际应用场景,培养学生的编程能力和解决实际问题的能力。
学生特点:学生已经具备C语言基础知识和一定的编程能力,对实际项目有一定的了解,但可能缺乏项目实战经验。
教学要求:注重理论与实践相结合,以项目为主线,引导学生主动探究,培养其编程思维和实际操作能力。
将课程目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. C语言基础回顾:数据类型、运算符、控制结构、函数等基本概念;2. 销售管理系统需求分析:介绍系统功能模块,如商品管理、销售记录、用户管理等;3. 数据结构设计:数组、结构体、链表等在销售管理系统中的应用;4. 文件操作:文件的打开、读取、写入和关闭,实现数据的持久化存储;5. 销售管理系统功能实现:分别实现商品信息管理、销售记录管理、数据查询等功能;- 商品信息管理:添加、修改、删除商品信息;- 销售记录管理:记录销售数据,实现销售统计;- 数据查询:根据需求查询商品信息和销售记录;6. 系统测试与优化:对销售管理系统进行功能测试、性能测试和优化;7. 项目总结与评价:总结项目实施过程中的经验和教训,进行自我评价和互相评价。
C语言课程设计《商品销售管理系统》
C语言课程设计《商品销售管理系统》摘要本文介绍的是C语言课程设计《商品销售管理系统》,通过使用C语言编程制作的电脑程序,能实现商品销售入库、库存管理、采购管理、商品销售及库存查询功能,设计的目的是为了让电脑为商店的销售管理工作提供帮助。
关键词:C语言课程设计;商品销售管理系统;商品入库;库存管理;采购管理。
1 绪论商品销售管理系统是一种电脑信息系统,是通过计算机程序实现库存管理、采购管理、销售管理、库存查询等基本功能,以便更有效地管理货物出售,节省人力与财力的。
因此,本文将使用C语言开发一个基于计算机的商品销售管理系统,以实现商品销售入库、库存管理、采购管理、商品销售及库存查询等功能。
2 功能需求2.1主菜单程序的功能菜单由主菜单控制,主菜单主要有以下几项功能:(1)商品入库(2)库存管理(3)采购管理(4)库存查询(5)商品销售(6)退出系统2.2 商品入库此功能需要实现商品信息录入功能,比如商品名称、售价、单位、购买数量等。
2.3 库存管理此功能的功能是实现对商品库存的管理,可以实现对商品库存的查看和管理功能,方便商家明确库存量。
2.4 采购管理此功能是实现采购管理,功能包括供货商信息管理、商品采购管理、采购账务记账等。
2.6 商品销售此功能用于实现对商品的销售,可以实现商品信息的查看及购买,销售的同时可以实现商品库存的查看。
3 系统建模系统建模是用逻辑模型来描述系统信息流程,包括实体-实体关系模型、关系模型及功能模型,实体-实体关系模型可以描述系统中各实体之间关系的抽象结构;关系模型能将系统中的关键实体和关联分析结构表示出来;功能模型能实现各种功能以及功能之间的关系结构。
4 系统设计本系统的设计重点是编写C语言程序,以实现商品销售管理系统功能。
核心算法包括以下:(1)无源文件init_menu(),用于初始化主菜单,根据用户输入调用不同的程序完成功能;(2)商品入库文件proc_input(),主要实现商品信息录入功能,需要获取用户输入的商品信息并存储;(3)库存管理文件proc_manage(),实现对商品库存的查看和管理功能,若商品库存不足,则可以选择跳转到商品采购管理程序;(4)采购管理文件proc_buy(),主要实现采购管理功能,包括供货商信息管理、商品采购管理、采购账务记账等;(5)库存查询文件proc_search(),用于实现对商品库存数量查询;(6)商品销售文件proc_sale(),用于实现商品的销售,销售的同时可以实现商品库存的查看。
C语言课程设计《商品销售管理系统》
商品销售管理系统目录一、需求分析 (2)二、概要设计 (2)三、详细设计 (4)四、调试分析 (14)五、用户手册 (14)六、测试数据 (15)七、附录 (18)—1—一、需求分析商品销售管理程序商品信息:商品编号、商品名称、商品类别(普通电视机、DVD、带DVD的电视机,带DVD的电视机的售价为普通电视机和DVD单价之和的80%)、商品进货价格、商品销售价格、商品数量、供应商名称等。
记录每一次销售商品的数量和价格,并提供对已售出商品的价格、数量进行统计、排序功能,但允许用户退商品。
(要求:1.源文件采用多文件的工程结构2.数据存储采用文件形式3.标准的C输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学)二、概要设计(一)按系统分析的功能要求将系统划分为以下几个主要功能模块:1、文件管理文件打开、关闭:对于刚输入或进行操作后的商品信息,在建立新的商品库存量后,可以把其保存在一个文件中,并对该文件可进行打开和关闭操作。
2、进出货管理(1)商品进货: 输入数据后商品信息能自动更新进行添加(2)商品销售: 输入数据后商品信息能自动更新进行减少3、商品数据管理(1)增加/删除商品: 添加或删除某条商品的信息(2)修改商品信息: 对某条商品的信息进行修改4、浏览商品信息管理(1)查询商品信息:可分别按商品编号、名称、类别或需要进货商品查询(2)排序商品信息: 可按商品编号、名称、类别分别排排序(3)浏览商品信息:可浏览输入、查询或排序后的数据。
(二)本程序结构(1)结构体设计struct goods{ long int num;char name[20];char sort[20];long int count;long int price;}goods[200];(2)各功能函数设计:void input() /*功能1:输入商品信息*/—2—void sequence() /*功能2:排序商品信息*/void purchase() /*功能3:进货商品信息*/void sell() /*功能4:销售商品信息*/void edit() /*功能5:添加或删除商品信息*/void correct() /*功能6:修改商品信息*/void search() /*功能7:查询商品信息*/void scan() /*功能8:浏览商品信息*/void reserve() /*功能9:保存文件*/void quit() /*退出系统*/(3)主函数设计:void main (){void input();void sequence();void purchase();void sell();void edit();void correct();void search();void scan();void reserve();lp: for(i=0;i<1;i++)scanf("%d",&k);system("cls");switch(k) /*用switch语句实现功能选择*/system("cls"); /*清屏*/goto lp; /*返回主界面*/}三、详细设计(1)各功能函数:void input() /*功能1:输入商品信息*/{printf("\n 请输入需要建立新库存的商品种类数量:");scanf("%d",&n);system("cls");printf("\n …………………………………………………………………………………………………\n");for(i=0;i<n;i++) /*用循环实现输入n个商品*/{printf("\n\t*请输入商品的编号:");scanf("%ld",&goods[i].num);printf("\n\t 请输入商品的名称:");—3—scanf("%s",goods[i].name);printf("\n\t 请输入商品的种类:");scanf("%s",goods[i].sort);printf("\n\t 请输入商品的数量:");scanf("%d",&goods[i].count);printf("\n\t 请输入商品的单价:");scanf("%d",&goods[i].price);printf("\n …………………………………………………………………………………………………\n");}printf("\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(p2,goods[i].sort);strcpy(goods[i].sort,goods[i+1].sort);strcpy(goods[i+1].sort,p2);}printf("--------------------------------------------------------------------------------\n");printf("\n\t\t按商品编号排序后的商品信息\n\n");printf("\t商品编号商品名称商品类别商品数量商品单价\n"); /*输出排序后商品信息*/for(i=0;i<n;i++){printf("\t %5ld %5s %5s %5ld %5ld\n",go ods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);—4—}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);}printf("--------------------------------------------------------------------------------\n");printf("\n\t\t按商品名称排序后的商品信息\n");printf("\n\t商品名称商品编号商品类别商品数量商品单价\n"); /*输出排序后商品信息*/for(i=0;i<n;i++){printf("\t %5s %5ld %5s %5ld %5ld\n",goods[ i].name,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(p2,goods[i].sort);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);}printf("-------------------------------------------------------------—5—-------------------");printf("\n\t\t按商品类别排序后的商品信息\n\n");printf("\t商品类别商品编号商品名称商品数量商品单价\n"); /*输出排序后商品信息*/for(i=0;i<n;i++){printf("\t %5s %5ld %5s %5ld %5ld\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);}printf("--------------------------------------------------------------------------------");printf("please press any key to continue:");getch();return; /*返回主界面*/}void purchase() /*功能3:进货商品信息*/ {long temp; /*定义临时变量表示刚进货的商品编号*/int j;printf("\n\t\5请输入刚进货的商品编号:");scanf("%ld",&temp);printf("\n\t\5请输入刚进货的商品数量:");scanf("%d",&j);printf("\n\n\n\tpress any key to contiue:");getch();system("cls");printf("\n\t输出进货后的商品信息:");for(i=0;i<n;i++) /*循环,寻找与进货相同的商品信息*/if(temp==goods[i].num)goods[i].count=goods[i].count+j; /*自动更改商品数量*/printf("\n\t商品编号商品名商品类别商品数量商品价格");for(i=0;i<n;i++) /*循环,输出进货后的商品信息*/{printf("\n\t %4ld %4s %4s %ld %4ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);}printf("\n\n\t\tPress any key to enter menu:");getch(); /*返回功能选择界面*/return;}—6—void sell() /*功能4:销售商品信息*/{long temp; /*定义临时变量temp表示刚销售的商品编号*/int j;printf("\n\t\5请输入刚销售的商品编号:");scanf("%ld",&temp);printf("\n\t\5请输入刚销售的商品数量:");scanf("%d",&j);for(i=0;i<n;i++) /*循环,找到刚销售的商品信息*/{if(temp==goods[i].num){for(;j>goods[i].count;) /*如果销售额大于库存量,则出现错误提示*/{printf("\n\t售出数量大于商品原有数量,出现错误,请重新输入:");scanf("%d",&j);}goods[i].count=goods[i].count-j; /*完成自动更改商品数量的功能*/}}printf("\n\tpress any key to contiue:");getch();system("cls"); /*清屏*/printf("\n\n *销售后商品信息:");printf("\n\t商品类别商品编号商品名称商品数量商品单价\n");for(i=0;i<n;i++) /*循环,输出销售后商品信息*/{printf("\t %4s %4ld %4s %4ld %4ld\n",g oods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price );}printf("\n\tPress any key to enter menu:");getch();return; /*返回功能选择界面*/}void edit() /*功能5:添加或删除商品信息*/ {void add(); /*声明子函数*/void dele();—7—printf("\n\t请选择:1.添加商品信息; 2.删除商品信息;");printf("\t*请输入 1或2 继续:");scanf("%d",&k);switch(k) /*用switch语句实现功能选择*/{case 1: add();break;case 2: dele();break;}getch();return; /*返回主菜单*/}void add() /*添加商品信息*/{ /*定义子函数*/printf("\t*请输入所添加商品的商品编号:");scanf("%ld",&goods[n].num);printf("\n\t请输入所添加商品的名称:");scanf("%s",goods[n].name);printf("\n\t请输入所添加商品的类别:");scanf("%s",goods[n].sort);printf("\n\t请输入所添加商品的数量:");scanf("%d",&goods[n].count);printf("\n\t请输入所添加商品的价格:");scanf("%d",&goods[n].price);n=n+1;printf("\n");}void dele() /*删除商品信息*/{ /*定义子函数*/int temp; /*定义局部变量*/int j;for(i=0;i<n;i++){printf("\n\t商品编号商品名商品类别商品数量商品价格");printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("\n");printf("\n*请输入要删除的商品编号:");scanf("%ld",&temp);printf("\n\n");—8—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++){printf("\n\t商品编号商品名商品类别商品数量商品价格"); /*输出删除后的商品信息*/printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("Please press any key to continue:");getch();return; /*返回主界面*/}void correct() /*功能6:修改商品信息*/ {long temp; /*定义局部变量*/printf("\n\t请输入要修改的商品的编号:");scanf("%ld",&temp); /*输入新的商品信息*/printf("\n");for(i=0;i<n;i++) /*保存新的商品信息*/{if(temp==goods[i].num){printf("\t请输入一个新的的商品编号:");scanf("%ld",&goods[i].num);printf("\n\t请输入新的商品的名称:");scanf("%s",goods[i].name);printf("\n\t请输入新的商品的类别:");—9—scanf("%s",goods[i].sort);printf("\n\t请输入新的商品的数量:");scanf("%d",&goods[i].count);printf("\n\t请输入新的商品价格:");scanf("%d",&goods[i].price);printf("\n");}}for(i=0;i<n;i++){printf("\n\t新的商品名称商品编号商品类别商品数量商品单价\n");printf("\t %4s %4ld %4s %4ld %4ld",goods[i].name,goods[i].num,goods[i].sort,goods[i].count,goods[ i].price);printf("\n");}printf("Please press any key to continue:"); /*返回功能选择界面*/getch();return; /*返回主菜单*/}void search() /*功能7:查询商品信息*/{int k; /*定义局部变量*/long temp1;char temp2[30],temp3[20];printf("\n\t\5按商品编号查询,请按1\t\t\t\5按商品名查询,请按2\n\t\5按商品类别查询,请按3\t\t\t\5查需要进货的商品,请按4\n");printf("\n\n\n\t\t\t请输入数字确定查询方式:");scanf("%d",&k);printf("\n");printf("Press any key to continue:");getch();system("cls");switch(k) /*实现查询方式的选择*/{case 1:{ printf("\n\n\n\n\n\t\t请输入要查询的商品的编号:"); /*按商品编号查询*/scanf("%ld",&temp1);system("cls"); /*清屏*/for(i=0;i<n;i++){—10—if(temp1==goods[i].num){printf("\n");printf("\n\t商品编号商品名商品类别商品数量商品价格");printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i] .num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);}}}break; /*跳出switch语句*/case 2:{ printf("\n\n\n\n\n\t\t请输入要查询的商品名:"); /*按商品名查询数据*/scanf("%s",temp2);system("cls");for(i=0;i<n;i++){if(strcmp(temp2,goods[i].name)==0){printf("\n");printf("\n\t商品编号商品名商品类别商品数量商品价格");printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i] .num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);}}}break; /*跳出switch语句*/case 3:{ printf("\n\n\n\n\n\t\t请输入要查询的商品类别:"); /*按商品类别查询数据*/scanf("%s",temp3);system("cls");for(i=0;i<n;i++){if(strcmp(temp3,goods[i].sort)==0)printf("\n");printf("\n\t商品编号商品名商品类别商品数量商品价格");printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i] — 11 —.price);}}}break; /*跳出switch语句*/case 4:{ int a=50;for(i=0;i<n;i++) /*查询需要进货的商品名*/{if(goods[i].count<a)printf("\n\t\t\4需要进货的商品名:%s 现有库存量:%ld\n",goods[i].name,goods[i].count);}}break; /*跳出switch语句*/}printf("\n\n\t\tPress any key to enter menu:");getch();return; /*返回主界面*/}void scan() /*功能8:浏览商品信息*/ {printf("\n\t浏览输入的商品信息,请按1\n\n\t浏览查询的商品信息,请按2\n\n\t浏览排序后商品信息,请按3\n");printf("请选择:");scanf("%d",&k);switch(k){case 1:{ printf("\t\t\t浏览输入的商品信息\n");printf("\t商品编号商品名商品类别商品数量商品价格\n");/*输出浏览商品信息*/for(i=0;i<n;i++){printf("\t%5ld %5s %5s %5ld %ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");printf("Press any key to enter menu:");getch();return;} break; /*跳出switch语句*/case 2:{ printf("\t\t\t浏览查询的商品信息\n");—12—printf("\t商品编号商品名商品类别商品数量商品价格\n");/*输出浏览商品信息*/for(i=0;i<n;i++){printf("\t%5ld %5s %5s %5ld %ld",goods[i] .num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("\nPress any key to enter menu:");getch();return;} break; /*跳出switch语句*/case 3:{ printf("\t\t\t浏览按商品编号排序的商品信息\n");printf("\t商品编号商品名商品类别商品数量商品价格\n");/*输出浏览商品信息*/for(i=0;i<n;i++){printf("\t%5ld %5s %5s %5ld %ld",goods[i].num ,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("\nPress any key to enter menu:");getch();return; /*返回主界面*/} break; /*跳出switch语句*/}}void reserve() /*功能9:保存文件*/{FILE *fp;char file[15]; /*用来存放文件保存路径以及文件名*/ system("cls"); /*清屏*/printf("\n\t*请输入文件路径及文件名:");scanf("%s",file);fp=fopen("file","w+"); /*创建并打开一个文件,并得到该文件的地址*/fprintf(fp,"商品编号\t商品名 \t商品类别\t商品数量\t商品价格\n");printf("商品编号\t商品名 \t 商品类别\t 商品数量\t 商品价格\n");for(i=0;i<n;i++)—13—{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,goods[i].count,goods[i].price);printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\n",goods[i].num,goods[i].name,goo ds[i].sort,goods[i].count,goods[i].price);}fclose(fp); /*关闭文件*/printf("文件已经保存!\n");getch();system("cls"); /*清屏*/}void quit() /*退出系统*/{exit(0);}四、调试手册(1)、sp.c(225) : warning C4013: 'add' undefined; assuming extern returning int add()函数声明错误。
商品销售c语言课程设计
商品销售 c语言课程设计一、课程目标知识目标:1. 理解C语言在商品销售管理系统中的应用,掌握相关数据结构(如结构体、数组、链表)的使用;2. 学会使用C语言实现商品信息的增删改查功能,了解文件操作在商品数据存储中的应用;3. 了解模块化编程思想,掌握函数的定义、调用及参数传递。
技能目标:1. 培养学生运用C语言编写商品销售管理系统程序的能力,具备解决实际问题的编程技能;2. 培养学生分析问题、设计算法、编写代码、调试程序的能力;3. 提高学生的团队协作能力,学会与他人共同完成一个项目。
情感态度价值观目标:1. 培养学生对计算机编程的兴趣,激发学习积极性,增强自信心;2. 培养学生认真负责的工作态度,养成良好的编程习惯;3. 通过项目实践,使学生认识到编程在解决实际问题中的价值,提高社会责任感。
分析课程性质、学生特点和教学要求,本课程目标旨在使学生掌握C语言在商品销售管理系统中的应用,培养其编程技能和实际解决问题的能力。
课程目标具体、可衡量,以便学生和教师在教学过程中能够明确课程预期成果,并为后续的教学设计和评估提供依据。
二、教学内容1. C语言基础回顾:数据类型、变量、运算符、控制结构(条件语句、循环语句);2. 函数:函数的定义、调用、参数传递、递归;3. 数据结构:结构体、数组、链表;4. 文件操作:文件的打开、关闭、读写、定位;5. 商品销售管理系统功能设计:- 商品信息的增删改查功能;- 销售记录的录入与查询;- 库存管理;- 用户登录与权限管理。
6. 系统实现:模块化编程、函数封装、代码优化;7. 项目实践:分组合作完成商品销售管理系统的设计与实现,并进行测试与调试。
教学内容按照教学大纲的安排,从C语言基础知识回顾开始,逐步深入到函数、数据结构、文件操作等高级内容。
在教学过程中,结合教材相关章节,让学生掌握商品销售管理系统的功能设计及实现方法。
教学内容科学、系统,符合学生的认知发展规律,确保学生能够学以致用,提高实际编程能力。
VC课程设计商品销售管理系统.doc
VC课程设计商品销售管理系统第一章需求分析1.1 商品销售管理功能概述21世纪是个信息发展的时代,随着电脑普及时代的来临以及互联网的迅速发展,越来越多的进程从单一的人工管理上升到电脑智能管理,企业的发展更不例外,商品的经营管理,经营模式已经慢慢的从手工管理过渡到了计算机管理。
对于发展中的绝大多数企业来说,随着规模的不断扩大,商品种类的不断丰富与完善,需要管理的各种商品信息也会大幅度增加,无论是商品管理,订货管理,销售管理,都变得相对复杂。
这里开发出了一个“商品销售管理系统”,对企业的发展至关重要,无疑为商品销售的可持续发展,日益壮大提供了保障和解决方案,也节省了大量时间,从而提高了商品销售的运转效率,更有利于企业的管理和维持。
商品销售管理系统可以实现企业商品管理的网络化,信息化,现代化,可以有效的提高企业商品的管理效率,节约了管理开支。
通过调查,要求系统需要具有以下功能:(1) 由于该系统的使用对象多,要求有较好的权限管理。
(2) 方便的数据查询,支持多条件查询。
(3) 基础信息管理与查询,其中包括商品信息、客户信息和员工信息。
(4) 通过计算机,能够直接“透视”商品销售情况。
(5) 完善的商品查询信息、商品销售信息进行管理。
(6) 当外界环境(停电、网络病毒)干扰本系统后,系统可以自动保护原始数据的安全,对数据进行备份与还原。
(7) 数据计算自动完成,尽量减少人工干预。
(8) 系统退出。
商品销售管理系统分为基础信息管理子系统、日常业务管理子系统、查询报表管理子系统、系统信息管理子系统、维护管理子系统。
如图1.1所示1.1商品销售管理系统1.2 基础信息管理模块基础信息管理模块主要用于对商品信息,员工信息和客户信息的管理。
操作员通过合法的认证登录到该系统中,进行对商品信息,员工信息和客户信息的管理的活动。
主要功能如下:1)操作员首先登录,身份验证成功后即可登陆商品销售管理系统2)操作员进入基础信息功能模块;3)操作员管理商品信息;4)操作员管理客户信息;5)操作员管理员工信息。
c语言课程设计(销售管理系统)【完整版】
enter(RECODE t[]): struct
2
清屏之后输出提示语“请输入便条的信息” ,按提示语输入便条信息,输入 数 据 的 同 时 , 已 将 该 信 息 存 入 开 始 已 定 义 的 结 构 体 数 组 typedef
RECORD
t[ ]中,以便在排序功能选项、统计功能选项、输出清单列表选项
三、输入数据类型、格式和内容限制:
数据名称 销售员代号 产品代号 功能键代号 所有产品总和 每个销售员的 总销售额 每个人每种产 品的总销售额 数据关联 name,s,m[] a1,a2,a3, a4,a5 n sum c[] 数据类型 int 整型变量 int 整型变量 int 整型变量 int 整型变量 int 整型变量 数据格式 %d,%d,%d %d%d%d%d%d %d %d %d %d%d%d%d%d 内容限制 大于 0 小于 5 大于 0 小于 6 大于等于 0 小 于8 大于 0 大于 0 大于 0
sum+=t[i].a1;sum+=t[i].a2;sum+=t[i].a3; sum+=t[i].a4;sum+=t[i].a5;
i++
排序函数 void list1 (RECODE t[],int n)流程图:
定义两个数组 c[4],m[4] i=0 i=0
假 真
i<4
i<4
假
i=0,j=i+1
i++
6
五、程序的源代码清单:
#include <stdio.h>/*输入输出函数*/ #include <stdlib.h>/*通用应用程序函数*/ typedef struct /*定义结构体变量*/ { int name; int a1; int a2; int a3; int a4; int a5; }RECODE; int menu_select();/*选择菜单函数声明*/ int enter(RECODE t[]);/*进入函数声明*/ void salor(RECODE t[],int n);/*声明函数*/ int sum(RECODE t[],int n,int m);/*统计函数声明*/ void list1(RECODE t[],int n);/*菜单 1 函数声明*/ void list2(RECODE t[],int n);/*菜单 2 函数声明*/ void list3(RECODE t[],int n);/*菜单 3 函数声明*/ void save(RECODE t[],int n);/*保存文件函数声明*/ int load(RECODE t[]);/*读取函数声明*/ void main()/*主函数*/ { RECODE rec[600]; int length; system("cls"); /*清屏*/ for( ; ; ) /*无限循环*/ {switch(menu_select()){ /*根据用户的选择判断该调用哪个功能函数*/ case 1:length=enter(rec);break; case 2:salor(rec,length);break; case 3:list1(rec,length);break; case 4:list2(rec,length);break; case 5:list3(rec,length);break; case 6:save(rec,length);break; case 7:length=load(rec);break; case 0:exit(0);} }} /***************************菜单函数**************************/ int menu_select() { int n;
c语言课程设计(销售管理系统)【完整版】
c语言课程设计(销售管理系统)【完整版】
本管理系统实现了销售管理,可以完成客户管理、商品管理以及订单管理等功能,为管理者提供更多便利。
管理系统由主菜单、客户管理、商品管理、订单管理等模块组成,主菜单模块显示并实现了上述以及其他所有模块,可以方便快捷地进行相关操作。
客户管理模块包括新建客户信息、删除客户信息、更新客户信息、查询客户信息等功能,可以快速有效地管理客户信息;
订单管理模块包括新建订单、删除订单、更新订单、查询订单等功能,能够轻松地完成销售订单的管理。
另外,系统还采用了文件存储,只要上次保存数据正确,就可以实现每次登录之后的自动加载,让操作更加简单快捷。
系统采用C语言开发,使用字符操作实现图形界面;结构体链表数据结构实现数据存储与处理;文件存储实现数据加载与保存;采用函数式编程实现功能模块;不断尝试性地增加改进系统,以确保系统运行更加稳定可靠。
本项目以C语言编程实现对销售管理系统的全面而完整的管理,能满足日常销售管理的需求;同时,丰富的图形界面,实用的功能模块和可靠的文件存储,使系统操作变得更为简单快捷。
c语言课程设计销售管理系统
c语言课程设计销售管理系统一、教学目标本课程的教学目标是使学生掌握C语言销售管理系统的基本概念、设计方法和实现技巧。
通过本课程的学习,学生应能理解销售管理系统的业务流程,运用C语言进行系统设计和编程实现,培养学生的实际编程能力和解决实际问题的能力。
具体来说,知识目标包括:理解销售管理系统的功能和结构;掌握C语言的基本语法和数据结构;了解软件工程的基本原理和方法。
技能目标包括:能够使用C语言进行程序设计和调试;能够运用面向对象的方法进行系统设计;能够使用常用的软件开发工具。
情感态度价值观目标包括:培养学生对计算机科学的兴趣和热情;培养学生良好的团队合作精神和创新精神。
二、教学内容本课程的教学内容主要包括三个部分:C语言基础知识、销售管理系统的设计方法和实践操作。
第一部分,C语言基础知识,包括C语言的基本语法、数据类型、运算符、控制结构等。
这部分内容将引导学生掌握C语言的基本编程技巧,为后续的销售管理系统设计打下基础。
第二部分,销售管理系统的设计方法,包括需求分析、系统设计、编码实现和测试等。
这部分内容将引导学生了解软件工程的基本原理和方法,培养学生运用面向对象的方法进行系统设计的能力。
第三部分,实践操作,包括使用C语言实现一个简单的销售管理系统。
这部分内容将引导学生动手实践,培养学生的实际编程能力和解决实际问题的能力。
三、教学方法为了实现本课程的教学目标,我们将采用多种教学方法,包括讲授法、案例分析法、实验法和讨论法等。
讲授法将用于讲解C语言的基本语法和数据结构,以及销售管理系统的设计方法和原理。
案例分析法将用于分析真实的销售管理案例,使学生更好地理解销售管理系统的实际应用。
实验法将用于让学生动手编写代码和调试程序,培养学生的实际编程能力。
讨论法将用于引导学生进行小组讨论和交流,培养学生的团队合作精神和创新精神。
四、教学资源为了支持本课程的教学内容和教学方法,我们将准备多种教学资源,包括教材、参考书、多媒体资料和实验设备。
C++课程设计《商品销售管理系统》
系统稳定性:保证 系统在长时间运行 中不出现崩溃、死 机等问题
数据安全性:确 保用户数据的安 全性和隐私性
用户界面友好:提 供简洁、易用的用 户界面,方便用户 操作
系统可扩展性:系 统具有良好的可扩 展性,能够适应未 来业务需求的变化
数据库类型:MySQL
数据库结构:商品表、 销售表、用户表等
,a click to unlimited possibilities
汇报人:
01
02
03
04
05
06
课程设计背景:C++课程设计是计算机科学与技术专业的必修课程,旨在培养学生编 程能力和实践能力。
系统设计背景:商品销售管理系统是典型的企业信息化系统,旨在提高企业销售管 理效率,降低运营成本。
界面风格:采用扁平化设计, 简洁明了,易于操作
商品管理模块:实现商品信息的添加、 修改、删除和查询
销售管理模块:实现销售记录的添加、 修改、删除和查询
库存管理模块:实现库存信息的添加、 修改、删除和查询
用户管理模块:实现用户信息的添加、 修改、删除和查询
系统管理模块:实现系统参数的设置和 修改,以及系统日志的记录和查询
帮助界面:提 供系统使用帮 助和常见问题
解答
退出界面:退 出系统,保存
数据
商品管理 模块:添 加、修改、 删除商品 信息
销售管理 模块:记 录销售信 息,生成 销售报表
库存管理 模块:管 理库存, 实现库存 预警
用户管理 模块:用 户注册、 登录、权 限管理
系统设置 模块:设 置系统参 数,如货 币单位、 税率等
帮助模块: 提供系统 使用帮助 和常见问 题解答
使用SQLite数据库
c语言课程设计销售管理系统
c语言课程设计销售管理系统一、教学目标本章节的教学目标分为三个部分:知识目标、技能目标和情感态度价值观目标。
1.知识目标:通过本章节的学习,学生需要掌握销售管理系统的概念、原理和基本框架,了解C语言在销售管理系统中的运用。
2.技能目标:学生能够运用C语言编写简单的销售管理程序,具备独立分析和解决问题的能力。
3.情感态度价值观目标:培养学生对计算机科学的兴趣,提高学生运用C语言解决实际问题的意识。
二、教学内容本章节的教学内容主要包括销售管理系统的概念、原理、基本框架及其在C语言中的应用。
具体包括以下几个部分:1.销售管理系统的概念和原理:介绍销售管理系统的定义、功能、特点和基本原理。
2.销售管理系统的基本框架:讲解销售管理系统的基本框架,包括数据结构、算法和程序设计。
3.C语言在销售管理系统中的应用:通过实例分析,展示如何使用C语言编写销售管理程序。
三、教学方法为了提高教学效果,本章节将采用多种教学方法相结合的方式进行教学。
具体包括以下几种方法:1.讲授法:讲解销售管理系统的概念、原理和基本框架。
2.案例分析法:分析实际销售管理系统的案例,让学生了解C语言在销售管理系统中的应用。
3.实验法:安排课后实验,让学生动手编写销售管理程序,巩固所学知识。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:选用权威、实用的C语言教材,为学生提供基础知识。
2.参考书:推荐学生阅读与销售管理系统相关的参考书籍,拓宽知识面。
3.多媒体资料:制作PPT、教学视频等多媒体资料,提高课堂趣味性。
4.实验设备:确保每位学生都能接触到计算机,进行课后实验。
五、教学评估本章节的教学评估将采用多元化的评估方式,以全面、客观、公正地评价学生的学习成果。
评估方式包括:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性。
2.作业:布置与销售管理系统相关的编程作业,评估学生的编程能力和理解程度。
C课程设计--商店销售管理系统
四、小结 (通过本次课程设计......)
附件:主要源程序代码(需打印)
#include<stdio.h>
#include<stdlib.h> #include<string.h> #define SIZE 100 struct product//数据结构 { long number; //商品编号 char name[20]; //商品名称 float inprice; //商品进价 float outprice; //商品售价 int count; //商品数量 }; void main() { FILE *fp; void Remined();打印清单函数声明 void menu();//菜单函数声明 void In();//商品进库管理函数声明 void Out();//商品出库管理函数声明 void Add();//创建新商品信息函数声明 void Del();//清除商品信息函数声明 void Sale();//销售统计函数声明 void Exit();//退出函数声明 fp=fopen("商品信息","a+");//创建商品信息文件 fclose(fp); fp=fopen("清单","w+");//创建清单文件 fclose(fp); menu(); } //增加新商品函数 void Add() { FILE *fp; char m; struct product inf; //录入各个信息 printf("请输入商品编号\n");//编号 scanf("%ld",&inf.number); printf("请输入商品数量\n");//数量 scanf("%d",&inf.count); printf("请输入商品进价\n"); scanf("%f",&inf.inprice);
C语言程序课程设计商品进销存管理系统程序
一题目及运行说明商品进销存管理程序1、题目描述设计一个商品进销管理程序,该程序具有以下功能:(1)录入商品信息;(2)给定商品编号,修改该商品信息;(3)给定商品编号,删除该商品信息;(4)录入商品的进货和销售信息;(5)给定商品编号或商品名,查看该商品及库存信息;(6)统计功能:提供一些统计各类信息的功能。
2、题目要求(1)按照分析、设计、编码、调试和测试过程完成应用程序;(2)学习并使用流程图等工具,并在撰写报告中使用;(3)程序的各项功能在程序运行时,以菜单形式选择并执行;(4)要求用户输入数据时,要给出清晰、明确的提示,包括:输入数据的内容、格式及其结束方式等(5)所有的信息存储在一个文件或多个中,并实现文件读写操作。
(6)程序中用链表存放商品及进销存信息并实现增删减功能。
3、提示(1)提醒事件信息可以设计一个结构体类型(2)自己构思并增加的除规定功能之外的新功能,酌情加分(1)程序中主要变量Struct goods *head 结构体指针Int n,k struct goods {int number;char name[20]; int shumu; float jiage; struct goods *next; }; int n,k;struct goods *head; 等一些变量。
( 2)数据输入的形式和输入值的范围字符不超过20 位整型变量输入大于0 浮点型变量也大于0商品编号为四位整数( 3)数据输入的形式按程序运行的提示操作※(4)程序所能达到的功能及出错处理该程序具有以下功能:(1) 录入商品信息;(2) 给定商品编号,修改该商品信息;(3)给定商品编号,删除该商品信息;(4)录入商品的进货和销售信息;(5)给定商品编号或商品名,查看该商品及库存信息(6)统计功能:提供一些统计各类信息的功能。
二程序设计思路根据要求首先设计一个结构体类型,设计好界面,设计好主函数。
程序各功能通过调用子函数来实现用switch来实现菜单的选择一切数据信息通通存在文件中,并实现文件读写操作。
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);}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
商品销售管理系统目录一、需求分析 (2)二、概要设计 (2)三、详细设计 (4)四、调试分析 (14)五、用户手册 (14)六、测试数据 (15)七、附录 (18)—1—一、需求分析商品销售管理程序商品信息:商品编号、商品名称、商品类别(普通电视机、DVD、带DVD 的电视机,带DVD的电视机的售价为普通电视机和DVD单价之和的80%)、商品进货价格、商品销售价格、商品数量、供应商名称等。
记录每一次销售商品的数量和价格,并提供对已售出商品的价格、数量进行统计、排序功能,但允许用户退商品。
(要求:1.源文件采用多文件的工程结构2.数据存储采用文件形式3.标准的C 输入输出4.功能完善,适当的注释,5.关于文件的内容需要自学)二、概要设计(一)按系统分析的功能要求将系统划分为以下几个主要功能模块:1、文件管理文件打开、关闭:对于刚输入或进行操作后的商品信息,在建立新的商品库存量后,可以把其保存在一个文件中,并对该文件可进行打开和关闭操作。
2、进出货管理(1)商品进货: 输入数据后商品信息能自动更新进行添加(2)商品销售: 输入数据后商品信息能自动更新进行减少3、商品数据管理(1)增加/删除商品: 添加或删除某条商品的信息(2)修改商品信息: 对某条商品的信息进行修改4、浏览商品信息管理(1)查询商品信息:可分别按商品编号、名称、类别或需要进货商品查询(2)排序商品信息: 可按商品编号、名称、类别分别排排序(3)浏览商品信息:可浏览输入、查询或排序后的数据。
(二)本程序结构(1)结构体设计struct goods{ long int num;char name[20];char sort[20];long int count;long int price;}goods[200];(2)各功能函数设计:void input() /*功能1:输入商品信息*/—2—void sequence() /*功能2:排序商品信息*/void purchase() /*功能3:进货商品信息*/void sell() /*功能4:销售商品信息*/void edit() /*功能5:添加或删除商品信息*/void correct() /*功能6:修改商品信息*/void search() /*功能7:查询商品信息*/void scan() /*功能8:浏览商品信息*/void reserve() /*功能9:保存文件*/void quit() /*退出系统*/(3)主函数设计:void main (){void input();void sequence();void purchase();void sell();void edit();void correct();void search();void scan();void reserve();lp: for(i=0;i<1;i++)scanf("%d",&k);system("cls");switch(k) /*用switch语句实现功能选择*/system("cls"); /*清屏*/goto lp; /*返回主界面*/}三、详细设计(1)各功能函数:void input() /*功能1:输入商品信息*/{printf("\n 请输入需要建立新库存的商品种类数量:");scanf("%d",&n);system("cls");printf("\n …………………………………………………………………………………………………\n");for(i=0;i<n;i++) /*用循环实现输入n个商品*/{printf("\n\t*请输入商品的编号:");scanf("%ld",&goods[i].num);printf("\n\t 请输入商品的名称:");—3—scanf("%s",goods[i].name);printf("\n\t 请输入商品的种类:");scanf("%s",goods[i].sort);printf("\n\t 请输入商品的数量:");scanf("%d",&goods[i].count);printf("\n\t 请输入商品的单价:");scanf("%d",&goods[i].price);printf("\n …………………………………………………………………………………………………\n");}printf("\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(p2,goods[i].sort);strcpy(goods[i].sort,goods[i+1].sort);strcpy(goods[i+1].sort,p2);}printf("--------------------------------------------------------------------------------\n");printf("\n\t\t按商品编号排序后的商品信息\n\n");printf("\t商品编号商品名称商品类别商品数量商品单价\n"); /*输出排序后商品信息*/for(i=0;i<n;i++){printf("\t %5ld %5s %5s %5ld %5ld\n",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price) ;—4—}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);}printf("--------------------------------------------------------------------------------\n");printf("\n\t\t按商品名称排序后的商品信息\n");printf("\n\t商品名称商品编号商品类别商品数量商品单价\n"); /*输出排序后商品信息*/for(i=0;i<n;i++){printf("\t %5s %5ld %5s %5ld %5ld\n",goods[ i].name,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(p2,goods[i].sort);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);}printf("-------------------------------------------------------------—5—-------------------");printf("\n\t\t按商品类别排序后的商品信息\n\n");printf("\t商品类别商品编号商品名称商品数量商品单价\n"); /*输出排序后商品信息*/for(i=0;i<n;i++){printf("\t %5s %5ld %5s %5ld %5ld\n",goods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price);}printf("--------------------------------------------------------------------------------");printf("please press any key to continue:");getch();return; /*返回主界面*/}void purchase() /*功能3:进货商品信息*/ {long temp; /*定义临时变量表示刚进货的商品编号*/int j;printf("\n\t\5请输入刚进货的商品编号:");scanf("%ld",&temp);printf("\n\t\5请输入刚进货的商品数量:");scanf("%d",&j);printf("\n\n\n\tpress any key to contiue:");getch();system("cls");printf("\n\t输出进货后的商品信息:");for(i=0;i<n;i++) /*循环,寻找与进货相同的商品信息*/if(temp==goods[i].num)goods[i].count=goods[i].count+j; /*自动更改商品数量*/printf("\n\t商品编号商品名商品类别商品数量商品价格");for(i=0;i<n;i++) /*循环,输出进货后的商品信息*/{printf("\n\t %4ld %4s %4s %ld %4ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);}printf("\n\n\t\tPress any key to enter menu:");getch(); /*返回功能选择界面*/return;}—6—void sell() /*功能4:销售商品信息*/{long temp; /*定义临时变量temp表示刚销售的商品编号*/int j;printf("\n\t\5请输入刚销售的商品编号:");scanf("%ld",&temp);printf("\n\t\5请输入刚销售的商品数量:");scanf("%d",&j);for(i=0;i<n;i++) /*循环,找到刚销售的商品信息*/{if(temp==goods[i].num){for(;j>goods[i].count;) /*如果销售额大于库存量,则出现错误提示*/{printf("\n\t售出数量大于商品原有数量,出现错误,请重新输入:");scanf("%d",&j);}goods[i].count=goods[i].count-j; /*完成自动更改商品数量的功能*/}}printf("\n\tpress any key to contiue:");getch();system("cls"); /*清屏*/printf("\n\n *销售后商品信息:");printf("\n\t商品类别商品编号商品名称商品数量商品单价\n");for(i=0;i<n;i++) /*循环,输出销售后商品信息*/{printf("\t %4s %4ld %4s %4ld %4ld\n",g oods[i].sort,goods[i].num,goods[i].name,goods[i].count,goods[i].price );}printf("\n\tPress any key to enter menu:");getch();return; /*返回功能选择界面*/}void edit() /*功能5:添加或删除商品信息*/ {void add(); /*声明子函数*/void dele();—7—printf("\n\t请选择:1.添加商品信息; 2.删除商品信息;");printf("\t*请输入 1或2 继续:");scanf("%d",&k);switch(k) /*用switch语句实现功能选择*/{case 1: add();break;case 2: dele();break;}getch();return; /*返回主菜单*/}void add() /*添加商品信息*/{ /*定义子函数*/printf("\t*请输入所添加商品的商品编号:");scanf("%ld",&goods[n].num);printf("\n\t请输入所添加商品的名称:");scanf("%s",goods[n].name);printf("\n\t请输入所添加商品的类别:");scanf("%s",goods[n].sort);printf("\n\t请输入所添加商品的数量:");scanf("%d",&goods[n].count);printf("\n\t请输入所添加商品的价格:");scanf("%d",&goods[n].price);n=n+1;printf("\n");}void dele() /*删除商品信息*/{ /*定义子函数*/int temp; /*定义局部变量*/int j;for(i=0;i<n;i++){printf("\n\t商品编号商品名商品类别商品数量商品价格");printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("\n");printf("\n*请输入要删除的商品编号:");scanf("%ld",&temp);printf("\n\n");—8—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++){printf("\n\t商品编号商品名商品类别商品数量商品价格"); /*输出删除后的商品信息*/printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("Please press any key to continue:");getch();return; /*返回主界面*/}void correct() /*功能6:修改商品信息*/ {long temp; /*定义局部变量*/printf("\n\t请输入要修改的商品的编号:");scanf("%ld",&temp); /*输入新的商品信息*/printf("\n");for(i=0;i<n;i++) /*保存新的商品信息*/{if(temp==goods[i].num){printf("\t请输入一个新的的商品编号:");scanf("%ld",&goods[i].num);printf("\n\t请输入新的商品的名称:");scanf("%s",goods[i].name);printf("\n\t请输入新的商品的类别:");—9—scanf("%s",goods[i].sort);printf("\n\t请输入新的商品的数量:");scanf("%d",&goods[i].count);printf("\n\t请输入新的商品价格:");scanf("%d",&goods[i].price);printf("\n");}}for(i=0;i<n;i++){printf("\n\t新的商品名称商品编号商品类别商品数量商品单价\n");printf("\t %4s %4ld %4s %4ld %4ld",goods[i].name,goods[i].num,goods[i].sort,goods[i].count,goods[ i].price);printf("\n");}printf("Please press any key to continue:"); /*返回功能选择界面*/ getch();return; /*返回主菜单*/}void search() /*功能7:查询商品信息*/{int k; /*定义局部变量*/long temp1;char temp2[30],temp3[20];printf("\n\t\5按商品编号查询,请按1\t\t\t\5按商品名查询,请按2\n\t\5按商品类别查询,请按3\t\t\t\5查需要进货的商品,请按4\n");printf("\n\n\n\t\t\t请输入数字确定查询方式:");scanf("%d",&k);printf("\n");printf("Press any key to continue:");getch();system("cls");switch(k) /*实现查询方式的选择*/{case 1:{ printf("\n\n\n\n\n\t\t请输入要查询的商品的编号:"); /*按商品编号查询*/scanf("%ld",&temp1);system("cls"); /*清屏*/for(i=0;i<n;i++){—10—if(temp1==goods[i].num){printf("\n");printf("\n\t商品编号商品名商品类别商品数量商品价格");printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i] .num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);}}}break; /*跳出switch语句*/case 2:{ printf("\n\n\n\n\n\t\t请输入要查询的商品名:"); /*按商品名查询数据*/scanf("%s",temp2);system("cls");for(i=0;i<n;i++){if(strcmp(temp2,goods[i].name)==0){printf("\n");printf("\n\t商品编号商品名商品类别商品数量商品价格");printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i] .num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);}}}break; /*跳出switch语句*/case 3:{ printf("\n\n\n\n\n\t\t请输入要查询的商品类别:"); /*按商品类别查询数据*/scanf("%s",temp3);system("cls");for(i=0;i<n;i++){if(strcmp(temp3,goods[i].sort)==0){printf("\n");printf("\n\t商品编号商品名商品类别商品数量商品价格");printf("\n\t %5ld %5s %5s %5ld %5ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i] — 11 —.price);}}}break; /*跳出switch语句*/case 4:{ int a=50;for(i=0;i<n;i++) /*查询需要进货的商品名*/{if(goods[i].count<a)printf("\n\t\t\4需要进货的商品名:%s 现有库存量:%ld\n",goods[i].name,goods[i].count);}}break; /*跳出switch语句*/}printf("\n\n\t\tPress any key to enter menu:");getch();return; /*返回主界面*/}void scan() /*功能8:浏览商品信息*/ {printf("\n\t浏览输入的商品信息,请按1\n\n\t浏览查询的商品信息,请按2\n\n\t浏览排序后商品信息,请按3\n");printf("请选择:");scanf("%d",&k);switch(k){case 1:{ printf("\t\t\t浏览输入的商品信息\n");printf("\t商品编号商品名商品类别商品数量商品价格\n");/*输出浏览商品信息*/for(i=0;i<n;i++){printf("\t%5ld %5s %5s %5ld %ld",goods[i].num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("Press any key to enter menu:");getch();return;} break; /*跳出switch语句*/case 2:{ printf("\t\t\t浏览查询的商品信息\n");—12—printf("\t商品编号商品名商品类别商品数量商品价格\n");/*输出浏览商品信息*/for(i=0;i<n;i++){printf("\t%5ld %5s %5s %5ld %ld",goods[i] .num,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("\nPress any key to enter menu:");getch();return;} break; /*跳出switch语句*/case 3:{ printf("\t\t\t浏览按商品编号排序的商品信息\n");printf("\t商品编号商品名商品类别商品数量商品价格\n");/*输出浏览商品信息*/for(i=0;i<n;i++){printf("\t%5ld %5s %5s %5ld %ld",goods[i].num ,goods[i].name,goods[i].sort,goods[i].count,goods[i].price);printf("\n");}printf("\nPress any key to enter menu:");getch();return; /*返回主界面*/} break; /*跳出switch语句*/}}void reserve() /*功能9:保存文件*/{FILE *fp;char file[15]; /*用来存放文件保存路径以及文件名*/system("cls"); /*清屏*/printf("\n\t*请输入文件路径及文件名:");scanf("%s",file);fp=fopen("file","w+"); /*创建并打开一个文件,并得到该文件的地址*/fprintf(fp,"商品编号\t商品名 \t商品类别\t商品数量\t商品价格\n"); printf("商品编号\t商品名 \t 商品类别\t 商品数量\t 商品价格\n");for(i=0;i<n;i++)—13—{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,goods[i].count,goods[i].price);printf("%ld\t\t%s\t\t%s\t\t%d\t\t%d\n",goods[i].num,goods[i].name,goo ds[i].sort,goods[i].count,goods[i].price);}fclose(fp); /*关闭文件*/printf("文件已经保存!\n");getch();system("cls"); /*清屏*/}void quit() /*退出系统*/{exit(0);}四、调试手册(1)、sp.c(225) : warning C4013: 'add' undefined; assuming extern returning int add()函数声明错误。