程序设计基础课程设计报告-内容样例

合集下载

《程序设计基础》课程设计报告参考样本

《程序设计基础》课程设计报告参考样本

《程序设计基础》课程设计报告仅供参考(要求交纸质报告,A4纸张,可交打印稿)《程序设计基础》课程设计报告题目:日期:班级:学号:姓名:一.设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计基础(C语言)》课程后进行的一次全面的综合练习。

本课程设计的目的:1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二.课程设计任务书(附上选择的题目)例如:题目:学生成绩管理系统某班学生有若干人(不超过40人),期末共考5门课,每个学生的成绩按学号顺序存入计算机。

学生信息如下表所示:设计一个程序,实现学生成绩管理功能。

基本功能:1、提供菜单式的用户界面;2、输入学生的基本信息(应考虑学生学号的唯一性);3、增加或删除学生记录;4、输入姓名或学号,查找某个学生的成绩;5、统计某门课程在100-90,89-80,79-70,69-60,60分以下各分数段人数并显示;6、对学生成绩按总分排序,并将排序结果输出7、使用文件记载学生信息,程序启动时加载学生信息,程序退出时保存学生信息;(进一步功能)要求:1、用C语言实现程序设计;2、系统的各个功能模块要求用函数的形式实现;3、界面友好(良好的人机交互),程序加必要的注释。

三.系统设计方案说明本程序中用到的数据结构的定义、主程序的流程以及各程序模块之间的层次(调用)关系。

四.调试分析内容包括:(1)调试过程中遇到的问题是如何解决的以及对设计与实现的回顾讨论和分析;(2)程序算法的改进设想;(3)经验和体会等。

五.用户使用说明说明如何使用你编写的程序,详细列出每一步的操作步骤。

例如:一、开始二、具体信息三、排序四、统计输出不及格的学生名单和对应的课程。

五、查找六、结束六.测试结果列出你的测试结果,包括输入和输出。

程序设计基础课程设计报告

程序设计基础课程设计报告

仲恺农业工程学院课程设计课程《程序设计基础》姓名金峰院(系)计算机科学与工程学院专业班级计算机093学号200910214308指导教师黄明志职称副教授日期 2010年06 月26日仲恺农业工程学院教务处制⏹题目:图书信息管理系统设计图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。

试设计一图书信息管理系统,使之能提供以下功能:1系统以菜单方式工作2图书信息录入功能(图书信息用文件保存)--输入3图书信息浏览功能--输出4图书信息查询功能--算法查询方式:●按书名查询●按作者名查询5图书信息的删除与修改(可选项)⏹总体设计:✓程序分为六个模块◆主菜单◆图书信息录入◆图书信息浏览◆图书信息查询◆图书信息修改◆系统说明✓程序框图如下:⏹ 详细设计:◆ 主菜单程序框图:◆ 图书信息录入程序框图:◆ 图书信息浏览程序框图:◆ 图书信息查询程序框图:图书信息修改程序框图:系统说明程序框图:软件测试:主界面:信息录入:信息查询:综合设计总结:1.制作菜单时,使用getchar()函数,结果导致功能选择多了回车输入,导致下次选择出错。

解决方法是更换为getch()函数,此函数不需要回车确认,故避免此问题。

2.写输出函数时,遇到选择输出时,屏幕没有反应,检查函数没有错误。

发现为程序执行过快,闪一下就过去。

引入了system()函数中的”pause”参数,在浏览输出后暂停。

3.搜索资料时,算法有点问题,导致不够准确。

所以在后面修改功能里,忽略其它查询方法,只采用isbn搜索。

4.在定义指针数组时,有时会忘记是指针或者是指针变量。

5.生成储存文件时,有时的fopen或者fclose会用错参数或者放错位置。

附录:(源程序)20。

程序设计基础的课程设计

程序设计基础的课程设计

程序设计基础的课程设计一、课程目标知识目标:1. 让学生掌握程序设计的基本概念和原理,如变量、数据类型、运算符、控制结构等。

2. 使学生理解程序设计的流程,学会编写、调试和运行简单的程序。

3. 引导学生了解程序设计中的常用算法和解决问题的策略。

技能目标:1. 培养学生运用所学知识编写简单程序的能力,提高逻辑思维和编程技巧。

2. 培养学生运用调试工具找出程序错误并修正的能力,提高解决问题的能力。

3. 培养学生合作学习和团队协作的能力,学会共同分析问题、讨论解决方案。

