VC课程设计及商品销售管理知识系统(DOC 39页)
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语言课程设计报告--销售管理系统设计

1.设计内容1、程序设计(包括框图设计、源程序编辑、编译、调试)2、对问题有完整的分析过程,要求把分析设计过程写入报告3、编写设计报告本程序设计的主要内容:1.1销售管理系统该系统是一个销售管理系统,即对某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)进行合理管制。
每个销售员都将当天出售的每种产品各写一张便条交上来。
每张便条包含内容:1)销售员的代号2)产品的代号3)这种产品的当天的销售额每位销售员每天可能上缴0-5张便条。
假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。
1)计算上个月每个人每种产品的销售额。
2)按销售额对销售员进行排序,输出排序结果(销售员代号)3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)4)输出统计报表2.设计目的与要求2.1设计目的1.进一步掌握运用C进行程序设计的能力;3.进一步理解和运用面向过程程序设计的思想和方法;3.初步掌握开发一个小型实用系统的基本方法;4.学会调试一个较长程序的基本方法;5.学会利用互联网查找相关的知识并学习;2.2要求含设计中用到的相关技术的解释或讲解介绍和正文两大部份。
正文包括以下7个内容:1.需求分析以无歧义的陈述说明程序设计的任务,强调的是程序要做什么?并明确规定:(1) 输入的形式和输入值的范围;(2) 输出的形式;(3) 程序所能达到的功能;(4) 测试数据:包括正确的输入及其输出结果和含有错误的输入及其输出结果。
2.概要设计说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系。
3.详细设计实现概要设计中定义的所有类,对每个操作只需要写出伪码算法;可采用流程图等进行描述,画出函数和过程的调用关系图。
4.调试分析内容包括:a.调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;b.改进设想;c.经验和体会等。
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语句实现功能选择*/。
vc课程设计

