程序设计模拟电信计费系统.docx

上传人:b****7 文档编号:15895161 上传时间:2023-07-08 格式:DOCX 页数:22 大小:110.41KB
下载 相关 举报
程序设计模拟电信计费系统.docx_第1页
第1页 / 共22页
程序设计模拟电信计费系统.docx_第2页
第2页 / 共22页
程序设计模拟电信计费系统.docx_第3页
第3页 / 共22页
程序设计模拟电信计费系统.docx_第4页
第4页 / 共22页
程序设计模拟电信计费系统.docx_第5页
第5页 / 共22页
程序设计模拟电信计费系统.docx_第6页
第6页 / 共22页
程序设计模拟电信计费系统.docx_第7页
第7页 / 共22页
程序设计模拟电信计费系统.docx_第8页
第8页 / 共22页
程序设计模拟电信计费系统.docx_第9页
第9页 / 共22页
程序设计模拟电信计费系统.docx_第10页
第10页 / 共22页
程序设计模拟电信计费系统.docx_第11页
第11页 / 共22页
程序设计模拟电信计费系统.docx_第12页
第12页 / 共22页
程序设计模拟电信计费系统.docx_第13页
第13页 / 共22页
程序设计模拟电信计费系统.docx_第14页
第14页 / 共22页
程序设计模拟电信计费系统.docx_第15页
第15页 / 共22页
程序设计模拟电信计费系统.docx_第16页
第16页 / 共22页
程序设计模拟电信计费系统.docx_第17页
第17页 / 共22页
程序设计模拟电信计费系统.docx_第18页
第18页 / 共22页
程序设计模拟电信计费系统.docx_第19页
第19页 / 共22页
程序设计模拟电信计费系统.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

程序设计模拟电信计费系统.docx

《程序设计模拟电信计费系统.docx》由会员分享,可在线阅读,更多相关《程序设计模拟电信计费系统.docx(22页珍藏版)》请在冰点文库上搜索。

程序设计模拟电信计费系统.docx

程序设计模拟电信计费系统

程序设计报告

(/学年第学期)

 

题目:

很简易电信计费模拟系统

 

专业

学生姓名

班级学号

指导教师    

指导单位

日期

 

四、源程序代码

#include

#include

#include

intdenglu();

intcaidan1();//管理员菜单

intcaidan2();//用户菜单

intadd();//管理员菜单中的添加用户功能函数

intdelet();//管理员菜单中的删除用户功能函数

intchange();//管理员菜单中的修改用户功能函数

intsearch();//管理员菜单中的查询用户功能函数

intchahuafei();//用户菜单中的查话费功能函数

intchahuadan();//用户菜单中的查话单功能函数

inti;//用于确定是哪个用户

intq;//用于确定是管理员还是用户

intn=0;//用于管理员和用户返回登录页面

intww=0;//用于管理员返回管理员菜单

intgg=0;//用于用户返回用户菜单

intk=2;//用户信息有两条

intw=6;//通话记录有条

doubleben[10];//用于统计各用户本地话费

doublechang[10];//用于统计各用户长途话费

doublesum[10];//用于统计各用户总话费

charnamex[10];

charpasswordx[7];

charnumberx[8];

structgerenxinxi//用户信息

{

charname[10];

charpassword[7];

charnumber[8];

doublebendi;

doublechangtu;

doublesum;

};

structtonghuajilu//通话记录

{

charname[10];

charzhujiao[8];

charbeijiao[8];

doubletime;

inttype;//1表示本地,表示长途

};

structfeiyong//每条通话记录的费用

{

charnumber[8];

doublebendi;

doublechangtu;

doublesum;

};

structgerenxinxiaaa[10]={//初始化两个用户的个人信息

{"mike","000000","1234560"},

{"james","000001","1234561"}

};

chargname[10]="jack";

chargpassword[7]="111111";//初始化管理员的信息

structtonghuajilubbb[10]={

{"mike","1234560","1000000",100.0,1},

{"james","1234561","1000001",12.0,1},//初始化前条通话记录

{"james","1234561","1000001",12.0,1},

{"mike","1234560","1000001",100.0,1},

{"mike","1234560","1000002",30.0,2},

{"james","1234561","1000003",14.0,2}

};

structfeiyongccc[10];

intmain()