情感态度价值观目标:1. 激发学生对程序设计的兴趣,培养学习编程的热情和积极性。

2. 培养学生勇于尝试、不怕失败的精神,提高面对困难的勇气和毅力。

3. 引导学生认识到程序设计在生活中的应用和价值,增强信息素养和创新能力。

分析课程性质、学生特点和教学要求,本课程目标旨在使学生在掌握程序设计基本知识的基础上,提高编程能力和解决问题的能力,培养学生对编程的兴趣和热情,为后续学习打下坚实基础。

课程目标具体、可衡量,以便教师进行教学设计和评估。

二、教学内容本章节教学内容围绕程序设计基础展开,包括以下部分:1. 程序设计基本概念- 变量和常量的概念及其应用- 数据类型和数据表示- 运算符和表达式2. 控制结构- 顺序结构- 选择结构(if-else语句)- 循环结构(for、while语句)3. 算法基础- 算法的概念和描述方法- 常见算法策略(顺序查找、二分查找、冒泡排序等)4. 编程实践- 编写简单程序,解决问题实例- 调试程序,找出并修正错误- 代码优化,提高程序性能5. 课程项目- 团队合作,共同完成一个程序设计项目- 项目过程中,学会分析问题、设计算法、编写代码和测试教学内容根据课程目标制定,涵盖教材相关章节,确保科学性和系统性。

教学进度安排如下:- 第1-2课时:程序设计基本概念- 第3-4课时:控制结构- 第5-6课时:算法基础- 第7-8课时:编程实践- 第9-10课时:课程项目教学内容和进度安排旨在使学生扎实掌握程序设计基础知识,培养实际编程能力,为后续学习打下坚实基础。

程序设计课程设计模板

程序设计课程设计模板

程序设计课程设计模板一、教学目标本课程的教学目标是让学生掌握程序设计的基本概念、原理和方法,培养学生运用编程语言解决实际问题的能力。

具体包括以下三个方面:1.知识目标:学生需要了解程序设计的基本概念、编程语言的语法规则、算法和数据结构等基础知识。

2.技能目标:学生能够熟练使用编程语言编写简单的程序,掌握调试和运行程序的方法,以及运用算法和数据结构解决实际问题。

3.情感态度价值观目标:培养学生对程序设计的兴趣和热情,提高学生独立思考和解决问题的能力,培养学生的团队合作意识和创新精神。

二、教学内容根据课程目标,教学内容主要包括以下几个部分:1.编程语言基础:介绍编程语言的基本语法和编程规范,使学生能够熟练使用编程语言进行编程。

2.算法与数据结构:讲解常见的算法和数据结构,培养学生运用算法和数据结构解决实际问题的能力。

3.程序设计实践:通过实际项目的开发和调试,使学生掌握程序设计的整个流程,提高学生的实际编程能力。

4.程序设计思想:介绍软件工程的基本原理和方法,培养学生良好的编程习惯和软件开发能力。

三、教学方法为了实现课程目标,我们将采用以下教学方法:1.讲授法:通过讲解编程语言的基本概念、语法规则和算法原理,使学生掌握相关知识。

2.讨论法:学生进行小组讨论,培养学生的团队合作意识和独立思考能力。

3.案例分析法:分析实际编程案例,使学生了解编程语言在实际应用中的方法和技巧。

4.实验法:安排实验课程,让学生动手编写程序,培养学生的实际编程能力和实践能力。

四、教学资源为了支持课程的实施,我们将准备以下教学资源:1.教材:选用权威、实用的编程教材,为学生提供系统的学习材料。

2.参考书:提供丰富的参考书籍,方便学生课后自主学习。

3.多媒体资料:制作课件、视频等多媒体资料,丰富教学手段,提高学生的学习兴趣。

4.实验设备:配置足够的计算机和实验设备,确保学生能够顺利开展实验课程。

五、教学评估本课程的评估方式包括平时表现、作业、考试等,以全面客观地评价学生的学习成果。

程序设计课程设计报告

程序设计课程设计报告

程序设计课程设计报告一、引言程序设计是计算机科学与技术领域中的重要学科,涉及到软件开发、算法设计和编程等方面。

本报告旨在总结和展示我们小组在程序设计课程中的设计过程和成果。

二、设计目标本次程序设计课程项目的主要目标是设计和实现一个个人信息管理系统。

