C语言商品销售系统源码分享

本文实例为大家分享了C语言商品销售系统的具体代码,供大家参考,具体内容如下

#include<stdio.h> //头文件
#include<string.h> //头文件
#include<stdlib.h> //头文件
#define M 100   //货物种类
#define N 100   //顾客数目
struct goods    //单个货物信息格式
{
 int number;  //产品编号
 char name[20]; //产品名称
 int price1;  //进价(或利润)
 int price2;  //售价
 int amount;  //数量
};
struct orderlist      //订单格式
{
 struct goods L[M];
};
struct customer      //客户信息内容和格式
{
 char name[20];     //姓名
 char password[6];   //服务密码
 int count;       //订单号
};
struct customer khl[N];  //所有客户信息
struct goods base[M];   //库存信息
struct orderlist odl[10*N];//订单表
struct goods lackl[M];   //缺货表
struct goods suml[M+1];  //销售报表
int PP=0;         //订单编号
int QQ=0;    //客户编号
int goodssum=0;       //货物总数

int main()          //主函数开始!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
{
 int SysUseWay();    //系统使用说明函数声明
 int chushihua();    //系统初始化函数声明
 int welcome();    //欢迎界面函数声明
 int kh();      //客户函数声明
 int buyer();    //采购部函数声明
 int manager();   //公司经理函数声明
 int goodbye();  //欢送函数声明
 int n,m=9;    //变量声明
 SysUseWay();  //系统使用说明书
 chushihua();  //系统初始化
 while(m==9)  //循环三岔口
 {
  welcome(); //欢迎界面
 scanf("%d",&n);
 switch(n) //各奔东西
 {
 case 0 : ;break;
 case 1 : kh(); break;    //客户之家
 case 2 : buyer(); break;  //采购之家
 case 3 : manager(); break; //经理之家
 default : printf("输入错误!请退出重从新输入");
 }
  if(n==0)
 break;
 printf("       继续进入主界面请按 9 退出请按0\n");
 scanf("%d",&m);
 }
 goodbye();         //欢送界面
 return 0;
}                //主函数结束!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

int SysUseWay()         //系统使用说明书函数定义
{
 FILE *fp;
 fp=fopen("D://商品销售系统使用说明书.txt","w");
  fprintf(fp,"                         商品销售系统使用说明书\n");
  fprintf(fp,"  作者 卢孟江  学号 13091012  西安电子科技大学软件学院130911班  2010年10月6日\n");
 fprintf(fp,"  本销售系统仅是一个销售部门管理系统的的简单模型,功能少,不太稳定,不太安全。\n");
 fprintf(fp,"  主要分为三个模块。客户--销售部门--公司经理。\n");
 fprintf(fp,"  1--客户。客户主要是通过该系统进行订货。进入系统后,需要注册,登陆。系统会自主分配\n");
 fprintf(fp,"一个服务编号给客户,由客户自己设定密码。订购之后,可以登录查询自己的订货情况.不足之处\n");
 fprintf(fp,"在于该系统是一次性的---关闭系统之后,系统会丢失一切数据。这涉及数据库的知识,恕我现在\n");
 fprintf(fp,"无能为力。还有,每一个服务编号只能对应一个订货单,即客户每定一次货就得重新注册一次,否\n");
 fprintf(fp,"则就会覆盖以前的数据。\n");
 fprintf(fp,"  2--采购部门。主管仓库,查看处理缺货,进货。使用该系统前,首先必须由采购部门建立仓\n");
 fprintf(fp,"库。填写货物名称,进价,售价,库存数量。货物编号由系统自主按序分配。接下来,采购部门需\n");
  fprintf(fp,"要经常查看是否缺货。及时进货。\n");
 fprintf(fp,"  3--经理只需要抽时间查看一下销售报表。了解每一种货物的销售情况,以及总的销售利润。\n");
 fprintf(fp,"\n");
 fprintf(fp,"               谨以此纪念我碌碌无为的大一。\n");
  fclose(fp);
  printf("................................................................................\n");
  printf("本系统使用说明书详见于您的计算机D盘“商品销售系统使用说明书.txt”文件。欢迎查阅 \n");
 printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
 return 0;
}

