版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
手机话费信息管理系统课程设计报告 2【关键词】手机信息管理系统C语言计算机应用2第一章概要设计 ..21.1设计目的、涉及知识点及基本功能 31.2需求分析 ...31.3总体设计 ...7第二章详细设计 ..72.1主要功能和算法设计 82.2功能模块图 102.3函数功能说明 102.4主要流程图 11第三章测试计划 123.1主要功能实现 123.2系统测试 ..13总结心得 14致词 14参考文献 14附录1:程序代码 151刖言【关键词】手机信息管理系统C语言计算机应用过去,当手机还是一个很新鲜的字眼的时候,手机是权利与身份的象征,科技和人们的意识等决定了手机的外在服务不可能达到很高的水平,那时还没有很完善的机制和软件系统来实现这个不太突出的需求.因此,一个具备基本功能且可靠方便的手机话费查询及充值系统可以满足广大手机用户的需要.本手机用户话费及使用状况查询系统的客户主要有两类:一类是手机的普通用户,可以通过其手机号直接查询该手机的话费;另一类则是管理手机充值的工作人员,除了了可以为用户提供充值以外,他们还具有查看用户信息的权利。该系统将给客户提供方便,快捷,准确的服务.第一章概要设计21.1设计目的、涉及知识点及基本功能设计目的本人计划编写一个手机话费信息管理系统,主要用来管理客户基本信息及话费信息本系统涉及知识点结构、数组、循环、函数、分支、指针、共用体等,运用了函数的递归、调用,指针和数组方面的知识基本功能A、建立或追加计费信息计费信息包含:计费类别、每秒单价、折扣、特殊优惠等B、手机账号管理新加入手机号码、注销手机号码、修改计费类别、交费等C、查询:根据计费类别查询计费信息和统计相关手机号码;根据手机号码查询相关信息1.2需求分析术语定义用户:话费服务员客户:手机使用者需求的层次关系需求是指明必须实现什么的规格说明。它描述了系统的行为、特性或属性,是在开发过程中对系统的约束。软件需求包括四个不同的层次一业务需求、用户需求、功能需求和非功能需求。业务需求:包含客户及用户对系统、产品的高层次的要求。用户需求:描述用户及客户必须要完成的任务。功能需求:定义了开发人员必须实现的软件功能,使得用户能完成他们的任务,从而满足了业务需求。非功能需求:作为功能需求的补充,软件规格说明书还应包括非功能需求,他描3述了系统展现给用户的行为和执行的操作等系统描述用户资料录入及存储。分别录入到用户的个人信息和话费信息两个文件。其次,制作更新操作包括插入、修改、删除、即用户话费的充值及使用过程。如该用户话费达欠费底线,则停机。然后作查询、统计、排序等操作。最后输出报表。建立一个小型的手机话费管理系统。可以对手机的话费信息进行管理。内容上,包括客户的信息和手机卡的信息两部分。所需信息包括:手机号码、姓名、性别、出生年月、预交款余额、手机卡的信息包括卡的名称、每分话费(包括本地每分话费、长途话费、国际话费)、短信息费、欠费底线。数据以文件形式存放,分为用户个人信息和用户话费信息产品功能如图1-1所示,个主要功能部件及其联系,均在图中表示:手机话费管理系统查按插删录输询信入排统除入出信息信信信信排息息息序计息息序按按删查除询图1-14功能要求包括客户的信息和手机卡的信息两部分。所需信息包括:手机号码、姓名、性别、出生年月、预交款余额、手机卡的信息包括卡的名称、每分话费(包括本地每分话费、长途话费、国际话费)、短信息费、欠费底线。数据以文件形式存放,分为用户个人信息和用户话费信息。首先,进行用户资料录入及存储。分别录入到用户的个人信息和话费信息两个文件。其次,制作更新操作包括插入、修改、删除、即用户话费的充值及使用过程。如该用户话费达欠费底线,则停机。然后作查询、统计、排序等操作。最后输出报表查询过程浏览过程:按姓名查找:查询出错客户信息记录姓名查询信息姓名录入系统客户姓名查询系统的数据客户库查询结果按手机号查询:查询出错客户信息记录手机号查询信息手机号录入系统手机号查询系统的数据客户库5更改信息删除信息删除出错客户信息记录手机号删除信息手机号录入系统手机号删除系统的数据客户库增加信息(3)增加出错客户信息记录手机号增加信息手机号录入系统手机号增加系统的数据客户库更新信息更新出错客户信息记录手机号更新信息手机号录入系统手机号更新系统的数据客户库61.3总体设计系统功能客户浏览功能:输入正确信息后就可以浏览文档中存储的有关其手机卡和自身的信息。修改功能:只要出示正确的身份信息就能更改手机卡的信息和自身的相关信息也可以删除自己的信息管理员2.添加功能:增加一个新客户的记录修改功能:修改某一已存在的记录内容删除功能:删除一个记录性能需求数据管理能力要求:本系统需要管理的文卷和记录的个数有10-20左右,对可预见的增长对手数据进行动态存储。故障处理要求:由于某种未知软件及硬件所引起的本系统无法正常使用,可能会对使用该软件的管理员和客户产生一定的影响,但由于其具有较好的可维护性,使得维护人员发现情况时,立即更正,可在短时间内恢复其使用。其他专门要求:本系统具有较强的使用权限,使得本系统具有易于维护,管理;其用户界面要求为包括简洁、易用、易懂,美观、标准,具备一定的兼容性;软件质量要求为:易用、健壮、兼容性好、运行稳定、有一定安全保障。第二章详细设计72.1主要功能和算法设计查询功能功能:完成查询功能。性能:响应时间控制在1~2秒内。输入项目:输入要查询的姓名或手机号输出项目:查询结果程序逻辑:1.产生查询窗口;若用户取消,则返回;用户确认后按用户选择查询方式及关键字提交数据库查询,获得查询结果;产生查询结果项数,并等待用户确认;若查询结果项数等于零,返回;输入项目:要插入的内容。输出项目:无。程序逻辑:1.产生插入窗口界面;等待用户输入各项信息;若用户取消,则返回;如果用户确定,插入所要插入的内容修改功能功能:完成修改功能。输入项目:要修改的数据。输出项目:无。程序逻辑:1.产生修改窗口界面;等待用户输入;若取消,则返回;如果用户确定,录入要修改的项;修改该项内容;删除功能8功能:完成删除功能。输入项目:要删除的项。输出项目:无。程序逻辑:1.产生删除窗口界面;若取消,则返回;如果用户确定,调用删除快捷模块;从数据库中删除该记录;算法设计例如:求所查询的号码的呼叫次数voidtimes()//求所查询的号码的呼叫次数{FILE*fp;charnumber[15];inti,j=0;i=0;fp二fopen(〃jilu.txt〃,〃r〃);while(!feof(fp))(fread(&H[i],sizeof(structtype1),1,fp);i++;}〃判断文件中记录有多少条m=i-1;fclose(fp);printf("输入你要查询的号码\n");scanf("%s",number);for(i=0;i<m;i++)if(strcmp(H[i].no,number)==0)j++;printf("\t拔打次数:%d\t次\n",j);getchar();9}2.2功能模块图手机话费管理系统查删添退新找除加出建功功功系客能能能统户按按按按按姓输姓数输名入名字入查号和“号找码号0码查码“创找的退建添出客加户方信式息2.3函数功能说明10函数功能说明:voidenter()//输入记录并保存;输入11位的手机号码,缴费金额,通话日期,通话时长(分),长途1或短途0voidleavings()/*求总余额*/voidcosts()〃求通话所用金额和长短途所用金额总计,将计算结果追加到文件中voidsort()/*排序*/根据时间长短排序voidtimes()//求所查询的号码的呼叫次数,判断文件中记录有多少条voidappend()/*增加记录的实现*/voiddel()/*删除记录*/voidcorrect()〃更正记录2.4主要流程图例如:主要功能开始输入录入条数菜单界面功能选择退出系统11第三章测试计划3.1主要功能实现例如:求所查询的号码的呼叫次数voidtimes()//求所查询的号码的呼叫次数{FILE*fp;charnumber[15];inti,j=0;i=0;fp二fopen(〃jilu.txt〃,〃r〃);while(!feof(fp))(fread(&H[i],sizeof(structtype1),1,fp);i++;}〃判断文件中记录有多少条m=i-1;fclose(fp);printf(〃输入你要查询的号码\n〃);scanf(〃%s〃,number);for(i=0;i<m;i++)12if(strcmp(H[i].no,number)==0)j++;printf("\t拔打次数:%d\t次\n〃,j);getchar();}3.2系统测试功能测试已有0条记录?请输人要记录的条数1登录界面2菜单界面3菜单功能“1”4菜单功能“3”哗输右1直位段丰机号昭*输入通话的电话号玛费金额=1BG通话日期=20111111通话时长=10长途1或短途融:1■fcfeiosa f携岩13输入你要查询即号玛1222^^13670•拔打次数=1质5菜单功能“5”测试结果该软件在各方面的综合能力都可以,通过〜总结心得通过这次课程设计,我学习了算法设计、指针、数组、链表的实际应用,帮助我很好理解前段时间学习的c语言知识。虽然编程比较艰苦,但我还是很好完成了课程设计,这对我以后的人生道路有很大影响。通过这次课程设计,我学会了排版、截图以及深刻理解指针、数组这部分知识,对我以后学习c++、java等语言会有帮助。致词在此我要感谢我的指导老师薛颂东,薛老师严谨的教学态度、认真负责的教学作风让我很是感动。真是因为他的耐心知道我才能完成这次课程设计,相信在薛老师的指引下我以后会在c语言编程方面有所作为。参考文献谭浩强,《C++语言程序设计》,清华大学出版社谭浩强,《C程序设计》,清华大学出版社李春葆,尹为民,李蓉蓉,蒋晶,喻丹丹,安杨,《数据结构教程》,清华大学出版社[4]李丹程,刘莹,那俊,《C语言程序设计案例实践》,清华大学出版社[5]曹衍龙,林瑞仲,徐慧,《C语言实例解析精粹》,人民邮电出版社14附录1:程序代码#include"stdio.h"/*<stdio.h>只在标准库目录查找stdio.h"stdio.h"先在用户目录(.c的目录)查找stdio.h,再到标准库目录查找。*/#include"stdlib.h"/*清屏函数要用到的头文件*/#include"string.h”#defineSIZE100structtype1(charno[15];floatmoney;chardate[10];floattime;floatleftlong,leftshort;inta;}H[SIZE];/*定义一个结构体,其中包括储存电话号码的整型数组no[15]、所缴金额money、缴费日期date[10]、每次通话时间time、长途所用金额leftlong、短途所用金额leftshort以及长短途的区分a*/intm;/*全局变量表示一次操作的记录条数*/intmenu_select()//打印输出主菜单和功能选择,并将选择值返回到主函数(char*menu[]=("**************************菜单***************************","*1.读入数据并保存*",15"*2.话费总余额*","*3.话费金额统计(各次金额、长话总金额、短话总金额)*〃,"*4.排序功能(按时间长短,显示各次呼出的电话号码)*〃,"*5.查询呼叫某电话的次数*","*6.增加记录*〃,"*7.删除记录*〃,"*8.修改记录*",〃*9.退出*〃,"*********************************************************〃}:inti,c;for(i=0;i<11;i++)printf("%s\n",menu[i]);do(printf("Enteryouchoice(1~9):\n");scanf(〃%d〃,&c);system("cls");}while(c<1||c>9);/*当输入的功能选项不符合要求,即不在1到9之间时,重新输入选项,16直到符合要求为止*/returnc;}voidenter()//输入记录并保存(FILE*fp;inti;printf("*请输入11位的手机号码*\n");for(i=0;i<m;i++)(printf("输入通话的电话号码:");scanf("%s",H[i].no);if(strlen(H[i].no)!=11)(printf("sorry!请重新输入\n");i=i-1;continue;}printf("\n缴费金额:");scanf("%f”,&H[i].money);printf("\n通话日期:");scanf("%s”,H[i].date);printf("\n通话时长(分):");scanf("%f”,&H[i].time);printf("\n长途1或短途0:");scanf("%d”,&H[i].a);if(H[i].a)17(H[i].leftlong=H[i].time;H[i].leftshort=0;}else(H[i].leftlong=0;H[i].leftshort=H[i].time*0.3;}}if((fp二fopen(〃jilu.txt〃,〃w〃))==NULL)(printf("cannotopenfile\n");return;}for(i=0;i<m;i++)if(fwrite(&H[i],sizeof(structtype1),1,fp)!二1)printf("filewriteerror\n");fclose(fp);}voidleavings()/*求总余额*/(FILE*fp1,*fp2;inti;floatt1=0,t2=0;floatlea[SIZE];floatleavings=0;fp1二fopen(〃jilu.txt〃,〃r〃);18for(i=0;i<m;i++)(fread(&H[i],sizeof(structtype1),1,fp1);if(H[i].a==1)lea[i]=float(H[i].money-H[i].time);if(H[i].a==0)lea[i]=float(H[i].money-H[i].time*0.3);leavings+=lea[i];}fclose(fp1);fp2二fopen(〃jinge.txt〃,〃w〃);fprintf(fp2,〃%g〃,leavings);fclose(fp2);printf(〃余额为%g\n\n\n",leavings);getchar();}voidcosts()〃求通话所用金额和长短途所用金额总计{FILE*fp1,*fp2;inti;floatt1=0,t2=0;floatcost1=0,cost0=0;floatCOST;fp1二fopen(〃jilu.txt〃,〃r〃);for(i=0;i<m;i++)(fread(&H[i],sizeof(struct19type1),1,fp1);cost1+=H[i].leftlong;cost0+=H[i].leftshort;}fclose(fpl);COST二cost1+cost0;fp2=fopen("jinge.txt","a");/*将计算结果追加到文件中*/fprintf(fp2,"%g%g%g”,cost1,cost0,COST);fclose(fp2);printf("\n\n\t长途通话费用合计\t短途通话费用合计\t总话费合计\n");printf("\t%g\t\t\t%g\t\t\t%g\n",cost1,cost0,COST);getchar();}voidsort()/*排序*/(FILE*fp;inti,j,k;structtype1t;fp二fopen(〃jilu.txt〃,〃r〃);i=0;while(!feof(fp))(fread(&H[i],sizeof(structtype1),1,fp);i++;20}fclose(fp);m=i-1;for(i=0;i<m-1;i++)(k=i;for(j=i+1;j<m;j++)if(H[j].time<H[k].time)k=j;t=H[k];H[k]=H[i];H[i]=t;}〃根据时间长短排序for(i=0;i<m;i++)(printf("\t通话时间\t电话号码\n");printf(〃\t%g\t\t%s\n〃,H[i].time,H[i].no);}getchar();}voidtimes()//求所查询的号码的呼叫次数(FILE*fp;charnumber[15];inti,j=0;i=0;fp二fopen(〃jilu.txt〃,〃r〃);while(!feof(fp))21(fread(&H[i],sizeof(structtype1),1,fp);i++;}〃判断文件中记录有多少条m=i-1;fclose(fp);printf("输入你要查询的号码\n");scanf("%s",number);for(i=0;i<m;i++)if(strcmp(H[i].no,number)==0)j++;printf("\t拔打次数:%d\t次\n",j);getchar();}voidappend()/*增加记录的实现*/(FILE*fp;inti,j;i=0;fp二fopen(〃jilu.txt〃,〃r〃);while(!feof(fp))fread(&H[i],sizeof(structtype1),1,fp);i++;}fclose(fp);m=i-1;printf("输入要增加的记录条数(<100):22");scanf("%d",&j);for(i=m;i<m+j;i++)(printf("\n输入通话的电话号码:");scanf("%s",H[i].no);if(strlen(H[i].no)!=11)(printf("sorry!请重新输入\n");i=i-1;continue;}printf("\n缴费金额:");scanf("%f”,&H[i].money);printf("\n通话日期:");scanf("%s”,H[i].date);scanf(〃%f〃,&H[i].time);printf("\n长途1或短途0:");scanf("%d",&H[i].a);if(H[i].a)(H[i].leftlong=H[i].time;H[i].leftshort=0;}else(H[i].leftlong=0;H[i].leftshort=H[i].time*0.3;23}}m=i;if((fp二fopen(〃jilu.txt〃,〃w〃))==NULL)(printf("cannotopenfile\n");return;}for(i=0;i<m;i++)if(fwrite(&H[i],sizeof(structtype1),1,fp)!二1)fclose(fp);}voiddel()(FILE*fp;inti,j;chara[15];i=0;j=0;if((fp=fopen("jilu.txt","r"))==NULL)(printf("无记录可删除!\n");getchar();return;}while(!feof(fp))(24fread(&H[i],sizeof(structtype1),1,fp);i++;}fclose(fp);m=i-1;if(!m)(printf("无记录可删除!\n");getchar();return;}printf("输入你要删除的记录的电话号码:");scanf("%s",a);system("deljilu.txt");if((fp=fopen("jilu.txt","w"))==NULL)(printf("cannotopenfile\n");return;}for(i=0;i<m;i++)(if(strcmp(H[i].no,a)!二0)(if(fwrite(&H[i],sizeof(structtype1),1,fp)!二1)printf("filewriteerror\n");}elsej++;25}fclose(fp);getchar();}voidcorrect()//更正记录(FILE*fp;inti;intc;if((fp=fopen("jilu.txt","r"))==NULL)(printf("\n\n无任何记录可被修改!\n");getchar();return;}i=0;while(!feof(fp))(fread(&H[i],sizeof(structtype1),1,fp);i++;}fclose(fp);m=i-1;if(!m)26getchar();return;}system("deljilu.txt");printf("输入你要修改的记录编号(>0&<%
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版新型零售业态加盟合同范本3篇
- 2025版酒吧连锁品牌全国代理与合作经营合同3篇
- 2025年度服务业劳动合同签订与员工培训合同3篇
- 2024医疗器械委托生产与产品研发及售后服务协议合同3篇
- 2025版假山石材加工厂与假山工程承包商合作协议2篇
- 2024年度基础设施项目抵押权人风险管理合同3篇
- 2024年门卫职责协议模板版B版
- 2025版高端家政服务合同协议书2篇
- 2025版班组劳务分包与设备租赁综合服务合同范本3篇
- 2025版创新办公楼出售居间服务协议3篇
- 【8地星球期末】安徽省合肥市包河区智育联盟校2023-2024学年八年级上学期期末地理试题(含解析)
- 【8物(科)期末】合肥市庐阳区2023-2024学年八年级上学期期末质量检测物理试卷
- 兰州生物制品研究所笔试
- 【MOOC】信号与系统-北京邮电大学 中国大学慕课MOOC答案
- 2023-2024年福建高中物理会考试卷(福建会考卷)
- 叉车维护保养与自行检查规范DB41-T 2486-2023
- 对外汉语教学法智慧树知到期末考试答案章节答案2024年西北师范大学
- 数值分析智慧树知到期末考试答案章节答案2024年长安大学
- 光伏并网前单位工程验收报告-2023
- STATA多组计量比较的非参数检验命令与输出结果说明
- 安川伺服调试要点
评论
0/150
提交评论