| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 393 人关注过本帖
标题:我的第一个课设,销售管理,有些问题,请大家帮帮忙看看,参谋参谋。
只看楼主 加入收藏
快乐方块
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2011-6-5
收藏
 问题点数:0 回复次数:5 
我的第一个课设,销售管理,有些问题,请大家帮帮忙看看,参谋参谋。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
#include<malloc.h>

/*定义日期结构体*/
struct datas{
    int year;
    int month;
    int day;
};

/*定义销售员结构体*/
struct persons{
    int p_Num;
    char p_name[20];
    char sex[1];
}p[3];

/*定义产品信息结构体*/
struct goods{
    int g_Num;
    char g_name[20];
    float price;
}g[4];

/*全局变量*/
int flag_p=0;
int flag_g=0;
int n;
int NO=00000001;/*流水号*/

/*主函数*/
int main(void)
{
    int choice;
    int p_Num,g_Num,number;

    while(1)
    {
        do
        {
            system("cls");
            printf("主页\n");
            printf("\t********************************************************************\n\n");
            printf("\n \t ********************销售管理系统********************** \n");
            printf("\t 1.键盘输入4个销售员信息\n");
            printf("\t 2.键盘输入5种产品信息\n");
            printf("\t 3.显示销售员或产品信息\n");
            printf("\t 0.退出系统\n\n");
            printf("\t ********************************************************************\n");
            printf("\t 您选择的功能编号(0-3):");
            scanf("%d",&choice);
        }while(choice<0 || choice>3);
        switch(choice)
        {
        case 1: system("cls");
            printf("主页=>1.键盘输入4个销售员信息\n");
            printf("\t ********************************************************************\n");
            flag_p=person();
            break;
        case 2: system("cls");
            printf("主页=>2.键盘输入5种产品信息\n");
            printf("\t ********************************************************************\n");
            flag_g=goods();
            break;
        case 3: system("cls");
            list_zong();
            break;
        case 0: system("cls");
            printf("\n再见!欢迎下次继续使用!\n\n");
            return 0;
        }   
    }
    return 0;
}

/*输入4个销售员信息*/
int person()
{
    int i;
    for(i=0;i<4;i++){
        do{
        printf("第%d销售员的信息:编号,姓名,性别(男OR女)\n",i+1);
        scanf("%d%s%s",&p[i].p_Num,p[i].p_name,p[i].sex);
        }while(p[i].sex!="男"&&p[i].sex!="女");
    }
    printf("\n");
    return 1;
}

/*输入5种产品信息*/
int goods()
{
    int i;
    int judgep(int price);

    for(i=0;i<4;i++){
        do{
        printf("第%d产品的信息:产品代号,产品名称,销售价格\n",i+1);
        scanf("%d%s%f",&g[i].g_Num,g[i].g_name,&g[i].price);
        }while(judgep(g[i].price)!=0);
    }
    printf("\n");
    return 1;
}

/*显示销售员或产品信息*/
void list_zong()
{
    int choice;
    while(1)
    {
        do{
            system("xx");
            printf("主页=>4.显示销售员或产品信息\n");
            printf("\t ********************************************************************\n");
            printf("\t 1.销售人员\n");
            printf("\t 2.产品信息\n");
            printf("\t 0.返回上一级\n");
            printf("\t ********************************************************************\n");
            printf("\t 选择需要显示的项目:");
            scanf("%d",&choice);
        }while(choice<0||choice>2);
        switch(choice){
        case 1: system("xx");
            printf("\t 主页=>4.显示销售员或产品信息=>1.销售人员\n");
            printf("\t ********************************************************************\n");
            list_p();
            break;
        case 2: system("xx");
            printf("\t 主页=>4.显示销售员或产品信息=>2.产品信息\n");
            printf("\t ********************************************************************\n");
            list_g();
            break;
        case 0: system("xx");
            return;
        }
    }
}

void listp()/*显示销售员信息*/
{
    int i;
    if(flag_p==0){
        printf("\n销售员信息为空,请利用键盘输入!\n");
        printf("按任意键返回。");
        getchar(); getchar();
    }
    printf("销售员编号、姓名、性别\n");
    for(i=0;i<4;i++)
        printf("%8d%8s%8s\n",p[i].p_Num,p[i].p_name,p[i].sex);
    return;
}

