课程设计电费管理系统.docx

上传人:b****7 文档编号:10186366 上传时间:2023-02-09 格式:DOCX 页数:33 大小:410.87KB
下载 相关 举报
课程设计电费管理系统.docx_第1页
第1页 / 共33页
课程设计电费管理系统.docx_第2页
第2页 / 共33页
课程设计电费管理系统.docx_第3页
第3页 / 共33页
课程设计电费管理系统.docx_第4页
第4页 / 共33页
课程设计电费管理系统.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

课程设计电费管理系统.docx

《课程设计电费管理系统.docx》由会员分享,可在线阅读,更多相关《课程设计电费管理系统.docx(33页珍藏版)》请在冰豆网上搜索。

课程设计电费管理系统.docx

课程设计电费管理系统

一、系统功能分析与设计

1、总体设计。

电费管理主要完成供电公司对其客户进行开户、销户、用电计费统计等相关业务。

涉及的主要信息包括:

客户姓名,身份证号、住址、电表号、电表读数,日期等

主要有开户,销户,过户,计费,查询等业务。

 

2.详细设计

共有九个调用函数,分别是主菜单,计数读入文件函数,保存文件函数,

开户函数,销户函数,过户函数,计费函数,查询函数,退出系统函数。

1.voidfun1(structdianfei*p)开户业务函数

 

 

2.voidfun2(structdianfei*p)销户业务

 

 

3.voidfun3(structdianfei*p)过户业务

 

 

4.voidfun4(structdianfei*p)计算业务

 

 

5.voidfun5(structdianfei*p)查询业务

 

 

二、程序代码与界面。

1、程序代码

#include

#include

#include/*头文件*/

#defineN1000/*可以存入的客户信息个数*/

#defineP0.55/*峰时电费单价*/

#defineQ0.35/*谷时电费单价*/

intload();/*计算存入客户个数*/

voidmenu();/*调用菜单函数*/

voidsave(intn);/*保存入文件函数*/

voidfun1(structdianfei*p);

voidfun2(structdianfei*p);

voidfun3(structdianfei*p);

voidfun4(structdianfei*p);

voidfun5(structdianfei*p);

voidfun6(structdianfei*p);

structdate

{

intyear;/*年*/

intmonth;/*月*/

intday;/*日*/

};

structdianfei

{

charname[10];/*姓名*/

charsfz[20];/*身份证号*/

charzz[20];/*地址*/

unsignedintdbh;/*电表号*/

floatfsds[7];/*峰时读数*/

floatgsds[7];/*谷时读数*/

structdatetimeofenter;/*嵌套函数*/

floatdf[6];/*费用*/

}kehu[N];/*结构体数组*/

voidmain()

{

menu();

}

voidmenu()

