程序设计基础课程设计报告内容样例.docx
- 文档编号:30388230
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:30
- 大小:284.12KB
程序设计基础课程设计报告内容样例.docx
《程序设计基础课程设计报告内容样例.docx》由会员分享,可在线阅读,更多相关《程序设计基础课程设计报告内容样例.docx(30页珍藏版)》请在冰豆网上搜索。
程序设计基础课程设计报告内容样例
第一章目的及要求
书上有。
第二章需求分析
软件设计的一个重要的环节就是需求分析。
本章在对ATM取款机管理系统的应用情况作了全面调查的基础上,确定系统目标,并对系统所需要的基础功能进行分析,从而确定用户的需求。
以下是ATM取款机管理系统所需要的需求分析。
ATM管理系统包括六个模块:
登录,挂失功能,修改密码,取款功能,转账功能,查询功能。
①登录:
输入银行卡的账号,密码,验证银行卡的卡号,密码是否正确,之后进入主界面
②挂失功能:
确认是否对银行卡进行挂失,挂失后账户无法操作
③修改密码:
用户可自由对其银行卡密码进行修改,修改之后的新密码将会覆盖其原密码
④取款功能:
用户可自由取得所持银行卡内的存款,所取款数必须在其原有账户余额之内
⑤转账功能:
用户可将本账户中的存款转入其他账户,转账过程中,需要转入账户的账号
⑥查询功能:
用户可查询用户信息,其中包括用户姓名、用户身份证号码、银行卡号以及存款余额
模拟ATM取款机的操作:
首先录入账户信息,格式如下
帐号
姓名
身份证
密码
余额
3234
李四
123456
450.8
㈠、登录功能:
输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。
㈡、查询功能:
查询账户余额。
㈢、取款功能:
取款,更新余额。
㈣、挂失功能:
挂失后,该账户不能进行任何操作。
㈤、修改密码:
输入原密码和新设置密码。
㈥、转账功能:
输入转账的转出账户以及转账金额,进行转账。
第三章设计分析
3.1、ATM系统管理
3.1.1系统基本功能
首先,确定系统中存在两种用户,一种是ATM,可以进行信息录入和后台管理。
另外一种是取款人,取款人主要是进行信息的查询,不能进行信息录入。
所以在创建类的时候,先创建一个ATM类,然后创建取款人类,并及ATM类形成有元,进而继承ATM的所有功能,并添加录入信息的功能。
基本功能:
登录功能---------输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。
查询功能---------查询账户余额。
取款功能---------取款,更新余额。
挂失功能---------挂失后,该账户不能进行任何操作。
修改密码---------输入原密码和新设置密码。
转账功能---------输入转账的转出账户以及转账金额,进行转账。
、
系统功能如图3-1:
图3-1ATM系统的基本功能分类
3.1.2相关数据结构的说明
信息的载体用对象数组。
系统录入信息的操作非常枯燥,所以创建一个文件,把每次录入的信息保存入文件,在下一次进入系统时,它会默认读取文件原有的信息,当然也可以随时添加录入ATM信息。
然后系统的各个功能仅仅是通过查询找到具体对象的具体数据进行操作。
用户姓名:
Name字符型。
用户账号:
Num字符型。
用户密码:
Password字符型。
身份证号:
Id字符型。
存款数额:
Money实型。
3.1.3类的设计
1)定义了一个ATM取款机类,类中包括以下几部分:
公有段:
依次为登陆界面,核对密码,挂失,修改密码,取款,转账,查询信息,退出系统,功能界面,锁机。
私有段:
记录密码输入次数以及变量j。
友元函数:
取款,转账,查询信息,账号,密码。
2)定义了一个consumer类,类中包括以下几部分:
公有继承了ATM类
私有段:
用户密码,用户姓名,用户身份证号,卡号,存款钱数
保护段:
取得姓名,取得卡号,取得身份证号,取得密码,取得余额,设置密码,取钱
3.2系统流程图
利用流程图来说明系统各个部分之间如何协调来完成任务。
1)登录流程如图3-2
图3-2登陆的基本流程
2)查询功能
图3-3图中显示的是查询的基本流程:
3)挂失功能
图3-4图中显示的是挂失的基本流程:
图3-4图中显示的是挂失的基本流程
4)修改密码
图3-5图中显示的是修改密码的基本流程:
5)取款功能
图3-6图中显示的是取款的基本流程:
6)转账功能
图3-7图中显示的是转账的基本流程:
3.3参数说明
全局变量,重要形式参数、全局变量局部变量等等,它们的命名及用途解释
boolj:
全局变量。
charm,t,ch:
全局变量。
inttimes:
重要形式参数。
第四章系统实现
对运行及测试结果进行说明,并添加运行界面的截图。
4.1、登录主界面
图4-1主界面登录窗口
图4-2登录主界面时,账号或密码出错时系统自动锁机
图4-3成功登录后,主界面所显示的窗口
4.2、挂失功能
图4-4根据所选代码进行挂失,挂失后系统将退出主界面
4.3、修改密码
图4-5xxxx
图4-6图为更改密码功能界面,更改后的密码为新密码
4.4、取款功能
图4-7为图为取款功能界面,图中显示为成功取款
图4-8图为取款失败后的功能界面
4.5、转账功能
图4-9图为转账功能界面,图中显示为转账成功后的界面
图4-10图为转账失败后的功能界面
4.6、查询功能
图4-11图中所示为用户个人信息,包括用户姓名、身份证号、银行卡号以及存款余额
4.7、退出系统
图4-12图为选择序号后系统退出的页面
第五章总结
课程设计旨在锻炼学生的实际动手能力和解决真实问题的能力。
并在其中掌握和熟练所学的知识,并能够运用所学知识解决比较简单的现实模拟问题。
本次课程设计在老师的帮助和自己的努力下终于能够成功运行,使我感到非常高兴以及提高了自己的编程信心,虽然这次课程设计的题目实现比较简单和不实用但毕竟是自己将近两个星期的努力地结果。
在期间我对编程的理念理解又加深了一点,课程设计使我明白好的算法或者是好的逻辑思维对编程的重要性,在调试期间我自卑过、高兴过、平静过。
可以说是我经历了比较大的情感波动。
当费很大劲才把程序调运行的时候那种感觉实在是太好了。
在本次课程设计活动中,我明显的感觉到自己知识的欠缺和实际动手能的差劲。
尤其是在传值传参的函数调用时更体现的非常明显,感觉自己的书本学的不透、学的不扎实。
有些地方更本就不会,不如说文件的操作,比如说系统时间的获取等以前在上课或作习题时更本就不会考虑的问题在课程设计当中完全暴露出来。
通过本次试验,主要加深了对于友元函数,友元类使用的熟练程度。
程序功能相对比较简单,没有设计复杂的继承和重载函数,完成的比较轻松!
参考文献
[1]吴敏,杨国林.C++面向对象程序设计内蒙古大学出版社.
[2]康晓林,汪涛.标准C++使用教程电子工业出版社
附录
以下是程序的源代码,并且加上了详细的注释:
//====hcsdkhfsk====
#include"iostream"
usingnamespacestd;
classconsumer;
classATM//ATM取款机类
{
public:
ATM(consumer&cn):
cnsm(cn)
{
j=true;
}
voidwelcome();//登陆界面
boolcheck_passwd(charn[],charpwd[]);//核对密码
boolcheck_zhang(charnum[]);//核对转入账号
boolgua();//挂失
voidchange_passwd();//修改密码
voidfetchmoney();//取款
voidzhuan();//转账
voidinformation();//查询信息
voidexitATM();//退出系统
voidfunctionshow();//功能界面
voidlock();//锁机
private:
boolj;
inttimes;//记录密码输入次数
consumer&cnsm;
};
classconsumer//用户类
{
public:
friendclassATM;
consumer(charName[],charNum[],charId[20],floatMoney,charPassword[]);
protected:
char*get_name();//取得姓名
char*get_num();//取得卡号
char*get_id();//取得身份证号
char*get_passwd();//取得密码
floatget_money();//取得余额
voidset_passwd(charpwd[]);//设置密码
voidset_money(floatm);//取钱
private:
charpasswd[8];//用户密码
charname[20];//用户姓名
charid[20];//用户身份证号
charnum[20];//
floatmoney;//
};
consumer:
:
consumer(charName[],charNum[],charId[20],floatMoney,charPassword[])
{
strcpy(name,Name);
strcpy(num,Num);
strcpy(id,Id);
money=Money;
strcpy(passwd,Password);
}
floatconsumer:
:
get_money()
{
returnmoney;
}
char*consumer:
:
get_name()//对于数组的返回操作返回指针
{
returnname;
}
char*consumer:
:
get_num()
{
returnnum;
}
char*consumer:
:
get_id()
{
returnid;
}
char*consumer:
:
get_passwd()
{
returnpasswd;
}
voidconsumer:
:
set_money(floatm)
{
money-=m;
}
voidconsumer:
:
set_passwd(charpwd[])
{
strcpy(passwd,pwd);
}
voidATM:
:
welcome()
{
times=0;
cout<<"欢迎使用银行ATM自动取款机"< charpwd[8],num1[20],ch; inti=0; do { i=0; cout< "; do { cin.get(ch);//对于键盘字符串的接收! num1[i++]=ch; } while(ch! ='\n'); num1[i-1]='\0'; i=0; cout<<"请输入密码: "; do { cin.get(ch); pwd[i++]=ch; } while(ch! ='\n'); pwd[i-1]='\0'; if(! check_passwd(num1,pwd)) { cout<<"你输入的卡号或密码有误,请重新输入"< times++; } else { functionshow(); } } while(times<3); lock(); } boolATM: : check_passwd(charnum[],charpwd[]) { if(strcmp(num,cnsm.get_num())==0&&strcmp(pwd,cnsm.get_passwd())==0) returntrue; else returnfalse; } voidATM: : functionshow() { intn; do { cout<<"本机可办理以下业务: "< cout<<"********************"< cout<<""< cout<<"1>挂失"<<""<<"2>修改密码"< cout<<""< cout<<"3>取款"<<""<<"4>转账"< cout<<""< cout<<"5>查询余额"<<""<<"6>退出系统"< cout<<""< cout<<"********************"< cout< "< cin>>n; while(n<1||n>6) { cout<<"请输入正确的操作序号! "< cin>>n; } switch(n) { case1: gua();break; case2: change_passwd();break; case3: fetchmoney();break; case4: zhuan();break; case5: information();break; case6: exitATM();break; } } while(true); } boolATM: : gua() { chara; do { cout<<"是否确认挂失: (y/n)继续请按y退出请按n"< cin>>a; if(a=='y') { cout<<"您已挂失成功! "< exit (2); } else { cout<<"您已选择退出! "< } } while(a=='y'); returnj=true; } voidATM: : change_passwd() { charpwd[8],repwd[8]; times=0; do { cout< "; cin>>pwd; if(! check_passwd(cnsm.get_num(),pwd)) times++; else break; } while(times<3); if(times==3) lock(); intt=1; do { cout<<"请输入新密码: "; cin>>pwd; cout<<"请再输入一次新密码: "; cin>>repwd; t=strcmp(pwd,repwd);//相同返回0; if(t! =0) cout<<"你输入的两次密码不一样,请重新输入! "< } while(t! =0); cnsm.set_passwd(pwd); cout<<"密码修改成功,请牢记! "< } voidATM: : fetchmoney() { floatm; charch; do { cout< "< cin>>m; while(m<=0) { cout<<"请输入正确的数字! "< cin>>m; } if(cnsm.get_money()-m<0) { cout<<"对不起,你的余额不足! "< } else { cout< "< cnsm.set_money(m); } cout<<"是否要继续取款: (y/n)"< cin>>ch; } while(ch=='y'||ch=='Y'); } voidATM: : zhuan() { charz[20]; floatnum; cout<<"请输入所转账号: "< cin>>z; cout<<"请输入所转钱数: "< cin>>num; cnsm.money-=num; if(cnsm.money>0) cout<<"转账成功! "<<"您的余额: "< else cout<<"余额不足! "< } voidATM: : information() { cout<<"**********************************"< cout<<"*用户姓名: "< cout<<"*身份证号: "< cout<<"*银行卡号: "< cout<<"*存款余额: "< cout<<"**********************************"< } voidATM: : lock() { cout< "< exit (1);//系统非正常退出 } voidATM: : exitATM() { cout< "< cout<<"请取卡……"< exit(0); } voidmain() { consumerc1("李四","3234","8080088",450.8,"123456");//先构造一个用户 ATMatm(c1); atm.welcome(); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 基础 课程设计 报告 内容