商店销售管理系统课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
商品销售管理系统商店销售管理系统摘要在这个信息发展的时代,电脑普及、互联网的迅速发展,绝大部分的进程从单一的人工管理上升到电脑智能管理。
如今由于顾客量增多,商品出入时间的广泛,商场收益增多,仅仅依靠手写的老式输入记账法,已无法满足商场的需求。
这个商品销售管理系统,目的就在于能够更好的对商品信息情况,进货退货信息,商品的库存以及销售情况,销售结账的订单等进行精确的查询,以便更好的完善和更新商品销售信息系统。
该系统是将销售管理信息化,实现了进货、退货、消费、结账等新的管理方式,提高了商品销售的运转效率,利于企业的管理,可以实现企业商品管理的信息化,网络化,现代化。
关键字:商品;销售;库存 ABSTRACT In this era of information development and widespread use of computers,because of the rapidly development of the Internet,the most of the labor management process from a single management by human risen to a intelligent by computer. Nowdays, due to the number of the customers increase, the wide time of good’s sale time,the profit increase of the mall,only depend
on old-fashioned bookkeeping by hang written, has unable meet the requirements of the mall. He purpose of this product sales management system is to make more precise query of information about good’s purchase,return,stock and sale and so on. It can make the product sales management system more perfect and to update. This system make sale management information,it makes the new method of the purchase,return come ture, improves the efficiency of goods sale and it goods for business management. It also makes enterprise's goods management information,network and modernization come ture. Key words:Merchandise; sales; stock 1
商品销售管理系统目录摘要………………………………………………………………………………1 关键字………………………………………………………………………………1 正文………………………………………………………………………………3 1.
需求分析………………………………………………………………3 2. 系统设计概要…………………………………………………………3 3. 详细设计
………………………………………………………………4 4. 设计和调试分析………………………………………………………14 5. 软件使用说明书………………………………………………………15 6. 测试数据和测试结果…………………………………………………16 参考文献……………………………………………………………………………21 附录…………………………………………………………………………………22 2
商品销售管理系统 1 需求分析电脑普及、互联网的迅速发展,电脑智能管理成了企业的主导。
商品的经营管理,已经慢慢发展到计算机管理。
对企业来说,随着生产规模的不断扩大,商品种类的不断增多,需要管理的各种商品信息也会大幅度增加。
商品管理,订货管理,销售管理都变得相对复杂。
故开发“商品销售管理系统”,这对企业的发展至关重要,也节省了大量时间,从而提高了销售的运转效率。
商品销售管理系统可以实现企业商品管理的网络化,信息化,现代化,可以有效的提高企业商品的管理效率,节约了管理开支。
商品销售管理系统主要涉及两项关键技术:一是对数据库进行操作,二是进行宿舍报表打印。
要求系统需要具有以下功能:(1) 较好的权限管理。
(2) 能够进行各种查询操作。
(3) 能够对商品信息进行管理。
(4) 通过计算机,能
够看到商销售情况。
(5) 能够进行商品入库管理。
(6) 能够进行商品销售管理。
(7) 系统退出。
2 系统设计概要根据销售的具体情况,系统主要
功能如下: 1.商品信息管理:记录各种商品的信息,
如商品名称、供应商等 2.进货信息管理:记录进货
的具体信息,如商品名称、单价、进货日期等 3.库存
信息管理:记录库存商品的具体信息,如商品名称、
库存量等 4.销售信息管理:记录商品销售的具体信息,如商品进货结账、销售结账等 5.增加商品种类
信息管理:记录增加商品的具体信息 6.删除商品信息
3
商品销售管理系统商品销售管理系统商进库销删增品货存售除加信信信信商商息息息息品品管管管管信数理理理理息量图1 销售系统 3 详细设计首先定义货物最大种类,商品名称,商品数量,商品编号,商品价格。
代码如下: #define N 1000 //N 代表货物的最大种类struct goods { char name[10]; //商品名称 int amount; //商品数量 int num; //商品编号 float price; //商品价格 }sp[N],sc[N]; (1) 定义全局变量int flag=1; FILE *fp;//fp是指针,用来指向
FILE类型的对象int i=0;//定义整形变量i int k=0; //定义整形变量k int b=0; //定义整形变量b (2) 进货信息管理本模块通过do循环添加进货信息,for循环执行fp文件指针写入,操作界 4
商品销售管理系统面,代码如下:void jinhuo() //进货模块 { do { k++; i++; printf("\n<======请输入商品的名称:");//输出scanf("%s",sp[i].name); //输入printf( "<======请输入商品的数量:"); //输出scanf("%d", &sp[i].amount); printf( "<======请输入商品的价格:"); scanf("%f", &sp[i].price); printf( "<======请输入商品的标号:"); scanf("%d",&sp[i].num); printf("<======是否继续,是(1),否(0):"); scanf("%d", &flag); }while(flag != 0); system("cls");//清除屏幕fp = fopen("chaoshi", "w");//已只写的方式打开chaoshi文件 for(i = 1; i <= k; i++) 5
商品销售管理系统{ fwrite(&sp[i], sizeof(struct goods), 1, fp);//向fp文件指针写入 } fclose(fp);//关闭fp chakan(); } (3) 库存信息管理void
chakan() //显示目前库存 { int zong = 0;//定义zong,并赋初值0 system("cls"); fp = fopen("chaoshi", "r");//已只写的方式打开chaoshi文件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("*****************目前库存情况 6
商品销售管理系统****************\n"); printf("|- - - - - |- - - - - |- - - - - |- - - - - |\n"); printf("| 商品名称| 商品数量| 商品价格| 商品编号|\n"); printf("|- - - - - |- - - - - |- - - - - |- - - - - |\n"); for(i = 1; i <= ( k + b); i++) { printf("|%-10s|%10d|%10.2f|%10d|\n",sp[i].name,sp[i].amo unt,sp [i].price,sp[i].num); printf("|- - - - - |- - - - - |- - - - - |- - - - - |\n"); } } else { printf("<=====目前没有任何商品!\n\n\n"); } printf("<=====请安任意键返回主界面!"); getchar(); getchar(); return; } (4) 销售信息管理编写一个xiaoshou()函数,
使用do循环输入出售商品编号及数量;通过
if语句,减少相应的库存,计算售假。
7
商品销售管理系统void 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", "r");//已只写的方式打开chaoshi文件 for(i = 1;i <=
k; i++) { fread(&sp[i], sizeof(struct goods), 1, fp); } fclose(fp); do { 8
商品销售管理系统 g++; y++; loop: printf("\n<=====请输入上商品标号和数量,
例如(100 20):"); 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(" <=====输入有误,请重新输入:"); goto loop; } fp = fopen("chaoshi", "wt");//
已只写的方式打开chaoshi文件for(i = 1; i <= k;i
++) { fwrite(&sp[i], sizeof(struct goods), 1, fp); } fclose(fp); printf("<======是否继续,是(1),否(0):"); scanf("%d", &flag); }while(flag!=0); system("cls"); 9
商品销售管理系统printf(" |- - - - - |- - - - - |- - - - - |- - - - - |- - - -
- |\n"); printf(" | 商品编号 | 商品名称 |
商品单价| 数量| 总价|\n"); printf(" |- - - - - |- - - - - |- - - - - |- - - - - |- - - -
- |\n"); for(y = 1;y <= g; y++) { printf(" |%10d|%-
10s|%10.2f|%10d|%10.2f|\n",sc[y].num,sc[y].nam
e,sc[y].price,a[ y],m[y]); printf(" |- - - -
- |- - - - - |- - - - - |- - - - - |- - - - - |\n"); zong = zong+m[y]; } printf("<======您
此次一共消费%f元,欢迎您下次光
临!\n",zong); shijian(); } (5) 删除商品信息
由do循环删除不需要的商品,第一个for循
环语句执行结果是得到目前商品向fp文件指针
写入。
种类数。
第二个for循环 10
商品销售管理系统void shanchu()//删除商品模块 { int z; int j[100],a[100];
int c = 0; int y = 0; int h = 0; do { c++; loop: printf("\n<======请输入您想删除的商品编号:"); 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("<=====输入有误,请重新输入:"); goto loop; 11
商品销售管理系统} fp = fopen("chaoshi", "wt");;//已只写的方式打开chaoshi文件for(i = 1;i <= (k - 1); i++) { fwrite(&sp[i], sizeof(struct goods), 1, fp); } fclose(fp); printf("<======是否继续,是(1),否(0):"); scanf("%d", &flag); }while(flag != 0); chakan(); } (6) 增加商品数量增加之前增加商品之后
12
商品销售管理系统void 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", "r");;//已只写的方式打
开chaoshi文件for(i = 1;i <= k; i++) { fread(&sp[i], sizeof(struct goods), 1, fp); } fclose(fp); do { g++; y++; loop: printf("\n<======请输入上商品编号和数量,例如(100 20):"); 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]; 13
商品销售管理系统 } } if (h = 0) { printf("\n<======输入有误,请重新输入\n\t\t\t"); goto loop; } fp = fopen("chaoshi", "wt"); for(i = 1; i <= k; i++) { fwrite(&sp[i], sizeof(struct goods), 1, fp); } fclose(fp); printf("<=====是否继续,是(1),否(0):"); scanf("%d",&flag); }while(flag != 0); chakan(); } 设计和调试分析调试过程中,遇到的问题主要是一些变量未定义。
问题分析:本系统中的记录集采用的是顺序存储,也就是用数组来定义顺序表。
而数组是一种静态分配结构,使用时会预先分配一个较大的存储空间,可能造成空间闲置导致空间浪费。
系统中的商品记录集为无序状态,所以本系统中的查找算法都是采用顺序查找算法,时间复杂度为O(n)空间复杂度为O(1)。
系统中未涉及到排序算法,所以在此不做讨论。
方法改进: 14
商品销售管理系统本系统可以改进为链式存储,可以更好的利用存储空
间,加大空间的利用率。
如果继续使用顺序存储的话,在搜索算法上可以改进为二分查找算法或是首尾同时进行查找的算法,以达到节省时间的目的,提高程序的时间性能。
写好程序后,先进行人工检查,这个能发现因疏忽而造成的错误。
编程时最好采用结构化程序方法编程,尽可能多加注释,在编写复杂的程序时,利用一个函数来实现一个单独的功能,这样易于阅读也、调试。
人工检查无误后,上机调试。
编译时,给出语法错误的信息,根据提示的信息具体找出程序中出错之处并改正。
(值得注意的是有时提示的出错并不是真正出错的行,如果在提示出错的行上找不到错误的话应当到上一行再找。
)修改好以后,事先考虑好一批“试验数据”,运行程序,输入程序所需数据,即可得到运行结果,对结果作分析,看是否符合要求。
若此时运行结果不对,大多属于逻辑错误。
对这类错误往往需要仔细检查和分析才能发现。
可采用以下办法: 1. 检查流程图有无错误,即算法有无问题,如有则改正之。
接
着将程序与流程图对照,如果程序写错了,很容易发现。
2.如果实在找不到错误,可以采用“分段检查”的方法。
在程序不同的位置设几个printf函数语句,输出有关变量的值,往下检查。
3用“条件编译”命令进行程序调试。
用户使用说明本程序的运行环境为windows操作系统。
在vc++环境下运行程序,出现主菜单。
1进货 2 销售 3删除商品 4增加商品数量 5查看目前库存按功能对应的数字即可进入该功能 15
商品销售管理系统测试数据与测试结果 (1) 进货 16
商品销售管理系统(2) 销售17
商品销售管理系统(3) 增加商品18
商品销售管理系统(4) 删除商品19
商品销售管理系统(5) 查看库存20
商品销售管理系统参考文献夏宽理. C 语言与程序设计[M]. 复旦大学出版社, 1994.
C 语言程序设计基础[M]. 复旦大学出版社, 1992. 科夫
曼. C++ 精解和程序设计[M]. 清华大学出版社, 2005.
C语言的实际应用,安徽科学技术出版社,2000
21
商品销售管理系统附录源程
序#include <stdio.h> #include<windows.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; 22
商品销售管理系统int b=0; void shijian() { struct tm when; time_t now; time(&now); when = * localtime(&now); printf(" %s\n",asctime(&when)); printf("按任意键返
回主菜单..."); getchar(); getchar(); } void chakan() //显示目前库存 { int zong = 0; 23
商品销售管理系统system("cls");
fp = fopen("chaoshi", "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"); printf("|- - - - - |- - - - - |- - - - - |- - - - - |\n"); printf("| 商品名称 | 商品数量 | 商品价格 | 商品编号 |\n"); printf("|- - - - - |- - - - - |- - - - - |- - - - - |\n"); for(i = 1; i <= ( k + b); i++) { 24
商品销售管理系统printf("|%-10s|%10d|%10.2f|%10d|\n",sp[i].name,sp[i].amount,sp[i]
.price,sp[i].num); printf("|- - - - - |- - - - - |- - - - - |- - - - - |\n"); } } else { printf("<=====目前没有任何商品!\n\n\n"); } printf("<=====请安任意键返回主界面!"); getchar(); getchar(); return; } void jinhuo() //进货模块 { 25
商品销售管理系统 do { k++; i++; printf("\n<======请输入商品的名称:"); scanf("%s",sp[i].name); printf( "<======请输入商品的数量:"); scanf("%d", &sp[i].amount); printf( "<======请输入商品的价格:"); scanf("%f", &sp[i].price); printf( "<======请输入商品的标号:"); scanf("%d",&sp[i].num); printf("<======是否继续,是(1),否(0):"); scanf("%d", &flag); }while(flag != 0); system("cls"); fp =
fopen("chaoshi", "w"); for(i = 1; i <= k; i++) { 26
商品销售管理系统fwrite(&sp[i], sizeof(struct goods), 1, fp); } fclose(fp); chakan(); } void 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", "r"); for(i = 1;i
<= k; i++) 27
商品销售管理系统 { fread(&sp[i], sizeof(struct goods), 1, fp); } fclose(fp); do { g++; y++; loop: printf("\n<=====请输入
上商品标号和数量,例如(100 20):"); 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]; } 28
商品销售管理系统 } if (h = 0) { printf(" <=====输入有误,请重新输入:"); goto loop; } fp = fopen("chaoshi", "wt"); for(i = 1; i <= k;i ++) { fwrite(&sp[i], sizeof(struct goods), 1, fp); } fclose(fp); printf("<======是否继续,
是(1),否(0):"); scanf("%d", &flag); }while(flag!=0); system("cls"); printf(" |- - - - - |- - - - - |- - - -
- |- - - - - |- - - - - |\n"); 29
商品销售管理系统 printf(" |
商品编号| 商品名称| 商品单价| 数量| 总价
|\n"); printf(" |- - - - - |- - - - - |- - - - - |- - -
- - |- - - - - |\n"); for(y = 1;y <= g; y++) { printf(" |%10d|%-
10s|%10.2f|%10d|%10.2f|\n",sc[y].num,sc[y].name,sc[y].p rice,a [y],m[y]); printf(" |- - - - - |- - - - - |- -
- - - |- - - - - |- - - - - |\n"); zong = zong+m[y]; } printf("<======您此次一共消费%f元,欢迎您下次
光临!\n",zong); shijian(); } void zengjia()//增加商
品数量模块 { 30
商品销售管理系统 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", "r"); for(i = 1;i
<= k; i++) { fread(&sp[i], sizeof(struct goods), 1, fp); } fclose(fp); do { g++; y++; loop: printf("\n<======请输入上商品编号和数量,例如(100 20):"); scanf("%d %d",&j[y],&a[y]); 31
商品销售管理系统 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<======输入有误,请重新输入
\n\t\t\t"); goto loop; } fp = fopen("chaoshi", "wt"); for(i = 1; i <= k; i++) { fwrite(&sp[i], sizeof(struct goods), 1, fp); 32
商品销售管理系统 } fclose(fp); printf("<=====是否继续,是(1),否(0):"); scanf("%d",&flag); }while(flag != 0); chakan(); } void shanchu()//删除商品模块{ int z; int
j[100],a[100]; int c = 0; int y = 0; int h = 0; do { c++; 33
商品销售管理系统loop: printf("\n<======请输入您想删除的商品编号:"); 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("<=====输入有误,请重新输入:"); goto loop; } fp = fopen("chaoshi", "wt"); for(i = 1;i <= (k - 1); i++) { fwrite(&sp[i], sizeof(struct goods), 1, fp); 34
商品销售管理系统 } fclose(fp); printf("<======是否继续,是(1),否(0):"); scanf("%d", &flag); }while(flag != 0); chakan(); }
int main() { int choice; do { system("cls");
printf("\n\n\n"); printf(" ***********************
超市管理系统 ***********************\n"); 35
商品销售管理系统 printf(" * 功能: *\n"); printf(" *
1.进货 *\n"); printf(" *
2.销售 *\n"); printf(" *
3.增加商品数量 *\n"); printf(" *
4.删除商品 *\n"); printf(" *
5.查看目前库存 *\n"); printf(" *
提示:请选择序号实现相应功能*\n");
printf("
********************************************************
**\n\n"); printf("<======请选择您要进行的操作:"); scanf("%d",&choice); switch(choice) { case
1:jinhuo();break; case 2:xiaoshou();break; 36
商品销售管理系统case
3:zengjia();break; case 4:shanchu();break;
case 5:chakan();break;
default :printf("\n\n<======输入有误,请重新输入:"); } }while( choice != 0); return 0; } 37。