该系统应包括以下功能:1. 用户注册和登录功能:用户可以通过注册账号并进行登录,以便使用系统中的各项功能。

2. 个人信息管理功能:用户可以管理自己的个人信息,包括姓名、年龄、联系方式等,可以进行查看、编辑和删除等操作。

3. 日程管理功能:用户可以添加和管理自己的日程安排,包括日期、时间、地点和备注等。

4. 密码修改功能:用户可以修改登录密码,确保账号安全性。

5. 用户数据备份和恢复功能:用户可以将自己的数据进行备份,并在需要时进行恢复。

三、设计步骤1. 需求分析:首先,我们小组成员深入了解了用户的需求,明确了项目的功能和特点。

通过分析用户需求,我们确定了系统的基本功能和界面设计。

2. 系统设计:根据需求分析结果,我们进行了系统设计。

包括数据库设计、界面设计和算法设计等方面。

数据库设计决定了用户信息和日程数据库的结构,界面设计决定了用户交互的方式和页面展示方式,算法设计决定了系统功能的实现方式。

3. 编码实现:在系统设计完成后,我们根据设计结果进行编码实现。

采用适当的编程语言和开发工具,我们按照系统设计的要求编写代码,实现系统的各项功能。

4. 测试与调试:在编码实现完成后,我们对系统进行了测试和调试。

通过模拟用户操作和输入各种情况下的数据,我们确保系统能够正确运行,并处理各种异常情况。

5. 优化与改进:在测试和调试过程中,我们不断优化和改进系统的性能和用户体验。

通过对系统的使用和反馈进行分析,我们进一步完善系统功能和界面设计,提升用户体验。

四、实现成果经过团队成员的共同努力,我们小组成功实现了个人信息管理系统。

该系统具有以下特点和功能:1. 用户注册和登录功能:用户可以通过注册账号并登录,确保账号的安全性。

程序设计基础课程设计报告

程序设计基础课程设计报告

程序设计基础课程设计报告
本次课程设计旨在深化我们对程序设计基础的理解和应用。

通过实际操作,我们学习了算法设计、数据结构选择及代码优化等关键技能。

在解决问题的过程中,我们遇到了诸如逻辑错误、运行效率低等问题,但通过团队合作、反复调试和查阅资料,最终成功解决了这些问题。

这次课程设计不仅提高了我们的编程能力,还锻炼了我们的逻辑思维和团队协作能力。

我们深刻认识到,良好的程序设计不仅需要扎实的理论知识,还需要灵活的应用能力和不懈的探索精神。

展望未来,我们将继续巩固和扩展程序设计知识,努力提升编程水平,为解决实际问题和推动科技发展贡献自己的力量。

程序的设计基础课程设计报告

程序的设计基础课程设计报告

