C语言实现电器销售管理系统

Xylona ·
更新时间:2024-09-21
· 1528 次阅读

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

系统功能设计

管理信息系统具有多种功能,各种功能之间又有多种联系,构成了一个有机结合的整体。信息处理功能主要涉及数据的采集、输入、加工处理、传输、存储和输出等功能。根据对电器销售管理系统的分析,系统的主要功能包括:电器销售信息的添加、删除、修改、查询、排序以及信息的保存及读取。

用户登录

用户登录系统必须具有访问权限,本系统的登录模块主要通过调用函数“login()”实现,用户最多可以输入3次密码。其主要代码为:

for(count=1;count<=3;count++)   //给用户三次机会     {         printf("\n");             printf("********请输入用户名:");         gets(username);         printf("********请输入密码:");         gets(userpwd);         //如果用户名和密码正确,则登录成功,返回1         if(strcmp(name,username)==0&&strcmp(pwd,userpwd)==0)              return 1;          else//如果输入错误则显示错误提示信息             if (count<3)  //如果不是第3次,则输出此错误信息,             printf("******用户名或密码输入错误,请重新输入!!!*******\n");     } 

增加分店信息

通过调用函数“adddianqixs()”实现电器销售信息的添加功能,部分代码如下:

void adddianqixs() {     char temp[30];     printf("请输入分店:\n");     gets_s(dianqixs[NOWNUM].store,29);     printf("请输入产品名称:\n");     gets_s(dianqixs[NOWNUM].cpmc,29);     printf("请输入产品单价:\n");     scanf_s("%d",&dianqixs[NOWNUM].price);     printf("请输入1月销量:\n");     scanf("%d",&dianqixs[NOWNUM].yyxl);     printf("请输入2月销量:\n");     scanf("%d",&dianqixs[NOWNUM].eyxl);     printf("请输入3月销量:\n");     scanf("%d",&dianqixs[NOWNUM].syxl);     printf("请输入季度总销量:\n");     scanf("%d",&dianqixs[NOWNUM].jdzx);     printf("请输入季度平均销量:\n");     scanf("%d",&dianqixs[NOWNUM].jdpx);     printf("请输入季度总销售额:\n");     scanf("%d",&dianqixs[NOWNUM].jdze);     NOWNUM++;    //店家数量加一     printf("销售信息添加完毕,请按任意键继续\n");     getchar(); }

修改分店信息

通过调用函数“resive()”实现电器销售信息的修改功能。部分代码如下:

void resive() {     char shop[20];     int i;     printf(" 请输入你要修改的分店 \n\n");     scanf("%s",shop);     for(i = 0 ;i < NOWNUM; i++)     {         if(strcmp(shop,dianqixs[i].store) == 0)             break;     }     if(i<NOWNUM)     {         printf("成功找到这家店!\n\n");         printf("请输入要修改的信息:\n\n");         printf("1.店名\n\n");         printf("2.商品名称\n\n");         printf("3.商品单价\n\n");         printf("4.一月销量\n\n");         printf("5.二月销量\n\n");         printf("6.三月销量\n\n");         printf("7.季度总销量\n\n");         printf("8.季度平均销量\n\n");         printf("9.季度总销售额\n\n");         int order;         scanf("%d",&order);         switch(order)         {         case 1:             scanf("%s",dianqixs[i].store);             break;         case 2:             scanf("%s",dianqixs[i].cpmc);             break;         case 3:             scanf("%d",&dianqixs[i].price);             break;         case 4:             scanf("%d",&dianqixs[i].yyxl);             break;         case 5:             scanf("%d",&dianqixs[i].eyxl);             break;         case 6:             scanf("%d",&dianqixs[i].syxl);             break;         case 7:             scanf("%d",&dianqixs[i].jdzx);             break;         case 8:             scanf("%d",&dianqixs[i].jdpx);             break;         case 9:             scanf("%d",&dianqixs[i].jdze);             break;         }         printf("修改成功\n\n");     } }

删除分店信息

通过调用函数“deldianqixs()”实现电器销售信息的删除功能。部分代码如下:

void deldianqixs()   //删除指定记录 {      char delno[40];  //存放要删除分店销售电器     char ok[55];  //确定是否要真的删除     int i,j;     printf("请输入要删除分店销售电器:");     gets(delno);//根据店名查找记录位置     for(i=0;i < NOWNUM;i++)         if (strcmp(delno,dianqixs[i].store)==0)             break;      if (i < NOWNUM)  //找到了该记录     {        //找到后先输出原信息,然后确认是否删除       printall();  //先显示原信息       printf("\n\n%-9s%-15s%-15d%-18d%-15d%-15d%-15d%-18d%-18d\n",dianqixs[i].store,dianqixs[i].cpmc,dianqixs[i].price,dianqixs[i].yyxl,       dianqixs[i].eyxl,dianqixs[i].syxl,dianqixs[i].jdzx,dianqixs[i].jdpx,dianqixs[i].jdze);       printf("确实要删除这条记录吗?(y/n)\n");       gets(ok);       if(ok[0]=='y'||ok[0]=='Y') //确定要删除           {               NOWNUM--;  //学生数减1               for(j=i;j<NOWNUM;j++) //将后面的记录前移               dianqixs[j]=dianqixs[j+1];               printf("\n删除成功!\n");            }    }     else         printf("\n没有该店名\n");         printf("请按任意键继续\n");         getchar(); }

按照季度总销量进行排序

通过调用函数“sort()”实现按照季度总销量对电器销售情况进行排序。部分代码如下:

void sort() {     printf("开始排序\n\n");     int i,j;     struct dqxs t;     for(i=0;i<NOWNUM-1;i++)     {         for(j=i+1;j<NOWNUM;j++)         {             if(dianqixs[i].jdzx<dianqixs[j].jdzx)             {                 t=dianqixs[i];                 dianqixs[i]=dianqixs[j];                 dianqixs[j]=t;             }         }     }     printf("排序成功!\n\n"); }

刷新分店销售信息

通过调用函数“read_data()”实现刷新分店的销售信息。部分代码如下:

void read_data() {     FILE *fp;     int i,sign;     fp = fopen("data.data","rb");     rewind(fp);     if(fp == NULL)     {         printf("\n\n\t\t打开文件失败!\n");         exit(0);     }     for(i=0;i<N;i++)     {         sign = fread(&dianqixs[i],sizeof(struct dqxs),1,fp);         if(sign <= 0)             break;     }     printf("\n\n\t\t读取到%d个分店信息!\n\n",i);     Sleep(1000);     system("cls");     NOWNUM = i;     fclose(fp);     printf("\n\n\t\t读取成功!\n\n");     Sleep(1000);     system("cls"); }

将分店销售信息保存到文件

通过调用函数“save_data()”实现将分店信息保存到文件。部分代码如下:

void save_data() {     FILE *fp;     fp = fopen("data.data","wb");     if(fp == NULL)     {         printf("打开文件失败!\n");         exit(0);     }     fwrite(dianqixs,sizeof(struct dqxs),NOWNUM,fp);     fclose(fp);     printf("保存成功!\n"); }

总代码如下:

​#include <stdio.h>      #include <string.h>     #include <stdlib.h>     #include <windows.h>    #pragma pack(1)         #define N 100           struct dqxs {     char store[20];     //分店     char  cpmc[30];    //产品名称     int price;    //产品单价     int yyxl;     //1月销量     int eyxl;     //2月销量     int syxl;     //3月销量     int jdzx;     //季度总销量     int jdpx;     //季度平均销量     int jdze;     //季度总销量额 }dianqixs[N]; int NOWNUM = 0;    void printall() {    int i;      printf("%-9s%-15s%-15s%-18s%-15s%-15s%-15s%-18s%-18s\n","店名","产品名","单价","一月销量","二月销量","三月销量","季度总销量","季度平均销量","季度总销售额");    for (i=0;i<NOWNUM;i++)        printf("%-9s%-15s%-15d%-18d%-15d%-15d%-15d%-18d%-18d\n",dianqixs[i].store,dianqixs[i].cpmc,dianqixs[i].price,dianqixs[i].yyxl,        dianqixs[i].eyxl,dianqixs[i].syxl,dianqixs[i].jdzx,dianqixs[i].jdpx,dianqixs[i].jdze); } //输出所有店家的信息 void adddianqixs() {     char temp[30];     printf("请输入分店:\n");     gets_s(dianqixs[NOWNUM].store,29);     printf("请输入产品名称:\n");     gets_s(dianqixs[NOWNUM].cpmc,29);     printf("请输入产品单价:\n");     scanf_s("%d",&dianqixs[NOWNUM].price);     printf("请输入1月销量:\n");     scanf("%d",&dianqixs[NOWNUM].yyxl);     printf("请输入2月销量:\n");     scanf("%d",&dianqixs[NOWNUM].eyxl);     printf("请输入3月销量:\n");     scanf("%d",&dianqixs[NOWNUM].syxl);     printf("请输入季度总销量:\n");     scanf("%d",&dianqixs[NOWNUM].jdzx);     printf("请输入季度平均销量:\n");     scanf("%d",&dianqixs[NOWNUM].jdpx);      printf("请输入季度总销售额:\n");     scanf("%d",&dianqixs[NOWNUM].jdze);     NOWNUM++;    //店家数量加一     printf("销售信息添加完毕,请按任意键继续\n");     getchar(); } void deldianqixs()   //删除指定记录 {      char delno[40];  //存放要删除分店销售电器     char ok[55];  //确定是否要真的删除     int i,j;     printf("请输入要删除分店销售电器:");     gets(delno);//根据店名查找记录位置     for(i=0;i < NOWNUM;i++)         if (strcmp(delno,dianqixs[i].store)==0)             break;      if (i < NOWNUM)  //找到了该记录     {        //找到后先输出原信息,然后确认是否删除       printall();  //先显示原信息       printf("\n\n%-9s%-15s%-15d%-18d%-15d%-15d%-15d%-18d%-18d\n",dianqixs[i].store,dianqixs[i].cpmc,dianqixs[i].price,dianqixs[i].yyxl,       dianqixs[i].eyxl,dianqixs[i].syxl,dianqixs[i].jdzx,dianqixs[i].jdpx,dianqixs[i].jdze);       printf("确实要删除这条记录吗?(y/n)\n");       gets(ok);       if(ok[0]=='y'||ok[0]=='Y') //确定要删除           {               NOWNUM--;  //减1··               for(j=i;j<NOWNUM;j++) //将后面的记录前移               dianqixs[j]=dianqixs[j+1];               printf("\n删除成功!\n");            }    }     else         printf("\n没有该店名\n");         printf("请按任意键继续\n");         getchar(); } void resive() {     char shop[20];     int i;     printf(" 请输入你要修改的分店 \n\n");     scanf("%s",shop);     for(i = 0 ;i < NOWNUM; i++)     {         if(strcmp(shop,dianqixs[i].store) == 0)             break;     }     if(i<NOWNUM)     {         printf("成功找到这家店!\n\n");         printf("请输入要修改的信息:\n\n");         printf("1.店名\n\n");         printf("2.商品名称\n\n");         printf("3.商品单价\n\n");         printf("4.一月销量\n\n");         printf("5.二月销量\n\n");         printf("6.三月销量\n\n");         printf("7.季度总销量\n\n");         printf("8.季度平均销量\n\n");         printf("9.季度总销售额\n\n");         int order;         scanf("%d",&order);         switch(order)         {         case 1:             scanf("%s",dianqixs[i].store);             break;         case 2:             scanf("%s",dianqixs[i].cpmc);             break;         case 3:             scanf("%d",&dianqixs[i].price);             break;         case 4:             scanf("%d",&dianqixs[i].yyxl);             break;         case 5:             scanf("%d",&dianqixs[i].eyxl);             break;         case 6:             scanf("%d",&dianqixs[i].syxl);             break;         case 7:             scanf("%d",&dianqixs[i].jdzx);             break;         case 8:             scanf("%d",&dianqixs[i].jdpx);             break;         case 9:             scanf("%d",&dianqixs[i].jdze);             break;         }         printf("修改成功\n\n");     } } int login() {      char name[]="a",pwd[]="a";//正确的用户名和密码      char username[10],userpwd[10]; //输入的用户名和密码      int count; //输入用户名和密码的次数      for(count=1;count<=3;count++) //给予三次机会  {      printf("\n");      printf("********请输入用户名:");      gets(username);      printf("********请输入密码:");      gets(userpwd); //如果用户名和密码正确,则登录成功,返回 1      if(strcmp(name,username)==0&&strcmp(pwd,userpwd)==0)      return 1;      else//如果输入错误则显示错误提示信息      if (count<3) //如果不是第 3 次,则输出此错误信息,      printf("******分店名或密码输入错误,请重新输入!!!*******\n"); }      printf("*******分店名和密码错误已经超过 3 次,系统自动退出!!!******\n");      return 0; //退出循环时则说明已经超过 3 次,登录失败 } /*********************************** * 输出主控菜单选项 * ************************************/ void check_shop() {     char shop[20];     int i;     printf(" 请输入你要查询的分店 \n\n");     scanf("%s",shop);     for(i = 0 ;i < NOWNUM; i++)     {         if(strcmp(shop,dianqixs[i].store) == 0)             break;     }     if(i < NOWNUM)     {   getchar();         printf("找到 %s\n\n",dianqixs[i].store);         printf("一月销售额:%d \n\n",dianqixs[i].yyxl);         printf("二月销售额:%d \n\n",dianqixs[i].eyxl);         printf("三月销售额:%d \n\n",dianqixs[i].syxl);     }     else     {         printf("找不到这家分店!\n\n");     } } void sort() {     printf("开始排序\n\n");     int i,j;     struct dqxs t;     for(i=0;i<NOWNUM-1;i++)     {         for(j=i+1;j<NOWNUM;j++)         {             if(dianqixs[i].jdzx<dianqixs[j].jdzx)             {                 t=dianqixs[i];                 dianqixs[i]=dianqixs[j];                 dianqixs[j]=t;             }         }     }     printf("排序成功!\n\n"); } void save_data() {     FILE *fp;     fp = fopen("data.data","wb");     if(fp == NULL)     {         printf("打开文件失败!\n");         exit(0);     }     fwrite(dianqixs,sizeof(struct dqxs),NOWNUM,fp);     fclose(fp);     printf("保存成功!\n"); } void read_data() {     FILE *fp;//声明,声明fp是指针,用来指向FILE类型的对象。     int i,sign;     fp = fopen("data.data","rb");     rewind(fp);     if(fp == NULL)     {         printf("\n\n\t\t打开文件失败!\n");         exit(0);     }     for(i=0;i<N;i++)     {         sign = fread(&dianqixs[i],sizeof(struct dqxs),1,fp);         if(sign <= 0)             break;     }     printf("\n\n\t\t读取到%d个分店信息!\n\n",i);     Sleep(1000);     system("cls");//执行命令”清屏“     NOWNUM = i;     fclose(fp);//关闭fp指向的文件句柄,防止句柄泄露     printf("\n\n\t\t读取成功!\n\n");     Sleep(1000);     system("cls"); } void menushow() {     int userselection;     char selectstr[10];     printf("\n");     printf("\t*****************************\n");     printf("\t*          欢迎使用         *\n");     printf("\t*      电器销售系统         *\n");     printf("\t*****************************\n");     printf("\n");     printf("\t*     1:增加分店销售信息    *\n");     printf("\t*     2:修改分店销售信息    *\n");     printf("\t*     3:显示分店销售信息    *\n");     printf("\t*     4:查询分店销售信息    *\n");     printf("\t*     5:删除分店销售信息    *\n");     printf("\t*     6:按季度总销量排序    *\n");     printf("\t*     7:刷新分店销售信息    *\n");     printf("\t* 8:将分店销售信息保存到文件*\n");     printf("\t*        9:退出系统         *\n");     printf("\t*****************************\n\n");     printf("请输入您的选择(1-9):");     /*scanf("%d",&userselection);*/     gets(selectstr);     userselection=(int)atoi(selectstr);     switch(userselection)  {      case 1:          adddianqixs();          printf("请输入任意键退出...\n");          getchar();          break;      case 2:           resive();          printf("请输入任意键退出...\n");          getchar();          break;      case 3:           printall();          printf("请输入任意键退出...\n");          getchar();          break;      case 4:           check_shop();          printf("请输入任意键退出...\n");          getchar();          break;      case 5:           deldianqixs();          printf("请输入任意键退出...\n");          getchar();          break;      case 6:           sort();          getchar();          printf("请输入任意键退出...\n");          break;      case 7:           read_data();          printf("请输入任意键退出...\n");          getchar();          break;      case 8:           save_data();          printf("请输入任意键退出...\n");          getchar();          break;      case 9:           exit(0);          break;      default:          printf("%c,请输入 1-9 之间的数字\n",userselection);          printf("请输入任意键退出...\n");          getchar();  } } /*********************************** * 主函数,应用程序的入口 * ************************************/ void main() {     printf("\n\n\t\t正在读文件...\n\n");     Sleep(1000);     system("cls");     read_data();     int i;     if (login()==1) //如果登录成功     while(1)     {         system("cls");         menushow(); //死循环,使系统始终显示主控菜单选项     } }



电器 销售 系统 C语言

需要 登录 后方可回复, 如果你还没有账号请 注册新账号