资源预览内容
第1页 / 共36页
第2页 / 共36页
第3页 / 共36页
第4页 / 共36页
第5页 / 共36页
第6页 / 共36页
第7页 / 共36页
第8页 / 共36页
第9页 / 共36页
第10页 / 共36页
亲,该文档总共36页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
程序设计题2:上网计费系统模拟学号:姓名:班级:目录一 .设计题目及目标二 .需求分析三 .概要设计1. 方案设计2. 系统功能四 .设计内容1. 功能结构图2. 程序流程图3. 系统实现(源代码)4. 运行截图五 .设计总结及心得体会六 .设备及环境一.设计题目及目标1 .题目:上网计费系统模拟目标:本程序模拟根据上网清单、客户资料等生成客户上网账单的过程,本程序模拟根据上网清单、客户资料等生成客户上网账单的过程,该系统主要功能包括:促销信息、待购信息的新增、删除、修改、查找等。所有数据都要利用文件系统保存,以备系统下次运行时使用。通过此课题,熟练掌握文件、数组、指针的各种操作,以及一些基本算法的应用。要求编写一个程序,实现对上网费用的计算。二.需求分析代码要求能提供以下几个基本功能:1 .文件管理和存储1)用户资料文件:存放用户名,用户账号以及计费方式2)上网记录文件:存放所有用户的上网记录,内容包括用户帐号、上网起始时间和上网终止时间。2 .功能要求1)用户资料文件由程序设计人员预先从键盘上录入,用户资料文件中的数据记录不得少于15条。2)上网记录文件中的数据记录不得少于150条,首先录入一些上网记录信息,必须有跨年、跨月份的上网记录。3)用户资料文件及上网记录文件中的数据可随时增加或减少,程序不应进行限制或限定。4)对上网费用进行计算。首先由操作人员输入年份和月,然后由程序计算该月份所有用户的上网费用并输出账单信息到指定文件夹。*3,选做要求:(1)随机生成一批上网记录信息,并判断是否正确,不正确的信息剔除。(2)设计用户可能需要的报表,或者建议该系统中还需要采集哪些信息,以便更好的提供用户需要的信息。三.概要设计1 .方案设计k由于系统要求实现许多的功能,因此遵循结构化程序设计思想来进行本系统的设计:采用自顶向下、逐步细化,将系统设计任务分解出许多子功能模块进行设计。并在界面、功能和健壮性方面进行一些创新设计。2 .系统功能1)信息录入模块:用户资料录入(1)输入用户数量(2)输入用户名字(3)输入用户id(4)输入资费类别2)资费查询:根据用户姓名查询用户资费3)生成报表(1)打印用户信息报表(2)打印资费信息报表四.设计内容1.功能结构图苦油一早不临矣记匚!,irurl*2 .程序流程图3 .系统实现(源代码)#include#include#include#includeintnum=0;typedefstructusercharname20;charid20;intlb;User;Useru20;typedefstructxinxicharid20;charkaishi20;charjieshu20;x;xmes100;voidmenu()(printf(t欢迎使用上网计费系统n);printf(t1:用户资料录入n);printf(t2:资费查询n);printf(t3:报表生成n);)intinput(Useru)(printf(请输入用户数量:);intnum;scanf(%d”,&num);for(inti=0;inum;i+)(printf(请输入用户名字:);scanf(%s,ui.name);printf(请输入用户ID:);scanf(%s,ui.id);printf(请输入用户资费类别:);scanf(%d”,&ui.lb);)returnnum;)voidluru()(FILE*fp=fopen(xinxi.txt,r);for(inti=0;i3;i+)(fscanf(fp,%s%s%s,&mesi.id,&mesi.kaishi,&mesi.jieshu);)fclose(fp);for(inti=0;i3;i+)(if(mesi.id)(printf(%s%s%sn,mesi.id,mesi.kaishi,mesi.jieshu);)doublegetnian(chara)(doublenian=1000*(a0-0)+100*(a1-0)+10*(a2-0)+(a3-0);returnnian;intgetyue(chara)(intyue=10*(a4-0)+(a5-0);returnyue;doublegetri(chara)(doubleri=10*(a6-0)+(a7-0);returnri;doublegetshi(chara)doubleshi=10*(a8-0)+(a9-0);returnshi;doublegetfen(chara)(doublefen=10*(a10-0)+(a11-0);returnfen;)doublegetmiao(chara)(doublemiao=10*(a12-0)+(a13-0);returnmiao;)doublefeiyong(inttemp,charid)(intprice=0;if(temp=0)(for(inti=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)&getmiao(mesi.kaishi)!=getmiao(mesi.jieshu)(price+=(getmiao(mesi.jieshu)-getmiao(mesi.kaishi)*0.03/60;elseif(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)-getmiao(mesi.kaishi)*0.03/60+(getfen(mesi.jieshu)-getfen(mesi.kaishi)*0.03;elseif(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)-getmiao(mesi.kaishi)*0.03/60+(getfen(mesi.jieshu)-getfen(mesi.kaishi)*0.03+(getshi(mesi.jieshu)-getshi(mesi.kaishi)*0.03*60;elseif(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)-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;elseif(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)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.kaishi)*0.03+(getshi(mesi.jieshu)-ge
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号