1、上网计费系统模拟程序设计题 2:上网计费系统模拟 学号: 姓名: 班级:一.设计题目及目标二.需求分析三.概要设计 1.方案设计 2.系统功能四.设计内容 1.功能结构图 2.程序流程图 3.系统实现(源代码) 4.运行截图五设计总结及心得体会六设备及环境一设计题目及目标1.题目:上网计费系统模拟目标:本程序模拟根据上网清单、客户资料等生成客户上网账单的过程,本程序模拟根据上网清单、客户资料等生成客户上网账单的过程,该系统主要功能包括:促销信息、待购信息的新增、删除、修改、查找等。所有数据都要利用文件系统保存,以备系统下次运行时使用。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一 些基
2、本算法的应用。 要求编写一个程序,实现对上网费用的计算。 二需求分析代码要求能提供以下几个基本功能:1.文件管理和存储1)用户资料文件:存放用户名,用户账号以及计费方式 2)上网记录文件:存放所有用户的上网记录,内容包括用户帐号、上网起始时间和上网终止时间。 2.功能要求 1)用户资料文件由程序设计人员预先从键盘上录入,用户资料文件中的数据记录 不得少于 15 条。 2)上网记录文件中的数据记录不得少于 150 条,首先录入一些上网记录信息,必 须有跨年、跨月份的上网记录。 3)用户资料文件及上网记录文件中的数据可随时增加或减少,程序不应进行限制 或限定。 4)对上网费用进行计算。首先由操作人
3、员输入年份和月,然后由程序计算该月份 所有用户的上网费用并输出账单信息到指定文件夹。*3.选做要求:(1)随机生成一批上网记录信息,并判断是否正确,不正确的信息剔除。(2)设计用户可能需要的报表,或者建议该系统中还需要采集哪些信息,以便更好的 提供用户需要的信息。 三概要设计 1.方案设计由于系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计:采用自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计。并在界面、功能和健壮性方面进行一些创新设计。2.系统功能1)信息录入模块:用户资料录入(1)输入用户数量(2)输入用户名字(3)输入用户id(4)输入资费类别2)资费查
4、询: 根据用户姓名查询用户资费3)生成报表(1)打印用户信息报表(2)打印资费信息报表 四.设计内容 1.功能结构图2.程序流程图3.系统实现(源代码)#include#include#include#includeint num = 0;typedef struct user char name20; char id20; int lb;User;User u20;typedef struct xinxi char id20; char kaishi20; char jieshu20;x;x mes100;void menu() printf(t欢迎使用上网计费系统n); printf(t1
5、:用户资料录入n); printf(t2:资费查询n); printf(t3:报表生成n);int input(User u) printf(请输入用户数量:); int num; scanf(%d,&num); for(int i=0; inum; i+) printf(请输入用户名字:);scanf(%s,ui.name); printf(请输入用户ID:);scanf(%s,ui.id); printf(请输入用户资费类别:);scanf(%d,&ui.lb); return num;void luru() FILE *fp = fopen(xinxi.txt,r); for(int i
6、=0; i3; i+) fscanf(fp,%s %s %s,&mesi.id,&mesi.kaishi,&mesi.jieshu); fclose(fp); for(int i=0; i3; i+) if(mesi.id ) printf(%s %s %sn,mesi.id,mesi.kaishi,mesi.jieshu); double getnian(char a) double nian = 1000*(a0-0) + 100*(a1-0) + 10*(a2 - 0) + (a3-0); return nian;int getyue(char a) int yue = 10*(a4 -
7、 0) + (a5 - 0); return yue;double getri(char a) double ri = 10*(a6 - 0) + (a7 - 0); return ri;double getshi(char a) double shi = 10*(a8 - 0) + (a9 - 0); return shi;double getfen(char a) double fen = 10*(a10 - 0) + (a11 - 0); return fen;double getmiao(char a) double miao = 10*(a12 - 0) + (a13 - 0); r
8、eturn miao;double feiyong(int temp,char id) int price = 0; if(temp = 0) for(int i=0; i100; i+) if( strcmp(id,mesi.id) = 0) if(getnian(mesi.kaishi)=getnian(mesi.jieshu) & getyue(mesi.kaishi)=getyue(mesi.jieshu)&getri(mesi.kaishi)=getri(mesi.jieshu)&getshi(mesi.kaishi)=getshi(mesi.jieshu)&getfen(mesi.
9、kaishi)=getfen(mesi.jieshu)&getmiao(mesi.kaishi)!=getmiao(mesi.jieshu) price += (getmiao(mesi.jieshu)-getmiao(mesi.kaishi)*0.03/60; else if(getnian(mesi.kaishi)=getnian(mesi.jieshu) & getyue(mesi.kaishi)=getyue(mesi.jieshu)&getri(mesi.kaishi)=getri(mesi.jieshu)&getshi(mesi.kaishi)=getshi(mesi.jieshu
10、)&getfen(mesi.kaishi)!=getfen(mesi.jieshu)&getmiao(mesi.kaishi)!=getmiao(mesi.jieshu) price += (getmiao(mesi.jieshu)-getmiao(mesi.kaishi)*0.03/60 + (getfen(mesi.jieshu)-getfen(mesi.kaishi)*0.03; else if(getnian(mesi.kaishi)=getnian(mesi.jieshu) & getyue(mesi.kaishi)=getyue(mesi.jieshu)&getri(mesi.ka
11、ishi)=getri(mesi.jieshu)&getshi(mesi.kaishi)!=getshi(mesi.jieshu)&getfen(mesi.kaishi)!=getfen(mesi.jieshu)&getmiao(mesi.kaishi)!=getmiao(mesi.jieshu) price += (getmiao(mesi.jieshu)-getmiao(mesi.kaishi)*0.03/60 + (getfen(mesi.jieshu)-getfen(mesi.kaishi)*0.03 + (getshi(mesi.jieshu)-getshi(mesi.kaishi)
12、*0.03*60; else if(getnian(mesi.kaishi)=getnian(mesi.jieshu) & getyue(mesi.kaishi)=getyue(mesi.jieshu)&getri(mesi.kaishi)!=getri(mesi.jieshu)&getshi(mesi.kaishi)!=getshi(mesi.jieshu)&getfen(mesi.kaishi)!=getfen(mesi.jieshu)&getmiao(mesi.kaishi)!=getmiao(mesi.jieshu) price += (getmiao(mesi.jieshu)-get
13、miao(mesi.kaishi)*0.03/60 + (getfen(mesi.jieshu)-getfen(mesi.kaishi)*0.03 + (getshi(mesi.jieshu)-getshi(mesi.kaishi)*0.03*60+ (getri(mesi.jieshu)-getri(mesi.kaishi)*0.03*60*60; else if(getnian(mesi.kaishi)=getnian(mesi.jieshu) & getyue(mesi.kaishi)!=getyue(mesi.jieshu)&getri(mesi.kaishi)!=getri(mesi
14、.jieshu)&getshi(mesi.kaishi)!=getshi(mesi.jieshu)&getfen(mesi.kaishi)!=getfen(mesi.jieshu)&getmiao(mesi.kaishi)!=getmiao(mesi.jieshu) if(int(getyue(mesi.kaishi)%4=0) & (int(getyue(mesi.kaishi)%100 != 0) price += (getmiao(mesi.jieshu)-getmiao(mesi.kaishi)*0.03/60 + (getfen(mesi.jieshu)-getfen(mesi.ka
15、ishi)*0.03 + (getshi(mesi.jieshu)-getshi(mesi.kaishi)*0.03*60+ (getri(mesi.jieshu)-getri(mesi.kaishi)*0.03*60*60+(28-getyue(mesi.kaishi)*0.03*60*60*60); else price += (getmiao(mesi.jieshu)-getmiao(mesi.kaishi)*0.03/60 + (getfen(mesi.jieshu)-getfen(mesi.kaishi)*0.03 + (getshi(mesi.jieshu)-getshi(mesi
16、.kaishi)*0.03*60+ (getri(mesi.jieshu)-getri(mesi.kaishi)*0.03*60*60+(30-getyue(mesi.kaishi)*0.03*60*60*60); else if(getnian(mesi.kaishi)=getnian(mesi.jieshu) & getyue(mesi.kaishi)!=getyue(mesi.jieshu)&getri(mesi.kaishi)!=getri(mesi.jieshu)&getshi(mesi.kaishi)!=getshi(mesi.jieshu)&getfen(mesi.kaishi)
17、!=getfen(mesi.jieshu)&getmiao(mesi.kaishi)!=getmiao(mesi.jieshu) price += (getmiao(mesi.jieshu)-getmiao(mesi.kaishi)*0.03/60 + (getfen(mesi.jieshu)-getfen(mesi.kaishi)*0.03 + (getshi(mesi.jieshu)-getshi(mesi.kaishi)*0.03*60+ (getri(mesi.jieshu)-getri(mesi.kaishi)*0.03*60*60+(30-getyue(mesi.kaishi)*0
18、.03*60*60*60); return price; else if(temp = 1) for(int i=0; i100; i+) if(strcmp(id,mesi.id) = 0) if(getnian(mesi.kaishi)=getnian(mesi.jieshu) & getyue(mesi.kaishi)=getyue(mesi.jieshu)&getri(mesi.kaishi)=getri(mesi.jieshu)&getshi(mesi.kaishi)=getshi(mesi.jieshu)&getfen(mesi.kaishi)=getfen(mesi.jieshu
19、)&getmiao(mesi.kaishi)!=getmiao(mesi.jieshu) price += (getmiao(mesi.jieshu)-getmiao(mesi.kaishi)/60; else if(getnian(mesi.kaishi)=getnian(mesi.jieshu) & getyue(mesi.kaishi)=getyue(mesi.jieshu)&getri(mesi.kaishi)=getri(mesi.jieshu)&getshi(mesi.kaishi)=getshi(mesi.jieshu)&getfen(mesi.kaishi)!=getfen(m
20、esi.jieshu)&getmiao(mesi.kaishi)!=getmiao(mesi.jieshu) price += (getmiao(mesi.jieshu)-getmiao(mesi.kaishi)/60 + (getfen(mesi.jieshu)-getfen(mesi.kaishi); else if(getnian(mesi.kaishi)=getnian(mesi.jieshu) & getyue(mesi.kaishi)=getyue(mesi.jieshu)&getri(mesi.kaishi)=getri(mesi.jieshu)&getshi(mesi.kais
21、hi)!=getshi(mesi.jieshu)&getfen(mesi.kaishi)!=getfen(mesi.jieshu)&getmiao(mesi.kaishi)!=getmiao(mesi.jieshu) price += (getmiao(mesi.jieshu)-getmiao(mesi.kaishi)/60 + (getfen(mesi.jieshu)-getfen(mesi.kaishi) + (getshi(mesi.jieshu)-getshi(mesi.kaishi)*60; else if(getnian(mesi.kaishi)=getnian(mesi.jies
22、hu) & getyue(mesi.kaishi)=getyue(mesi.jieshu)&getri(mesi.kaishi)!=getri(mesi.jieshu)&getshi(mesi.kaishi)!=getshi(mesi.jieshu)&getfen(mesi.kaishi)!=getfen(mesi.jieshu)&getmiao(mesi.kaishi)!=getmiao(mesi.jieshu) price += (getmiao(mesi.jieshu)-getmiao(mesi.kaishi)/60 + (getfen(mesi.jieshu)-getfen(mesi.
23、kaishi) + (getshi(mesi.jieshu)-getshi(mesi.kaishi)*60+ (getri(mesi.jieshu)-getri(mesi.kaishi)*60*60; else if(getnian(mesi.kaishi)=getnian(mesi.jieshu) & getyue(mesi.kaishi)!=getyue(mesi.jieshu)&getri(mesi.kaishi)!=getri(mesi.jieshu)&getshi(mesi.kaishi)!=getshi(mesi.jieshu)&getfen(mesi.kaishi)!=getfe
24、n(mesi.jieshu)&getmiao(mesi.kaishi)!=getmiao(mesi.jieshu) if(int(getyue(mesi.kaishi)%4=0) & (int(getyue(mesi.kaishi)%100 != 0) price += (getmiao(mesi.jieshu)-getmiao(mesi.kaishi)/60 + (getfen(mesi.jieshu)-getfen(mesi.kaishi) + (getshi(mesi.jieshu)-getshi(mesi.kaishi)*60+ (getri(mesi.jieshu)-getri(me
25、si.kaishi)*60*60+(28-getyue(mesi.kaishi)*60*60*60); else price += (getmiao(mesi.jieshu)-getmiao(mesi.kaishi)/60 + (getfen(mesi.jieshu)-getfen(mesi.kaishi) + (getshi(mesi.jieshu)-getshi(mesi.kaishi)*60+ (getri(mesi.jieshu)-getri(mesi.kaishi)*60*60+(30-getyue(mesi.kaishi)*60*60*60); else if(getnian(me
26、si.kaishi)=getnian(mesi.jieshu) & getyue(mesi.kaishi)!=getyue(mesi.jieshu)&getri(mesi.kaishi)!=getri(mesi.jieshu)&getshi(mesi.kaishi)!=getshi(mesi.jieshu)&getfen(mesi.kaishi)!=getfen(mesi.jieshu)&getmiao(mesi.kaishi)!=getmiao(mesi.jieshu) price += (getmiao(mesi.jieshu)-getmiao(mesi.kaishi)/60 + (get
27、fen(mesi.jieshu)-getfen(mesi.kaishi) + (getshi(mesi.jieshu)-getshi(mesi.kaishi)*60+ (getri(mesi.jieshu)-getri(mesi.kaishi)*60*60+(30-getyue(mesi.kaishi)*60*60*60); return 50+(price-30)*0.03; else if(temp = 2) for(int i=0; i100; i+) if(strcmp(id,mesi.id) = 0) if(getnian(mesi.kaishi)=getnian(mesi.jies
28、hu) & getyue(mesi.kaishi)=getyue(mesi.jieshu)&getri(mesi.kaishi)=getri(mesi.jieshu)&getshi(mesi.kaishi)=getshi(mesi.jieshu)&getfen(mesi.kaishi)=getfen(mesi.jieshu)&getmiao(mesi.kaishi)!=getmiao(mesi.jieshu) price += (getmiao(mesi.jieshu)-getmiao(mesi.kaishi)/60; else if(getnian(mesi.kaishi)=getnian(mesi.jieshu) & getyue(mesi.kaishi)=getyue(mesi.jieshu)&getri(mesi.ka
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1