课程设计(大作业)报告课程名称:程序设计基础设计题目:学生成绩记录薄设计院系:信息技术学院班级:设计者:学号:指导教师:设计时间:2013.7 8.-2013.7.13信息技术学院学院课程设计(大作业)任务书学生成绩记录薄设计一、课程设计目的与要求1.课程设计目的(1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。

(2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main()在程序设计中的实现思路和方法。

2. 课程设计要求设计一个简易学生成绩记录簿设计,其中包括:,学号,C语言成绩;具体功能:1.系统以菜单方式工作2. 创建学生成绩信息并以磁盘文件保存;3. 读取磁盘文件并显示输出所有学生的成绩;4. 查询学生成绩(1)按学号查询成绩(2)学号查询成绩5.添加成绩记录;6.修改指定或学号的学生的成绩并可存盘;7.显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息。

二、总体设计图1 系统总体结构三、详细设计1、数据结构设计#include<stdio.h>#include<stdlib.h>#include<string.h>#include<windows.h>int n=4;struct student{int num; /*学号*/char name[10]; /**/float score[3]; /*成绩*/}2.函数说明1.主函数main()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。

2.其他部分功能函数包括(1) 将学生成绩信息保存为文件void save();算法思想:①定义指向文件的指针变量;②输入保存路径及文件名,打开文件,若不能打开文件给出提示信息;③将存有学生成绩信息的结构体数组信息依次保存到文件中。

c程序设计教程课程设计报告

c程序设计教程课程设计报告

c程序设计教程课程设计报告一、课程目标知识目标:1. 理解C语言的基本语法结构,掌握数据类型、变量、运算符的使用方法。

2. 学会使用C语言进行顺序结构、选择结构和循环结构的程序设计。

3. 掌握数组、函数、指针的基本概念和应用。

技能目标:1. 能够运用C语言编写简单的程序,解决实际问题。

2. 能够运用顺序、选择和循环结构进行程序设计,实现复杂逻辑。

3. 能够使用数组、函数、指针进行程序优化,提高编程能力。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习热情,形成自主学习、探究学习的习惯。

2. 培养学生团队合作意识,学会与他人共同解决问题,提高沟通与协作能力。

3. 培养学生严谨、细心的学习态度,养成良好的编程习惯,注重代码规范和优化。

课程性质分析:本课程为C程序设计教程,旨在让学生掌握C语言的基本知识,培养编程思维和实际编程能力。

学生特点分析:学生为初学者,对编程有一定兴趣,但基础薄弱,需要从基本概念和语法入手,逐步提高。

教学要求:1. 注重理论与实践相结合,让学生在实践中掌握C语言知识。

2. 采用案例教学,激发学生兴趣,提高学生的实际编程能力。

3. 加强课堂互动,引导学生主动思考,培养编程思维。

二、教学内容1. C语言概述:介绍C语言的发展历史、特点和应用领域,引导学生了解C语言的重要性。

教材章节:第一章2. 数据类型、变量和常量:讲解基本数据类型、变量定义、赋值和常量的概念。

教材章节:第二章3. 运算符和表达式:介绍各种运算符及其优先级,掌握表达式的编写方法。

教材章节:第三章4. 顺序结构程序设计:学习顺序执行语句,掌握顺序结构程序设计方法。

教材章节:第四章5. 选择结构程序设计:讲解if语句、switch语句,学会使用选择结构实现程序逻辑。

教材章节:第五章6. 循环结构程序设计:学习for循环、while循环和do-while循环,掌握循环结构的使用方法。

教材章节:第六章7. 数组:介绍一维数组、二维数组的概念和应用,学会使用数组存储和处理数据。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章目的及要求书上有。

第二章需求分析软件设计的一个重要的环节就是需求分析。

本章在对ATM取款机管理系统的应用情况作了全面调查的基础上,确定系统目标,并对系统所需要的基础功能进行分析,从而确定用户的需求。

以下是ATM取款机管理系统所需要的需求分析。

ATM管理系统包括六个模块:登录,挂失功能,修改密码,取款功能,转账功能,查询功能。

①登录:输入银行卡的账号,密码,验证银行卡的卡号,密码是否正确,之后进入主界面②挂失功能:确认是否对银行卡进行挂失,挂失后账户无法操作③修改密码:用户可自由对其银行卡密码进行修改,修改之后的新密码将会覆盖其原密码④取款功能:用户可自由取得所持银行卡内的存款,所取款数必须在其原有账户余额之内⑤转账功能:用户可将本账户中的存款转入其他账户,转账过程中,需要转入账户的账号⑥查询功能:用户可查询用户信息,其中包括用户姓名、用户身份证号码、银行卡号以及存款余额模拟ATM取款机的操作:首先录入账户信息,格式如下㈠、登录功能:输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。

㈡、查询功能:查询账户余额。

㈢、取款功能:取款,更新余额。

㈣、挂失功能:挂失后,该账户不能进行任何操作。

㈤、修改密码:输入原密码和新设置密码。

㈥、转账功能:输入转账的转出账户以及转账金额,进行转账。

第三章设计分析3.1、ATM系统管理3.1.1系统基本功能首先,确定系统中存在两种用户,一种是ATM,可以进行信息录入和后台管理。

另外一种是取款人,取款人主要是进行信息的查询,不能进行信息录入。

所以在创建类的时候,先创建一个ATM类,然后创建取款人类,并及ATM 类形成有元,进而继承ATM的所有功能,并添加录入信息的功能。

基本功能:登录功能---------输入帐号和密码进行登录,如密码错误提示重新输入密码,如帐号错误提示无此帐户。

查询功能---------查询账户余额。

取款功能---------取款,更新余额。

挂失功能---------挂失后,该账户不能进行任何操作。

修改密码---------输入原密码和新设置密码。

转账功能---------输入转账的转出账户以及转账金额,进行转账。

、系统功能如图3-1:图3-1 ATM系统的基本功能分类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 图中显示的是查询的基本流程3)挂失功能图3-4 图中显示的是挂失的基本流程:图3-4 图中显示的是挂失的基本流程4)修改密码图3-5 图中显示的是修改密码的基本流程:图3-5 图中显示的是修改密码的基本流程5)取款功能图3-6 图中显示的是取款的基本流程:图3- 6 取款的基本流程6)转账功能图3-7 图中显示的是转账的基本流程:图3-7 转账的基本流程3.3参数说明全局变量,重要形式参数、全局变量局部变量等等,它们的命名及用途解释bool j: 全局变量。