{

intx,t,y;

for(x=0;x

{

strcpy(&ccc[x].number,&bbb[x].zhujiao);

switch(bbb[x].type)

{

case1:

{

if(bbb[x].time<=3)

ccc[x].bendi=0.2;

else

ccc[x].bendi=(bbb[x].time-3)*0.1+0.2;

};

break;

case2:

{

ccc[x].changtu=bbb[x].time*2.0;//设长途费率元/分

};

break;

}

ccc[x].sum=ccc[x].bendi+ccc[x].changtu;

}

for(t=0;t

{

for(y=0;y

{

if(strcmp(aaa[t].number,ccc[y].number)==0)

{

ben[t]=ben[t]+ccc[y].bendi;

chang[t]=chang[t]+ccc[y].changtu;

sum[t]=ben[t]+chang[t];

}

}

}

do{

n=0;

denglu();//登录函数,n用于返回登录页面

}while(n);

 

}

intdenglu()

{

inta=1;

intb=1;

intm=1;

intl=1;

system("cls");

printf("=========欢迎登录=========\n");

printf("请选择身份登录:

______管理员;______普通用户\n");

printf("请输入:

");

scanf("%d",&q);

while(l)

{

if(q!

=1&&q!

=2)

{

printf("error!

\n");

printf("请输入:

");

scanf("%d",&q);

}

else

l=0;

}

if(q==1)

{

printf("请输入管理员您的名字:

");

scanf("%s",namex);

while(a)

{

if(strcmp(namex,gname)!

=0)

{

printf("error!

\n");

printf("请输入管理员您的名字:

");

scanf("%s",namex);

}

else

a=0;

}

printf("请输入密码:

");

scanf("%s",passwordx);

while(b)

{

if(strcmp(passwordx,gpassword)!

=0)

{

printf("error!

\n");

printf("请输入密码:

");

scanf("%s",passwordx);

}

else

b=0;

}

printf("恭喜管理员登录成功!

\n");

do

{

ww=0;

caidan1();

}while(ww);

}

elseif(q==2)

{

do

{

gg=0;

caidan2();//进入用户菜单

}while(gg);

}

}

 

intcaidan1()//管理员菜单

{

intz,qq;

inty=1;

system("cls");

printf("============您好**管理员============\n");

printf("1----增加用户\n");

printf("2----删除用户\n");

printf("3----修改用户\n");

printf("4----查询用户\n");

printf("0----返回登陆页面\n");

printf("请输入:

");

scanf("%d",&z);

while(y)

{

if(z!

=0&&z!

=1&&z!

=2&&z!

=3&&z!

=4)

{

printf("error!

\n");

printf("请输入:

");

scanf("%d",&z);

}

else

y=0;

}

switch(z)

{

case1:

{

add();

printf("按返回管理员菜单:

");

scanf("%d",&qq);

if(qq==1)

ww=1;

};

break;

case2:

{

delet();

printf("按返回管理员菜单:

");

scanf("%d",&qq);

if(qq==2)

ww=1;

};

break;

case3:

{

change();

printf("按返回管理员菜单:

");

scanf("%d",&qq);

if(qq==3)

ww=1;

};

break;

case4:

{

search();

printf("按返回管理员菜单:

");

scanf("%d",&qq);

if(qq==4)

ww=1;

};

break;

case0:

n=1;break;

}

}

 

intcaidan2()//用户菜单

{

intp;

intc=1;

system("cls");

printf("=================欢迎尊敬的用户!

===============\n");

printf("1----查询费用\n");

printf("2----查询话单\n");

printf("0----返回登陆页面\n");

printf("请选择:

");

scanf("%d",&p);

while(c)

{

if(p!

=0&&p!

=1&&p!

=2)

{

printf("error!

\n");

printf("请选择:

");

scanf("%d",&p);

}

else

c=0;

}

if(p==1)

chahuafei();

elseif(p==2)

chahuadan();

elseif(p==0)

n=1;

}

 

intadd()//管理员菜单中的添加用户功能函数

{

printf("=========请输入用户信息============\n");

printf("请输入用户姓名:

");

scanf("%s",&aaa[k].name);

printf("\n请输入用户密码:

");

scanf("%s",&aaa[k].password);

printf("\n请输入用户电话号码:

");

scanf("%s",&aaa[k].number);

printf("添加成功!

");

k++;

}

 

intdelet()//管理员菜单中的删除用户功能函数

{

chardeletnumber[8];

inth,g;

printf("========删除用户信息========\n");

printf("请输入要删除用户的电话号码:

\n");

scanf("%s",deletnumber);

for(h=0;h

{

if(strcmp(deletnumber,aaa[h].number)==0)

break;

}

for(g=h;g

{

aaa[g]=aaa[g+1];

}

k--;

printf("删除成功!

");

}

 

intchange()//管理员菜单中的修改用户功能函数

{

charchangenumber[8];

inth;

printf("========修改用户信息========\n");

printf("请输入要修改用户的电话号码:

");

scanf("%s",changenumber);

for(h=0;h

{

if(strcmp(changenumber,aaa[h].number)==0)

break;

}

printf("请输入修改后密码:

");

scanf("%s",aaa[h].password);

printf("修改成功!

");

}

 

intsearch()//管理员菜单中的查询用户功能函数

{

charsearchnumber[8];

inth;

printf("========查询用户信息========\n");

printf("请输入要查询用户的电话号码:

");

scanf("%s",searchnumber);

for(h=0;h

{

if(strcmp(searchnumber,aaa[h].number)==0)

break;

}

if(h!

=k)

{

printf("用户名电话号码\n");

printf("%s\t%s\n",aaa[h].name,aaa[h].number);

}

else

printf("不存在该用户!

\n");

}

 

intchahuafei()//用户菜单中的查话费功能函数

{

into,v;

intd=1;

inte=1;

inti=1000;

printf("请输入电话号码:

");

scanf("%s",numberx);

while(d)

{

for(o=0;o

{

if(strcmp(numberx,aaa[o].number)==0)

i=o;

}

if(i==1000)

{

printf("error!

\n");

printf("请输入电话号码:

");

scanf("%s",numberx);

}

else

d=0;

}

printf("请输入密码:

");

scanf("%s",passwordx);

while(e)

{

if(strcmp(passwordx,aaa[i].password)!

=0)

{

printf("error!

\n");

printf("请输入密码:

");

scanf("%s",passwordx);

}

else

e=0;

}

printf("用户名电话号码本地话费长途话费话费总计\n");

printf("%s\t\t%s\t\t%.1f\t\t%.1f\t\t%.1f",aaa[i].name,aaa[i].number,ben[i],chang[i],sum[i]);

printf("\n按返回用户页面:

");

scanf("%d",&v);

if(v==1)

gg=1;

}

 

intchahuadan()//用户菜单中的查话单功能函数

{

into,r,xx;

intd=1;

inte=1;

inti=1000;

printf("请输入电话号码:

");

scanf("%s",numberx);

while(d)

{

for(o=0;o

{

if(strcmp(numberx,aaa[o].number)==0)

i=o;

}

if(i==1000)

{

printf("error!

\n");

printf("请输入电话号码:

");

scanf("%s",numberx);

}

else

d=0;

}

printf("请输入密码:

");

scanf("%s",passwordx);

while(e)

{

if(strcmp(passwordx,aaa[i].password)!

=0)

{

printf("error!

\n");

printf("请输入密码:

");

scanf("%s",passwordx);

}

else

e=0;

}

printf("用户名主叫电话号码被叫电话号码通话时长\n");

for(xx=0;xx

{

if(strcmp(aaa[i].number,bbb[xx].zhujiao)==0)

printf("%s\t\t%s\t\t\t%s\t\t\t%.1f\n",bbb[xx].name,bbb[xx].zhujiao,bbb[xx].beijiao,bbb[xx].time);

}

printf("\n按返回用户页面:

");

scanf("%d",&r);

if(r==1)

gg=1;

}

 

五、测试数据及其结果分析

进入登录页面。

 

选1后管理员输入信息。

 

管理员进入管理员菜单。

 

按1后进入增加用户菜单。

 

按2后进入删除用户菜单,按3后进入修改用户菜单,按4后进入删除用户菜单。

空间有限,在此不多列举。

 

选择页面选择2,即用户的页面。

 

查询费用界面。

 

查询话单界面。

 

六、调试过程中的问题

刚拿到题目时,有些迷惘,感觉一片模糊。

后来静下心来,渐渐有了头绪。

主要攻克的难关有以下几点:

1.如何将数据写入文件中。

因为流文件不怎么熟悉,所以该用结构数组的方式来代替。

虽然它不具有永久保存的功能,但在该次运行中还是有保存功能的。

以后我会尝试用流文件的方式,现在先用这个来代替。

2.如何统计个人的全部本地话费和长途话费。

我先将各通话记录的费用统计出来,再利用strcmp函数,将各通话记录中主叫是某用户的费用加起来来完成。

3.如何实现子菜单返回母菜单的功能。

我利用dowhile(x)语句,x初始化为0,当输入某个值时,将x赋为非零值,从而实现返回母菜单的功能。

七、设计总结

本次历时一星期的程序设计实验确实让我收获很大。

在只学了C语言的基础上,拿到这么“庞大”的题目确实有些难度。

在上学期,我们最多只写过几十行代码的程序,而这次我写了足有400多行。

第一天拿到题目后上午到处找资料,发现类似的代码也有,不过都不怎么符合。

下午自己有了点思绪后开始写了几十行。

晚上一直在想代码,想到一点,第二天就马上把它打出来。

渐渐的有了框架,只剩几个“瓶颈”,就是上面提到的几个难关。

后来,查了资料看了书,渐渐的开始领悟,最后终于被我攻克!

本来也想去网上找找有没有源代码,后来考虑到为何不乘此机会好好锻炼一下自己呢,于是,我就自己动手打出了整个程序的代码。

虽然还熬了两个夜,不过最终我还是成功了,感觉很有成就感!

我很喜欢这样的程序设计实验。

值得一提的是,其间我还丢失了一次代码,心碎之后还是振作了起来。

这个事情告诉我们要愈挫愈勇,不要轻易灰心。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2