/*显示产品信息*/
void listg()
{
    int i;
    if(flag_g==0){
        printf("\n产品信息为空,请利用键盘输入!\n");
        printf("按任意键返回。");
        getchar(); getchar();
        return;
    }
   
    printf("产品代号、产品名称、销售价格\n");
    for(i=0;i<4;i++)
        printf("%8d%8s%8f",g[i].g_Num,g[i].g_name,g[i].price);
    printf("\n");
    printf("按任意键返回!!!");
    getchar(); getchar();
    return;
}

/*判断销售员编号是否存在*/
int judgep(int p_num)
{
    int i;
    for(i=0;i<4;i++){
        if(p_num!=p[i].p_Num)
            return 0;
    }
    return 1;
}

/*判断产品代号是否存在*/
int judgeg(int g_num)
{
    int i;
    for(i=0;i<4;i++){
        if(g_num!=g[i].g_Num){
        //    printf("输入的产品代号不存在。\n");
            return 0;
        }
        else
            return 1;
    }   
}

/*判断销售价格是否大于0*/
int judgej(float price)
{
    if(price<=0){
    //    printf("输入错误,销售数量必须大于0\n");
        return 0;
    }
    else
        return 1;
}
搜索更多相关主题的帖子: 流水号 结构体 销售员 
2011-06-12 14:22
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
有错误  还是怎么的 把问题讲清楚

                                         
===========深入<----------------->浅出============
2011-06-12 15:50
bccn_2012
Rank: 6Rank: 6
等 级:侠之大者
帖 子:158
专家分:447
注 册:2011-5-14
收藏
得分:0 
程序代码:
#include<stdio.h>

 #include<stdlib.h>

 #include<string.h>

 #include<conio.h>

 #include<malloc.h>

 
/*定义日期结构体*/

 struct datas{
     int year;
     int month;
     int day;

 };

 
/*定义销售员结构体*/

 struct persons{
     int p_Num;
     char p_name[20];
     char sex[2]; //一个中文占两个字符长度!!
 }p[3];

 
/*定义产品信息结构体*/

 struct goods{
     int g_Num;
     char g_name[20];
     float price;

 }g[4];

 
  int person();
int goods();
void list_zong();//函数在使用之前必须要先声明,这个你都不知道吗?
void listp();    
void listg();
int judgep(int );
int judgeg(int );
int judgej(float );

/*全局变量*/

 int flag_p=0;

 int flag_g=0;

 int n;     //这个有何意义?
 int NO=00000001;/*流水号*/  

 
/*主函数*/

 int main(void)

 {
     int choice;
     

 
    while(1)
     {
         do
         {
             system("cls"); 
             printf("主页\n");
             printf("\t********************************************************************\n\n");
             printf("\n \t ********************销售管理系统********************** \n");
             printf("\t 1.键盘输入4个销售员信息\n");
             printf("\t 2.键盘输入5种产品信息\n");
             printf("\t 3.显示销售员或产品信息\n");
             printf("\t 0.退出系统\n\n");
             printf("\t ********************************************************************\n");
             printf("\t 您选择的功能编号(0-3):");
             scanf("%d",&choice);
         }while(choice<0 || choice>3);
         switch(choice)
         {
         case 1: system("cls");
             printf("主页=>1.键盘输入4个销售员信息\n");
             printf("\t ********************************************************************\n");
             flag_p=person();
             break;
         case 2: system("cls");
             printf("主页=>2.键盘输入5种产品信息\n");
             printf("\t ********************************************************************\n");
             flag_g=goods();
             break;
         case 3: system("cls");
             list_zong();
             break;
         case 0: system("cls"); 
            printf("\n再见!欢迎下次继续使用!\n\n");
             return 0;
         }    
    }
     return 0;

 }

 
/*输入4个销售员信息*/

 int person()

 {
     int i;
     for(i=0;i<4;i++)
     {
         //这里你的do~while()语句我删去了。
         printf("第%d销售员的信息:编号,姓名,性别(男OR女)\n",i+1);
         scanf("%d%s%s",&p[i].p_Num,p[i].p_name,p[i].sex);
         flag_p=1;
        
     }
     printf("\n");
     return 1;

 }

 
/*输入5种产品信息*/

 int goods()

 {
     int i;
    for(i=0;i<5;i++)
    {
        
         printf("第%d产品的信息:产品代号,产品名称,销售价格\n",i+1);
         scanf("%d%s%f",&g[i].g_Num,g[i].g_name,&g[i].price);
         flag_g=1;
         if(!judgej(g[i].price))
             i--;
     }
     printf("\n");
     return 1;

 }

 
