| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 396 人关注过本帖
标题:为什么不能编译?求帮助!
只看楼主 加入收藏
ahtar
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2011-5-14
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:1 
为什么不能编译?求帮助!
题目是
请设计一个图书大厦的会员卡管理程序。会员卡信息包括:卡号、持卡人名称、联系电话、办卡日期(含年、月、日)、办卡金额、消费次数、消费日期、累积消费金额、折扣等。
该程序应该具有下列基本功能:
(1) 录入全部持卡人的基本信息,卡号按顺序生成,办卡金额满1000元享受9折、满2000元享受8折、满5000元享受6折、满10000元享受5折;
(2) 显示全部会员的信息;
(3) 添加一个会员的信息;
(4)    给定卡号,修改此卡号的会员信息,要求有修改确认;
(5) 给定会员姓名,删除此会员的信息,要求有删除确认;
(6) 给定卡号,显示此卡的基本信息;
(7) 给定卡号,查询累积消费金额;
 (8) 给定会员姓名,显示该会员的所有消费信息;
 (9) 给定一个日期(含年、月、日),显示该日的消费人数和消费总金额;
(10) 提供一些排序、统计各类信息的功能。

【题目要求】
(1) 按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;
(2) 为各项操作功能设计一个菜单。应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
【输入要求】
应用程序运行后,在屏幕上显示一个菜单。用户可以根据需求,选定相应的操作项目。进入每个操作后(若需要,还可显示子菜单),根据应用程序的提示信息,从键盘输入相应的信息。要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
【输出要求】
(1)  应用程序运行后,要在屏幕上显示一个菜单;
(2)  要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
   (3)输出的结果要清晰美观,以表格形式上下对齐。
【提示】
使用结构类型和一维数组,用来保存软件信息。



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

#define NUM 10 //最大容纳数据的消费者数量

typedef struct node_card
{
    unsigned long m_Money;//办卡金额
    unsigned long m_Counter;//消费次数
    unsigned long m_FeeMonSum;//累计消费金额
    struct tm *m_Time;//(有效值为年/月/日)
    unsigned int m_ID; //卡号
    char *m_Name; //持卡人名称
    char *m_Ph;//联系电话
    short m_Discount; //折扣
}Card;

Card customers[NUM];
unsigned int Counter; //计数器

void get_customer_msg(void);
void auto_deal(unsigned int coun);
void print_customers_msg(void);

int wmain(void)
{
    get_customer_msg();
    print_customers_msg();

    return 0;
}

/*
*录取客户信息
*/
void get_customer_msg(void)
{
    unsigned int sum;

    printf("输入持卡人数: "); scanf("%u", &sum);

    while (0 != sum--)
    {
        printf("输入持卡人姓名: ");
        customers[Counter].m_Name = (char*) malloc (20*sizeof(char));
        scanf("%s", customers[Counter].m_Name);

        printf("输入持卡人联系电话: ");
        customers[Counter].m_Ph = (char*) malloc (20*sizeof(char));
        scanf("%s", customers[Counter].m_Ph);

        printf("输入办卡金额: ");
        scanf("%u", &customers[Counter].m_Money);

        auto_deal(Counter);

        customers[Counter].m_ID = Counter+1;
        ++Counter;
    }
}

void auto_deal(unsigned int coun)
{
    time_t t;

    if (customers[coun].m_Money >= 10000)
    {
        customers[coun].m_Discount = 5;
    }
    else if (customers[coun].m_Money >= 5000)
    {
        customers[coun].m_Discount = 6;
    }
    else if (customers[coun].m_Money >= 2000)
    {
        customers[coun].m_Discount = 8;
    }
    else if (customers[coun].m_Money >= 1000)
    {
        customers[coun].m_Discount = 9;
    }
    else
    {
        customers[coun].m_Discount = 10;
    }

    customers[coun].m_Counter = 0;
    customers[coun].m_FeeMonSum = 0;
    customers[coun].m_Time = (struct tm*) malloc (sizeof(struct tm));
    t = time(NULL);
    customers[coun].m_Time = localtime(&t);
}

/*
*打印客户的全部信息
*/
void print_customers_msg(void)
{
    unsigned int index = 0;

    while (Counter != index)
    {
        printf("卡号: %d\n", customers[index].m_ID);
        printf("持卡人: %s\n", customers[index].m_Name);
        printf("电话: %s\n", customers[index].m_Ph);
        printf("注册日期: %d %d %d\n", customers[index].m_Time->tm_year+1900,
            customers[index].m_Time->tm_mon, customers[index].m_Time->tm_mday);
        printf("办卡金额: %u\n", customers[index].m_Money);
        printf("累计消费: %u\n", customers[index].m_FeeMonSum);
        printf("消费次数: %u\n", customers[index].m_Counter);
        printf("消费折扣: %u\n", customers[index].m_Discount);

        ++index;
    }
}
搜索更多相关主题的帖子: 联系电话 图书大厦 会员卡 姓名 
2011-05-16 21:41
JCchan
Rank: 2
等 级:论坛游民
帖 子:44
专家分:73
注 册:2010-6-2
收藏
得分:10 
是用VC的编译的,可以编译成功,但是我这里没法执行。一方面是我不会用VC,刚调试了一下,没执行成功而已,等高手解释

能忍受多久,关键在于看待的心态>..<天下大事,由我定夺
2011-05-17 00:20
快速回复:为什么不能编译?求帮助!
数据加载中...
 
   



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

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