C语言编程练习题目: A出版社、B出版社是图书出版发行领域的巨头,A出版社出版的书籍种类涉及科技、外文、社科、卫生、生活、体育等方面;B 出版社出版的书籍种类涉及科技、社科、卫生、生活、体育、教育等方面。 C 书店、D书店、E 书店是 3 家著名的图书销售商,C 书店以销售科技类书图书闻名,同时也销售外文、教育类书籍;D书店以销售外文书籍店闻名,同时兼营科技、社科、教育类书籍;E 书店为销售图书种类最完全而著名,书籍种类包括科技、外文、社科、卫生、生活、体育、教育等方面。 F、G是两个典型的图书购买者(图书用户),定期或不定期的去 E 书店买书;其中 F 是一个个人用户,对科技、体育、生活类图书非常感兴趣,对这 3 类图书是逢书必买;G是一个单位用户,它对所有类的图书都感兴趣。 实体 A、B、C、D、E、F、G工作过程参见附一。 各个实体的初始化描述参见附二 题目要求: 请在Window下的VC6.0环境下,使用Win32 Console Application方式并采用多线程编程方式来模拟实体 A、B、C、D、E 之间的工作过程。 具体要求: 1.出版社、书店、图书用户作为独立的单位,各自内部信息相互保密,一般不随意暴露: 2.出版社给书店提供以下接口: 注册接口: 供书店用户登陆注册自己的信息,便于发定购通知; 参数信息: 书店 ID、 书店经营图书的种类、 通知的 Callback 函数 等等 查询接口: 供书店用户定购前查询; 参数信息: 图书种类 查询种类(全部、新书、再版) 查询结果返回 等等 定购接口: 供书店来定购书籍; 参数信息: 书店 ID 图书名 购买数量 联络方式的 Callback(上次不足图书的再版通知) 等等 3.书店(特别是 E 书店)给图书购买者提供以下接口:查询接口: 供图书购买者购买前进行查询; 参数信息: 图书种类查询种类(全部、新书、再版) 查询结果返回 等等 购买接口: 供图书购买者进行购买; 参数信息: 购买者ID 图书名称 购买数量 联络方式的Callback(上次不足图书的到货通知) 等等 4.在主线程中,控制各个实体的初始化、上述模拟活动的开始和停止; 5.出版社、书店、图书购买的工作活动按照时间顺序输出到文件work.txt中; 6.为了验证程序执行的正确性,各个实体(A、B、C、D、E、F、G)都应记载数据, 出版社应记录: 出版(再版)书目、 库存量、销售量、销售明细(每次销售给那个书店多少册)、定购书目数量以及明细(每次向谁定购了什么书、多少本)、销售书目数量以及明细 图书购买者:记录购买书目数量以及明细。以上信息每隔30秒输出一次,以便于核对程序执行的正确性。 7.程序要考虑使用良好的程序结构和数据结构、程序讲求效率。 附一A、B、C、D、E的工作描述 一、关于出版社工作 1.1出版 出版类型: 出版图书类型:新书、再版(主要是由于销售好而再版); 出版数量:新书出版的数量 A、B出版社:每隔10秒出版一种新图书,每次1000册,即 A出版图书的顺序为:科技(1000)->外文(1000)->社科(1000)->卫生(1000)->生活(1000)->体育(1000)->科技(1000); B出版图书的顺序为:科技(1000)->社科(1000)->卫生(1000)->生活(1000)->体育(1000)->教育(1000)->科技(1000) 再版图书的数量以及再版 当出现缺货时进行再版,每个书再版的数量为 (1)再版500册(当缺货数量<=500册时); (2)大于缺货数量并为1000的整数倍(当缺货数量>500册时); 再版请求要进行管理,每次再版不花时间。 出版书目相关信息 书目信息包括:编号、书名、种类、出版社等。 1.2发行(销售) 具体工作包括: 发行通知: 出版新书,向所有订阅此分类的书店通知, 再版,只通知订购此种图书但因缺货没买到书的书店。接受书店定购:如有货,则发货 否则,存货部分进行销售(同步完成),剩余部分转再版处理(异步完成); 并且定购接口中,要有书店的信息,以便于再版后的通知(对上次购买不足的书店)。 1.3提供书目查询服务提供向书店提供书目查询服务,查询分类查书目、库存等。 提供查询希望能够讲求效率。 二、关于书店工作 2.1定购工作 定购分类两类:一类是主动定购、另一类是被动定购; 被动定购:接到书店定购通知后去定购; 主动定购:当前书店销售库存为0,而发生的定购; 每次定购不限于一种图书。 定购前,应该进行相关书目信息的查询。 E书店接到新书通知后每次订购200册 如果书店定购的图书,出版社货不足,则库存有多少购买多少,不足部分等到图书再版后通知再购买。(例如要购买500本,而库存只有300本,则先购300本,剩下200本等到再版后再购买) 三、关于图书购买者 G是一个单位用户,对科技、外文、社科、卫生、生活、体育、教育类图书都感兴趣,不定期从E书店购买新书,每次购买的数量是一个随机数(小于500); 这里的不定期可以认为G每隔几秒(小于8的随机数)到E书店查询一次,看看是否有新书,如果有新书则一定购买新书,否则随机购买一种原有的书,如果货物不足,则库存有多少购买多少,不足部分等到书店通知到货后再购买。(例如要购买50本,而库存只有30本,则先购30本,剩下20本等到书店到货后再购买) 附二 系统的初始化描述 A出版社、B出版社、 C书店、 D书店、 E书店、F图书购买者、G图书购买者初始的数据都为空。 活动开始的顺序为: 1. A、B出版社开始出书 2. 出版后,出版社通知注册的书店(C、D、E),来定购; 3. 书店定购后,开始图书销售; 4. 图书购买者(G)定期到书店买书; 练习要求:先模拟出版社A,书商E,图书购买者G的交易过程,其余待完善
posted on 2009-08-03 17:10
人生在于攀登! 阅读(245)
评论(2) 编辑 收藏 引用