char m,t,ch: 全局变量。

int times : 重要形式参数。

第四章系统实现对运行及测试结果进行说明,并添加运行界面的截图。

4.1、登录主界面图4-1 主界面登录窗口图4-2 登录主界面时,账号或密码出错时系统自动锁机图4-3 成功登录后,主界面所显示的窗口4.2、挂失功能图4-4 根据所选代码进行挂失,挂失后系统将退出主界面4.3、修改密码图4-5 xxxx图4-6 图为更改密码功能界面,更改后的密码为新密码图4-7为图为取款功能界面,图中显示为成功取款图4-8 图为取款失败后的功能界面图4-9 图为转账功能界面,图中显示为转账成功后的界面图4-10 图为转账失败后的功能界面图4-11 图中所示为用户个人信息,包括用户姓名、身份证号、银行卡号以及存款余额4.7、退出系统图4-12图为选择序号后系统退出的页面第五章总结课程设计旨在锻炼学生的实际动手能力和解决真实问题的能力。

并在其中掌握和熟练所学的知识,并能够运用所学知识解决比较简单的现实模拟问题。

本次课程设计在老师的帮助和自己的努力下终于能够成功运行,使我感到非常高兴以及提高了自己的编程信心,虽然这次课程设计的题目实现比较简单和不实用但毕竟是自己将近两个星期的努力地结果。

在期间我对编程的理念理解又加深了一点,课程设计使我明白好的算法或者是好的逻辑思维对编程的重要性,在调试期间我自卑过、高兴过、平静过。

可以说是我经历了比较大的情感波动。

当费很大劲才把程序调运行的时候那种感觉实在是太好了。

在本次课程设计活动中,我明显的感觉到自己知识的欠缺和实际动手能的差劲。

尤其是在传值传参的函数调用时更体现的非常明显,感觉自己的书本学的不透、学的不扎实。

有些地方更本就不会,不如说文件的操作,比如说系统时间的获取等以前在上课或作习题时更本就不会考虑的问题在课程设计当中完全暴露出来。

通过本次试验,主要加深了对于友元函数,友元类使用的熟练程度。

