软件实训报告C++C++版支付宝.docx
- 文档编号:4910933
- 上传时间:2022-12-11
- 格式:DOCX
- 页数:12
- 大小:383.22KB
软件实训报告C++C++版支付宝.docx
《软件实训报告C++C++版支付宝.docx》由会员分享,可在线阅读,更多相关《软件实训报告C++C++版支付宝.docx(12页珍藏版)》请在冰豆网上搜索。
软件实训报告C++C++版支付宝
HUNANUNIVERSITY
软件实训报告
题目:
支付宝
专业班级计算机科学与技术一班
1、适用环境
系统开发平台:
VisualC++6.0
运行平台:
Windowsxp/Windows2000/Windows2003
二、程序需求分析说明
此程序可以支持多个账号的注册、登录,以及帐号之间的转账,还可以购买东西还可以往支付宝里充值,随时都可以查询账户相关信息和动态,当操作结束时可以退出重新登陆或者注册新帐号,若想终止程序,则输入-1即可;
程序中通过先删除原来帐号的信息,然后再重新建立该账户现在修改过的信息的想法来实现账户之间的转账,以及退出当前页面回到登陆界面,同时用到清屏函数重新建立新的页面。
二、功能模块划分:
3、注册帐号和登录以及运行账号帐号
①运行程序:
②输入1注册帐号:
用一个类建立一个存储用户的数组,可以存储多个用户,以便各个用户随时登陆和转账以及账户信息的查询;
/*往用户组里添加新注册的用户*/
voidString_Queue:
:
addAlipay(Alipay&ali)
{
alipayNumer++;
alipay_new=newAlipay[alipayNumer];
for(i=0;i { alipay_new[i]=alipay[i]; } alipay_new[alipayNumer-1]=ali; delete[]alipay; alipay=alipay_new; } ③输入2登录账户: 可以用此函数判断用户的注册和登陆是否成功: /*判断注册或者登陆是否成功的函数*/ boolString_Queue: : Judge(stringuser_name,stringuser_pwd,stringmodel) { for(i=0;i { if(alipay[i].getUserName()==user_name) if(model=="registration") returntrue; elseif(model=="login") if(alipay[i].getUserPwd()==user_pwd) { y=i; returntrue; } } returnfalse; } ④要想实现转账指令则还需注册一个账户(-1回到注册|登陆页面继续注册): ⑤登陆原账号或新账号(这里登陆原账号为例),返回界面第三步; 输入4为用户用户充值1000元: /*充值的函数*/ voidAlipay: : save_money(doublemoney) { balance+=money; sum_recharge+=money; cout< "< } Main函数实现: elseif(x==4)//指令4为充值 { cout<<"充值金额: "; cin>>money; alipay.save_money(money); } ⑥输入3指令进行123用户到1234用户的转账(转账金额为500元): /*判断被转账用户是否存在*/ boolString_Queue: : Judge(stringuser_name) { for(i=0;i if(alipay[i].getUserName()==user_name) { x=i; returntrue; } returnfalse; } Mian函数中转账指令: if(x==3)//指令3为转账 { cout<<"输入给哪个用户转账: "; cin>>userName; if(st.Judge(userName))//判断被转账用户是否存在 { cout<<"转账金额: "; cin>>money; tran_alipay=st.getTran_alipay(); alipay.transfer_money(money,tran_alipay);//调用转账函数 st.deleteAlipay(tran_alipay.getUserName());//删除原来的被转账用户 st.addAlipay(tran_alipay);//添加新的被转账用户 }else { cout<<"无此用户"< } } ⑦输入5指令,购买东西(购买物品设置原为10种): 物品总数量为十件: stringgoods[10]={"手机","手表","手电筒","书籍","台灯","电脑","杯子","钱包","肥皂","衣服"}; 从0开始编号到9,产生物品数量和物品价格都是用随机函数随机产生的,产生物品数量时采用产生两个随机数,大的随机数减去小的随机数所得的数为物品数量,至于价格同样采用整除取余法得到 /*购买货物的函数*/ voidAlipay: : buyGoods(stringname,doublemoney) { if(money>balance) cout<<"余额不足,请充值! "< else { addString(name); balance-=money; sum_consumption+=money; goodsName=name; cout<<"支付成功,本次支付金额为: "< } } /*添加货物名字的数组*/ voidAlipay: : addString(stringgoodsName) { strNumer++; string*str_new=newstring[strNumer]; for(i=0;i { str_new[i]=str[i]; } str_new[strNumer-1]=goodsName; delete[]str; str=str_new; } /*输出购物清单函数*/ voidAlipay: : display() { for(i=0;i { cout<<"货物名字"< cout< < < cout<<"花费了"< } 随机产生货物清单的函数: /*货物清单*/ voidManifest(){ int*price; intstart=10; intfinish=0; intid; srand(time(NULL)); //产生两个数,用于数组的开始和结尾 while(start>finish){ start=rand()%10; finish=rand()%10; } price=newint[finish-start]; for(inti=0;i price[i]=rand()%1000; for(i=start;i cout<<(i+1)<<""< } cout<<"请输入购买的编号: "; cin>>id; while(id cout<<"输入错误,请重新输入编号"< cout<<"请输入购买的编号: "; cin>>id; } strGoods=goods[id-1]; money=price[id-start-1]; } ⑧输入6查询该账户信息 加入购买物品的时间,时间采用当前电脑的当前时间 /*获取当前时间的函数*/ voidtime() { SYSTEMTIMEct; GetLocalTime(&ct); year=ct.wYear; month=ct.wMonth; day=ct.wDay; hour=ct.wHour; minute=ct.wMinute; } /*设置日期*/ voidAlipay: : setData(intyear,intmonth,intday,inthour,intminute,intmoney) { addInt(year); addInt(month); addInt(day); addInt(hour); addInt(minute); addInt(money); } ⑨查询1234账户的相关信息,验证转账是否成功 4、实验日志 1、在一次运行是如何同时保存多组账户的相关信息? 解决: 通过另外创建一个类,用一个数组来存放新注册的支付宝账户,当用到非当前登录的支付宝账户时,调用此类,必要时通过voiddeleteAlipay(string);函数删除原有支付宝账户,然后再重新建立。 2、添加购买物品时间不采用产生随机数法,因为要产生四个时间,长生随机数的话很麻烦而且程序的运行时间会延长,如何解决? 解决: 通过voidtime() { SYSTEMTIMEct; GetLocalTime(&ct); year=ct.wYear; month=ct.wMonth; day=ct.wDay; hour=ct.wHour; minute=ct.wMinute; }函数来获取当前电脑的当前时间,然后再添加到 品信息里面; 3、货物清单产生要想有随机的个数、随机的货物(包括0)还有不同的价格,如何做到? 解决: 产生货物清单时在一个数组内先产生两个数,大的数减去小的数所得的数为货物数量,这就有可能出现物品数量为零的情况,至于价格可以随机数%1000来得到。 4、如何由已经登陆的账号界面返回到登陆注册界面? 解决: 用system("cls");清屏函数先清屏退出当前的循环,此处的循环嵌套使用登陆界面的大循环包括已经登陆的小循环,这样即使先退出也会停留在登陆界面。 5、实验心得和体会 通过本次实训,收获了很多,这个是我和搭档在开始实训的时候用C++编写的,完全是根据上课老师讲过的知识和内容完成的实验,但是没有很好的界面,用C++实现界面其实设置界面格式然后代码都是大同小异,反而比直接编写代码更为简单,实验过程中遇到的问题还是比较多,有些就是变量没有设置清楚是否静态或者数据类型等,这和平时没有多联系有很大关系,本次实验也督促了我们对于以前学过的C++知识的复习和巩固,同时也通过在课外资料上查询相关编程资料学到了很多,在同学的帮助下实验是完成了,但实验的目的是让我们的专业知识功底更加深厚,即使实验结束我们平时多联系那也是必要的。 对于程序要求的界面产生便想到了Java语言,Java语言可以通过调用库函数来实现界面,其他功能当然用Java更为方便,于是我们小组也用Java实现了支付宝,虽然是课余知识,但是还是蛮成功的,小组成员都进步不少,同时学到很多东西,当然也要感谢帮助我们完成实验的同学和老师,我们小组会继续努力。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 报告 C+ 支付