C语言课程设计报告 购物卡管理系统_第1页
C语言课程设计报告 购物卡管理系统_第2页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、c语言课程设计报告 购物卡管理系统 c 语 言 课 程 实 习 报 告 课程设计第17题 (一)题目要求 请设计购物卡管理系统,要实现系统的主要功能模块有: (1)实现系统内制卡、发卡功能; (2)实现系统内卡账户和相关账户管理; (3)实现卡交易和合法性检查; (4)实现卡金融交易积分功能; (5)实现卡报表功能; (6)数据以文件形式存储。 提示 制卡:指申请一个购物卡,但还没有使用。 发卡;指该卡以经起用。 实现卡交易:指从卡中消费掉肯定金额。 (二)题目及要求的分析: 依据题目要求,系统应当实现以下功能: (1) 制卡:主要是新建出一张购物卡,并输入了顾客部分信息,如姓名、密码等,但卡

2、没有激活,依旧不行使用。 (2) 发卡:激活新建的购物卡,用户能够使用卡进行各项活动。 (3) 消费:进入账户后,取走少于账户金额的钱款进行消费,并在账户削减相应的金额,增加相应的积分。 (4) 存款:进入账户后,在金额项加上用户要存入的钱款。 (5) 报表:显示顾客购物卡上记录的全部信息,除密码外。 (6) 存储:购物卡内的信息以文件形式存储。 (7) 退出:从系统中退出。 (8) 菜单:供应良好的界面,便利用户的操作。 (三)整体设计与模块划分: 依据以上的分析,可以将系统整体划分为以下大致几部分: 函数及结构模块有: 1、数据结构结构体: struct card /*定义购物卡的几要素*

3、/ char name20; /*顾客姓名(即卡号)*/ long int password; /*购物卡密码*/ char start4; /*购物卡是否激活*/ float account; /*余额*/ float score; /*积分*/ card100; 2、main() /*主函数*/ 3、void menu() /*菜单*/ 4、make_card() /*制卡*/ 5、start_card() /*激活*/ 6、get_card() /*消费*/ 7、put_card() /*存款*/ 8、display_card() /*报表*/ 9、read_card() /*读卡(读取

4、数据)*/ 10、write_card() /*写卡(记录数据)*/ 11、getch();的功能是等待你按键(有时候,需要程序停一下,以便查看结果) 它不影响程序的输出结果。 (四)具体设计 (1)、开头部分 #includestdio.h #includestdlib.h #includestring.h/头函数名 void menu(); struct card /*定义购物卡的几要素*/ char name20; /*顾客姓名(即卡号)*/ long int password; /*购物卡密码*/ char start4; /*购物卡是否激活*/ float account; /*余额