{

structdianfei*p;

p=kehu;

charc;

inti;

do{

system("colorB5");

system("cls");

for(i=0;i<80;i++)

printf("*");

printf("\t◆●①:

开户业务●◆\n");

printf("\t◆●②:

销户业务●◆\n");

printf("\t◆●③:

过户业务●◆\n");

printf("\t◆●④:

计费业务●◆\n");

printf("\t◆●⑤:

查询业务●◆\n");

printf("\t◆●⑥:

退出系统●◆\n");

printf("\t★★★★★★★★★★★★★★★★★★★★★★★★★\n");

printf("\t请选择输入选项[1\\2\\3\\4\\5\\6]:

\n");

printf("\t输入:

");

do{c=getchar();}while(c!

='1'&&c!

='2'&&c!

='3'&&c!

='4'&&c!

='5'&&c!

='6');

getchar();

switch(c)

{

case'1':

fun1(p);break;

case'2':

fun2(p);break;

case'3':

fun3(p);break;

case'4':

fun4(p);break;

case'5':

fun5(p);break;

case'6':

fun6(p);exit(0);

}

printf("按任意键返回主菜单:

\n");getchar();

}while

(1);

}

intload()/*计算存入客户个数*/

{

FILE*fp;/*文件指针*/

inti;

if((fp=fopen("G:

\\应数111--沈一.txt","rb"))==NULL)/*以只读方式打开一个二进制文件*/

{

printf("文件打开错误!

");

return0;

}

for(i=0;!

feof(fp);i++)

fread(&kehu[i],sizeof(structdianfei),1,fp);/*数据块读写函数*/

fclose(fp);/*关闭函数*/

return(i-1);

}

voidsave(intn)/*保存入文件函数*/

{

FILE*fp;

inti,m=1;

if((fp=fopen("G:

\\应数111--沈一.txt","wb"))==NULL)/*以只写方式打开一个二进制文件*/

{

printf("文件打开错误!

\n");

exit

(1);

}

for(i=0;i

fwrite(&kehu[i],sizeof(structdianfei),1,fp);/*数据块读写函数*/

fclose(fp);

}

voidfun1(structdianfei*p)/*开户业务*/

{

system("colorBC");

chara;

intb;

FILE*fp;

do

{

if((fp=fopen("G:

\\应数111--沈一.txt","ab"))==NULL)/*以追加方式打开一个二进制文件,仅在文件末尾写数据*/

{

printf("文件打开错误!

\n");

exit

(1);

}

system("cls");

printf("*******************************欢迎使用开户业务*********************************\n");

printf("\t\t请认真输入详细信息\n");

printf("\t\t客户姓名:

");

scanf("%s",p->name);

printf("\t\t身份证号:

");

scanf("%s",p->sfz);

printf("\t\t住址:

");

scanf("%s",p->zz);

printf("\t\t电表号:

");

scanf("%d",&p->dbh);

p->fsds[0]=0;

p->gsds[0]=0;

printf("\t\t日期:

");

scanf("%d%d%d",&(*p).timeofenter.year,&(*p).timeofenter.month,&(*p).timeofenter.day);

printf("\t\t请输入峰时读数:

");

scanf("%f,%f,%f,%f,%f,%f",&p->fsds[0],&p->fsds[1],&p->fsds[2],&p->fsds[3],&p->fsds[4],&p->fsds[5]);

getchar();

printf("\t\t请输入谷时读数:

");

scanf("%f,%f,%f,%f,%f,%f",&p->gsds[0],&p->gsds[1],&p->gsds[2],&p->gsds[3],&p->gsds[4],&p->gsds[5]);

getchar();

fwrite(p,sizeof(structdianfei),1,fp);

fclose(fp);

getchar();

printf("\t\t是否输入下一条记录?

YorN.\n");

printf("\t\t输入:

");

scanf("%c",&a);

if(a=='Y'||a=='y'){b=1;p++;}

elsemenu();

}while(b==1);

}

voidfun2(structdianfei*p)/*销户业务*/

{

system("colorD5");

system("cls");

printf("*******************************欢迎使用销户业务*********************************\n");

inti,n,q=-1;

n=load();

charm;

charsf[20];

printf("\n请输入要撤销客户的身份证号:

");

gets(sf);

for(i=0;i

if(strcmp(sf,(p+i)->sfz)==0)

{

q=i;

printf("客户姓名:

%s\n身份证号:

%s\n住址:

%s\n电表号:

%d\n",(p+i)->name,(p+i)->sfz,(p+i)->zz,(p+i)->dbh);

printf("日期:

%d年%d月%d日\n",kehu[i].timeofenter.year,kehu[i].timeofenter.month,kehu[i].timeofenter.day);

printf("\n是否要删除此记录:

YorN\n");

scanf("%c",&m);

getchar();

if(m=='y'||m=='Y')

{

if(q==-1)

printf("\n无此客户记录(%s)",sf);

else

{

for(i=q;i

{

kehu[i]=kehu[i+1];

}

printf("\n成功删除此记录(%s)!

\n",sf);

}

}

elsemenu();

}save(n-1);

}

voidfun3(structdianfei*p)/*过户业务*/

{

system("colorE2");

system("cls");

printf("*******************************欢迎使用过户业务*********************************\n");

chara,b[10],e[10],z[20],aa[20];

charv,q,m,n,s,c[20];

unsignedintf,bb;

inti,nn,yy,rr;

n=load();

printf("选择方式登录:

A.姓名。

B.身份证号。

C.电表号。

\n");

printf("请输入:

");

scanf("%c",&a);

getchar();

switch(a)

{

case'A':

printf("输入姓名:

");

gets(b);

for(i=0;i

if(strcmp(b,(p+i)->name)==0)

{

printf("客户姓名:

%s\n",(p+i)->name);

printf("此信息是否修改?

YorN\n");

scanf("%c",&v);

getchar();

if(v=='Y'||v=='y')

{

printf("修改后为:

");

gets(e);

strcpy((*(p+i)).name,e);

}

printf("身份证号:

%s\n",(p+i)->sfz);

printf("此信息是否修改?

YorN\n");

scanf("%c",&q);

getchar();

if(q=='Y'||q=='y')

{

printf("修改后为:

");

gets(c);

strcpy((p+i)->sfz,c);

}

printf("住址:

%s\n",(p+i)->zz);

printf("此信息是否修改?

YorN\n");

scanf("%c",&m);

getchar();

if(m=='Y'||m=='y')

{

printf("修改后为:

");

gets(z);

strcpy((p+i)->zz,z);

}

printf("电表号:

%d\n",(p+i)->dbh);

printf("此信息是否修改?

YorN\n");

scanf("%c",&n);

getchar();

if(n=='Y'||n=='y')

{

scanf("修改后为%d",&f);

(p+i)->dbh=f;

}

printf("日期:

%d年%d月%d日\n",kehu[i].timeofenter.year,kehu[i].timeofenter.month,kehu[i].timeofenter.day);

printf("此信息是否修改?

YorN\n");

scanf("%c",&s);

getchar();

if(s=='Y'||s=='y')

{

scanf("修改后为%d年%d月%d日",&nn,&yy,&rr);

kehu[i].timeofenter.year=nn;

kehu[i].timeofenter.month=yy;

kehu[i].timeofenter.day=rr;

}break;

}save(n);

printf("客户姓名:

%s\n身份证号:

%s\n住址:

%s\n电表号:

%d\n",(p+i)->name,(p+i)->sfz,(p+i)->zz,(p+i)->dbh);

printf("日期:

%d年%d月%d日\n",kehu[i].timeofenter.year,kehu[i].timeofenter.month,kehu[i].timeofenter.day);

break;

case'B':

printf("输入身份证号:

");

gets(aa);

for(i=0;i<=n;i++)

if(strcmp(aa,(p+i)->sfz)==0)

{

printf("客户姓名:

%s\n",(p+i)->name);

printf("此信息是否修改?

YorN\n");

scanf("%c",&v);

getchar();

if(v=='Y'||v=='y')

{

printf("修改后为:

");

gets(e);

strcpy((*(p+i)).name,e);

}

printf("身份证号:

%s\n",(p+i)->sfz);

printf("此信息是否修改?

YorN\n");

scanf("%c",&q);

getchar();

if(q=='Y'||q=='y')

{

printf("修改后为:

");

gets(c);

strcpy((p+i)->sfz,c);

}

printf("住址:

%s\n",(p+i)->zz);

printf("此信息是否修改?

YorN\n");

scanf("%c",&m);

getchar();

if(m=='Y'||m=='y')

{

printf("修改后为:

");

gets(z);

strcpy((p+i)->zz,z);

}

printf("电表号:

%d\n",(p+i)->dbh);

printf("此信息是否修改?

YorN\n");

scanf("%c",&n);

getchar();

if(n=='Y'||n=='y')

{

scanf("修改后为%d",&f);

(p+i)->dbh=f;

}

printf("日期:

%d年%d月%d日\n",kehu[i].timeofenter.year,kehu[i].timeofenter.month,kehu[i].timeofenter.day);

printf("此信息是否修改?

YorN\n");

scanf("%c",&s);

getchar();

if(s=='Y'||s=='y')

{

scanf("修改后为%d年%d月%d日",&nn,&yy,&rr);

kehu[i].timeofenter.year=nn;

kehu[i].timeofenter.month=yy;

kehu[i].timeofenter.day=rr;

}break;

}save(n);

printf("客户姓名:

%s\n身份证号:

%s\n住址:

%s\n电表号:

%d\n",(p+i)->name,(p+i)->sfz,(p+i)->zz,(p+i)->dbh);

printf("日期:

%d年%d月%d日\n",kehu[i].timeofenter.year,kehu[i].timeofenter.month,kehu[i].timeofenter.day);

break;

case'C':

printf("输入电表号:

");

scanf("%lf",&bb);

getchar();

for(i=0;i<=n;i++)

if(bb==(p+i)->dbh)

{

printf("客户姓名:

%s\n",(p+i)->name);

printf("此信息是否修改?

YorN\n");

scanf("%c",&v);

getchar();

if(v=='Y'||v=='y')

{

printf("修改后为:

");

gets(e);

strcpy((*(p+i)).name,e);

}

printf("身份证号:

%s\n",(p+i)->sfz);

printf("此信息是否修改?

YorN\n");

scanf("%c",&q);

getchar();

if(q=='Y'||q=='y')

{

printf("修改后为:

");

gets(c);

strcpy((p+i)->sfz,c);

}

printf("住址:

%s\n",(p+i)->zz);

printf("此信息是否修改?

YorN\n");

scanf("%c",&m);

getchar();

if(m=='Y'||m=='y')

{

printf("修改后为:

");

gets(z);

strcpy((p+i)->zz,z);

}

printf("电表号:

%d\n",(p+i)->dbh);

printf("此信息是否修改?

YorN\n");

scanf("%c",&n);

getchar();

if(n=='Y'||n=='y')

{

scanf("修改后为%d",&f);

(p+i)->dbh=f;

}

printf("日期:

%d年%d月%d日\n",kehu[i].timeofenter.year,kehu[i].timeofenter.month,kehu[i].timeofenter.day);

printf("此信息是否修改?

YorN\n");

scanf("%c",&s);

getchar();

if(s=='Y'||s=='y')

{

scanf("修改后为%d年%d月%d日",&nn,&yy,&rr);

kehu[i].timeofenter.year=nn;

kehu[i].timeofenter.month=yy;

kehu[i].timeofenter.day=rr;

}break;

}save(n);

printf("客户姓名:

%s\n身份证号:

%s\n住址:

%s\n电表号:

%d\n",(p+i)

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1