上网计费系统模拟.docx
- 文档编号:11468094
- 上传时间:2023-03-01
- 格式:DOCX
- 页数:23
- 大小:94.42KB
上网计费系统模拟.docx
《上网计费系统模拟.docx》由会员分享,可在线阅读,更多相关《上网计费系统模拟.docx(23页珍藏版)》请在冰豆网上搜索。
上网计费系统模拟
程序设计题2:
上网计费系统模拟
学号:
姓名:
班级:
一.设计题目及目标
二.需求分析
三.概要设计
1.方案设计
2.系统功能
四.设计内容
1.功能结构图
2.程序流程图
3.系统实现(源代码)
4.运行截图
五.设计总结及心得体会
六.设备及环境
一.设计题目及目标
1.题目:
上网计费系统模拟
目标:
本程序模拟根据上网清单、客户资料等生成客户上网账单的过程,本程序模拟根据上网清单、客户资料等生成客户上网账单的过程,该系统主要功能包括:
促销信息、待购信息的新增、删除、修改、查找等。
所有数据都要利用文件系统保存,以备系统下次运行时使用。
通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法的应用。
要求编写一个程序,实现对上网费用的计算。
二.需求分析
代码要求能提供以下几个基本功能:
1.文件管理和存储
1)用户资料文件:
存放用户名,用户账号以及计费方式
2)上网记录文件:
存放所有用户的上网记录,内容包括用户帐号、上网起始时间和上网终止时间。
2.功能要求
1)用户资料文件由程序设计人员预先从键盘上录入,用户资料文件中的数据记录不得少于15条。
2)上网记录文件中的数据记录不得少于150条,首先录入一些上网记录信息,必须有跨年、跨月份的上网记录。
3)用户资料文件及上网记录文件中的数据可随时增加或减少,程序不应进行限制或限定。
4)对上网费用进行计算。
首先由操作人员输入年份和月,然后由程序计算该月份所有用户的上网费用并输出账单信息到指定文件夹。
*3.选做要求:
(1)随机生成一批上网记录信息,并判断是否正确,不正确的信息剔除。
(2)设计用户可能需要的报表,或者建议该系统中还需要采集哪些信息,以便更好的提供用户需要的信息。
三.概要设计
1.方案设计
由于系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计:
采用自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计。
并在界面、功能和健壮性方面进行一些创新设计。
2.系统功能
1)信息录入模块:
用户资料录入
(1)输入用户数量
(2)输入用户名字
(3)输入用户id
(4)输入资费类别
2)资费查询:
根据用户姓名查询用户资费
3)生成报表
(1)打印用户信息报表
(2)打印资费信息报表
四.设计内容
1.功能结构图
2.程序流程图
3.系统实现(源代码)
#include
#include
#include
#include
intnum=0;
typedefstructuser
{
charname[20];
charid[20];
intlb;
}User;
Useru[20];
typedefstructxinxi
{
charid[20];
charkaishi[20];
charjieshu[20];
}x;
xmes[100];
voidmenu()
{
printf("\t欢迎使用上网计费系统\n");
printf("\t1:
用户资料录入\n");
printf("\t2:
资费查询\n");
printf("\t3:
报表生成\n");
}
intinput(Useru[])
{
printf("请输入用户数量:
");
intnum;
scanf("%d",&num);
for(inti=0;i { printf("请输入用户名字: ");scanf("%s",u[i].name); printf("请输入用户ID: ");scanf("%s",u[i].id); printf("请输入用户资费类别: ");scanf("%d",&u[i].lb); } returnnum; } voidluru() { FILE*fp=fopen("xinxi.txt","r"); for(inti=0;i<3;i++) { fscanf(fp,"%s%s%s",&mes[i].id,&mes[i].kaishi,&mes[i].jieshu); } fclose(fp); for(inti=0;i<3;i++) { if(mes[i].id) { printf("%s%s%s\n",mes[i].id,mes[i].kaishi,mes[i].jieshu); } } } doublegetnian(chara[]) { doublenian=1000*(a[0]-'0')+100*(a[1]-'0')+10*(a[2]-'0')+(a[3]-'0'); returnnian; } intgetyue(chara[]) { intyue=10*(a[4]-'0')+(a[5]-'0'); returnyue; } doublegetri(chara[]) { doubleri=10*(a[6]-'0')+(a[7]-'0'); returnri; } doublegetshi(chara[]) { doubleshi=10*(a[8]-'0')+(a[9]-'0'); returnshi; } doublegetfen(chara[]) { doublefen=10*(a[10]-'0')+(a[11]-'0'); returnfen; } doublegetmiao(chara[]) { doublemiao=10*(a[12]-'0')+(a[13]-'0'); returnmiao; } doublefeiyong(inttemp,charid[]) { intprice=0; if(temp==0) { for(inti=0;i<100;i++) { if(strcmp(id,mes[i].id)==0) { if(getnian(mes[i].kaishi)==getnian(mes[i].jieshu)&&getyue(mes[i].kaishi)==getyue(mes[i].jieshu)&&getri(mes[i].kaishi)==getri(mes[i].jieshu)&&getshi(mes[i].kaishi)==getshi(mes[i].jieshu)&&getfen(mes[i].kaishi)==getfen(mes[i].jieshu)&&getmiao(mes[i].kaishi)! =getmiao(mes[i].jieshu)) { price+=(getmiao(mes[i].jieshu)-getmiao(mes[i].kaishi))*0.03/60; } elseif(getnian(mes[i].kaishi)==getnian(mes[i].jieshu)&&getyue(mes[i].kaishi)==getyue(mes[i].jieshu)&&getri(mes[i].kaishi)==getri(mes[i].jieshu)&&getshi(mes[i].kaishi)==getshi(mes[i].jieshu)&&getfen(mes[i].kaishi)! =getfen(mes[i].jieshu)&&getmiao(mes[i].kaishi)! =getmiao(mes[i].jieshu)) { price+=(getmiao(mes[i].jieshu)-getmiao(mes[i].kaishi))*0.03/60+(getfen(mes[i].jieshu)-getfen(mes[i].kaishi))*0.03; } elseif(getnian(mes[i].kaishi)==getnian(mes[i].jieshu)&&getyue(mes[i].kaishi)==getyue(mes[i].jieshu)&&getri(mes[i].kaishi)==getri(mes[i].jieshu)&&getshi(mes[i].kaishi)! =getshi(mes[i].jieshu)&&getfen(mes[i].kaishi)! =getfen(mes[i].jieshu)&&getmiao(mes[i].kaishi)! =getmiao(mes[i].jieshu)) { price+=(getmiao(mes[i].jieshu)-getmiao(mes[i].kaishi))*0.03/60+(getfen(mes[i].jieshu)-getfen(mes[i].kaishi))*0.03+(getshi(mes[i].jieshu)-getshi(mes[i].kaishi))*0.03*60; } elseif(getnian(mes[i].kaishi)==getnian(mes[i].jieshu)&&getyue(mes[i].kaishi)==getyue(mes[i].jieshu)&&getri(mes[i].kaishi)! =getri(mes[i].jieshu)&&getshi(mes[i].kaishi)! =getshi(mes[i].jieshu)&&getfen(mes[i].kaishi)! =getfen(mes[i].jieshu)&&getmiao(mes[i].kaishi)! =getmiao(mes[i].jieshu)) { price+=(getmiao(mes[i].jieshu)-getmiao(mes[i].kaishi))*0.03/60+(getfen(mes[i].jieshu)-getfen(mes[i].kaishi))*0.03+(getshi(mes[i].jieshu)-getshi(mes[i].kaishi))*0.03*60+(getri(mes[i].jieshu)-getri(mes[i].kaishi))*0.03*60*60; } elseif(getnian(mes[i].kaishi)==getnian(mes[i].jieshu)&&getyue(mes[i].kaishi)! =getyue(mes[i].jieshu)&&getri(mes[i].kaishi)! =getri(mes[i].jieshu)&&getshi(mes[i].kaishi)! =getshi(mes[i].jieshu)&&getfen(mes[i].kaishi)! =getfen(mes[i].jieshu)&&getmiao(mes[i].kaishi)! =getmiao(mes[i].jieshu)) { if(int(getyue(mes[i].kaishi)%4==0)&&(int(getyue(mes[i].kaishi))%100! =0)) { price+=(getmiao(mes[i].jieshu)-getmiao(mes[i].kaishi))*0.03/60+(getfen(mes[i].jieshu)-getfen(mes[i].kaishi))*0.03+(getshi(mes[i].jieshu)-getshi(mes[i].kaishi))*0.03*60+(getri(mes[i].jieshu)-getri(mes[i].kaishi))*0.03*60*60+(28-getyue(mes[i].kaishi)*0.03*60*60*60); } else { price+=(getmiao(mes[i].jieshu)-getmiao(mes[i].kaishi))*0.03/60+(getfen(mes[i].jieshu)-getfen(mes[i].kaishi))*0.03+(getshi(mes[i].jieshu)-getshi(mes[i].kaishi))*0.03*60+(getri(mes[i].jieshu)-getri(mes[i].kaishi))*0.03*60*60+(30-getyue(mes[i].kaishi)*0.03*60*60*60); } } elseif(getnian(mes[i].kaishi)==getnian(mes[i].jieshu)&&getyue(mes[i].kaishi)! =getyue(mes[i].jieshu)&&getri(mes[i].kaishi)! =getri(mes[i].jieshu)&&getshi(mes[i].kaishi)! =getshi(mes[i].jieshu)&&getfen(mes[i].kaishi)! =getfen(mes[i].jieshu)&&getmiao(mes[i].kaishi)! =getmiao(mes[i].jieshu)) { price+=(getmiao(mes[i].jieshu)-getmiao(mes[i].kaishi))*0.03/60+(getfen(mes[i].jieshu)-getfen(mes[i].kaishi))*0.03+(getshi(mes[i].jieshu)-getshi(mes[i].kaishi))*0.03*60+(getri(mes[i].jieshu)-getri(mes[i].kaishi))*0.03*60*60+(30-getyue(mes[i].kaishi)*0.03*60*60*60); } } } returnprice; } elseif(temp==1) { for(inti=0;i<100;i++) { if(strcmp(id,mes[i].id)==0) { if(getnian(mes[i].kaishi)==getnian(mes[i].jieshu)&&getyue(mes[i].kaishi)==getyue(mes[i].jieshu)&&getri(mes[i].kaishi)==getri(mes[i].jieshu)&&getshi(mes[i].kaishi)==getshi(mes[i].jieshu)&&getfen(mes[i].kaishi)==getfen(mes[i].jieshu)&&getmiao(mes[i].kaishi)! =getmiao(mes[i].jieshu)) { price+=(getmiao(mes[i].jieshu)-getmiao(mes[i].kaishi))/60; } elseif(getnian(mes[i].kaishi)==getnian(mes[i].jieshu)&&getyue(mes[i].kaishi)==getyue(mes[i].jieshu)&&getri(mes[i].kaishi)==getri(mes[i].jieshu)&&getshi(mes[i].kaishi)==getshi(mes[i].jieshu)&&getfen(mes[i].kaishi)! =getfen(mes[i].jieshu)&&getmiao(mes[i].kaishi)! =getmiao(mes[i].jieshu)) { price+=(getmiao(mes[i].jieshu)-getmiao(mes[i].kaishi))/60+(getfen(mes[i].jieshu)-getfen(mes[i].kaishi)); } elseif(getnian(mes[i].kaishi)==getnian(mes[i].jieshu)&&getyue(mes[i].kaishi)==getyue(mes[i].jieshu)&&getri(mes[i].kaishi)==getri(mes[i].jieshu)&&getshi(mes[i].kaishi)! =getshi(mes[i].jieshu)&&getfen(mes[i].kaishi)! =getfen(mes[i].jieshu)&&getmiao(mes[i].kaishi)! =getmiao(mes[i].jieshu)) { price+=(getmiao(mes[i].jieshu)-getmiao(mes[i].kaishi))/60+(getfen(mes[i].jieshu)-getfen(mes[i].kaishi))+(getshi(mes[i].jieshu)-getshi(mes[i].kaishi))*60; } elseif(getnian(mes[i].kaishi)==getnian(mes[i].jieshu)&&getyue(mes[i].kaishi)==getyue(mes[i].jieshu)&&getri(mes[i].kaishi)! =getri(mes[i].jieshu)&&getshi(mes[i].kaishi)! =getshi(mes[i].jieshu)&&getfen(mes[i].kaishi)! =getfen(mes[i].jieshu)&&getmiao(mes[i].kaishi)! =getmiao(mes[i].jieshu)) { price+=(getmiao(mes[i].jieshu)-getmiao(mes[i].kaishi))/60+(getfen(mes[i].jieshu)-getfen(mes[i].kaishi))+(getshi(mes[i].jieshu)-getshi(mes[i].kaishi))*60+(getri(mes[i].jieshu)-getri(mes[i].kaishi))*60*60; } elseif(getnian(mes[i].kaishi)==getnian(mes[i].jieshu)&&getyue(mes[i].kaishi)! =getyue(mes[i].jieshu)&&getri(mes[i].kaishi)! =getri(mes[i].jieshu)&&getshi(mes[i].kaishi)! =getshi(mes[i].jieshu)&&getfen(mes[i].kaishi)! =getfen(mes[i].jieshu)&&getmiao(mes[i].kaishi)! =getmiao(mes[i].jieshu)) { if(int(getyue(mes[i].kaishi)%4==0)&&(int(getyue(mes[i].kaishi))%100! =0)) { price+=(getmiao(mes[i].jieshu)-getmiao(mes[i].kaishi))/60+(getfen(mes[i].jieshu)-getfen(mes[i].kaishi))+(getshi(mes[i].jieshu)-getshi(mes[i].kaishi))*60+(getri(mes[i].jieshu)-getri(mes[i].kaishi))*60*60+(28-getyue(mes[i].kaishi)*60*60*60); } else { price+=(getmiao(mes[i].jieshu)-getmiao(mes[i].kaishi))/60+(getfen(mes[i].jieshu)-getfen(mes[i].kaishi))+(getshi(mes[i].jieshu)-getshi(mes[i].kaishi))*60+(getri(mes[i].jieshu)-getri(mes[i].kaishi))*60*60+(30-getyue(mes[i].kaishi)*60*60*60); } } elseif(getnian(mes[i].kaishi)==getnian(mes[i].jieshu)&&getyue(mes[i].kaishi)! =getyue(mes[i].jieshu)&&getri(mes[i].kaishi)! =getri(mes[i].jieshu)&&getshi(mes[i].kaishi)! =getshi(mes[i].jieshu)&&getfen(mes[i].kaishi)! =getfen(mes[i].jieshu)&&getmiao(mes[i].kaishi)! =getmiao(mes[i].jieshu)) { price+=(getmiao(mes[i].jieshu)-getmiao(mes[i].kaishi))/60+(getfen(mes[i].jieshu)-getfen(mes[i].kaishi))+(getshi(mes[i].jieshu)-getshi(mes[i].kaishi))*60+(getri(mes[i].jieshu)-getri(mes[i].kaishi))*60*60+(30-getyue(mes[i].kaishi)*60*60*60); } } } return50+(price-30)*0.03; } elseif(temp==2) { for(inti=0;i<100;i++) { if(strcmp(id,mes[i].id)==0) { if(getnian(mes[i].kaishi)==getnian(mes[i].jieshu)&&getyue(mes[i].kaishi)==getyue(mes[i].jieshu)&&getri(mes[i].kaishi)==getri(mes[i].jieshu)&&getshi(mes[i].kaishi)==getshi(mes[i].jieshu)&&getfen(mes[i].kaishi)==getfen(mes[i].jieshu)&&getmiao(mes[i].kaishi)! =getmiao(mes[i].jieshu)) { price+=(getmiao(mes[i].jieshu)-getmiao(mes[i].kaishi))/60; } elseif(getnian(mes[i].kaishi)==getnian(mes[i].jieshu)&&getyue(mes[i].kaishi)==getyue(mes[i].jieshu)&&getri(mes[i].ka
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 上网 计费 系统 模拟