5、*/ float score; /*积分*/ card100; int length=0; /*制卡数*/ char yes,no; /*是,否(激活)*/ (2)读卡(从文件中读取数据信息) read_card() /*以只读方式*/ file *fp; int i; if(fp=fopen(card.txt,r)!=null) /*以输出方式打开*/ i=0; while (!feof(fp) fscanf(fp,%s%ld%s%f%dn,,cardi.password,cardi.start,cardi.account,cardi.score); i+; length

6、=i-1; /*记录制卡数*/ fclose(fp); (3)写卡(将数据信息记录到文件中) write_card() /*以只写方式*/ file *fp; int i; if(fp=fopen(card.txt,w)=null) /*以输出方式打开 */ printf(写入文件错误!); getch(); exit(0); else for(i=0;ilength;i+) fprintf(fp,%s%ld%s%f%f,,cardi.password,cardi.start,cardi.account,cardi.score); fclose(fp); return 1;

7、 (4)制卡(新建出一张购物卡,并输入了顾客部分信息,如姓名、密码等,但卡没有激活,依旧不行使用) make_card() /* int i; i=length; printf(请输入你的姓名:n); scanf(%s,); printf(请设置你的密码:n); scanf(%ld,password1); printf(请再输入你的密码 scanf(%ld,password2); if(password1=password2) strcpy(cardi.start,no); cardi.account=0; cardi.score=0; length=length+1; p

8、rintf(制卡胜利,你的购物卡为:n); printf(t姓名t是否激活t余额t积分nn); printf( %8s %8s %10d %10dn,,cardi.start,cardi.account,cardi.score); write_card(); printf(n输入任意键返回主菜单.); getch(); /*程序停一下,等待你按键连续,它不影响程序的输出结果*/ menu(); else printf(对不起,你输入的密码错误!); printf(n输入任意键返回主菜单.); getch(); menu(); (5)发卡(激活新建的购物卡,用户能够使用卡进行

9、各项活动) start_card() /*激活卡号功能设定*/ int i,n; long int password; char name10; n=0; printf(请输入你的姓名:n); scanf(%s,name); printf(请再输入你的密码:n); scanf(%ld,password); read_card(); for(i=0;i=length;i+) if(strcmp(,name)=0)(cardi.password=password) strcpy(cardi.start,yes); n=i+1; else n=n; if(n0) write_ca

10、rd(); printf(激活胜利!); else printf(您输入的姓名或密码错误!); printf(n输入任意键返回主菜单.); getch(); menu(); (6)消费(进入账户后,取走少于账户金额的钱款进行消费,并在账户削减相应的金额,增加相应的积分) get_card() /*消费功能设定*/ int i,m; float n; long int password; char name10; m=0; printf(请输入你的姓名:n); scanf(%s,name); printf(请再输入你的密码:n); scanf(%ld,password); read_card()

11、; for(i=0;i=length;i+) if(strcmp(,name)=0)(cardi.password=password)(strcmp(cardi.start,yes)=0) m=i+1; else m=m; if(m0) printf(你想消费多少钱:n); scanf(%f,n); if(n=cardm-1.account) cardm-1.account=cardm-1.account-n; cardm-1.score=cardm-1.score+n; printf(余额为 %fn,cardm-1.account); printf(积分为 %dn,car

12、dm-1.score); printf(交易胜利!); else printf(您的余额不足!); write_card(); printf(n输入任意键返回主菜单.); getch(); menu(); else printf(您输入的姓名或密码错误或卡未激活!); printf(n输入任意键返回主菜单.); getch(); menu(); (7)存款(进入账户后,在金额项加上用户要存入的钱款) put_card() /*存款功能设定*/ int i,m; float n; long int password; char name10; m=0; printf(请输入你的姓名:n); sc

13、anf(%s,name); printf(请再输入你的密码:n); scanf(%ld,password); read_card(); for(i=0;i=length;i+) if(strcmp(,name)=0)(cardi.password=password)(strcmp(cardi.start,yes)=0) m=i+1; else m=m; if(m0) printf(您想存入多少钱:n); scanf(%f,n); cardm-1.account=cardm-1.account+n; printf(余额为 %fn,cardm-1.account); print

14、f(积分为 %dn,cardm-1.score); printf(交易胜利!); write_card(); else printf(您输入的姓名或密码错误或卡未激活!); printf(n输入任意键返回主菜单.); getch(); menu(); (8)报表(显示顾客购物卡上记录的全部信息,除密码外) display_card() /*显示用户信息功能设定*/ int i,m; long int password; char name10; m=0; printf(请输入你的姓名:n); scanf(%s,name); printf(请再输入你的密码:n); scanf(%ld,passw

15、ord); read_card(); for(i=0;i=length;i+) if(strcmp(,name)=0)(cardi.password=password) m=i+1; else m=m; if(m0) printf(t姓名t是否激活tt余额tt积分nn); printf( %8s %8s %20f %10dn,,cardm-1.start,cardm-1.account,cardm-1.score); else printf(您输入的姓名或密码错误或卡未激活!); printf(n输入任意键返回主菜单.); getch(); menu

16、(); (9)菜单(供应各种服务选项) void menu() int i; printf(nn); printf(tt*n); printf(tt* 主菜单 *n); printf(tt* *n); printf(tt* 1. 制卡(申请购物卡) *n); printf(tt* 2. 发卡(激活购物卡) *n); printf(tt* 3. 消费 *n); printf(tt* 4. 存款 *n); printf(tt* 5. 报表(购物卡信息) *n); printf(tt* 6. 退出 *n); printf(tt* *n); printf(tt*nn); printf(请选择您所需服务

17、(1-6):); scanf(%d,i); while (i0 | i6) printf(你输入有误,请再输入!n); printf(请选择您所需服务(1-6):); scanf(%d,i); getchar(); switch(i) case 1: make_card(); break; case 2: start_card(); break; case 3: get_card(); break; case 4: put_card(); break; case 5: display_card(); break; case 6: exit(0); (10)欢迎界面 main() printf(

18、nnntt.o(_)o 欢迎进入购物管理系统 o(_)o.); printf(nnttt按任意键连续。); printf(nnnnnnnnnnnnnntttttttt设计者李洋 ); getch(); menu(); (五)运行与测试报告(运行结果) (1) 欢迎界面 (2)主菜单函数 (3)制卡模块 (4)激活模块 (5)余额不足消费 (6)存款积分模块 (7)余额充分消费 (8)报表模块 (9)退出模块 (六) 感想 在这次实习感觉对编程有了肯定的了解,特殊是对结构体,知道了结构体的构造。对于文件的处理也比以前进步了,但对于为什么打不开文本文件还是不怎么明白,虽然知道用不同的方法打开文件,但操作原理还是不怎么知道。这次实习对我最大的关心也许就是帮我复习了c语言,同时一次上机的实习操作可以关心我对编程的了解。 实习开头阶段我只是将书中的程序打进,看它的运行效果,后来才知道其中的原理。在拿到题目后,我刚开头觉得很难,我觉得我不行能完成,由于我根本就不知道怎么

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论