int welcome()          //欢迎界面函数定义
{

 printf("................................................................................\n");
 printf("\n");
 printf("           ~~~~~~~~欢迎使用商品销售系统~~~~~~~~\n");
 printf("\n");
 printf("..............................................................................\n");
 printf("               公司客户请按    1\n");
 printf("\n");
 printf("..............................................................................\n");
 printf("               采购人员请按    2\n");
 printf("\n");
 printf("...............................................................................\n");
 printf("               公司经理请按    3\n");
 printf("\n");
 printf("................................................................................");
 printf("               退出主界面请按   0\n");
 printf("\n");
 printf("\n");
 printf("................................................................................\n");
  return 0;
}

int chushihua()         //初始化函数
{
  int i=0,j=0;
 for(i=0;i<M;i++)
 {
   suml[i].number=lackl[i].number=base[i].number=-1;
   base[i].amount=0;
 base[i].price1=base[i].price2=0;
 lackl[i].amount=0;
 suml[i].price1=0;
 suml[i].amount=0;
 }
 suml[M].price1=0;
 for(i=0;i<N;i++)
 khl[i].count=-1;
 for(i=0;i<10*N;i++)
 {
    for(j=0;j<M;j++)
 {
 odl[i].L[j].number=j;
 odl[i].L[j].amount=0;
 odl[i].L[j].price1=base[j].price1;
 odl[i].L[j].price2=base[j].price2;
 }
 }

 return 0;
}

int goodbye()         //欢送界面函数定义
{
 printf("         ~~~~感谢您使用商品销售系统~~~~\n");
 printf(".........................................................................\n");
 printf("作者  卢孟江   学号  13091012  软件学院 130911班\n");
 printf(".........................................................................\n");
 printf("\n");
 printf(".........................................................................\n");
 printf("由于时间仓促,能力有限,系统不是很完美,如有问题敬请原谅。欢迎垂询15109281415\n");
 printf(".........................................................................\n");
 return 0;
}
int buyer()         //采购函数
{
 int welcomebuyer();   //欢迎函数
 int buildbaser();    //仓库建设
 int solvelack();    //查询缺货情况
 int chackbase();    //查询仓库情况
  int n;
  int m=9;
 while(m==9)       //循环三岔口
 {
  welcomebuyer();       //欢迎欢迎
  scanf("%d",&n);       //各奔东西
 switch(n)
 {
 case 0 : ;break;      //退出
 case 1: solvelack();break; //查缺货
 case 2: buildbaser();break; //建设仓库
 case 3: chackbase();break; //检查仓库
 default :printf("输入错误!\n");
 }
  if(n==0)
 break;
 printf("       继续采购请按 9 否则请按0\n");
 scanf("%d",&m);
 }
 return 0;
}

int welcomebuyer()
{
  printf("................................................................................\n");
 printf("\n");
 printf("           ~~~~~~~~欢迎来到采购之家~~~~~~~~\n");
 printf("\n");
 printf("..............................................................................\n");
 printf("               处理缺货        请按  1\n");
 printf("\n");
 printf("..............................................................................\n");
 printf("               进货          请按  2\n");
 printf("\n");
 printf("...............................................................................\n");
 printf("               查询当前存货情况    请按  3\n");
 printf("\n");
 printf("................................................................................");
 printf("               退出采购        请按  0\n");
 printf("\n");
 printf("\n");
 printf("................................................................................\n");
return 0;
}

int buildbaser()        //采购函数--进货函数
{
  int i=0;
 printf("  若想停止进货,请在货物数量上输入 0\n\n");
 for(i=0;i<M;i++)
 {
 printf("\n货物名称:");
 scanf("%s",base[i].name);
 base[i].number=i;
    printf("\n货物数量:");
 scanf("%d",&base[i].amount);
 if(base[i].amount<=0){
      base[i].amount=0;
  break;
 }
 goodssum+=base[i].amount;
 printf("\n货物进价:");
 scanf("%d",&base[i].price1);
 printf("\n货物售价:");
    scanf("%d",&base[i].price2);
 }
 return 0;
}

int chackbase()        //采购函数---查询当前存货函数
{
  int i=0;
 printf("................................................................................\n");
 if(goodssum==0)
 {
 printf("      仓库没货!!!     请采购部门及时进货!!!\n");
 return 0;
 }
 for(i=0;i<M;i++)
 {
 if(base[i].amount>0){
       printf("................................................................................\n");
   printf("货物编号 货物名称       货物数量     进价    售价\n");
      printf(" %3d   %-20s %6d     %6d   %6d \n",base[i].number,base[i].name,base[i].amount,base[i].price1,base[i].price2);
   printf("................................................................................\n");
 }
 else
  continue;
 }
  printf("................................................................................\n");
 return 0;
}

