产品销售管理程序设计
[摘要] 经过一周时间,根据自己所学知识设计了一个关于化妆品的产品销售管理系统,并使其具有产品登记、产品销售、订单处理、统计汇总等功能。本系统综合运用了所学的C语言程序设计知识、产品销售管理知识以及Microft Word,基本上符合教师的教学意图。在编制本程序的过程中加深了对C语言程序设计的理解,在进行撰写说明书的同时既对产品销售管理知识进行了拓展,也使我们的科研素质受到了训练。
[关键词] 产品销售 产品销售管理 程序设计 化妆品
操作流程
|
| 营销诊断、市场调查、市场营销推广策划 | |||
|
|
|
| |||
|
| 营销管理体系导入、专业销售程序设计、平面设计、 电视广告片制作、软文撰写、新闻发布会等公关攻势 | |||
|
|
|
| |||
|
| 方案试运行、产品销售代理、建立样板市场、销 售人员实地培训。 |
|
|
|
| |||
|
| 长期营销策划市场顾问服务 |
一、需求分析
随着科学技术不断发展的今天,计算机已渐渐地渗入各个领域,无论是学习、工作还是娱乐都遍及了计算机的使用,而随着网络的开通、并与Internet连接更让我们社会成为信息化的时代,人们不再需要浪费太多的时间去机械化的获得信息,只要坐在家中动动鼠标就可以遍知天下事,就能够购买到自己所需要的商品,摆脱了时间和空间的限制,因此使用计算机及网络,已成为人们进入现代社会的必备技能。销售管理系统正是在这种情况下诞生的,它已成为我们商品交易中不可缺少的部分。
销售管理系统是为方便广大用户购买商品和管理员管理商品而设立的,该系统主要有商品 的查询、商品的订购,管理员对用户、商品、定单的管理。使买卖网络化不再是以前古板式的面对面交易,使用户在不同时间、不同地点都可以购买商品,管理员管理更加方便清晰,很好的提高了购物管理效率。
(一)中国化妆品市场的增长
中国化妆品市场在80年代始终处于萌芽状态、消费者仅仅进行简单的皮肤护理。自从1990年开始,中国的化妆品消费市场迈入了一个快速扩张的时期,消费者对于化妆品消费的种类和档次的认识都有了明显提高,由此便表现为自90年代初开始的年均35%的快速增长。
(二)人均化妆品消费的增长以及消费意识的提高。
90年代以来,化妆品消费市场的增长主要是靠人均化妆品消费额的提高来推动的。从1880年0.2元到1989年的2元,再发展到1997年的16.5元,人均化妆品消费经历了一个快速增长时期。
在90年以前,人均化妆品消费的增长基本可以看成消费结构不变(即化妆品消费支出比重),而由人均实物消费增长拉动所致。
在90年代后,化妆品消费占实物消费的比重有了较大的增长,这反映出人们化妆品消费意识的提升。
化妆品行业是国家投资比较少,包袱比较轻的行业,同时又是为国家创造高税利,创造大量就业机会的行业。化妆品既是一个产业也是一种文化。化妆品是多种学科的结晶,随着精细化工、生物科学、材料科学的飞速发展,细胞科学在皮肤医学中的深入,以及人类基因工程的起动,使化妆品向着更富有深度和广度的方向发展。80年代初,我国化妆品消费是人均1块钱,90年初上升到人均5块钱, 到1998年上升到16块钱,可以说我国化妆品的人均消费水平上升得是很快的。
广东、上海和北京三个地区人均消费水平达到80~100元,大大地高于全国的消费水平之上,而发达国家的化妆品人均消费水平为35~70美元。从而可以看出我国化妆品的消费市场有很大的上升空间。
二、概要设计
| 天工商业进销存 | |||
| 共分7大模块:进货、订单、销售、库存、财务、人事工资、维护 | |||
|
| ||
产品的购销方式,从以前的传统购销方式,又增加了一种现代的网络购销方式,即:网上购销。网上购销和传统购销的比较,主要有以下几个特点:一是方便快捷,二是节约销售成本,再是销路市场更广。
为了利用现代网络组织企业在网上购销,许多网络公司的网站上都有购销产品展示功能:如中国销售联盟、来买来卖、8848、阿里巴巴等全国性的大网站都有产品展示和销售功能。
虽然,有网络公司为企业网上购销开辟了栏目和功能,但企业自己怎样利用网络功能参与购销,迈入电子商务行业,将自己的产品放在世界范围内进行竞争和销售呢?我想对许多企业来说感到有点困惑,因为网络公司所开辟的栏目并不是免费的,就是有免费的,企业也不知道在那。除此以外,企业在销售网站和销售栏目里发布信息时,也感到力不从心,这是因为发布产品销售信息一般需要配发图片,但企业很少有扫描仪,上传不了图片,这制约了企业信息的发布,另一个方面,网络公司所开设的栏目及功能有些满足不了企业的要求,使企业有信息上不上。这两种问题就要求企业在网络硬件上做一点投入。但是企业要想在网上购销产品必须要有接收信息的电子信箱,要拨号上网,还要有专人负责信息的发布和处理。只有这样企业才能节约成本在网上开展购销活动。此外,企业自己在发布信息时要准确无误,不要夸大其词,写明产品的规格、简单的说明,发布的照片要对应销售的产品,在购买产品时,要写明产品的要求,使看到信息的人明白您的需要,并相信您,同时对所有客户的信函要及时回复,这样会增强企业的信誉,会有更多的客户愿与您打交道。
企业在销售产品如想与ICP服务商服务器同步进行,可用BTOB的方式解决。这种解决办法,会更方便,并可随时查看处理定单和信息。
经过上述情况的分析,我们明确地知道,网络时代其实就是信息时代,信息的传播织成了网络,而企业的发展恰恰需要信息和网络,所以,在信息网络的高速公路上企业只要抓住经常上网的消费群体就会获得最大的便宜和快速的发展。
三、详细设计
|
| ||||||||||||||||||||||||||||||||||||||||
|
| DRP分销售管理系统功能模块 | |||||||||||||||||||||||||||||||||||||||
|
|
|
(一)内容发布系统
1、信息管理
信息管理实现网站内容的更新与维护,提供在后台输入、查询、修改、删除各新闻类别和专题中的具体信息的功能,选择本信息是否出现在栏目的首页、网站的首页等一系列完善的信息管理功能。具体包括以下功能:增添、修改、删除各栏目信息(包括文字与图片)的功能。
2、系统用户管理系统
管理系统相关属性,定制个性环境。
3、网站页面模板管理
网站页面编辑功能可以通过WEB编辑方式轻松实现网站页面模板的定制功能。将这些日常维护工作量转为系统化、标准化的维护格式,从而保证网站设计风格的统一,同时也可以大大减轻工作量/
4、新闻代码
新闻代码可以嵌入用户首页在非新闻主机的页面上显示更新的新闻列表。
(二)在线调查系统
1、系统功能
(1)用户可以选择调查答案并提交。(单选、多选)
(2)用户可以自己填写答案。
(3)避免同一用户多次提交。
2、管理功能
(1)增加新的调查题目。
(2)设定每个调查问题的属性,包括:是否自填答案、是否需要多行填写、此问题是否允许。
(3)用户多选、查看调查结果时是否需要汇总、用户在填写调查表时是否必答。
(4)可设置调查表的表头及背景颜色等信息。
(5)可以查询、统计调查结果,可以删除废弃的调查表,节省可用的空间。
(三)网上购物系统
(1)采取会员制、身份验证、信誉度指数等一系列措施,保证交易的成功率。
(2)强大的查询功能,快捷的找到感兴趣的商品
(3)会员购物流程:浏览、将商品放入购物车、去收银台。每个会员有自己专用的购物车,可随时订购自己中意的商品结帐完成购物
(4)完善的会员服务功能:可随时查看帐务明细、订单明细。
(5)会员购物排行榜,以购买量评出几名最佳消费会员。
(6)商品销售排行榜,以销售量来评出几个最热销的商品。
(7)安全的在线支付体系,通过对支付网关的支持,使客户能够安全便捷地进行网上支付。
(8)后台管理使用本地数据库,与因特网上的数据库实时同步,保证购物定单安全及时有效处理强大的统计分析功能,便于管理者及时了解财务状况、销售状况、把握客户心理。
四、测试分析报告
通过对化妆品市场的现状调查分析,申浪认为:我国化妆品市场空间仍然非常巨大,市场潜力也非常大。
例举人均消费与发达国家对比:发达国家化妆品人均消费水平35~100美元;中国经济较发达的北京、上海、广州三地化妆品的人均消费才达10~12美元,整体只有2美元左右。2004年我国化妆品市场销售额达到580亿元,较2003年增长11.54%,2005年全年化妆品销售额将超过680亿元,较2004年增长约18%。随着中国人消费水平的升级,化妆品行业发展也已经进入新的里程,呈现出了十分良好的发展势头,今后几年化妆品市场的销售额将以年平均13%以上的速度增长,这种增长幅度显然大于经济速度;预计到2008年,我国化妆品市场销售总额可达到800亿元左右。其中主要的增长力量来自于护肤品和彩妆,这些产品的主要目标对象是白领女性,但2006年男士化妆品有较好的发展趋势。
2006年,中国内地的美容化妆品市场将增添不少新成员,其中,有一些是大型的化妆品、日化用品集团公司旗下的品牌。而一些彩妆品牌也将在2007年进军美白化妆品界,推出最符合亚洲人胃口的美白产品,预计在2007年3月份是美白化妆品推出的集中季节。
目前在中国化妆品市场上,中高端市场基本上被外资、合资企业所占据,本土企业无一入围。欧莱雅、宝洁、资生堂、雅芳等几家国际巨头形成了寡头竞争之势,这其中又数欧莱雅的市场份额最大、实力最强。仅剩的低端市场则由几千家本土中小企业瓜分。不过,现在国际巨头在不断巩固中高端市场的基础上,已经向低端市场进行了强有力的渗透。尽管竞争如此激烈,但令人十分看好的中国市场还在吸引更多的跨国企业进入,而早已进入中国市场的企业也在不断加大投入,从去年的宝洁及欧莱雅的收购动作和广告投入就能很清楚地看出来。
中国化妆品市场的巨大前景无人质疑,但在现实市场中很多企业又往往被激烈的竞争压得踹不过气来,少数过得潇洒一些。其实绝大部分企业是没有实力与国际巨头进行正面冲突的,如何在市场中把握住一些有潜力的细分市场并形成自己独有竞争优势是很多企业必然的选择。
随着中国经济的发展,近十余年来,中国化妆品的销售额平均以23.8%的速度递增,最高年份达到41%,明显高于国民经济的增长速度。日本人川合浩在《日本化妆品企业如何在中国开展其事业》一书中,以第三方推算:2000年中国的化妆品销售额将达到300亿元人民币以上,与去年比,增幅近20%.到2010年,中国化妆品市场销售总额可达到800亿元左右。中国化妆品市场的潜力还相当大。
五、用户使用说明
在化妆品的使用方面,应该注意以下几点:
(一) 注意使用术语,如:日用化妆品——用涂敷、揉擦、喷洒等不同方式涂加入人体面部及皮肤表面以及毛发等处,起保护 、清洁、美化作用的一种产品(不包括牙膏、香皂)。
(二)注意使用说明书,要求必须有基本内容和基本内容的表示规则,如:商标、品名、生产许可证编号、产品用途、生产日期、保质期、生产厂名称及厂址、 容量或重量、 香型、 主要原料、 使用方法、使用注意事项及安全警告、产品存贮条件及方法。
(三)选择化妆品应首先注意有无检验合格证和卫生许可证。注意化妆品出厂日期。一般来说,膏、霜、蜜类产品尽可能在出厂一年至一年半内用完。认真阅读说明书,注意使用方法和注意事项。
选择化妆品时要看化妆品的颜色是否鲜艳,如发现变色,或有红、黑、绿等颜色的霉斑或颜色黯淡,说明是过期产品或制造时添加色素有误,不能使用。如外观出现混浊、油水分离或出现絮状物,膏体干缩、裂纹,则更不能使用。化妆品的气味优雅,沁人心脾,而没有刺鼻的怪味,如果有变味或异味则不能使用。
化妆品要求质地细致,因为质地越细腻,其与皮肤的附着性也越大,擦在皮肤上才显得自然贴切
六、测试结果
专业化妆品市场继续升温。目前,全国各地的美容院有数百万家之多,但是,许多美容院所使用的专业化妆品质量令人担忧。化妆品企业应抓住这一机遇进行产品结构调整,与广大消费者、美容服务机构一起将专业美容化妆品推向新的高潮。
运动用化妆品市场一触即发。潜力巨大的运动用化妆品应当具备适应运动的特征,除了市场宣传外,产品的性能及品种系列也非常重要,应具备防汗、保湿、消炎、杀菌、携带方便等功能。
天然化妆品市场备受青睐。如一些含芦荟、维生素的营养化妆品,尽管价格较贵,但很畅销。新一代天然配方中含有海洋植物、中草药、热带雨林作物等添加成份的化妆品正在欧美流行。用生物工程学和仿生化学技术开发的功能性物质作为化妆品原料,更是市场发展趋势。
儿童化妆品市场方兴未艾。虽然国内化妆品厂家生产的儿童化妆品在价格方面有很强的竞争力,但在品种系列方面相对开发较少。许多年轻的父母围着儿童化妆品柜台转,总难看到自己满意的产品。由此看来,这一市场的潜力巨大。
中老年化妆品市场值得关注。借助化妆品延缓衰老和抗衰老已经成为一项重要研究课题。目前,我国50岁以上的中老年人需要的与其说是有抗衰老功能的,倒不如说是适宜于老年人皮肤特点的化妆品。因此,如何有针对性地根据中老年人心理和实际需要研制和销售化妆品,是启动这一庞大的市场时值得考虑的。
七、产品销售管理源程序
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define SIZE 300
struct product
{char id[3];
char name[10];
char gysh[10];
char lb[11];
char dwsl[11];
char dj[10];
char kcp[5];
char dgl[6];
char zdgl[6];
char zz[5];}
pro[SIZE];
void myprint();
void product();
void myprint1();
void mycreate();
void mydisplay();
void mysearch();
void sch_num (FILE *fp);
void mymodify();
void myadd();
void mysave();
void mydelete();
void del_num(FILE *fp);
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <stdlib.h>
#include<stdio.h>
#include<stdlib.h>
#include <conio.h>
#include <malloc.h>
#define NULL 0
void cliread();
void clichoose();
void cliprintmenu();
void clidisplay();
void cliadd();
void clisearch();
void climodify();
void clireturn();
void clidel();
typedef struct client
{
char id[8]; /*客户编号*/
char name[25]; /*客户名称*/
struct client *next;
}CLI;
FILE *fpc;
CLI *Chead;
int transfer1(char *p,int n)
{int i,j;
long sum=0,qu;
for(i=0;i<n;i++)
{for(j=n-1-i,qu=1;j>0;j--)
qu=10*qu;
sum=sum+(*(p+i)-'0')*qu;}
return(sum+1);}
void print()
{FILE *pf;
int n,i,j,l,cout=0;
long k;
char *ps;
struct order *p;
pf=fopen("d:\\dzs\\order3.txt","rb");
fseek(pf,0l,2);
k=ftell(pf); l=28; printf("k1=%ld\n",k);ps=(char *)malloc(k);
fseek(pf,0l,0); fread(ps,1,k,pf);
printf(" order\n");
for(i=0;i<k;i=i+28)
{for(j=i;j<26+i;j++)
putchar(*(ps+j));
printf("\n");}
printf("\n");
printf(" ****请按回车****\n");
getchar();
fclose(pf);
pf=fopen("d:\\dzs\\ordet.txt","rb");
fseek(pf,0l,2);
k=ftell(pf);printf("k2=%ld\n",k); l=44; ps=(char*)malloc(k);
fseek(pf,0l,0); fread(ps,1,k,pf);
printf(" order detail\n");
for(i=0;i<k;i=i+44)
{for(j=i;j<42+i;j++)
putchar(*(ps+j));
printf("\n");}
printf("\n");
printf(" ****请按回车****\n");}
void add()
{struct order{a[28];};
struct ordet{a[44];};
struct order *or;
struct ordet *ot;
char *temp,*or1,*or2;
int i;
long number;
FILE *fp1,*fp2;
if((fp1=fopen("d:\\dzs\\order3.txt","rb+"))==NULL)
printf("error\n");
fseek(fp1,-28l,2);
temp=(char *)malloc(6);
for(i=0;i<5;i++)
*(temp+i)=fgetc(fp1);
*(temp+i)='\0';
number=transfer1(temp,5);
printf("请输入订单信息:\n");
printf("您将使用以下客户ID(请按以下方式输入:五个字符、三个空格):%ld\n",number);
gets(or1);
for(i=26;i<28;i++) *(or1+i)='\0';
fclose(fp1);
if((fp1=fopen("d:\\dzs\\order3.txt","ab+"))==NULL)
printf("error\n");
fwrite(or1,1,28,fp1);
fclose(fp1);
printf("please input order detail data:\n");
printf("please write down your orderID:%d\n",number);
printf("input orderID(5 bits and 7 space)\n");
printf("input pro_name(13 bits)\n");
printf("input price(13bits)\n");
printf("input amount(4bits):\n");
or2=(char *)malloc(44);
gets(or2);
for(i=42;i<44;i++) *(or2+i)='\0';
if((fp2=fopen("d:\\dzs\\ordet.txt","ab+"))==NULL)
printf("error\n");
fwrite(or2,1,44,fp2);
fclose(fp2);printf(" Sucess!\n");
print();
getchar();
clrscr();}
void calculate()
{FILE *p1,*p2;
int i,j,t,m,tag1=0,tag2=0,l1,l2;
long k1,k2;
int num[20];
char *ex,*ps1,*ps2,*tt;
float sum=0,a,b;
struct order {char ord[5];
char spa1[3];
char cus[5];
char spa2[3];
char dat[12];};
struct ordet {char ord[5];
char spa[7];
char pro[13];
char pri[13];
char amo[6];};
struct order *or;
struct ordet *ot;
if((p1=fopen("d:\\dzs\\order3.txt","rb"))==NULL)
printf("error\n");
printf("请输入客户ID:\n");
ex=(char *)malloc(6);gets(ex);clrscr();
fseek(p1,0l,2);k1=ftell(p1);ps1=(char *)malloc(k1);
fseek(p1,0l,0);fread(ps1,1,k1,p1);l1=k1/28;
for(i=0;i<l1;i++)
{/**(ps1+26+i*28)='\0';*/*(ps1+27+i*28)='\0';*(ps1+5+i*28)='\0';
*(ps1+7+i*28)='\0';*(ps1+13+i*28)='\0';*(ps1+15+i*28)='\0';/**(ps1+24+i*28)='\0';*/}
or=(struct order *)ps1;
for(i=0,j=0;i<l1;i++)
if(strcmp(ex,(or+i)->cus)==0) {tag1=tag1+1;num[j++]=i;} fclose(p1);
if(tag1!=0)
{if((p2=fopen("d:\\dzs\\ordet.txt","rb"))==NULL)
printf("error\n");
fseek(p2,0l,2);k2=ftell(p2);ps2=(char *)malloc(k2);
fseek(p2,0l,0);fread(ps2,1,k2,p2);l2=k2/44;
for(i=0;i<l2;i++)
{*(ps2+42+i*44)='\0';*(ps2+43+i*44)='\0';*(ps2+5+i*44)='\0';
*(ps2+11+i*44)='\0';*(ps2+24+i*44)='\0';*(ps2+32+i*44)='\0';*(ps2+37+i*44)='\0';}
ot=(struct ordet *)ps2;
printf("********************************************************************************\n");
printf(" 您的订单和订单明细如下\n");
printf("\n");
printf("********************************************************************************\n");
for(j=0;j<tag1;j++)
for(i=0;i<l2;i++)
if(strcmp((ot+i)->ord,(or+num[j])->ord)==0)
{printf("%s %s %s %s %s %s %s\n",(or+num[j])->ord,(or+num[j])->cus,(or+num[j])->dat,(ot+i)->pro,(ot+i)->pri,(ot+i)->amo);
b=atof((ot+i)->amo);a=atof((ot+i)->pri);
sum=sum+a*b;
tag2=tag2+1;}
if(tag2==0) printf("您没有订单\n");
else {printf("\n");
printf("\n");
printf("\n");
printf("总成本为 %f\n",sum);}
fclose(p2);}
else if(tag1==0) printf("客户ID不存在\n");
getchar();
clrscr();}
void menu()
{char x;
do
{printf("\n 订单菜单 \n");
printf(" ******************************************** \n");
printf(" * * \n");
printf(" *1.添加订单 * \n");
printf(" * * \n");
printf(" *2.查找订单和订单明细 * \n");
printf(" * * \n");
printf(" *3.加总 * \n");
printf(" * * \n");
printf(" *4.退出 * \n");
printf(" * * \n");
printf(" * * \n");
printf(" ******************************************** \n");
x=getchar();getchar();
clrscr();
if(x=='1') add();
if(x=='2') search();
if(x=='3') calculate();
if(x==4) myprint();
if(x!='1'&&x!='2'&&x!='3'&&x!=4) printf("please choose from 1 to 4 \n");
}while(x!='4');}
main()
{ char choose,yes_no;
do
{ myprint();
printf(" ");
choose=getch();
switch(choose)
{case'a':product(); break;
case'b':menu(); break;
case'c':client(); break;
case'd': break;
default :printf("\n %c为非法选项!! \n",choose);
}
if(choose=='0') break;
printf("\n 要继续选择吗? (Y/N)?\n");
do
{ yes_no=getche();
} while (yes_no!='Y'&& yes_no!='y' && yes_no!='N' && yes_no!='n');
} while(yes_no=='Y'||yes_no=='y');
};
void myprint()
{ printf("\n\n\n\n\n\n\n\n");
printf(" |-----------------------------------------|\n");
printf(" | 请输入选项编号(A-D): |\n");
printf(" |-----------------------------------------|\n");
printf(" | A----产品 |\n");
printf(" | B----订单 |\n");
printf(" | C----客户 |\n");
printf(" | D----退出 |\n");
printf(" |-----------------------------------------|\n"); }
void product()
{char choose,yes_no;
do
{ myprint1();
printf(" ");
choose=getch();
switch(choose)
{case'1':mydisplay(); break;
case'2':mysearch(); break;
case'3':mymodify(); break;
case'4':myadd(); break;
case'5':mydelete(); break;
case'0':break;
default :printf("\n %c为非法选项!! \n",choose);
}
if(choose=='0') break;
printf("\n 要继续选择吗? (Y/N)?\n");
do
{ yes_no=getche(); }
while (yes_no!='Y'&& yes_no!='y' && yes_no!='N' && yes_no!='n');
} while(yes_no=='Y'||yes_no=='y');
}
void myprint1()
{ printf("\n\n\n\n\n\n\n\n");
printf(" *******************************************\n");
printf(" * 请输入选项编号(0-5): *\n");
printf(" *******************************************\n");
printf(" * 1----显示产品 *\n");
printf(" * 2----查询产品 *\n");
printf(" * 3----修改产品 *\n");
printf(" * 4----添加产品 *\n");
printf(" * 5----删除产品 *\n");
printf(" * 0----退出 *\n");
printf(" *******************************************\n");
}
/*显示产品信息的函数*/
void mydisplay()
{int j=0;
int i=0;int size;
FILE *fp;
fp=fopen("d:\\dzs\\产品.txt","r");
while(feof(fp)==0)
{fscanf(fp,"%3s%10s%10s%11s%11s%10s%5s%6s%6s%5s",&pro[j].id,&pro[j].name,&pro[j].gysh,&pro[j].lb,&pro[j].dwsl,&pro[j].dj,&pro[j].kcp,&pro[j].dgl,&pro[j].zdgl,&pro[j].zz);
j++;
}
size=j-1;
for(i=0;i<size;i=i+15)
{printf("\n产品ID 产品名称 供应商 类别 单位数量 单价 库存 订购 再订购 终止\n\n" );
for(j=0;j<15 && i+j<size;j++)
{
printf("%3s%10s%10s%11s%11s%10s%5s%6s%6s%5s\n",pro[i+j].id,pro[i+j].name,pro[i+j].gysh,pro[i+j].lb,pro[i+j].dwsl,pro[i+j].dj,pro[i+j].kcp,pro[i+j].dgl,pro[i+j].zdgl,pro[i+j].zz);}
printf("\n\n按任意键继续...\n");
getche();
}fclose(fp);
}
void mysearch()
{int flag=0,n=0;
char proid[10]; FILE *fp;
struct product pro;
fp=fopen("d:\\dzs\\产品.txt","rd");
if(fp==NULL) {printf("\n 打开文件失败!\n"); return;}
printf("\n 请输入要查询产品的Id: ");
scanf("%s",proid);
while(feof(fp)==0)
{fscanf(fp,"%3s%10s%10s%11s%11s%10s%5s%6s%6s%5s",&pro.id,&pro.name,&pro.gysh,&pro.lb,
&pro.dwsl,&pro.dj,&pro.kcp,&pro.dgl,&pro.zdgl,&pro.zz);
if(strcmp(proid,pro.id)==0)
{if(flag==0)
{printf("\n产品ID 产品名称 供应商 类别 单位数量 单价 库存 订购 再订购 终止\n");
printf("%3s%10s%10s%11s%11s%10s%5s%6s%6s%5s",pro.id,pro.name,pro.gysh,pro.lb,
pro.dwsl,pro.dj,pro.kcp,pro.dgl,pro.zdgl,pro.zz);
flag=1;}}
n++;
}
if(n==0) printf("\n 文件中无记录!\n");
else if (flag==0) printf("\n 文件中无此产品!\n");
fclose(fp);}
void save(int size)
{ FILE *fp;
int j;
if((fp=fopen("d:\\dzs\\产品.txt","w"))==NULL)
{printf(" 打开文件失败\n");
return;
}
for(j=0;j<size+1;j++)
fprintf(fp,"%3s%10s%10s%11s%11s%10s%5s%6s%6s%5s\n",pro[j].id,pro[j].name,pro[j].gysh,pro[j].lb,pro[j].dwsl,pro[j].dj,pro[j].kcp,pro[j].dgl,pro[j].zdgl,pro[j].zz);
fclose(fp);
printf(" 任意键继续....\n");
getche();
}
void mymodify()
{ int i=0;
int size;
int flag=0,j=0;
char tempnum[5];
FILE *fp;
fp=fopen("d:\\dzs\\产品.txt","r");
while(feof(fp)==0)
{fscanf(fp,"%3s%10s%10s%11s%11s%10s%5s%6s%6s%5s",&pro[i].id,&pro[i].name,&pro[i].gysh,&pro[i].lb,&pro[i].dwsl,&pro[i].dj,&pro[i].kcp,&pro[i].dgl,&pro[i].zdgl,&pro[i].zz);
i++;}
size=i;
fclose(fp);
printf("\n 请输入要修改的产品ID号:");
scanf("%s",tempnum);
while(j<size-1)
{if(strcmp(tempnum,pro[j].id)==0)
if(flag==0)
{printf("\n原记录信息:");
printf("\n产品ID 产品名称 供应商 类别 单位数量 单价 库存品 订购量 再订购量 终止\n\n" );
printf("%3s%10s%10s%11s%11s%10s%5s%6s%6s%5s\n",pro[j].id,pro[j].name,pro[j].gysh,pro[j].lb,pro[j].dwsl,pro[j].dj,pro[j].kcp,pro[j].dgl,pro[j].zdgl,pro[j].zz);
printf("\n\n 输入修改后的产品名称:");scanf("%s",pro[j].name);
printf("\n 输入修改后的产品供应商代码:");scanf("%s",pro[j].gysh);
printf("\n 输入修改后的产品类别代码:");scanf("%s",pro[j].lb);
printf("\n 输入修改后的产品单位数量:");scanf("%s",pro[j].dwsl);
printf("\n 输入修改后的产品单价:");scanf("%s",pro[j].dj);
printf("\n 输入修改后的产品库存量:");scanf("%s",pro[j].kcp);
printf("\n 输入修改后的产品订购量:");scanf("%s",pro[j].dgl);
printf("\n 输入修改后的产品再订购量:");scanf("%s",pro[j].zdgl);
printf("\n 输入修改后的产品终止信息(‘是’为终止):");scanf("%s",pro[j].zz);
flag=1;}
j++;
}
if(j==0) printf("\n 文件中无信息!\n");
else if (flag==0) printf("\n 文件中无此产品!\n");
save(size-1);
}
void myadd()
{int i=0,j;char c;
int size;
FILE *fp;
fp=fopen("d:\\dzs\\产品.txt","r");
while(feof(fp)==0)
{fscanf(fp,"%3s%10s%10s%11s%11s%10s%5s%6s%6s%5s",&pro[i].id,&pro[i].name,&pro[i].gysh,&pro[i].lb,&pro[i].dwsl,&pro[i].dj,&pro[i].kcp,&pro[i].dgl,&pro[i].zdgl,&pro[i].zz);
i++;}
size=i;
printf(" \n 现有产品数量为:%d",i);
fclose(fp);
loop: printf("\n 输入添加的产品ID:");scanf("%s",pro[size].id);
for(j=0;j<size;j++)
if(strcmp(pro[j].id,pro[size].id)==0)
{printf("\n id重复,请重新输入!");
getche();
goto loop;
}
printf("\n 输入添加的产品名称:");scanf("%s",pro[size].name);
printf("\n 输入添加的产品供应商代码:");scanf("%s",pro[size].gysh);
printf("\n 输入添加的产品类别代码:");scanf("%s",pro[size].lb);
printf("\n 输入添加的产品单位数量:");scanf("%s",pro[size].dwsl);
printf("\n 输入添加的产品单价:");scanf("%s",pro[size].dj);
printf("\n 输入添加的产品库存量:");scanf("%s",pro[size].kcp);
printf("\n 输入添加的产品订购量:");scanf("%s",pro[size].dgl);
printf("\n 输入添加的产品再订购量:");scanf("%s",pro[size].zdgl);
printf("\n 输入添加的产品终止信息(‘是’为终止):");scanf("%s",pro[size].zz);
save(size+1);}
void mydelete()
{int flag=0,j=0,k,i=0,size,m;
char tempnum[5];
FILE *fp;
fp=fopen("d:\\dzs\\产品.txt","r");
if(fp==NULL) {printf("\n 打开文件失败!\n"); return;}
while(feof(fp)==0)
{fscanf(fp,"%3s%10s%10s%11s%11s%10s%5s%6s%6s%5s",&pro[i].id,&pro[i].name,&pro[i].gysh,&pro[i].lb,&pro[i].dwsl,&pro[i].dj,&pro[i].kcp,&pro[i].dgl,&pro[i].zdgl,&pro[i].zz);
i++;}
size=i;
fclose(fp);
printf("\n 请输入要删除记录的产品ID号:");
scanf("%s",tempnum);
while(j<size+1)
{if(strcmp(tempnum,pro[j].id)==0)
if(flag==0)
{flag=1;
k=j; }
j++;
}
if(j==0) {printf("\n 文件中无信息!\n");return;}
else if (flag==0) {printf("\n 文件中无此产品!\n");return;}
for(m=k;m<size+1;m++)
{strcpy(pro[m].id,pro[m+1].id);
strcpy(pro[m].name,pro[m+1].name);
strcpy(pro[m].gysh,pro[m+1].gysh);
strcpy(pro[m].lb,pro[m+1].lb);
strcpy(pro[m].dwsl,pro[m+1].dwsl);
strcpy(pro[m].dj,pro[m+1].dj);
strcpy(pro[m].kcp,pro[m+1].kcp);
strcpy(pro[m].dgl,pro[m+1].dgl);
strcpy(pro[m].zdgl,pro[m+1].zdgl);
strcpy(pro[m].zz,pro[m+1].zz);
}
save(size-2);}
void clichoose()
{char f;
printf(" 请输入您的要求: \n");
gotoxy(40,16);
scanf("%c",&f);
switch(f)
{case'1':clidisplay(); break;
case'2':clisearch(); break;
case'3':cliadd(); break;
case'4':clidel(); break;
case'5':climodify(); break;
/*case'6':clisum(); break;*/
/*case'9':getchar();totalmenu();totalchoose(); break;*/
case'0':break;
default:printf("\n 没有%c选项!! \n",f);
}
}
void cliprintmenu()
{clrscr();
printf(" * * * * * * * * * * * * * * * * * * * * * *\n");
printf(" * *\n");
printf(" * 客户信息管理系统 *\n");
printf(" * 目录 *\n");
printf(" * *\n");
printf(" * 1 显示客户信息 *\n");
printf(" * 2 查询客户信息 *\n");
printf(" * 3 添加客户信息 *\n");
printf(" * 4 删除客户信息 *\n");
printf(" * 5 修改客户信息 *\n");
printf(" * 0 退出 *\n");
printf(" * *\n");
printf(" * * * * * * * * * * * * * * * * * * * * * *\n");
}
void clidisplay() /*显示链表函数*/
{
char ch;
int i,j;
CLI *p;
p=Chead;
clrscr();
getchar(); /*接收输入的数字*/
for(i=0;p->next!=NULL;i=i+19)
{
clrscr();
printf("客户ID 客户公司 \n");
for(j=0;j<18&&p->next!=NULL;j++)
{
printf("%6s %25s \n",p->id,p->name);
p=p->next;
}
printf("\nPress Enter to continue......\n");
getchar();
}
clireturn();
}
void cliadd()
{
CLI *p1,*p2;
p2=(struct client *)malloc(sizeof(struct client));
getchar();
printf("\n 输入添加的客户ID:");
{gets(p2->id);}
printf("\n 输入添加的客户公司名称:");
{gets(p2->name);}
p2->next=Chead;
Chead=p2;
printf("\n 添加后数据 \n");
printf("客户ID 客户公司 \n");
printf("%5s %25s\n",p2->id,p2->name);
printf("\nPress Enter to continue......\n");
getchar(); /*接收回车符*/
clireturn();
}
void clisearch()
{char i[8];
CLI *p1;
clrscr();
printf(" 请输入所要查询的客户编号:");
getchar(); /*接收选择目录的数字*/
gets(i);
p1=Chead;
while(p1!=NULL&&(strcmp(i,p1->id)!=0))
{p1=p1->next;}
if(p1==NULL) printf(" 没有此编号的产品!");
else {printf("客户ID 客户公司 \n\n");
printf("%6s %25s\n",p1->id,p1->name);}
printf("\nPress Enter to continue......\n");
getchar();
clireturn();}
void clireturn()
{char r;
clrscr();
printf("\n 是否返回上级菜单(y/n): \n");
gotoxy(32,2);
scanf("%c",&r);
getchar(); /*用来接收回车符*/
switch(r)
{ case'y':clrscr();cliprintmenu();clichoose(); break;
case'Y':clrscr();cliprintmenu();clichoose(); break;
case'n':break;
case'N':break;
default:printf("\n 没有%c选项!! \n",r); }}
client()
{cliread();
cliprintmenu();
clichoose();}
转发至微博
转发至微博
评论