C语言上网计费系统模拟系统
程序设计题 2:上网计费系统模拟
出题人:朱旻如
面向专业:计算机学院
难度等级:4
1 问题描述
本程序模拟根据上网清单、客户资料等生成客户上网账单的过程,该系统主要功能包
括促销信息、待购信息的新增、删除、修改、查找等。所有数据都要利用文件系统保存,
以备系统下次运行时使用。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一
些基本算法的应用。
要求编写一个程序,实现对上网费用的计算。
2 功能要求
代码要能提供以下几个基本功能。
(1)文件管理和存储
1)用户资料文件,存放了用户名、用户帐号以及计费方式。格式如下:
Zhang Qiang 0001 0
Liu Hui 0002 2
Ke Lei 0003 4
其中,计费方式的含义如下:
0 无任何优惠活动,按每分钟 0.03 元计算。
1 每月 50 元包 30 个小时,如上网时长在 30 小时之内(含 30 小时),应缴 50
元,超过部分按每分钟 0.03 元计算。
2 每月 95 元包 60 个小时,如上网时长在 60 小时之内(含 60 小时),应缴 95
元,超过部分按每分钟 0.03 元计算。
3 每月 200 元包 150 个小时,如上网时长在 150 小时之内(含 150 小时),
应缴 200 元,超过部分按每分钟 0.03 元计算。
4 整包,每月缴 300 元,上网时长不限。
2)上网记录文件,存放了所有用户的上网记录,内容包括用户帐号、上网起始时间
和上网终止时间(格式:年月日小时分钟秒)。通常每个用户应有多条上网记录。该文
件的格式如下:
0003 20151201170000 20151201193024
0001 20151202190006 20151202210000
0003 20151222211343 20151223012558
(2)功能要求
1)用户资料文件由程序设计人员预先从键盘上录入,用户资料文件中的数据记录
不得少于 15 条。
2)上网记录文件中的数据记录不得少于 150 条,首先录入一些上网记录信息,必
须有跨年、跨月份的上网记录。
3)用户资料文件及上网记录文件中的数据可随时增加或减少,程序不应进行限制
或限定。
4)对上网费用进行计算。首先由操作人员输入年份和月,然后由程序计算该月份
所有用户的上网费用并输出账单信息到指定文件夹,格式如下:
0001 Zhang Qiang 0 xxxx xxxxx
0002。。
计费时,对于每条上网记录,不足一分钟按一分钟计算。对于跨年或跨月份的记录,
只计算发生在当月的费用。例如对于 2016 年 1 月 31 日 15:00:00 至 2016 年 2 月 1
日 01:00:00 的上网记录,在计算 2016 年 1 月的上网费时,仅计算 2016 年 1 月 31
日 15:00:00 至 2016 年 2 月 1 日 00:00:00 的费用;在计算 2016 年 2 月的上网费
时,仅计算 2016 年 2 月 1 日 00:00:00 至 2016 年 2 月 1 日 01:00:00 的费用。处
理时须考虑闰年的情况。
选做要求:
(1)随机生成一批上网记录信息,并判断是否正确,不正确的信息剔除。
(2)设计用户可能需要的报表,或者建议该系统中还需要采集哪些信息,以便更好的
提供用户需要的信息。
3 其他要求
(1)界面美观,交互方便。
(2)注释详细:每个变量都要求有注释说明用途;函数有注释说明功能,对参数、返
回值也要以注释的形式说明用途;关键的语句段要求有注释解释。
(3)程序的层次清晰,可读性强。
(4)变量、函数命名符合规范。
(5)如有可能,可使用 MFC 等开发工具,实现彩色或图形操作界面。
4 开发环境
可以选择 TC2.0、TC3.0、VC++6.0 等开发环境,或者与老师讨论,选择自己熟悉的开
发工具与平台。
*程序设计方法
(1)根据促销或购物的要求,设计合适的数据结构(如结构数组、链表、对象数组
等实现)。
(2)选择文件存储格式(文本或二进制)和文件名。
(3)采用自顶向下的设计方法,设计系统的总体模块组成和数据结构。设计主程序
的流程图和界面。
(4)对于每项操作,设计一个函数(方法、子模块)进行实现,要明确函数原型。
(5)根据设计结果分步开发实现各模块,最后进行总体集成。
源码传送门
传送门:https://pan.baidu.com/s/1JJs9vbZahUCB6cQvXLgAVg?pwd=1111
标签:00,计算,用户,记录,上网,C语言,模拟系统,计费,2016 From: https://www.cnblogs.com/codewriter/p/16719374.html