int solvelack()        //采购函数--处理缺货函数
{
  int i=0,k=0;
 int printlack();      //采购函数--处理缺货函数--查看函数声明
 int supplement();     //采购函数--处理缺货函数--添货函数声明
 printlack();        //查看是否缺货
  printf("      如果需要进货,请按1 ; 否则,请按0  \n");
 scanf("%d",&k);
 switch(k)
 {
 case 1:supplement();break;
 case 0:;break;
 default :printf("输入错误!\n");
 }
 return 0;
}
int printlack()        //采购函数--处理缺货函数--查看函数定义
{
 int i=0,count=0;
 if(goodssum==0){
     printf("         !!!仓库没货!!!请采购人员及时进货!!!\n");
  return 0;
  }
 printf("................................................................................\n");
 for(i=0;i<M;i++)
 {
 if(lackl[i].amount==0){
   count++;
  continue;
  }
   else{
  printf("................................................................................\n");
     printf("货物编号 货物名称       缺货数量\n");
   printf(" %3d   %-20s %6d     \n",lackl[i].number,base[i].name,lackl[i].amount);
 }
 }
 printf("................................................................................\n");
  if(count==M)
 printf("       ~~~不缺~~~货物充足~~~\n");
 else
 printf("          缺!  缺!  缺!\n");
return 0;
}
int supplement()       //采购函数--处理缺货函数--添货函数定义
{
  int i=0,j=1;
 int printlack();
 printlack();
 printf("   若想停止进货,请在货物数量上输入0\n");
 while(j>0)
 {
 printf("产品编号\n");
    scanf("%d",&i);
   while(i>=M){
   printf("此货物不存在,请重新输入\n");
   scanf("%d",&i);}
 base[i].number=i;
    printf("产品名称:\n");
    scanf("%s",base[i].name);
 printf("进货数量:\n");
 scanf("%d",&j);
    if(j>0){
      base[i].amount+=j;
   goodssum+=j;
 }
 else
  break;
    printf("\n货物进价:");
 scanf("%d",&base[i].price1);
 printf("\n货物售价:");
    scanf("%d",&base[i].price2);
 }
 return 0;
}

int kh()             //客户函数
{

int login();           //客户函数--登陆函数声明
int registe();          //客户函数--注册函数声明
int welcomekh();         //客户函数--欢迎函数声明
int searchkh(int falg);      //客户函数--查询订货情况的函数声明
int order(int falg);       //客户函数--订货函数声明
int i,k=0,flag=0;
int n=9,m=9;
welcomekh();           //欢迎欢迎
while(m==9)           //登陆?注册循环二岔路
{
printf("    登陆请按1,     注册请按2,     否则请按 0\n");
scanf("%d",&i);
switch(i)
{
case 0 : ;break;
case 1 : flag=login(); break;
case 2 : registe(); break;
default :printf("输入错误!\n");
}
if(i==0)
 break;
printf("      登陆或注册请按 9 否则请按0\n");
scanf("%d",&m);
}

while(n==9)           //订购?查询循环二岔路
{
printf("     查询请按 1,  订购请按 2,   否则请按 0\n");
scanf("%d",&i);
switch(i)
{
case 0 : ;break;
case 1 : searchkh(flag); break;
case 2 : order(flag); break;
default :printf("输入错误!\n");
}
if(i==0)
 break;
printf("      继续查询或订购请按 9 否则请按0\n");
scanf("%d",&n);
}
return 0;
}

int welcomekh()          //客户函数---欢迎函数定义
{ 

  printf("................................................................................\n");
 printf("\n");
 printf("           ~~~~~~~~欢迎来到客户之家~~~~~~~~\n");
 printf("\n");
 printf("..............................................................................\n");
  return 0;
}

