(练手小项目)销售管理系

清华的c语言大作业,拿来练练手。要求甚多,由于是第一次写项目没有经验,功能是按要求完成了,但是还存在种种缺陷,包括一个糟烂无比的数据库。这次当作教训,希望在接下来本校的大作业中表现的更好。


三、题目内容

1:编写一个简单的销售管理系统。该系统对五种商品的销售进行管理,商品至少有五个属性(可自定义)如商品名称、价格等,属性数据中应至少包含整型、字符型和双精度的数据类型,该销售管理系统有管理员(1名)、店长(每店一名,至少有2个连锁店)和销售员(每店至少3名销售人员)三个用户角色,其中:

(1) 总经理授权的管理员所具备的功能:

l 总经理账户及管理员账户的创建、密码修改;

l 管理员可添加、删除、修改、查询店长的信息;

l 库房的进货、退货(过期产品要退货)、货物错误信息的修订、库存查询(只有一个总库,每个店的销售,都从总库出货);

l 销售业绩查询与统计,销售业绩指每店每个商品的销售总金额,统计功能希望能生成销售商品的日报表以及各店的业绩报表;

l 退出登陆系统。

 

(2)店长功能:

l 店长登录密码修改,可添加、删除本店销售员的信息(具体信息自定)

l 商品销售信息管理:能实现销售及退货(客户不满意要求退货)的库存量查询;

l 对本店的商品销售数量用链表进行排序(可以使用任意的排序算法);

l 查询本店的当天的销售报表及每个销售员的销售业绩报表;

l 退出登陆系统。

 

(3)销售员功能:

l 销售员可登录、修改密码、昵称;

l 个人销售业绩查询;

l 商品库存查询,当发现商品的库存量不足3件的时候,系统能自动给销售员进行库存紧张的提示;

退出登陆系统。



暂时不粘代码,因为是替别人写的,怕清华老师查代码。


总结:

1.工程架构方面没有太大的问题,就是很普通的分级菜单的模式。

2.数据库问题很大。

使用了多个数据库,但多个数据库的联合没有做(不是没有做好),没有做的原因是没办法做,数据库杂而乱,而功能已经成型,无法做大幅度修改。写到后期再扩充数据库为时已晚。

以后再建库的时候应在动手前做好需求分析,搞清楚数据库的内容,不要遗漏任何细节,并使其可以在各功能间协同。

3.界面设计等友好性方面由于时间仓促而没有做好补充。


代码:


#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct user_list{
    int no;//序号
    char username[20];//用户名
    char userpassword[20];//用户密码
    int clas;//用户等级
    char truename[20];//用户真实姓名
    char sex;//用户性别
    int age;//用户年龄
}userlist[20];
struct time{
    int year;
    int month;
    int day;
};
struct message_{
    int store;//属于哪个店
    int sellprice;//出售价格
    int num;//出售数量
    struct time selltime;//出售时间
};
struct goods_{
    int no;//序号
    char name[20];//货名
    struct time in;//进货时间
    struct time waste;//过期时间
    int num;//数量
    struct message_ mess[10];//相关信息
}goods[10];
struct goods_l{//为体现链表排序,单另创建的货物链表
    char name[20];//货名
    struct message_ mess;//相关信息
    struct goods_l *next;//链
};
struct staff_me{//员工业绩表
    char name[20];//货物名
    int num;//数量
    int price;//售价
    struct time selltime;//出售时间
};
struct staff_{
    int store;//从属商店
    char name[20];//姓名
    struct staff_me mess[20];//员工业绩
}staff[50];
void test(){
    printf("初始化数据库中........\n");
    printf("初始账号:\n");
    printf("管理员账号用户名:root\n密码:root\n");
    printf("店长账号用户名:manager\n密码:manager\n");
    printf("销售员账号用户名:salesman\n密码:salesman\n");
    memset(userlist,0,sizeof(userlist));
    staff[0].store=1;
    strcpy(staff[1].name,"233333");
    staff[1].store=1;
    staff[1].mess[0].num=2;
    strcpy(staff[1].mess[1].name,"Apple");
    staff[1].mess[1].num=90;
    staff[1].mess[1].price=2;
    staff[1].mess[1].selltime.day=4;
    staff[1].mess[1].selltime.month=5;
    staff[1].mess[1].selltime.year=2016;
    strcpy(staff[1].mess[2].name,"Banana");
    staff[1].mess[2].num=85;
    staff[1].mess[2].price=2;
    staff[1].mess[2].selltime.day=4;
    staff[1].mess[2].selltime.month=6;
    staff[1].mess[2].selltime.year=2016;
    userlist[0].no=3;
    userlist[1].no=1;
    userlist[1].clas=1;
    userlist[1].age=50;
    userlist[1].sex='F';
    strcpy(userlist[1].truename,"Zhang_XX");
    strcpy(userlist[1].username,"root");
    strcpy(userlist[1].userpassword,"root");
    userlist[2].no=2;
    userlist[2].clas=2;
    userlist[2].age=40;
    userlist[2].sex='M';
    strcpy(userlist[2].truename,"Wang_XX");
    strcpy(userlist[2].username,"manager");
    strcpy(userlist[2].userpassword,"manager");
    userlist[3].no=2;
    userlist[3].clas=3;
    userlist[3].age=20;
    userlist[3].sex='M';
    strcpy(userlist[3].truename,"Zhao_XX");
    strcpy(userlist[3].username,"salesman");
    strcpy(userlist[3].userpassword,"salesman");
    goods[1].no=1;goods[2].no=2;goods[3].no=3;goods[4].no=4;goods[5].no=5;
    strcpy(goods[1].name,"Apple");
    strcpy(goods[2].name,"Banana");
    strcpy(goods[3].name,"Pear");
    strcpy(goods[4].name,"Watermelon");
    strcpy(goods[5].name,"peach");
    goods[0].no=5;
    goods[1].in.year=2016;goods[1].in.month=2;goods[1].in.day=23;
    goods[2].in.year=2016;goods[2].in.month=3;goods[2].in.day=14;
    goods[3].in.year=2016;goods[3].in.month=4;goods[3].in.day=3;
    goods[4].in.year=2016;goods[4].in.month=5;goods[4].in.day=11;
    goods[5].in.year=2016;goods[5].in.month=5;goods[5].in.day=21;
    goods[1].waste.year=2016;goods[1].waste.month=4;goods[1].waste.day=23;
    goods[2].waste.year=2016;goods[2].waste.month=5;goods[2].waste.day=14;
    goods[3].waste.year=2016;goods[3].waste.month=6;goods[3].waste.day=3;
    goods[4].waste.year=2016;goods[4].waste.month=7;goods[4].waste.day=11;
    goods[5].waste.year=2016;goods[5].waste.month=7;goods[5].waste.day=21;
    goods[1].num=65;goods[2].num=59;goods[3].num=78;goods[4].num=2;goods[5].num=1;
    goods[1].mess[0].num=1;
    goods[1].mess[1].store=1;
    goods[1].mess[1].sellprice=2;
    goods[1].mess[1].num=56;
    goods[1].mess[1].selltime.year=2016;
    goods[1].mess[1].selltime.month=3;
    goods[1].mess[1].selltime.day=2;
    goods[2].mess[0].num=0;
    goods[3].mess[0].num=2;
    goods[3].mess[1].store=1;
    goods[3].mess[1].sellprice=2;
    goods[3].mess[1].num=290;
    goods[3].mess[1].selltime.year=2016;
    goods[3].mess[1].selltime.month=5;
    goods[3].mess[1].selltime.day=1;
    goods[3].mess[2].selltime.year=2016;
    goods[3].mess[2].selltime.month=5;
    goods[3].mess[2].selltime.day=7;
    goods[3].mess[2].store=5;
    goods[3].mess[2].sellprice=3;
    goods[3].mess[2].num=23;
    goods[4].mess[0].num=0;
    goods[5].mess[0].num=0;
}
void sort_(){
    int i,j;
    for(i=1;i<=userlist[0].no;i++)
    {
        for(j=1;j<=userlist[0].no;j++)
        {
            if(userlist[i].clas>userlist[j].clas)
            {
                int temp1=userlist[i].no;
                userlist[i].no=userlist[j].no;
                userlist[j].no=temp1;
                char temp2[20];
                strcpy(temp2,userlist[i].username);
                strcpy(userlist[i].username,userlist[j].username);
                strcpy(userlist[j].username,temp2);
                strcpy(temp2,userlist[i].userpassword);
                strcpy(userlist[i].userpassword,userlist[j].userpassword);
                strcpy(userlist[j].userpassword,temp2);
                temp1=userlist[i].clas;
                userlist[i].clas=userlist[j].clas;
                userlist[j].clas=temp1;
                strcpy(temp2,userlist[i].truename);
                strcpy(userlist[i].truename,userlist[j].truename);
                strcpy(userlist[j].truename,temp2);
                char temp3=userlist[i].sex;
                userlist[i].sex=userlist[j].sex;
                userlist[j].sex=temp3;
                temp1=userlist[i].age;
                userlist[i].age=userlist[j].age;
                userlist[j].age=temp1;
            }
        }
    }
}
struct goods_l* sortl_(struct goods_l *head){
    struct goods_l *p=head;
    while(1)
    {
        if(p->mess.num<p->next->mess.num)
        {
            if(p==head)
                head=p->next;
            struct goods_l *a=p;
            struct goods_l *b=p->next;
            a->next=b->next;
            b->next=a;
        }
        if(p->next==NULL) break;
        p=p->next;
        if(p->next==NULL)
            break;
    }
    return head;
}
void salesman(int log_result){
    while(1)
    {

        printf("1.账户管理\n");
        printf("2.业绩管理\n");
        printf("3.库存提醒\n");
        printf("4.退出系统\n");
        printf("请输入操作的相应序号以继续............\n");
        int x;
        scanf("%d",&x);getchar();
        if(x==1)
        {
            printf("1.修改密码\n");
            printf("2.修改姓名\n");
            printf("3.返回菜单\n");
            printf("请输入操作的相应序号以继续............\n");
            int y;
            scanf("%d",&y);
            getchar();
            if(y==1)
            {
                printf("请输入旧密码:(小于20个字符)\n");
                char oldpassword[20];
                if(strcmp(gets(oldpassword),userlist[log_result].userpassword)==0)
                {
                    printf("请输入新密码:(小于20个字符)\n");
                    char newpassword[20];
                    gets(newpassword);
                    strcpy(userlist[log_result].userpassword,newpassword);
                    printf("修改成功!!!\n");
                    continue;
                }
                else
                {
                    printf("密码错误!!!系统关闭!!!\n");
                    return;
                }
            }
            else if(y==2)
            {
                printf("请输入新名字:(小于20个字符)\n");
                char newname[20];
                gets(newname);
                strcpy(userlist[log_result].username,newname);
                printf("修改成功!!!\n");
                continue;
            }
            else if(y==3)
            {
                continue;
            }
            else
            {
                printf("非法操作,返回菜单!!!\n");
                continue;
            }
        }
        else if(x==2)
        {
            int i,j;
            for(i=1;i<=staff[0].store;i++)
            {
                for(j=1;j<=staff[i].mess[0].num;i++)
                    {
                        printf("货名         数量      单价          日期\n");
                        for(j=1;j<=staff[i].mess[0].num;j++)
                            printf("\%s       %d       %d              %d年%d月%d日\n",staff[i].mess[j].name,staff[i].mess[j].num,staff[i].mess[j].price,staff[i].mess[j].selltime.year,staff[i].mess[j].selltime.month,staff[i].mess[j].selltime.day);
                    }
            }
        }
        else if(x==3)
        {
            int i,k=0;
            printf("货物名称       剩余数量\n");
            for(i=1;i<=goods[0].no;i++)
            {
                if(goods[i].num<=3)
                {
                    k++;
                    printf("%s      %d\n",goods[i].name,goods[i].num);
                }
            }
            if(k==0)
                    printf("暂无缺货!!!\n");
        }
        else if(x==4)
        {
            printf("感谢您的使用!!!再见:)\n");
            break;
        }
        else
        {
            printf("非法操作,返回菜单!!!\n");
            continue;
        }
    }
}
void manager(int log_result){
    while(1)
    {
        printf("1.账户管理\n");
        printf("2.库房管理\n");
        printf("3.销售管理\n");
        printf("4.退出系统\n");
        printf("请输入操作的相应序号以继续............\n");
        int x;
        scanf("%d",&x);
        getchar();
        if(x==1)
        {
            printf("1.修改密码\n");
            printf("2.销售员账户\n");
            printf("3.返回菜单\n");
            printf("请输入操作的相应序号以继续............\n");
            int y;
            scanf("%d",&y);
            getchar();
            if(y==1)
            {
                printf("请输入旧密码:(小于20个字符)\n");
                char oldpassword[20];
                if(strcmp(gets(oldpassword),userlist[log_result].userpassword)==0)
                {
                    printf("请输入新密码:(小于20个字符)\n");
                    char newpassword[20];
                    gets(newpassword);
                    strcpy(userlist[log_result].userpassword,newpassword);
                    printf("修改成功!!!\n");
                    continue;
                }
                else
                {
                    printf("密码错误!!!系统关闭!!!\n");
                    return;
                }
            }
            else if(y==2)
            {
                printf("1.创建新销售员账户\n");
                printf("2.删除销售员账户\n");
                printf("3.返回菜单\n");
                printf("请输入操作的相应序号以继续............\n");
                int z;
                scanf("%d",&z);
                getchar();
                if(z==1)
                {
                    printf("请输入新账户名:(小于20个字符)\n");
                    char newusername[20];
                    gets(newusername);
                    printf("请输入密码:(小于20个字符)\n");
                    char password[20];
                    gets(password);
                    printf("请重复输入一遍:\n");
                    char password_again[20];
                    gets(password_again);
                    if(strcmp(password,password_again)==0)
                    {
                        userlist[0].no++;
                        strcpy(userlist[userlist[0].no].username,newusername);
                        strcpy(userlist[userlist[0].no].userpassword,password);
                        userlist[userlist[0].no].clas=3;
                        sort_();
                        printf("创建成功!!!返回菜单\n");
                    }
                    else
                    {
                        printf("两次密码输入不同,创建失败,返回菜单\n");
                        continue;
                    }
                }
                else if(z==2)
                {
                    printf("请输入要删除的销售员用户名(小于20个字符)\n");
                    char deleteusername[20];
                    gets(deleteusername);
                    int i,flag=0;
                    for(i=1;i<=userlist[0].no;i++)
                    {
                        if(strcmp(deleteusername,userlist[i].username)==0)
                        {
                            flag=1;
                            printf("请输入其用户密码(小于20个字符)\n");
                            char password[20];
                            gets(password);
                            if(strcmp(password,userlist[i].userpassword)==0)
                            {
                                printf("确定删除?(Y/N)\n");
                                char sure;
                                scanf("%c",&sure);
                                getchar();
                                if(sure=='Y')
                                {
                                    userlist[i].clas=4;
                                    sort_();
                                    userlist[0].no--;
                                    printf("删除成功,返回菜单!!!\n");
                                    break;
                                }
                                else if(sure=='N')
                                {
                                    printf("取消操作,返回菜单!!!\n");
                                    break;
                                }
                                else
                                    printf("非法操作,返回菜单!!!\n");
                                break;
                            }
                            else
                            {
                                printf("密码错误,返回菜单!!!\n");
                                break;
                            }
                        }
                    }
                    if(flag==0)
                        printf("未找到此销售员,请检查输入,返回菜单!!!\n");
                }
                else if(z==3)
                {
                    continue;
                }
                else
                {
                    printf("非法操作,返回菜单!!!\n");
                    continue;
                }
            }
            else if(y==3)
            {
                continue;
            }
            else
            {
                printf("非法操作,返回菜单!!!\n");
                continue;
            }

        }
        else if(x==2)
        {
            printf("--------------------库存详单-------------------\n");
            printf("序号    名称            进货日期              过期时间           库存量\n");
            int i;
            for(i=1;i<=5;i++)
                printf("%d %s               %d年 %d月 %d日    %d年 %d月 %d日    %d\n",goods[i].no,goods[i].name,goods[i].in.year,goods[i].in.month,goods[i].in.day,goods[i].waste.year,goods[i].waste.month,goods[i].waste.day,goods[i].num);
            printf("输入任意数字以返回菜单............\n");
            scanf("%d",&i);
            getchar();
        }
        else if(x==3)
        {
            printf("1.查询销售记录\n");
            printf("2.查询销售员业绩报表\n");
            printf("3.返回菜单\n");
            printf("请输入操作的相应序号以继续............\n");
            int y;
            scanf("%d",&y);
            getchar();
            if(y==1)
            {
                printf("请输入您的店号:\n");
                int z;
                scanf("%d",&z);
                getchar();
                printf("业绩报表如下\n");
                printf("货名        销售数量         单价          销售时间\n");
                int i,j,k=0;
                struct goods_l *p=NULL;
                struct goods_l *q=NULL;
                struct goods_l *head=NULL;
                for(i=1;i<=5;i++)
                {
                    for(j=1;j<=goods[i].mess[0].num;j++)
                        if(goods[i].mess[j].store==z)
                        {
                            k++;
                            p=(struct goods_l *)malloc(sizeof(struct goods_l));
                            if(k==1)    head=p;
                            strcpy(p->name,goods[i].name);
                            p->mess.num=goods[i].mess[j].num;
                            p->mess.sellprice=goods[i].mess[j].sellprice;
                            p->mess.selltime.year=goods[i].mess[j].selltime.year;
                            p->mess.selltime.month=goods[i].mess[j].selltime.month;
                            p->mess.selltime.day=goods[i].mess[j].selltime.day;
                            if(k!=1) q->next=p;
                            p->next=NULL;
                            q=p;
                        }
                }
                if(head!=NULL) p=sortl_(head);
                while(p!=NULL)
                {
                    printf("%s        %d          %d            %d年%d月%d日\n",p->name,p->mess.num,p->mess.sellprice,p->mess.selltime.year,p->mess.selltime.month,p->mess.selltime.day);
                    p=p->next;
                }
                printf("输入任意数字以返回菜单............\n");
                scanf("%d",&i);
                getchar();
            }
            else if(y==2)
            {
                printf("请输入您的店号:\n");
                int z;
                scanf("%d",&z);
                getchar();
                printf("销售员业绩报表如下\n");
                int i,j;
                for(i=1;i<=staff[0].store;i++)
                {
                    if(staff[i].store==z)
                    {
                        printf("%s\n",staff[i].name);
                        printf("货名         数量      单价          日期\n");
                        for(j=1;j<=staff[i].mess[0].num;j++)
                            printf("\%s       %d       %d              %d年%d月%d日\n",staff[i].mess[j].name,staff[i].mess[j].num,staff[i].mess[j].price,staff[i].mess[j].selltime.year,staff[i].mess[j].selltime.month,staff[i].mess[j].selltime.day);
                    }
                }
            }
            else if(y==3)
            {
                continue;
            }
            else
            {
                printf("非法操作,返回菜单!!!\n");
                continue;
            }

        }
        else if(x==4)
        {
            printf("感谢您的使用!!!再见:)\n");
            break;
        }
        else
        {
            printf("非法操作,返回菜单!!!\n");
            continue;
        }
    }
}
void administrators(int log_result){
    while(1)
    {
        printf("1.账户管理\n");
        printf("2.库房管理\n");
        printf("3.销售管理\n");
        printf("4.退出系统\n");
        printf("请输入操作的相应序号以继续............\n");
        int x;
        scanf("%d",&x);
        getchar();
        if(x==1)
        {
            printf("1.管理员账户\n");
            printf("2.店长账户\n");
            printf("3.返回菜单\n");
            printf("请输入操作的相应序号以继续............\n");
            int y;
            scanf("%d",&y);
            getchar();
            if(y==1)
            {
                printf("1.创建一个新管理员账户\n");
                printf("2.修改密码\n");
                printf("3.返回菜单\n");
                printf("请输入操作的相应序号以继续............\n");
                int z;
                scanf("%d",&z);
                getchar();
                if(z==1)
                {
                    printf("请输入新账户名:(小于20个字符)\n");
                    char newusername[20];
                    gets(newusername);
                    printf("请输入密码:(小于20个字符)\n");
                    char password[20];
                    gets(password);
                    printf("请重复输入一遍:\n");
                    char password_again[20];
                    gets(password_again);
                    if(strcmp(password,password_again)==0)
                    {
                        userlist[0].no++;
                        strcpy(userlist[userlist[0].no].username,newusername);
                        strcpy(userlist[userlist[0].no].userpassword,password);
                        userlist[userlist[0].no].clas=1;
                        sort_();
                        printf("创建成功!!!返回菜单\n");
                    }
                    else
                    {
                        printf("两次密码输入不同,创建失败,返回菜单\n");
                        continue;
                    }
                }
                else if(z==2)
                {
                    printf("请输入旧密码:(小于20个字符)\n");
                    char oldpassword[20];
                    if(strcmp(gets(oldpassword),userlist[log_result].userpassword)==0)
                    {
                        printf("请输入新密码:(小于20个字符)\n");
                        char newpassword[20];
                        gets(newpassword);
                        strcpy(userlist[log_result].userpassword,newpassword);
                        printf("修改成功!!!\n");
                        continue;
                    }
                    else
                    {
                        printf("密码错误!!!系统关闭!!!");
                        return;
                    }
                }
                else if(z==3)
                    continue;
                else
                {
                    printf("非法输入,返回菜单!!!\n");
                    continue;
                }
            }
            else if(y==2)
            {
                printf("店长信息如下:(F 代表女性 M 代表男性)\n");
                printf("姓名     性别  年龄\n");
                int i;
                for(i=1;i<=userlist[0].no;i++)
                    if(userlist[i].clas==2)
                        printf("%s   %c    %d\n",userlist[i].truename,userlist[i].sex,userlist[i].age);
                printf("1.添加店长信息");
                printf("2.删除店长信息");
                printf("3.修改店长信息");
                printf("4.返回菜单\n");
                printf("请输入操作的相应序号以继续...........\n");
                int z;
                scanf("%d",&z);
                getchar();
                if(z==1)
                {
                    printf("请输入新账户名(小于20个字符)\n");
                    char newusername[20];
                    gets(newusername);
                    printf("请输入密码(小于20个字符)\n");
                    char password[20];
                    gets(password);
                    printf("请重复输入一遍\n");
                    char password_again[20];
                    gets(password_again);
                    if(strcmp(password,password_again)==0)
                    {
                        userlist[0].no++;
                        strcpy(userlist[userlist[0].no].username,newusername);
                        strcpy(userlist[userlist[0].no].userpassword,password);
                        userlist[userlist[0].no].clas=2;
                        sort_();
                        printf("创建成功!!!返回菜单\n");
                    }
                    else
                    {
                        printf("两次密码输入不同,创建失败,返回菜单\n");
                        continue;
                    }
                }
                else if(z==2)
                {
                    printf("请输入要删除的店长姓名(小于20个字符)\n");
                    char deleteusername[20];
                    gets(deleteusername);
                    int i;
                    for(i=1;i<=userlist[0].no;i++)
                    {
                        if(strcmp(deleteusername,userlist[i].truename)==0)
                        {
                            printf("请输入其用户密码(小于20个字符)\n");
                            char password[20];
                            gets(password);
                            if(strcmp(password,userlist[i].userpassword)==0)
                            {
                                printf("确定删除?(Y/N)\n");
                                char sure;
                                scanf("%c",&sure);
                                getchar();
                                if(sure=='Y')
                                {
                                    userlist[i].clas=4;
                                    sort_();
                                    userlist[0].no--;
                                    printf("删除成功,返回菜单!!!\n");
                                }
                                else if(sure=='N')
                                {
                                    printf("取消操作,返回菜单!!!\n");
                                }
                                else
                                    printf("非法输入,返回菜单!!!\n");
                                break;
                            }
                            else
                            {
                                printf("密码错误,返回菜单!!!\n");
                                break;
                            }
                        }
                        if(i==userlist[0].no);
                        printf("未找到此店长,请检查输入,返回菜单!!!\n");
                    }
                }
                else if(z==3)
                {
                    printf("请输入要修改的店长的用户名(小于20个字符)\n");
                    char updateusername[20];
                    gets(updateusername);
                    int i,flag=0;
                    for(i=1;i<=userlist[0].no;i++)
                    {
                        if(strcmp(updateusername,userlist[i].username)==0)
                        {
                            flag=1;
                            printf("请输入其用户密码(小于20个字符)\n");
                            char password[20];
                            gets(password);
                            if(strcmp(password,userlist[i].userpassword)==0)
                            {
                                printf("你要修改的是?\n");
                                printf("1.店长的姓名\n");
                                printf("2.店长的性别\n");
                                printf("3.店长的年龄\n");
                                printf("4.返回菜单\n");
                                printf("请输入操作的相应序号以继续............\n");
                                int sure;
                                scanf("%d",&sure);
                                getchar();
                                if(sure==1)
                                {
                                    printf("姓名是?(小于20个字符)\n");
                                    char newname[20];
                                    gets(newname);
                                    strcpy(userlist[i].truename,newname);
                                    printf("修改成功,返回菜单!!!\n");
                                    break;
                                }
                                else if(sure==2)
                                {
                                    printf("性别是?(F 代表女性 M 代表男性)\n");
                                    char newsex;
                                    scanf("%c",&newsex);
                                    getchar();
                                    userlist[i].sex=newsex;
                                    printf("修改成功,返回菜单!!!\n");
                                    break;
                                }
                                else if(sure==3)
                                {
                                    printf("年龄是?\n");
                                    int newage;
                                    scanf("%d",&newage);
                                    getchar();
                                    userlist[i].age=newage;
                                    printf("修改成功,返回菜单!!!\n");
                                    break;
                                }
                                else if(sure==4)
                                {
                                    printf("取消操作,返回菜单!!!\n");
                                    break;
                                }
                                else
                                {
                                    printf("非法输入,返回菜单!!!\n");
                                    break;
                                }
                            }
                            else
                            {
                                printf("密码错误,返回菜单!!!\n");
                                break;
                            }
                        }
                    }
                }
                else if(z==4)
                {
                    continue;
                }
                else
                {
                    printf("非法输入,返回菜单!!!\n");
                    continue;
                }
            }
            else if(y==3)
            {
                continue;
            }
            else
            {
                printf("非法输入,返回菜单!!!\n");
                continue;
            }

        }
        else if(x==2)
        {
            printf("--------------------库存详单-------------------\n");
            printf("序号    名称            进货日期              过期时间           库存量\n");
            int i;
            for(i=1;i<=5;i++)
                printf("%d        %s            %d年 %d月 %d日        %d年 %d月 %d日    %d\n",goods[i].no,goods[i].name,goods[i].in.year,goods[i].in.month,goods[i].in.day,goods[i].waste.year,goods[i].waste.month,goods[i].waste.day,goods[i].num);
            printf("1.修改货物信息\n");
            printf("2.过期货物查验\n");
            printf("3.返回菜单\n");
            printf("请输入操作的相应序号以继续............\n");
            int y;
            scanf("%d",&y);
            getchar();
            if(y==1)
            {
                printf("请输入您要修改的货物序号:\n");
                int goodsno;
                scanf("%d",&goodsno);
                getchar();
                int i;
                for(i=1;i<=5;i++)
                {
                    if(goods[i].no==goodsno)
                    {
                        printf("请输入新数据:(名称/进货日期/过期日期/库存量各一行)\n");
                        printf("原数据:\n");
                        printf("名称            进货日期              过期时间           库存量\n");
                        printf("%s      %d年%d月%d日       %d年%d月%d日     %d\n",goods[i].name,goods[i].in.year,goods[i].in.month,goods[i].in.day,goods[i].waste.year,goods[i].waste.month,goods[i].waste.day,goods[i].num);
                        char newname[20];
                        printf("名称:\n");
                        gets(newname);
                        strcpy(goods[i].name,newname);
                        printf("进货时间输入格式:year.month.day(例如1990.1.1)\n");
                        int newyear,newmonth,newday;
                        scanf("%d.%d.%d",&newyear,&newmonth,&newday);
                        getchar();
                        goods[i].in.year=newyear;goods[i].in.month=newmonth;goods[i].in.day=newday;
                        printf("保质期时间输入格式:year.month.day(例如1990.1.1)\n");
                        scanf("%d.%d.%d",&newyear,&newmonth,&newday);
                        getchar();
                        goods[i].waste.year=newyear;goods[i].waste.month=newmonth;goods[i].waste.day=newday;
                        printf("库存量:\n");
                        int newnum;
                        scanf("%d",&newnum);
                        getchar();
                        goods[i].num=newnum;
                        printf("修改成功!!!返回菜单!!!\n");
                        break;
                    }
                    if(i==5)
                    printf("未找到此货物!!!返回菜单!!!\n");
                }
            }
            else if(y==2)
            {
               printf("请输入当前日期:(输入格式:year.month.day(例如1990.1.1))\n");
               int limyear,limmonth,limday;
               scanf("%d.%d.%d",&limyear,&limmonth,&limday);
               getchar();
               int i,flag=0;
               for(i=1;i<=5;i++)
               {
                    if(goods[i].waste.year<limyear)
                    {
                        flag=1;
                        printf("此货物已过期:名称:   %s      进货日期:%d年%d月%d日       保质期至:%d年%d月%d日     库存量:%d\n",goods[i].name,goods[i].in.year,goods[i].in.month,goods[i].in.day,goods[i].waste.year,goods[i].waste.month,goods[i].waste.day,goods[i].num);
                    }
                    else if(goods[i].waste.year==limyear)
                    {
                        if(goods[i].waste.month<limmonth)
                        {
                            flag=1;
                            printf("此货物已过期:名称:   %s      进货日期:%d年%d月%d日       保质期至:%d年%d月%d日     库存量:%d\n",goods[i].name,goods[i].in.year,goods[i].in.month,goods[i].in.day,goods[i].waste.year,goods[i].waste.month,goods[i].waste.day,goods[i].num);
                        }
                        else if(goods[i].waste.month==limmonth)
                        {
                            if(goods[i].waste.day<limday)
                            {
                                flag=1;
                                printf("此货物已过期:名称:   %s      进货日期:%d年%d月%d日       保质期至:%d年%d月%d日     库存量:%d\n",goods[i].name,goods[i].in.year,goods[i].in.month,goods[i].in.day,goods[i].waste.year,goods[i].waste.month,goods[i].waste.day,goods[i].num);
                            }
                        }
                    }
               }
               if(!flag) printf("无过期货物!!!\n");
            }
            else if(y==3)
            {
                continue;
            }
            else
            {
                printf("非法输入,返回菜单!!!\n");
                continue;
            }

        }
        else if(x==3)
        {
            printf("1.销售业绩查询\n");
            printf("2.商品的日报表\n");
            printf("3.各店业绩报表\n");
            printf("4.返回菜单\n");
            printf("请输入操作的相应序号以继续............\n");
            int y;
            scanf("%d",&y);
            getchar();
            if(y==2)
            {
                int i;
                for(i=1;i<=5;i++)
                    printf("%d    %s\n",goods[i].no,goods[i].name);
                printf("请输入您要查询的货物的序号:\n");
                int z;
                scanf("%d",&z);
                getchar();
                if(z<=goods[0].no)
                {
                    if(goods[z].mess[0].num==0)
                        printf("此货物暂无记录!!!\n");
                    else
                    {
                        printf("店号                销售数量         单价          销售时间\n");
                        for(i=1;i<=goods[z].mess[0].num;i++)
                            printf("%d                    %d                  %d             %d年%d月%d日\n",goods[z].mess[i].store,goods[z].mess[i].num,goods[z].mess[i].sellprice,goods[z].mess[i].selltime.year,goods[z].mess[i].selltime.month,goods[z].mess[i].selltime.day);
                        printf("输入任意数字以返回菜单............\n");
                        scanf("%d",&z);
                        getchar();
                    }
                }
                else
                {
                    printf("非法操作,返回菜单!!!\n");
                    continue;
                }

            }
            else if(y==1)
            {
                int i;
                for(i=1;i<=5;i++)
                    printf("%d    %s\n",goods[i].no,goods[i].name);
                printf("请输入您要查询的货物的序号:\n");
                int z;
                scanf("%d",&z);
                getchar();
                if(z<=goods[0].no)
                {
                    if(goods[z].mess[0].num==0)
                        printf("此货物无销售记录!!!\n");
                    else
                    {
                        int i;
                        int sum=0;
                        for(i=1;i<=goods[z].mess[0].num;i++)
                            sum+=goods[z].mess[i].num*goods[z].mess[i].sellprice;
                        printf("此物品的总销售额为%d\n",sum);
                    }
                }
                else
                {
                    printf("非法操作,返回菜单!!!\n");
                    continue;
                }
            }
            else if(y==3)
            {
                printf("各店的业绩报表如下\n");
                printf("店号        货名        销售数量         单价          销售时间\n");
                int i,j,k,maxn=0;
                for(i=1;i<=5;i++)
                {
                    for(j=1;j<=goods[i].mess[0].num;j++)
                        if(maxn<goods[i].mess[j].store) maxn=goods[i].mess[j].store;
                }
                for(i=1;i<=maxn;i++)
                {
                    for(j=1;j<=5;j++)
                    {
                        for(k=1;k<=goods[j].mess[0].num;k++)
                        {
                            if(goods[j].mess[k].store==i)
                                printf("%d     %s      %d       %d       %d年%d月%d日\n",i,goods[j].name,goods[j].mess[k].num,goods[j].mess[k].sellprice,goods[j].mess[k].selltime.year,goods[j].mess[k].selltime.month,goods[j].mess[k].selltime.day);
                        }
                    }
                }
                printf("输入任意数字以返回菜单............\n");
                scanf("%d",&maxn);
                getchar();
            }
            else if(y==4)
            {
                continue;
            }
            else
            {
                printf("非法操作,返回菜单!!!\n");
                continue;
            }
        }
        else if(x==4)
        {
            printf("感谢您的使用!!!再见:)\n");
            break;
        }
        else
        {
            printf("非法操作,返回菜单!!!\n");
            continue;
        }
    }
}
int log_in(char name[],char password[]){
    int i;
    for(i=1;i<=userlist[0].no;i++)
    {
        if(strcmp(userlist[i].username,name)==0)
        {
            if(strcmp(userlist[i].userpassword,password)==0)
                return i;
            else
                return 0;
        }
    }
    return -1;
}
int main(){
    test();
    printf("------欢迎使用销售管理系统------:)\n");
    printf("请输入您的用户名(小于20个字符):(以回车结束)\n");
    char name[20];
    gets(name);
    printf("请输入您的密码(小于20个字符)\n");
    char password[20];
    gets(password);
    int log_result=log_in(name,password);
    if(log_result==0) printf("密码错误!!!");
    else if(log_result==-1) printf("用户不存在");
    else
    {
        printf("登陆成功!!!\n");
        if(userlist[log_result].clas==1)
        {
            administrators(log_result);
        }
        else if(userlist[log_result].clas==2)
        {
            manager(log_result);
        }
        else
        {
            salesman(log_result);
        }
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值