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
对于租赁,必须保存下面这些附加信息
C和指针 第10章 结构和联合 10.11 编程练习
于 2022-06-25 17:26:13 首次发布