c程序设计实习报告(编辑修改稿)内容摘要:

和 剩余数 if(gfp==NULL) { gfp=fopen(,w+)。 N=0。 sy=0。 } fscanf(gfp,%lu%lu,amp。 N,amp。 sy)。 do { 12 开始 从文件录入原有购物卡总数和剩余数 输入需要制作的购物卡数码 数目合法。 否 是 写入新购物卡数目,写入初始信息,生成购物卡对应文件 保存信息 ,关闭文件 结束 图 48 购物卡制作流程 printf(\t 请输入您要制作的购物卡数目 (0 返回 ):\n)。 scanf(%ld,amp。 n)。 if(n0) printf(\n对不起,您只能输入正整数\n)。 if(n==0) { fclose(gfp)。 return。 } }while(n0)。 fseek(gfp,0,0)。 fprintf(gfp,%lu\t%lu,N+n,sy+n)。 fclose(gfp)。 gfp=fopen(,a)。 if(gfp==NULL) gfp=fopen(,w+)。 fseek(gfp,0,2)。 for(i=0。 in。 i++) { fprintf(gfp,%ld name ID %ld 0 0 0 0 c\n,N+i+1,N+i+1)。 //存储卡初始信息 sprintf(cdname,%,N+i+1)。 cfp=fopen(cdname,w+)。 //建立卡文件,没张卡对应一个文件,用于存储消费记录 fclose(cfp)。 } fclose(gfp)。 printf(\n 成功制作新卡 %ld 张,新卡卡号从 %ld到 %ld!\n,n,N+1,N+i)。 now(xz)。 gfp=fopen(,a)。 fprintf(gfp,\n%s 制卡 %ld到 %ld\n,xz,N+1,N+i)。 fclose(gfp)。 return。 } 购物卡签发 //****************购物卡签发 ***************** void cardlive() { ul n。 ul i。 ul sy。 char cdname[20]。 gfp=fopen(,r+)。 13 if(gfp==NULL) { printf(\t 请先制作卡 !\n)。 return。 } fscanf(gfp,%ld%ld,amp。 n,amp。 sy)。 if(sy==0) { printf(\t 对不起,没有新卡 \n)。 fclose(gfp)。 return。 } fseek(gfp,0,0)。 fprintf(gfp,%lu\t%lu\t,n,sy1)。 fclose(gfp)。 gfp=fopen(,r+)。 if(!ka) { printf(\t 打开文件失败 \n)。 fclose(gfp)。 getch()。 exit(0)。 } for(i=0。 in。 i++) fscanf(gfp,%u %s %s %u %s %lu %u %d %c,amp。 ka[i].cardid,amp。 ka[i].name,amp。 ka[i].idd,amp。 ka[i].account,amp。 ka[i].pswd,amp。 ka[i].money,amp。 ka[i].jifen,amp。 ka[i].zhuangtai,amp。 ka[i].cc)。 i=nsy。 ka[i].account=ka[i].cardid。 printf(\t 请输入您的用户名 \n)。 scanf(%s,amp。 ka[i].name)。 ka_pass(i)。 do { printf(\t 请输入您的身份证号码 \n)。 scanf(%s,amp。 ka[i].idd)。 if(strlen(ka[i].idd)!=18) printf(\t 对不起,身份证号是 18 位 \n)。 }while(strlen(ka[i].idd)!=18)。 ka[i].money=5000。 //初始金额为 50 ka[i].jifen=0。 ka[i].zhuangtai=1。 sprintf(cdname,%,i+1)。 开始 从文件录入购物卡剩余数 查找未注册最新卡号 作为签发的卡号和帐号 购物卡剩余数 0? 否 显示剩卡不知,返回 是 输入用户名,身份证号等信息 调用密码设置 保存信息,关闭文件 结束 图 49 购物卡签发流程 14 开始 密码正确 ? 核对密码(调用帐号密码核对函数) 输入要注销卡号 i 否 是 卡内余额 =0? 是 设置卡 i的状态为注销 提示不允许注销 否 图 410 购物卡注销流程 返回 cfp=fopen(cdname,a)。 if(cfp==NULL) cfp=fopen(cdname, w+)。 now(xz)。 fseek(cfp,0,2)。 fprintf(cfp,1\n%s 开户 %lu 0 %lu 0 0 0 管 理 中 心 c\n,xz,ka[i].money,ka[i].money)。 printf(\t 购 物卡注册成功 !\n)。 printf(\t 您的用户名为: %s\n\t 帐号为: %u\n\t 卡内余额为: 50 元\n,ka[i].name,ka[i].account)。 fseek(gfp,0,0)。 for(i=0。 in。 i++) fprintf(gfp,%u %s %s %u %s %ld %u %d c\n,ka[i].cardid,ka[i].name,ka[i].idd,ka[i].account,ka[i].pswd,ka[i].money,ka[i].jifen,ka[i].zhuangtai)。 fclose(cfp)。 fclose(gfp)。 return。 } 购物卡注销 //*****************卡注销 ******************** void zhuxiao(ul N) { ul m。 int x。 ul i。 float qian。 printf(\t 请输入您要注销的卡号 \n)。 scanf(%u,amp。 m)。 if(m1||mN) { printf(\t 对不起, 没此卡号 \n)。 return。 } qian=(float)ka[m1].money/100。 x=card_sec(m1)。 if(x==1) { if(qian!=0) { printf(\t卡内还剩 % 元钱,请到消费界面进行退款操作后再注销 \n,qian)。 return。 } 15 printf(%,qian)。 printf(\t 您是否真的要注销此帐号 ?(若不是请按 0 返回 )\n)。 scanf(%d,amp。 x)。 if(x!=0) { fseek(gfp,0,0)。 ka[m1].zhuangtai=3。 for(i=0。 iN。 i++) fprintf(gfp,%u %s %s %u %s %ld %u %d %c\n,ka[i].cardid,ka[i].name,ka[i].idd,ka[i].account,ka[i].pswd,ka[i].money,ka[i].jifen,ka[i].zhuangtai,ka[i].cc)。 return。 } else return。 } else return。 } 购物卡信息查看 //***************卡信息查看 ***************** void chakan(ul N) { ul i。 float ye。 char zt[20]。 printf( 卡号 持卡人姓名 关联帐号 余额 积分 状态 \n)。 for(i=0。 iN。 i++) { switch(ka[i].zhuangtai) { case 0 : strcpy(zt,未注册 )。 break。 case 1 : strcpy(zt,正常 )。 break。 case 2 : strcpy(zt,挂失 )。 break。 case 3 : strcpy(zt,已注销 )。 break。 } ye=(float)ka[i].money/100。 printf(%10u %14s %10u % %10u %10s\n,ka[i].cardid,ka[i].name,ka[i].account,ye,ka[i].jifen,amp。 zt)。 } printf(\t*************************************************\n)。 } 16 购物卡 查看与注销 其实此函数主要用于选择购物卡查看和注销功能,其实此函数完全没有必要,查看和注销、存放在二级菜单更合理一些。 这是设计时没有安排好,由于经验不足,时间仓储,来不及调整了。 //****************购物卡 查看和注销 ***************** void cardgl() { ul N。 ul sy。 int m=1。 ul i。 int x。 gfp=fopen(,r+)。 if(gfp==NULL) { printf(\t 打开文件错误 \n)。 exit(0)。 } fscanf(gfp,%lu%lu,amp。 N,amp。 sy)。 fclose(gfp)。 gfp=fopen(,r+)。 fseek(gfp,0,0)。 for(i=0。 iN。 i++) fscanf(gfp,%u %s %s %u %s %ld %u %d %c,amp。 ka[i].cardid,amp。 ka[i].name,amp。 ka[i].idd,amp。 ka[i].account,amp。 ka[i].pswd,amp。 ka[i].money,amp。 ka[i].jifen,amp。 ka[i].zhuangtai,amp。 ka[i].cc)。 while(m) { printf(\t 请您选择您需要的操作\n)。 printf(\t\t\t1 卡注销 \n)。 printf(\t\t\t2 卡信息查看 \n)。 printf(\t。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。