int login()            //客户函数---登陆函数定义
{
int n,count=0;
char password[6];
printf("-------------------请输入服务编号-----------------------\n");
scanf("%d",&n);
printf("-------------------请输入六位密码-----------------------\n");
scanf("%s",password);
while(strcmp(password,khl[n].password))
{
  printf("~~~~~~~~~~~~~~~请重新输入六位密码~~~~~~~~~~~~~~~~~~~~\n");
 printf("\n");
 printf("        退出登陆,请输入123456\n");
  scanf("%s",password);
 if(!strcmp(password,"123456"))
 break;
}
if(!strcmp(password,"123456"))
return 0;
else
return n;
}

int registe()           //客户函数---注册函数定义
{
printf("~~~~~~~~~~~~~~~~~~~~~~~~~您的服务编号是: %d ,请你一定要记牢您! ~~~~~~~~~~~~~~~~~~~~~~~~~\n",QQ);
printf("\n");
printf("~~~~~~~~~~~~~~~~~~~~~~~~~请输入您的用户名:~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("\n");
scanf("%s",khl[QQ].name);
printf("~~~~~~~~~~~~~~~~~~~~~~~~~请输入六位密码:~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("\n");
scanf("%s",khl[QQ].password);
QQ++;
return 0;
}

int searchkh(int flag)       //客户函数---查询函数定义
{
int n,i=0;
n=flag;
printf("................................................................................\n");
printf("        Hello  %s  您的服务编号是: %d\n",khl[n].name,n);
printf("................................................................................\n");
if(khl[n].count!=-1){
 for(i=0;i<M;i++){
 if(odl[khl[n].count].L[i].amount==0)
  i++;
 else{
       printf("................................................................................\n");
       printf("货物编号 货物名称       订货数量     单价\n");
     printf(" %3d   %-20s %6d     %6d\n",base[i].number,base[i].name,odl[khl[n].count].L[i].amount,base[i].price2);
       printf("................................................................................\n");
 }

 }
}
else{
  printf("\n");
   printf("................................................................................\n");
   printf("                您当前没有订货。                \n");
  printf("................................................................................\n");
}
printf("................................................................................\n");
return 0;
}

int order(int flag)       //客户函数---订购函数
{
int i=0,k=0,m=0,n=0,count=0;
printf("\n");
n=flag;
printf("货物编号 货物名称        售价\n");
printf("\n");
for(i=0;i<M;i++){
 if(base[i].number==-1){
 count++;
 continue;}
 else
   printf(" %3d   %-20s %6d\n",base[i].number,base[i].name,base[i].price2);
}
if(count==M)
{
 printf("仓库现在没货,请稍后再来。麻烦您通知采购部门及时补货。。。谢谢。。。\n");
 return 0;
}
printf("请输入产品编号和数量,若想结束,在订购数量上输入 0 \n");
printf("产品编号\n");
scanf("%d",&k);
while((k>=M)||(base[k].number==-1)){
 printf("此货物不存在,请重新输入\n");
 scanf("%d",&k);}
printf("数量\n");
scanf("%d",&m);
while(m>0)
{
 if(base[k].amount<m)
 {
 odl[PP].L[k].amount=base[k].amount;
  base[k].amount=0;
 printf("存货不足,缺 %d 个,先卖给您%d个,剩下的请您稍后重新注册服务编号再预定!同时麻烦您通知采购部门及时补货。。。谢谢。。。\n",odl[PP].L[k].amount-base[k].amount,base[k].amount);
 lackl[k].amount+=(m-base[k].amount);
 }
 else{
 odl[PP].L[k].amount=m;
 base[k].amount-=m;
 }
 goodssum-=odl[PP].L[k].amount;
 suml[k].price1+=(odl[PP].L[k].amount*(base[k].price2-base[k].price1));
 suml[M].price1+=suml[k].price1;
 suml[k].amount+=odl[PP].L[k].amount;
  printf("产品编号\n");
  scanf("%d",&k);
 while((k>=M)||(base[k].number==-1)){
 printf("此货物不存在,请重新输入\n");
 scanf("%d",&k);}
  printf("订购数量\n");
  scanf("%d",&m);
}
khl[n].count=PP;
PP++;
return 0;
}

int manager()          //经理函数定义
{

  int i=0;
  for(i=0;i<M;i++)
 {
   if(suml[i].amount==0)
  i++;
 else{
       printf("................................................................................\n");
   printf("货物编号 货物名称      该货物利润\n");
      printf(" %3d   %-20s %6d     \n",suml[i].number,base[i].name,suml[i].price1);
   printf("................................................................................\n");

 }

 }
  printf("\n--------------------总货量为 %d 个-----------------------------\n",goodssum);
 printf("\n--------------------总利润为 %d 美元-----------------------------\n",suml[M].price1);
 return 0;
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言银行储蓄系统源码

    本文为大家分享了C语言银行储蓄系统源码,实现银行的各项功能,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <string.h> void openaccount();//开户 void save();//存款 void withdraw();//取款 void showAccount();//查询 void transferAccounts();

  • C语言通讯录管理系统课程设计

    本文实例为大家分享了C语言通讯录管理系统课程设计,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <windows.h> struct Sign{ char name[8]; char sex[4]; char birthday[12]; char phone[11]; char postcode[7]; char addr[30]; struct Sign *next; }pe; char Ph

  • C语言实现歌曲信息管理系统

    本文实例为大家分享了C语言实现歌曲信息管理系统的具体代码,供大家参考,具体内容如下 系统功能:该系统以菜单方式工作,歌曲信息包括:歌名.演唱者.作词.作曲.所属专辑.出版时间.出版公司.试设计一歌厅歌曲管理系统,使之能提供以下功能:歌曲信息录入.修改.插入.删除功能:歌曲排序浏览功能:按歌名查询.按演唱者查询等功能. 完整的实现代码如下: #include "stdio.h" #include "stdlib.h" #include "string.h&q

  • C语言通讯录管理系统完整版

    C语言实现了通讯录的录入信息.保存信息.插入.删除.排序.查找.单个显示等功能.. 完整的代码如下: #include <stdio.h> #include <malloc.h> //得到指向大小为Size的内存区域的首字节的指针// #include <string.h> #include <stdlib.h> //标准库函数// #define NULL 0 #define LEN sizeof(struct address_list) //计算字节//

  • C语言银行系统课程设计

    本文为大家分享了C语言银行系统课程设计,供大家参考,具体内容如下 main.c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> #include <windows.h> #define MaxNum 200 #define N_P 6 typedef struct { int AccountNumber[3]; char name[20];

  • C语言实现通讯录系统

    C语言通讯录系统实现,供大家参考,具体内容如下 需求分析: 利用文件读,写的方法 实现增加通讯录联系人信息 实现删除通讯录联系人信息 实现查找通讯录联系人信息 实现修改通讯录联系人信息 实现查看现有通讯录联系人信息 代码实现: // main.c // C语言通讯录实现 // // Created by Brisinga on 15/10/14. // Copyright © 2015年 yan. All rights reserved. // #include <stdio.h> #incl

  • C语言职工信息管理系统源码

    本文实例为大家分享了C语言职工信息管理系统的具体代码,供大家参考,具体内容如下 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> struct worker { char ID[20];//工号 char name[20];//姓名 char sex[5];//性别 char born[20];//生日 char edu[20];//学历 char po

  • C语言图书借阅系统源码

    本文实例为大家分享了C语言图书借阅系统的具体代码,供大家参考,具体内容如下 #include "stdafx.h" #include"stdio.h" #include"conio.h" #include"string.h" #include"stdlib.h" int N; char mima[20]="mm"; /**********定义图书结构体类型book*******/ str

  • C语言超市管理系统设计

    本文实例为大家分享了C语言超市管理系统设计的具体代码,供大家参考,具体内容如下 #include<stdio.h> #include<stdlib.h> #include<string.h> #define NUM 5 struct item{ char brand[20]; char id[10]; float in_price; float out_price; int storage; }; struct item_node{ struct item wanted

  • C语言链表实现图书管理系统

    之前参照网上的资料用链表实现了图书管理系统,包括简单的增删改查功能以及借书还书功能,我是VC6.0下写的一个控制台程序,格式参照的网上的.在动手编码之前,你需要理清自己的思路.首先,需要确定图书馆里系统中主要有那几个对象,这里我写了学生对象和图书对象.不妨在纸上写出或画出它们主要包括哪些属性以及其可能的对应关系,这里根据不同人的要求会有所不同.清楚这些之后,就可以设计学生和图书的数据结构,比如这里我用的结构体存储其信息.然后就需要考虑,我想要哪些功能,除了基本的增删改查之外,我还想要哪些功能?比

随机推荐