C和指针 第10章 结构和联合 10.11 编程练习

1. 在拨打长途电话时,电话公司所保存的信息会包括拨打电话的日期和时间。它还包括3个电话号码:使用的那个电话、呼叫的那个电话以及付账的那个电话。这些电话号码的每一个都由3个部分组成:区号、交换台和站号码。请为这些记账信息编写一个结构声明。
解析:
虽然这个问题并没有明确要求,但正确的方法是为电话号码声明一个结构,然后使用这个结构表示付账记录结构的3个成员。 
/*
** 表示长途电话付账记录的结构。 
*/
/* 解决方案10.2a    phone1.h */ 
struct PHONE_NUMBER{
    short area;
    short exchange;
    short station; 
}; 
struct LONG_DISTANCE_BIIL{
    short month;
    short day;
    short year;
    int time;
    struct PHONE_NUMBER called;
    struct PHONE_NUMBER calling;
    struct PHONE_NUMBER billed;
};
/*
** 另一种方法是使用一个长度为PHONE_NUMBERS的数组,如下所示:
*/
/*
** 表示长途电话付账记录的结构。
*/ 
/* 解决方案10.2b    phone2.h */ 
enum PN_TYPE {
    CALLED, CALLING, BILLED
}; 
struct LONG_DISTANCE_BILL{
    short month;
    short day;
    short year;
    int time;
    struct PHONE_NUMBER numbers[3];
};
2. 为一个信息系统编写一个声明,用于记录每个汽车零售商的销售情况。每份销售记录必须包括下列数据。
字符串的最大长度不包括其结尾的NUL字节。
顾客名字(customer's name)        string(20) 
顾客地址(customer's address)       string(40) 
模型(model)                                 string(20) 
销售时可能出现3种不同类型的交易:全额现金销售、贷款销售和租赁。对于全额现金销售,还必须保存下面这些附加信息:
生产厂家建议零售价(manufacturer's suggested retail price)        float
实际售出价格(actual selling price)                            float
营业税(sales tax)                                                float
许可费用(licensing fee)                                        float
对于租赁,必须保存下面这些附加信息

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weixin_40186813

你的能量无可限量。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值