- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
本人工作:
主机和客户端的文件操作,主机的数据处理。
系统需求分析:
主程序:模拟产生用户的每月水、电、气三项用量数据,计算出每月费用,总费 用费用,并把这些事数据输出到文件,供客户端查询。
客户端:添加、删除用户,查询用户各刀各数据,缴费。
程序功能介绍:
主程序(主机.exe):产生随机数的方法模拟用户数据,保存在二维数组中,叠 加方法算每月费用,文件操作从文件(flag.txt)中读入用户数量、被删用户账号、 写出用户每月各种用量、每月费用在一个文件(filel.txt),总费用在另一文件 (total.txt) o
客户端(link.exe):打开客户端程序和用户每进行一次操作时都从从初始化文件 (name.txt)中读入初始化数据,从文件(filel.txt)中读入用户最近三月各项数 据最新数据和文件(total.txt)读入用户累积的总费用的最新数据。
当客户端添加删除用户完毕,把总人数、添加删除用户的账号输出到文件 (flag.txt),以供主程序做出处理。
当用户缴费完毕,把最新总分费用数据写入(total.txt)。
当退出客户端时把用户名、对应账号、对应总费用写入初始化文件(name.txt), 以便下一次打开客户端吋,数据仍在。
数据结构设计:
链表存放用户数据。
结构体数组保存用户数据。
三个二维数组存放用户三个月数据用O 一维数组存放总费用。
一维数组存放删除用户账号。
程序流程图:
初始化数据
退出程序
源程序(涉及文件操作部分):
主机:
char flag=65;//ASCII 码中 65 为 A
FILE *fp=NULL;
FILE *fpl 二NULL;
FILE *fp2二NULL;
fp 1 =fopen(nflag.txtV,r+);
if(fpl==NULL)
{
printf(”打开 flag.txt 错误! ”);
}
rewind(fpl);
fscanf(fpl,”%2d”,n);〃 读入总人数 fclose(fpl);
fp=fopen(Hfile 1 if(fp==NULL) { printf(打开 filel.txt 错误! ”);
}
fprintf(fp,%6.1 f*,num);// 输出标记? 1
for (i=0;in;i++)
{
for (j=0; jv4;j++)
{
fprintf(fp,”%6? 1 f, x[i][j]);//输出用户三个数据 } fprintf(fp,n\nH);
} fprintf(fp,”%c”,flag);〃 输出月份标记 flag++;
if(flag==77)
{
flag=65;
}〃循环12次后刀份标记置为A。
fclose(fp);
for(i=0;i20;i++)//time
{
Sleep (2000);
fp 1 二 fopen(flag.txt”, ”「+”); if(fpl==NULL)
printf(”打开 flag.txt 错误! ”);
}
rewind(fpl);
fseek(fpl,-4L,SEEK_END);
fscanf(fpl,”%2d”,rank);// 读入排行 if(rank!=-1)
{
for(j=rank;j20;j++)
{
cash[j-l]=cash[j];
}
fseek(fpl ,-4L,SEEK_END); fprintf(fp 1 1);// 输出标记
fp2=fopen(,,total.txt,,,,wn);
if(fp2二二NULL)
{
printfC打开 total.txt 错误! ”);
}
for(ii=0;iin;ii++)
{ fprintf(fp2/% 13.1 f\cash[ii]);// 输出总费用 fprintf(fp2,\n);
}
fclose(fp2);
fseek(fpl ,-2L,SEEK_END); fscanf(fpl,%2d, sign);// 读入标记 if(sign==-l)
{
for(j=0;j20;j++)
{
cash[j]=O;
}
fseek(fpl ,?2L,SEEK_END); fprintf(fpl,”%2d”,l);
}
fclose(fpl);
客户端:
#include define.h1
/*函数功能:把name.txt的原始用户名和对应账号读入程序 函数参数:结构体变量inttable,用来保存用户名和对应账号 函数返冋值:无
*/
void name(struct init inittable[MAX])
{
FILE *fp二NULL;
fp二fopen(”name?txt”,T);〃以只读方式打开文件 if(fp==NULL)
{
printf(u打开用户姓名号码文件出错! ”);
}
原创力文档


文档评论(0)