首页 > 其他分享 >C语言上网计费系统模拟系统

C语言上网计费系统模拟系统

时间:2022-09-22 15:14:24浏览次数:85  
标签:00 计算 用户 记录 上网 C语言 模拟系统 计费 2016

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

相关文章

  • VScode中配置C语言/C++运行环境
    https://www.bilibili.com/video/BV1Cu411y7vT/?spm_id_from=333.337.search-card.all.click&vd_source=50f71b6f0ea6d5115ac14c7af4277547......
  • C语言进阶-动态内存管理
    C语言进阶之动态内存管理前言C语言一、为什么存在动态内存分配我们已经掌握的内存开辟方式有:intval=20;//在栈空间上开辟四个字节chararr[10]={0};//在栈空间......
  • extern的使用详解(多文件编程)——C语言
    extern——关键字extern是C语言中的一个关键字,一般用在变量名前或函数名前,作用是用来说明“此变量/函数是在别处定义的,要在此处引用”,extern这个关键字大部分读者应该是在......
  • C语言进阶-文件操作
    C语言进阶之文件操作前言世界很美好,愿我爱我所爱,行我所行,听从我心,无问西东。一、为什么使用文件当一个程序运行起来的时候,可以给程序中增加、删除数据,此时数据是存放在......
  • C语言停车场管理系统
    C语言停车场管理系统实验题目:模拟停车场管理系统一.实验目的1.加深线性表的理解2.增强分析问题,建立模块,解决问题的能力3.巩固线性表的基础操作4.掌握基础文件处理函......
  • 使用GDB(CGDB,DDD,Code::Blocks)调试C语言程序
    目录使用GDB(CGDB,DDD,Code::Blocks)调试C语言程序学习建议:LinuxBash下打开三个标签页调试基础递归的学习举一反三dddcode::blocks特别感谢参考资料使用GDB(CGDB,DDD,Cod......
  • C语言中的exit()函数
    函数名:exit()所在头文件:stdlib.h功能:关闭所有文件,终止正在执行的进程。exit(1)表示异常退出.这个1是返回给操作系统的。exit(x)(x不为0)都表示异常退出exit(0)表示正常......
  • C语言第13天,指针与数组
    使用指针访问数组1.使用第一个元素获取数组首地址 #include<stdio.h>intmain(){int arr[5]={111,222,333,444,555};int*p=&arr[0];//从第1个元素获取数组首地址p;......
  • C语言字符串处理函数 strtok() 和 atoi() 的使用
    字符串函数(Stringprocessingfunction)也叫字符串处理函数,指的是编程语言中用来进行字符串处理的函数。本文主要介绍C语言中符串处理函数strtok()和atoi()的区别使用方法......
  • C语言:利用指针交换两个变量的值
    #include<stdio.h>voidfun(int*a,int*b){int*k;k=a;a=b;b=k;}voidfun1(int*a,int*b){intk;k=*a;*a=*b;*b=k;}main(){inta=......