v c 课程设计一、课程目标知识目标:1. 学生能够掌握维生素C的基本概念,了解其在人体健康中的作用及其食物来源。
2. 学生能够描述维生素C的化学性质,理解其在储存和烹饪过程中的变化。
3. 学生能够对比不同食物中维生素C含量的差异,并解释相关因素。
技能目标:1. 学生能够运用批判性思维,分析日常饮食中维生素C的摄入情况,提出合理搭配建议。
2. 学生通过实验操作,掌握测定食物中维生素C含量的基本方法,培养实验操作能力。
3. 学生能够运用所学知识,设计健康饮食宣传资料,提升信息整合与传达能力。
情感态度价值观目标:1. 学生培养对健康饮食的关注,认识到合理摄入维生素C的重要性,形成良好的饮食习惯。
2. 学生在小组合作中,学会倾听他人意见,尊重团队成果,培养合作精神。
3. 学生通过课程学习,增强关爱自己及他人健康的责任感,树立正确的健康观念。
本课程针对五年级学生设计,结合学科特点,以生活实际为切入点,注重知识与实践的结合。
通过课程学习,使学生不仅掌握维生素C的相关知识,还能将所学应用于实际生活中,提高学生的健康素养。
同时,关注学生个体差异,激发学习兴趣,培养科学精神和团队合作能力。
二、教学内容1. 维生素C的基本概念及其生理功能- 维生素C的化学性质与结构- 维生素C在人体内的作用机理- 维生素C的食物来源及其生物利用率2. 维生素C的食物含量与储存烹饪变化- 不同食物中维生素C含量的比较- 维生素C在储存和烹饪过程中的变化及影响因素- 如何减少维生素C的损失,保持食物营养价值3. 维生素C的摄入与评估- 评估学生日常饮食中维生素C的摄入情况- 提出合理搭配建议,优化饮食结构- 实验教学:测定食物中维生素C含量的基本方法4. 健康饮食宣传与教育- 设计健康饮食宣传资料,传播维生素C相关知识- 课堂讨论:如何提高公众对维生素C的认识和重视- 案例分析:探讨不良饮食习惯对健康的影响教学内容依据课程目标,结合教材相关章节进行编排。
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语言课程设计一、课程目标知识目标: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()函数声明错误。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VC课程设计及商品销售管理知识系统(DOC 39页)第一章需求分析1.1 商品销售管理功能概述21世纪是个信息发展的时代,随着电脑普及时代的来临以及互联网的迅速发展,越来越多的进程从单一的人工管理上升到电脑智能管理,企业的发展更不例外,商品的经营管理,经营模式已经慢慢的从手工管理过渡到了计算机管理。
对于发展中的绝大多数企业来说,随着规模的不断扩大,商品种类的不断丰富与完善,需要管理的各种商品信息也会大幅度增加,无论是商品管理,订货管理,销售管理,都变得相对复杂。
这里开发出了一个“商品销售管理系统”,对企业的发展至关重要,无疑为商品销售的可持续发展,日益壮大提供了保障和解决方案,也节省了大量时间,从而提高了商品销售的运转效率,更有利于企业的管理和维持。
商品销售管理系统可以实现企业商品管理的网络化,信息化,现代化,可以有效的提高企业商品的管理效率,节约了管理开支。
通过调查,要求系统需要具有以下功能:(1) 由于该系统的使用对象多,要求有较好的权限管理。
(2) 方便的数据查询,支持多条件查询。
(3) 基础信息管理与查询,其中包括商品信息、客户信息和员工信息。
(4) 通过计算机,能够直接“透视”商品销售情况。
(5) 完善的商品查询信息、商品销售信息进行管理。
(6) 当外界环境(停电、网络病毒)干扰本系统后,系统可以自动保护原始数据的安全,对数据进行备份与还原。
(7) 数据计算自动完成,尽量减少人工干预。
(8) 系统退出。
商品销售管理系统分为基础信息管理子系统、日常业务管理子系统、查询报表管理子系统、系统信息管理子系统、维护管理子系统。
如图1.1所示1.1商品销售管理系统1.2 基础信息管理模块基础信息管理模块主要用于对商品信息,员工信息和客户信息的管理。
操作员通过合法的认证登录到该系统中,进行对商品信息,员工信息和客户信息的管理的活动。
主要功能如下:1)操作员首先登录,身份验证成功后即可登陆商品销售管理系统2)操作员进入基础信息功能模块;3)操作员管理商品信息;4)操作员管理客户信息;5)操作员管理员工信息。
该子系统功能分布如图1.2所示1.2 基础信息管理1.3 日常业务管理模块日常业务管理模块主要用于对客户订货,商品销售,销售退货的管理。
操作员通过合法的认证登陆到该系统中,进行对客户订货,商品销售,销售退货的管理活动,主要功能如下:1)操作员首先登陆,身份验证成功后即可登陆商品销售管理系统2)操作员进入日常业务管理模块3)管理客户订货4)管理商品销售5)管理销售退货该子系统功能分布如图1.3所示1.3日常业务管理1.4 查询报表管理模块查询报表管理模块,主要用于实现操作员对客户订货,商品销售和商品退货的管理,,主要功能如下:1)操作员首先登录,身份验证成功后即可登陆商品销售管理系统2)操作员进入查询报表功能模块3)客户订货查询;4)商品销售查询;5)销售退货查询。
该子系统功能分布如图1.4所示1.4查询报表管理1.5 系统信息管理模块系统信息管理模块主要用于实现管理操作员,设置操作员的使用权限以及系统管理,主要功能如下:1)操作员首先登录,身份验证成功后即可登陆商品销售管理系统2)操作员进入系统信息功能模块;3)管理操作员的相关信息;4)设置操作员的操作权限;5)对系统进行管理。
该子系统功能分布如图1.5所示1.5系统信息管理1.6 维护管理模块系统管理模块实现对数据进行备份和恢复,其主要功能如下:1)操作员首先登录,身份验证成功后即可登陆商品销售管理系统2)操作员进入维护管理功能模块;3)设置数据备份路径,对数据进行备份;4)对数据进行还原。
该系统功能分布如图1.6所示1.6维护管理第二章数据库的设计2.1 E-R图该系统一共涉及到十多个表,ER图如下所示:2.1.1 操作员操作员包含的属性有编号,员工编号,名称,密码,头像和简称。
如图2.1.1所示:图2.1.1 操作员2.1.2 商品操作员包含的属性有编号,名称产地,销售价格,进货价格,保质期,出厂日期和计量单位。
如图2.1.2所示:图2.1.2 商品2.1.3客户客户包含的属性有编号,名称,地址,电话,联系人电话和厂商。
如图2.1.3所示:图2.1.3 客户2.1.4 员工员工包含的属性有编号,薪金,职务,名称和聘用日期。
如图2.1.4所示:图2.1.4 员工2.1.5 订货订货包含的属性有票号,借款否,操作员,合计金额,合计数量,订货日期和客户编号。
如图2.1.5所示:图2.1.5 订货2.1.6 销售销售包含的属性有票号,找零,未付金额,实付金额,销售类型,操作员,合计金额,合计数量,客户编号和销售时间。
如图2.1.6所示:图2.1.6 销售2.1.7 退货退货包含的属性有票号,退货时间,未付金额,找零,实付金额,操作员,合计金额,客户编号和退货时间。
如图2.1.7所示:图2.1.7 退货2.1.8 退货明细订货明细包含的属性有票号,商品编号,单价和数量。
如图2.1.8所示:图2.1.8 退货明细2.1.9 销售明细销售明细包含的属性有票号,商品编号,单价和数量。
如图2.1.9所示:图2.1.9 销售明细2.1.10 退货明细退货明细包含的属性有票号,商品编号,单价和数量。
如图2.1.10所示:图2.1.10 退货明细2.1.11 库存库存包含的属性有商品编号和库存数量。
如图2.1.11所示:图2.1.11 库存2.1.12 权限权限包含的属性有编号,用户管理,权限管理,系统管理,订货管理,销售管理,退货管理,结款管理,订货管理,销售管理和退货管理。
如图2.1.12所示:图2.1.12 权限2.1.13 系统设置系统设置包含的属性有联系人,电话,地址,备份路径和公司名称。
如图2.1.13所示:图2.1.13 系统设置2.1.14 备份备份包含的属性有备份日期和备份路径。
如图2.1.14所示:图2.1.14 备份2.1.15 总的ER图ER图的实体和实体之间的关系说明如下:员工销售商品,员工和商品是一对多的关系。
员工管理订货明细,员工和订货明细是多对多的关系。
员工管理退货明细,员工和退货明细是多对多的关系。
员工管理销售明细,员工和销售明细是多对多的关系。
员工管理库存,员工和库存是多对多的关系。
客户购买商品,客户和商品是一对多的关系。
客户可以订货,客户与订货是一对多的关系。
员工管理订货,员工与订货是多对多的关系。
客户可以退货,客户与退货是一对多的关系。
员工管理退货,员工与退货时多对多的关系。
员工管理操作员,员工与操作员是一对多的关系。
操作员拥有操作权限,操作员与权限是一对多的关系。
操作员管理系统设置,操作员与系统设置是一对多的关系。
操作员设置备份,操作员与备份是一对多的关系。
如图2.1.15所示:图2.1.15 总的ER图2.2 表结构说明本系统一共涉及到十几个信息表,分为操作员登陆,基础信息,日常业务,查询报表,系统信息和数据备份六个方面。
具体信息表如下所示.2.2.1操作员信息表操作员信息表如表2.2.1所示:2.2.2商品信息表商品信息表如表2.2.2所示:2.2.3客户信息表客户信息表如表2.2.3所示:员工信息表如表2.2.4所示:2.2.5订货信息表订货信息表如表2.2.5所示:销售信息表如表2.2.6所示:2.2.7 退货信息表2.2.8 订货明细表2.2.9 销售明细表2.2.10 退货明细表2.2.11 库存信息表2.2.12 权限表2.2.13 系统设置表2.2.14 备份信息表第三章商品销售管理系统的功能实现3.1 基础信息管理模块的实现3.1.1 操作员登录功能的实现1) 界面设计该系统默认有3个操作员并设置了相应头像,双击后输入密码开始验证,若密码成功,即可登陆该系统,若不成功,系统会弹出”您输入的密码不正确,请重新输入”,如果三次输入失败,系统会提示”对不起,请不要登陆该系统,请与管理员联系”,登陆成功后会弹出该系统的主界面,如图3.1.1.1所示:图3.1.1.1 操作员登陆登录成功后的主页面如图3.1.1.2所示:图3.1.1.2 商品销售管理系统2) 编程的实现操作员登陆后开始选择用户,这里默认为三个用户,双击后输入正确密码开始验证,如果密码成功,登陆销售管理系统主页面,若错误需要再次重新输入密码。
流程图和重要代码如下所示。
流程图如图3.1.1.3所示:图3.1.1.3 流程图重要代码如下:CString sName,sPassWard,sSavePassWard;if(time>=3){MessageBox("对不起,您不要登录该系统!请与管理员联系!","系统提示",MB_OK|MB_ICONSTOP);this->OnCancel();return;}m_EdtName.GetWindowText(sName);m_EdtPassWard.GetWindowText(sPassWard);if(sName.IsEmpty()){MessageBox("请选择一个用户!","系统提示",MB_OK|MB_ICONSTOP);return;}sSavePassWard=ado.FieldToOtherField("操作员信息表","名称",sName,"密码",1);if(sSavePassWard==sPassWard){OP=sName;CMyDlg dlg;this->OnCancel();dlg.DoModal();}else{MessageBox("您输入的密码不正确,请重新输入!","系统提示",MB_OK|MB_ICONSTOP);time++;m_EdtPassWard.SetWindowText("");m_EdtPassWard.SetFocus();}.3.1.2 管理商品信息功能实现1) 界面设计管理商品信息功能的界面如下所示,它的主要功能是对商品信息的管理,如下所示的商品按照编号,名称,产地等标识,相应的可以根据编号,名称,产地等条件对商品进行查询,如输入编号为SP00000001可以查询该商品为娃哈哈矿泉水。
双击记录可以对其信息进行修改。
商品信息查询如图3.1.2.1所示:图3.1.2.1 商品信息查询商品信息管理如图3.1.2.2所示:图3.1.2.2 商品信息管理2) 编程的实现成功登陆商品销售管理系统后,用户选择基础信息管理模块,在商品信息管理中添加商品,修改商品,删除商品,提交到数据库,保存并推出该系统。