c加加个人信用卡管理系统doc.docx
- 文档编号:10251665
- 上传时间:2023-05-24
- 格式:DOCX
- 页数:60
- 大小:764.84KB
c加加个人信用卡管理系统doc.docx
《c加加个人信用卡管理系统doc.docx》由会员分享,可在线阅读,更多相关《c加加个人信用卡管理系统doc.docx(60页珍藏版)》请在冰点文库上搜索。
c加加个人信用卡管理系统doc
《C++程序设计》
课程设计说明书
题目
个人信用卡管理系统
学号
1567111213
姓名
张雨
指导教师
刘立新
日期
2016-7-3
内蒙古科技大学课程设计任务书
课程名称
C++语言课程设计
设计题目
个人信用卡管理系统的设计
指导教师
刘立新
时间
2015-2016春学期第17、18周
一、教学要求
1.巩固和加深学生对C++语言课程的基本知识的理解和掌握
2.掌握C++语言编程和程序调试的基本技能
3.利用C++语言进行基本的软件设计
4.掌握书写程序设计说明文档的能力
5.提高运用C++语言解决实际问题的能力
二、设计资料及参数
用C++设计一个系统,能提供下列服务:
(1)录入信用卡信息,格式为:
卡号
名称
账单日
还款日
余额
6542301100220605
中行淘宝卡
5号
25
-126.5
(2)增加功能。
输入卡号或名称向信用卡使用记录中增加一条记录;格式为:
卡号
名称
日期
金额
类型
6542301100220605
中行淘宝卡
11-2
12.4
消费(或还款)
如果是消费则信用卡余额减去金额,如果是还款则信用卡余额加上金额。
(3)查询功能。
查询某个信用卡详细的使用记录;可以查询已出账单,即本月账单日和上月账单日之间的消费记录和消费总额;查询未出账单,及本月账单日之后的消费记录和消费总额。
(4)提醒功能。
在某个信用卡还款日期的前2天给出提示信息,提示要还款的总额。
三、设计要求及成果
根据系统功能要求,可以将问题解决分为以下步骤:
(1)分析系统中的各个实体之间的关系及其属性和行为;
(2)根据问题描述,设计系统的类层次;
(3)完成类层次中各个类的描述(包括属性和力一法);
(4)完成类中各个成员函数的定义;
(5)完成系统的应用模块;
(6)功能调试;
(7)提交课程设计报告:
完成系统总结报告以及系统使用说明书
第1章需求分析
1.1引言
随着目前计算机技术的发展,越来越多的生活工具机械化、方便化、人们需要的东西也越来越人性化。
同时,为了巩固和加深学生对C++语言课程的基本知识的理解和掌握,掌握C++语言编程和程序调试的基本技能,利用C++语言进行基本的软件设计,掌握书写程序设计说明文档的能力提高运用C++语言解决实际问题的能力。
1.2任务概述
本程序是对个人信用卡的管理,对个人信用卡信息的录入,存储,查询消费记录,还款记录以及还款提醒。
1.3数据描述
个人信用卡管理系统中包括创建账号,查询已有账号的信息,提醒还款,显示全部用户,退出等。
试设计一个个人信用卡管理系统,使之能提供以下功能:
个人信用卡信息录入功能--输入;
个人信用卡信息显示功能--输出;
个人信用卡消费/还款功能;
查找信用卡及信息:
按卡号查询,按消费金额区间查询,按消费日期查询;
查看不良欠款记录:
超过消费日80天为不良记录;
1.4功能需求
首先,需要创建一个主界面,包含“录入信息,消费/还款功能,账单记录,还款提醒,所有信用卡信息”。
其次开始对个人信息的录入,调用成员函数voidluru()进行录入,个人信用卡信息用文件保存,用户录入一条新记录信息后,这些信息就存入到相应的文件中;其中包括录入个人信用卡的卡号、户名、日期等具体信息。
消费/还款功能调用成员函数voidzengjia()记录消费或还款。
账单记录,对个人的消费,还款记录进行查询,用户可以输入卡号在录入的信用卡中进行查询。
这使我们更深入的了解对信用卡的管理,更熟练的掌握信用卡的录入,存储,记录。
1.5任务计划
(1)以文字和数字形式输入信息。
(2)程序包含录入功能,显示功能,查询功能,提醒功能,初始化功能等。
(2)若输入结果有误,则重新输入,若输入正确,则继续按照程序顺序执行。
第2章总体设计
个人信用卡管理系统的操作以及总体框架的设计:
1.框架:
2.文字描述:
1、首先创建文件。
提前创建好txt文件,一个是基类Card的文件,另一个是派生类Recard的文件。
2、进入主界面选择要进行的操作
3、录入信息(输入卡号如:
6542301100220605,名称如中行淘宝卡;账单日如5号还款日如25号余额如123.5)
4、消费/还款(卡号如6542301100220605;名称如中行淘宝卡;日期如11-2金额如12.4元类型消费或还款)
5、使用记录:
使用记录包括:
查看所有账单、查看已出账单、查看未出账
6、提醒功能如果还有两天还款,则有提醒
7、所有信用卡信息显示已录入的使用信用卡信息包括欠款,余额,初始信用额度等。
8、查找信用卡及信息通过1.按卡号查找2.消费金额区间查找3.日期区间查找
第3章类的设计
3.1Card类的设计
ClassCard
{
数据成员:
charcardnum[20];
charname[20];
intstartday;
intbackday;
doubleyu_e;
doubleSum;//
doubleYU_e;//
函数成员:
Card()//构造函数
voidSet(char*cnum,char*cname,intcstartday,intcbackday,doublecyu_e,doubleCYU_e);//初始化,给信用卡对象数组中的数据成员赋值
voidjie_huan(doublemoney,char*type)//这个函数用于在后边进行余额的计算和欠款的总额的计算,当为消费类型的时候,余额-消费额==新的余额、消费额Sum增加,当为消费类型的时候,余额+还债额==现有余额、消费额Sum减少。
voidluru();//输入信用卡的基本信息,如卡号、卡的名称、账单日、还款日、信用额等数据后,再调用Set函数给对象数组赋值。
voidtixing();//提醒函数,调用电脑当前时间,在某个信用卡还款日期的前2天给出提示信息,提示要还款的总额。
voiddisplay();//显示所有信用卡的当前信息
intsearchCard();//输入一个卡号在当前所有记录中查找,存在的话返回一个数值i。
};
3.2Record类的设计(Card的派生类)
ClassCard
{
数据成员:
doublemoney;
chartype[20];
intmonth;
intday;
函数成员:
Record()//构造函数
voidSet(char*cnum,char*cname,intMonth,intDay,doubleMoney,char*Type);//初始化,给消费记录对象数组中的数据成员赋值
voidzengjia();//通过查找函数对已录入的信用卡进行消费和还款工作。
voidshiyongjilu();//使用记录
voidall_jilu();//消费还款的所有记录和消费还款总额。
voidyichu_jilu();//已出记录即本月账单日和上月账单日之间的消费记录和消费总额。
voidweichu_jilu();//未出记录及本月账单日之后的消费记录和消费总额。
voidchaozhaojiemian();//查找信用卡及信息
voidjin_e();//消费金额区间查找
voidkahao();//按卡号查找
voidriqi();日期区间查找
voidxinyong();//查看不良欠款记录
voidloadData();//对文件进行读取
voidsaveData();//对文件进行存储,建立card、record的txt文本文档。
};
第4章详细设计
4.1工程视图
图4-1
4.2类图视图
图4-2
4.3函数的调用关系
如下图:
4.4
主程序流程图
第5章测试
1.欢迎界面:
图5-1
2.功能界面:
图5-2
3.录入功能:
图5-3
图5-4
4.消费还款功能:
图5-5
5.使用记录界面:
图5-6
1所有账单:
图5-7
2已出账单:
图5-8
3未出账单:
图5-9
4上季度账单:
6.还款提醒:
图5-10
7.所有信用卡信息:
图5-11
8.查找界面:
图5-12
1按卡号查找:
图5-13
图5-14
图5-15
2按消费金额查找:
图5-16
图5-17
图5-18
图5-19
3按消费日期查找:
图5-20
9.不良欠款
图5-21
10.退出界面:
图5-22
第6章总结
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。
因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。
在这一周的程序设计练习当中并不是一帆风顺的。
刚开始到指导老师面前听了一大堆,我根本就不知道要做什么,用什么做。
我并没有被眼前的一点小困难所击倒,我相信困难总是有办法解决的。
于是开始的两天我就在图书馆找相关图书。
通过两天的原始知识积累后,我开始尝试着按照自己的想法做了一些小系统。
起初会出现很多问题,不是这儿少了就是那错了。
在这样那样的错误中我明白编程是一件很严谨的事,容不得半点错误,一步走错,全盘皆输!
在出现错误读不懂时我通常是上网搜索错误原因,往往一个问题的解决方法是多种多样的,各自有其精妙之处。
有的解决方法浅显易懂,但是易出现漏洞;有的复杂难懂,但是逻辑紧密,无丝毫破绽。
编程是一门逻辑的游戏,一但了解其游戏规则,便发现乐趣无穷。
有时候自己有很多的想法,但由于自己的水平有限不能很好地实现,每到那时候我就有一种强烈的愿望想要把问题解决,做出自己想的东西。
一但解决了问题,那种快乐非亲身经历者不能感受!
这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢。
附录:
程序代码
#include
#include
#include
#include
#include
#include
usingnamespacestd;
//信用卡类
classCard
{
public:
charcardnum[20];
charname[20];
intstartday;
intbackday;
doubleyu_e;
doubleSum;//欠款总额
doubleYU_e;//初始额度
Card()
{
}
voidSet(char*cnum,char*cname,intcstartday,intcbackday,doublecyu_e,doubleCYU_e);//初始化
voidjie_huan(doublemoney,char*type)
{
if(strcmp(type,"消费")==0)
{
yu_e=yu_e-money;
Sum=Sum+money;
}
elseif(strcmp(type,"还款")==0)
{
yu_e=yu_e+money;
Sum=Sum-money;
}
}
voidluru();//录入
voidtixing();//提醒函数
voiddisplay();
intsearchCard();
};
//消费记录类
classRecord:
publicCard
{
public:
Record()
{
}
voidSet(char*cnum,char*cname,intMonth,intDay,doubleMoney,char*Type);//初始化
voidzengjia();
voidshiyongjilu();//使用记录
voidall_jilu();
voidyichu_jilu();
voidweichu_jilu();
voidjidu_jilu();
voidloadData();
voidsaveData();
voidjin_e();
voidkahao();
voidchaozhaojiemian();
voidriqi();
voidxinyong();
private:
doublemoney;
chartype[20];
intmonth;
intday;
};
constintCMAX=20;//信用卡存储数量
constintRMAX=100;//消费记录存储数量
Cardcard[CMAX];
Recordrecord[RMAX];
intc_num=0,r_num=0;
/*---------------------------------------------Card类实现------------------------------------------------*/
//初始化信用卡函数
voidCard:
:
Set(char*cnum,char*cname,intcstartday,intcbackday,doublecyu_e,doubleCYU_e)
{
strcpy(cardnum,cnum);
strcpy(name,cname);
startday=cstartday;
backday=cbackday;
yu_e=cyu_e;
YU_e=CYU_e;
}
/*--------------------------------------录入模块------------------------------------*/
voidCard:
:
luru()
{
charcardnum[20];
charname[20];
intstartday;
intbackday;
doubleyu_e;
doubleYU_e;
inta;
system("cls");
cout<<"\t*************************************************\n";
cout<<"\t||个人信用卡管理系统||\n";
cout<<"\t||----录入信息||\n";
cout<<"\t*************************************************\n\n";
jixu:
cout<<"请输入信用卡号:
\n";
cin>>cardnum;
boolright=true;
for(intj=0;j { if(strcmp(card[j].cardnum,cardnum)==0) { right=false; break; } } while(! right) { cout<<"已经保存有这个卡号\n"; cout<<"请输入新的卡号: \n"; cin>>cardnum; right=true; for(intj=0;j { if(strcmp(card[j].cardnum,cardnum)==0) { right=false; break; } } } cout<<"请输入信用卡名称: \n"; cin>>name; start: cout<<"请输入账单日(1-31): \n"; cin>>startday; if(1>startday||startday>31) { cout<<"输入有误! 请重新输入\n"; gotostart; } back: cout<<"请输入还款日(1-31): \n"; cin>>backday; if(1>backday||backday>31) { cout<<"输入有误! 请重新输入\n"; gotoback; } cout<<"请输入余额: \n"; cin>>yu_e; YU_e=yu_e; card[c_num].Set(cardnum,name,startday,backday,yu_e,YU_e); c_num++; cout<<"录入成功,回车继续\n"; cin.get(); cin.get(); ifstart: system("cls"); cout<<"\t*************************************************\n"; cout<<"\t||1.继续录入2.返回主菜单||\n"; cout<<"\t*************************************************\n\n"; cout<<"选择您要进行的操作: "; cin>>a; if(a==1) { gotojixu; } if(a==2) { } if(a! =1&&a! =2) { cout<<"输入错误,请重新输入(1/2)\n"; cin.get(); cin.get(); gotoifstart; } } /*--------------------------------------------------*/ //查找函数 intCard: : searchCard() { inti=-1; boolright=false; charcardnum[20]; cout<<"请输入信用卡号: \n"; cin>>cardnum; for(intj=0;j { if(strcmp(card[j].cardnum,cardnum)==0) { i=j; right=true; break; } } while(! right) { cout<<"没有找到您刚刚输入的这个卡号\n"; cout<<"请重新输入卡号: "; cin>>cardnum; for(intj=0;j { if(strcmp(card[j].cardnum,cardnum)==0) { i=j; right=true; break; } } } returni; } /*--------------------------------------提醒模块--------------------------*/ voidCard: : tixing() { longt=time(NULL); tm*pt=localtime(&t); intmonth=pt->tm_mon+1; intday=pt->tm_mday; system("cls"); cout<<"\t\t==================================================\n"; cout<<"\t\t||个人信用卡管理系统||\n"; cout<<"\t\t==================================================\n\n"; cout<<"\t\t还款提醒\n\n"; for(intj=0;j { if(! (card[j].backday-day>0&&card[j].backday-day<=2&&card[j].Sum>0||31<=day+backday&&day+backday<=32&&card[j].Sum>0)) continue; cout<<"卡号: "< cout<<"名称: "< cout<<"应还款日期: "< cout< cout<<"金额: "< } } //显示所有卡 voidCard: : display() { intj; cout<<"\t\t========================================\n"; cout<<"\t\t||您的信用卡信息||\n"; cout<<"\t\t========================================\n\n\n"; for(j=0;j { cout<<"卡号: "< cout<<"名称: "< cout<<"账单日: "< cout<<"还款日: "< cout<<"初始额度: "< cout<<"消费额: "< cout<<"余额: "< } cout<<"键入回车返回"; } // /*-------------------------------------------------------------------------------------------*/ /*----------------------Record类的实现---------------------------------------------------------------------*/ //初始化消费记录函数 voidRecord: : Set(char*cnum,char*cname,intMonth,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 个人 信用卡 管理 系统 doc