




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构课程设计课程题目课程编号学生姓名所在专业所在班级任课老师 实习时间设计成绩老师评语一 问题描述-1二 问题分析-1三 逻辑结构和存储结构设计-1四 算法设计-1五 时间复杂度和空间复杂度分析-4六 源代码-4-13七 程序运行结果-13-15八 心得-15参考文献-15一问题描述小明是一个计算机专业top student,祝贺他毕业了。并准备到银行参加工作。上班第一天,经理叫他编制一个实现一个活期储蓄处理程序,算作考查。上班第一天, 一定要给领导一个好印象,小明二话没说,就答应了。现要你是小明了,请完成如下题目功能。储户开户、销户、存入、支出活动频繁,系统设计要求:(1)能比较迅速地找到储户的帐户,以实现存款、取款记账;(2)能比较简单,迅速地实现插入和删除,以实现开户和销户的需要。二问题分析活期储蓄处理中,储户开户、销户、存入、指出活动频繁,系统设计要求;1、 能比较迅速的找到储户的账户,以实现存款、取款记账;2、 能比较简单的、迅速的实现擦如和删除,以实现开户销户的需要。需求分析:1、 创建文件,用数组形式存储用户数据,开户时自定义用户账户、姓名、密码、开户金额;2、 用户登录时,输入正确的用户姓名、用户密码,完成登陆后即可进行存款、取款、查询、修改密码;3、 实现输入用户的账户名和密码,将其全部信息删除,进行销户。三逻辑结构和存储结构设计逻辑结构:存储结构设计:该存储结构是链式存储结构,本系统主要用线性表结构类型来存储在“活期储蓄账目管理系统”中的信息。其中,结构体由4个分量构成:用户账号名、用户姓名、用户密码、开户金额。四算法设计本系统采用链式结构存储储蓄账目管理1、用户输入想开户的储户输入其姓名账户密码,然后显示开户成功,会有一个账户生成,然后开户成功。2、用户登录需要输入账号名和密码,判断密码是否正确,如果错误则返回,然后点击登录,就可以进入管理系统。3、用户的存取款和查询余额,首先在登录账户的基础上,选择存或取款,然后输入相应的金额,若是取款应判断其金额是否小于账户上的金额,如果不小于,则提示储户重新输入相应的金额,或者退出。4、储户需要销户的账户,然后程序自动判断该账户是否存在,然后输入账户密码,若密码与账户相对应,则删除该账户。五 空间复杂度和时间复杂度分析空间复杂度:是程序运行所以需要的额外消耗存储空间,一般的递归算法就要有o(n)的空间复杂度了,简单说就是递归集算时通常是反复调用同一个方法,递归n次,就需要n个空间。时间复杂度:一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度。记为T(n)。一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用T(n)表示,若有某个辅助函数f(n),使得当n趋近于无穷大时,T(n)/f (n)的极限值为不等于零的常数,则称f(n)是T(n)的同数量级函数。记作T(n)=O(f(n),称O(f(n) 为算法的渐进时间复杂度,简称时间复杂度。在各种不同算法中,若算法中语句执行次数为一个常数,则时间复杂度为O(1),另外,在时间频度不相同时,时间复杂度有可能相同,如T(n)=n2+3n+4与T(n)=4n2+2n+1它们的频度不同,但时间复杂度相同,都为O(n2)。六源代码#include #include #include #include using namespace std; class consumer; class YH public: YH(); void set_account(); /银行开户 void del_account(); void transfer(int); /转账 void enter_account(); void addmoney(int,float); void exitYH();/ 退出系统 void functionshow(); void save(); void load();/ 功能界面 protected: consumer *account20; static int acnum; /账户数 ; int YH:acnum=0; YH:YH() /for(int i=0;i20;i+) / /accounti = NULL; / class consumer:public YH public: friend class YH; consumer(int id,string Name,string PassWord,float m) ID=id;name=Name;money=m;passwd=PassWord; consumer()ID=0;name=0;money=0;passwd=0; int get_id()return ID; void savemoney(); / 存钱 string get_passwd()return passwd; / 取得密码 void display(); void fetchmoney(); /取钱 void change_passwd(); void add_money(float); void dec_money(float); float get_money(); /卡卡转帐 private: int ID; /开户帐号 string passwd; / 用户密码 string name; / 用户姓名 float money; ; void YH:save() ofstream ofile(bankdat.dat,ios:out); ofstream outfile(bankdat.dat,ios:out); int n=0; outfileacnum ; for(;nacnum;n+) outfileID ; outfilemoney ; outfilename ; outfilepasswd ; outfile.close(); /_page_break_ void YH:load() ifstream infile(bankdat.dat,ios:in); if(!infile) cerr读取错误,无资料中!acnum; for(;nid; infilem; infilenam; infilepassw;accountn-passwd; consumer * acc = new consumer(id,nam,passw,m); accountn = acc; infile.close(); cout读取资料正常!endl; void YH:transfer(int x) int id; coutid; int flag = 1; int i = 0; while(iget_id() flag = 0; else i+; if(flag) cout帐号不存在!endlendl; return ; float b; coutendlb; while(b=0) cout请输入正确的数字!endl; cout; cinb; if(accountx-get_money()b) cout对不起,金额不够!dec_money(b);accounti-add_money(b); coutmoney=accountx-money-y; float consumer:get_money() return money;int main() YH yh; yh.functionshow(); void YH:functionshow() int n; do system(cls); load(); coutendl请你输入相应的操作序号进行操作:endl; cout1) 用户开户endl2) 账户登陆endl3) 帐户注销endl4) 退出系统 endl; cout; cinn; while(n4) cout请输入正确的操作序号!endl; cout; cinn; switch(n) case 1: set_account(); break; case 2:enter_account();break; case 3: del_account(); break; case 4: exitYH(); break; cin.get(); while(true); void YH:enter_account() int id; coutid; int flag = 1; int i = 0; /_page_break_ while(iget_id() flag = 0; else i+; if(flag) cout帐号不存在!endlendl; return; coutpassw; if(passw!=accounti-get_passwd() return; accounti-display();cin.get();cin.get(); int n; dosystem(cls); cout请选择你要进行的操作:endl1)查看信息endl2)取款endl3)存款endl4)修改密码endl5)转账endl6)返回n; switch(n) case 1: accounti-display();break; case 2: accounti-fetchmoney();save();break; case 3:accounti-savemoney();save();break; case 4:accounti-change_passwd();save();break; case 5:transfer(i);save();break; case 6:return; cin.get();cin.get(); while(1); void YH:set_account() int id; string nam; string passw; float m; coutendlid; coutendlnam; coutendlpassw; coutendlm; while(m=0) cout请输入正确的数字!m; consumer * acc = new consumer(id,nam,passw,m); accountacnum = acc; cout开户成功!endlendl; acnum+; save(); cin.get(); return; void YH:del_account() int id; coutendlid; int flag = 1; int i = 0; while(iget_id() flag = 0; else i+; if(flag) cout帐号不存在!endlendl; return; for(int j=i;jacnum;j+) accountj = accountj+1; accountacnum-1=NULL; acnum-; cout注销成功!endlendl; save(); cin.get(); return; void consumer:change_passwd() string pwd,repwd; coutpwd; coutrepwd; if(pwd!=repwd) cout你输入的两次密码不一样,请重新输入!endl; passwd=pwd; cout密码修改成功,请牢记!endl;cin.get(); void consumer:fetchmoney() float m; char ch; do coutendl你要取多少钱:m; while(m=0) cout请输入正确的数字!endl; cout; cinm; if(moneym) cout对不起,你的余额不足! endl; else money=money-m; coutendl操作成功,请收好钱! endl; cout是否要继续该项操作:(Y/N) endl; cout; cinch; while(ch!=n&ch!=N&ch!=Y&ch!=y) cout; cinch; while(ch=y|ch=Y); void consumer:savemoney() float c; char ch; do coutendl你要存多少钱:c; while(c=0) cout请输入正确的数字!endl; cout; cinc; money=money+c; cout操作已成功!endl; cout是否要继续该项操作:(Y/N) endl; cout; cinch; while(ch!=n&ch!=N&ch!=Y&ch!=y) cout; cinch; while(ch=y|ch=Y); void consumer:display() system(cls); cout*endl; cout*endl; cout* 用户姓名:nameendl; cout* 帐号: IDendl; cout* 余额: moneyendl; cout*endl; void YH:exitYH() coutendl感谢你对本银行储蓄管理系统的支持,欢迎下次光临
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大学社会体育指导与管理专业题库- 体育资源保护与可持续管理
- 2025年消防安全管理人员考试-消防安全隐患排查与处理试题
- 2025年大学移民管理专业题库- 移民身份认同与社会共享
- 2025年大学融合教育专业题库- 学生个性发展在融合教育中的价值与意义
- 2025年大学科学教育专业题库- 教学游戏在科学教育中的应用
- 2025年大学社会体育指导与管理专业题库- 社会体育赛事监督与管理
- 2025年大学劳动教育专业题库- 大学生劳动教育实践案例研究
- 2025年大学工会学专业题库- 工会在信息化时代的挑战与变革
- 2025年大学体育教育专业题库-大学体育教育专业的学生体育保健知识
- 2025年大学科学教育专业题库-、科学教育实验实践教学案例解析
- 天然气管道输送服务协议
- 2025年社区未成年人志愿服务项目计划
- 创业入驻孵化协议
- 中国自身免疫性胰腺炎诊治指南(上海2023)
- 邮政社招笔试题
- 节前物业安全培训
- 2024年-2025年《公路养护》知识考试题库与答案
- 与信仰对话 课件-2024年入团积极分子培训
- 国际地图语言学研究进展
- 《水利水电建设工程验收规程》-SL223-2008
- AIOT智能物联产业学院建设方案
评论
0/150
提交评论