程序功能相对比较简单,没有设计复杂的继承和重载函数,完成的比较轻松!参考文献[1]吴敏,杨国林.C++面向对象程序设计内蒙古大学出版社.[2]康晓林,汪涛.标准C++使用教程电子工业出版社附录以下是程序的源代码,并且加上了详细的注释://====hcsdkhfsk====#include"iostream"using namespace std;class consumer;class ATM // ATM取款机类{public:ATM(consumer& cn):cnsm(cn){j=true;}void welcome(); // 登陆界面bool check_passwd(char n[],char pwd[]);// 核对密码bool check_zhang(char num[]);//核对转入账号bool gua();//挂失void change_passwd(); // 修改密码void fetchmoney(); // 取款void zhuan();//转账void information(); // 查询信息void exitATM(); // 退出系统void functionshow(); // 功能界面void lock();//锁机private:bool j;int times; // 记录密码输入次数consumer& cnsm;};class consumer// 用户类{public:friend class ATM;consumer(char Name[],char Num[],char Id[20],float Money,char Password[]);protected:char* get_name(); // 取得姓名char* get_num(); // 取得卡号char* get_id();//取得身份证号char* get_passwd();// 取得密码float get_money(); // 取得余额void set_passwd(char pwd[]);// 设置密码void set_money(float m);// 取钱private:char passwd[8];// 用户密码char name[20]; // 用户姓名char id[20];//用户身份证号char num[20];//float money;//};consumer::consumer(char Name[],char Num[],char Id[20],float Money,char Password[]){strcpy(name,Name);strcpy(num,Num);strcpy(id,Id);money=Money;strcpy(passwd,Password);}float consumer::get_money(){return money;}char* consumer::get_name() // 对于数组的返回操作返回指针{return name;}char* consumer::get_num(){return num;}char* consumer::get_id(){return id;}char* consumer::get_passwd(){return passwd;}void consumer::set_money(float m){money-=m;}void consumer::set_passwd(char pwd[]){strcpy(passwd,pwd);}void ATM::welcome(){times=0;cout<<"欢迎使用银行ATM自动取款机"<<endl;char pwd[8],num1[20],ch;int i=0;do{i=0;cout<<endl<<"请输入卡号:";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<<"你输入的卡号或密码有误,请重新输入"<<endl;times++;}else{functionshow();}}while(times<3);lock();}bool ATM::check_passwd(char num[],char pwd[]){if(strcmp(num,cnsm.get_num())==0&&strcmp(pwd,cnsm.get_passwd())==0) return true;elsereturn false;}void ATM::functionshow(){int n;do{cout<<"本机可办理以下业务:"<<endl;cout<<"********************"<<endl;cout<<" "<<endl;cout<<"1>挂失"<<" "<<"2>修改密码"<<endl;cout<<" "<<endl;cout<<"3>取款"<<" "<<"4>转账"<<endl;cout<<" "<<endl;cout<<"5>查询余额"<<" "<<"6>退出系统"<<endl;cout<<" "<<endl;cout<<"********************"<<endl;cout<<endl<<"请您输入相应的操作序号进行操作:"<<endl;cin>>n;while(n<1||n>6){cout<<"请输入正确的操作序号!"<<endl;cin>>n;}switch(n){case 1: gua(); break;case 2: change_passwd(); break;case 3: fetchmoney(); break;case 4: zhuan(); break;case 5: information(); break;case 6: exitATM(); break;}}while(true);}bool ATM::gua(){char a;do{cout<<"是否确认挂失:(y/n) 继续请按y 退出请按n "<<endl;cin>>a;if(a=='y'){cout<<"您已挂失成功!"<<endl;exit(2);}else{cout<<"您已选择退出!"<<endl;}}while(a=='y');return j=true;}void ATM::change_passwd(){char pwd[8],repwd[8];times=0;do{cout<<endl<<"请输入旧密码:";cin>>pwd;if(!check_passwd(cnsm.get_num(),pwd))times++;elsebreak;}while(times<3);if(times==3)lock();int t=1;do{cout<<"请输入新密码:";cin>>pwd;cout<<"请再输入一次新密码:";cin>>repwd;t=strcmp(pwd,repwd); // 相同返回0;if(t!=0)cout<<"你输入的两次密码不一样,请重新输入!"<<endl;}while(t!=0);cnsm.set_passwd(pwd);cout<<"密码修改成功,请牢记!"<<endl;}void ATM::fetchmoney(){float m;char ch;do{cout<<endl<<"你要取多少钱:"<<endl; // 两种情况while(m<=0){cout<<"请输入正确的数字!"<<endl;cin>>m;}if(cnsm.get_money()-m<0){cout<<"对不起,你的余额不足!"<<endl;}else{cout<<endl<<"取款成功,请收好钱!"<<endl;cnsm.set_money(m);}cout<<"是否要继续取款:(y/n) "<<endl;cin>>ch;}while(ch=='y'||ch=='Y');}void ATM::zhuan(){char z[20];float num;cout<<"请输入所转账号:"<<endl;cin>>z;cout<<"请输入所转钱数:"<<endl;cnsm.money-=num;if(cnsm.money>0)cout<<"转账成功!"<<"您的余额:"<<cnsm.money<<endl;elsecout<<"余额不足!"<<endl;}void ATM::information(){cout<<"**********************************"<<endl;cout<<"* 用户姓名: "<<cnsm.get_name()<<endl;cout<<"* 身份证号: "<<cnsm.get_id()<<endl;cout<<"* 银行卡号: "<<cnsm.get_num()<<endl; //必须声明友元才能用cnsm调用其成员函数cout<<"* 存款余额: "<<cnsm.get_money()<<endl;cout<<"**********************************"<<endl;}void ATM::lock(){cout<<endl<<"对不起,由于你的操作有误,你的卡已经被没收! "<<endl;exit(1); // 系统非正常退出}void ATM::exitATM(){cout<<endl<<"感谢你对本银行的支持,欢迎下次光临!"<<endl;cout<<"请取卡……"<<endl;exit(0);}void main(){consumer c1("李四","3234","8080088",450.8,"123456");// 先构造一个用户ATM atm(c1);atm.welcome();}。

相关文档
最新文档