/*显示销售员或产品信息*/

 void list_zong()

 {
     int choice;
     while(1)
     {
         do{
             system("cls");
             printf("主页=>4.显示销售员或产品信息\n");
             printf("\t ********************************************************************\n");
             printf("\t 1.销售人员\n");
             printf("\t 2.产品信息\n");
             printf("\t 0.返回上一级\n");
             printf("\t ********************************************************************\n");
             printf("\t 选择需要显示的项目:");
             scanf("%d",&choice);
         }while(choice<0||choice>2);
         switch(choice){
         case 1: system("cls");
             printf("\t 主页=>4.显示销售员或产品信息=>1.销售人员\n");
             printf("\t ********************************************************************\n");
             listp();
             break;
         case 2: system("cls");
             printf("\t 主页=>4.显示销售员或产品信息=>2.产品信息\n");
             printf("\t ********************************************************************\n");
             listg();
             break;
         case 0: system("cls");
             return;
         }
     }

 }

 
void listp()/*显示销售员信息*/

 {
     int i;
     if(flag_p==0){
         printf("\n销售员信息为空,请利用键盘输入!\n");
         printf("按任意键返回。");
         getchar(); getchar();
         return;
     }
     printf("销售员编号、姓名、性别\n");
     for(i=0;i<4;i++)
         printf("%8d%8s%8s\n",p[i].p_Num,p[i].p_name,p[i].sex);
     printf("按任意键返回!!!");
     getchar(); getchar();
     return;

 }

 
/*显示产品信息*/

 void listg()

 {
     int i;
     if(flag_g==0){
         printf("\n产品信息为空,请利用键盘输入!\n");
         printf("按任意键返回。");
         getchar(); getchar();
         return;
     }
     
    printf("产品代号、产品名称、销售价格\n");
     for(i=0;i<5;i++)
         printf("%8d%8s%12.2f\n",g[i].g_Num,g[i].g_name,g[i].price);
     printf("\n");
     printf("按任意键返回!!!");
     getchar(); getchar();
     return;

 }

 
/*判断销售员编号是否存在*/

 int judgep(int p_num)      //这个和下面的一个函数这里用不上。。。
 {                           //你在输入销售员信息时用到了这个函数
                             //但是刚开始时结构体数组是空的,你还要判断这个??
     int i;
     for(i=0;i<4;i++)
     {
         if(p_num==p[i].p_Num)
             return 1;
     }
     return 0;

 }

 
/*判断产品代号是否存在*/

 int judgeg(int g_num)     //这个函数和上面的一样,没用到。
 {
     int i;
     for(i=0;i<4;i++)
         if(g_num==g[i].g_Num)
             return 1;
      printf("输入的产品代号不存在。\n");
      return 0;
        
}

 
/*判断销售价格是否大于0*/

 int judgej(float price)

 {
     if(price<=0){
         printf("输入错误,销售数量必须大于0\n");
         return 0;
     }
     else
         return 1;

 }


我感觉你的程序只完成了一部分。。。有一些变量和函数用不上的也加上去了。
上面是我改的。

[ 本帖最后由 bccn_2012 于 2011-6-12 16:20 编辑 ]
2011-06-12 16:13
小菜小C
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:70
专家分:111
注 册:2011-3-18
收藏
得分:0 
楼上的真有耐心,我只看了一部分,也用了一些我不会的代码system("xx");我很无语,我改的也和你差不多,也就不献丑了

菜鸟一名,准备起飞
2011-06-12 20:57
快乐方块
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2011-6-5
收藏
得分:0 
回复 3楼 bccn_2012
谢谢,这的确是一部份,还有问题就是,删除链表的END怎么定义。
能和联系你吗?我的这个还不专业,比如页面怎么更友好,除BUG等
2011-06-12 23:20
bccn_2012
Rank: 6Rank: 6
等 级:侠之大者
帖 子:158
专家分:447
注 册:2011-5-14
收藏
得分:0 
回复 5楼 快乐方块
end 可以定义成全局变量,始终指向链表尾。
你有什么不懂的可以在这里发表, 有一些我也不知道的问题,很多人可以帮到你的。

2011-06-12 23:42
快速回复:我的第一个课设,销售管理,有些问题,请大家帮帮忙看看,参谋参谋。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025635 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved