《C++语言基础》实践项目——银行储蓄系统开发

简介: 返回:贺老师课程教学链接教学目标通过完成一个有实用价值的应用程序,体会利用C++语言解决问题的过程;多次迭代,逐步完善,用可以运行的程序,鼓舞自己的学习实训安排  看视频“18 应用系统开发:银行储蓄系统”,并阅读博客中提供的参考解答,了解基本系统的开发。  基本要求:定义了用户类(User)和银行类(Bank),用成员函数实现各种功能,多文件组织程序,能用文本文

返回:贺老师课程教学链接


教学目标

  • 通过完成一个有实用价值的应用程序,体会利用C++语言解决问题的过程;
  • 多次迭代,逐步完善,用可以运行的程序,鼓舞自己的学习

实训安排

  看视频“18 应用系统开发:银行储蓄系统”,并阅读博客中提供的参考解答,了解基本系统的开发。

  基本要求:定义了用户类(User)和银行类(Bank),用成员函数实现各种功能,多文件组织程序,能用文本文件存取数据(如示例中给出的技术);

  拓展方向:

序号

加分项目

细       则

1

改变Bank类中用户信息的存储方式

用对象的指针数组存储(User *user[upNum])

或者用动态数组(User *users,空间用new分配)

2

功能扩充

按银行实际业务的要求,增加User类中的数据成员,能够记录身份证号、家庭住址等信息,并在相关业务中使用这些数据。

记录用户的每一笔业务,并用文件保存。业务查询时,可以查到这些信息。

根据业务发生情况,实现计息功能(百度活期存储计算办法)

3

用链表存储

用链表存储用户信息

使用了继承机制

链表定义成模板类,数据结点(即结点的实际类型)为User

4

用文件存储数据

用二进制文件

用随机存储的方式

5

图形用户界面实现

MFCwxWidgetsQt

6

“银行储蓄系统”之外的题目

使用后面建议的其他项目,或者自拟的题目,业务内容基本与银行储蓄系统相当时。鼓励同学们自拟题目,实现个性化的实践体验。


实践题目(选其一即可)

【项目1-银行储蓄系统】

  见本文下一节项目指导。项目1为基本系统,完成后可达到及格标准。

【项目2-银行储蓄系统(自助式)】

  项目1中模拟了银行的柜台业务,需要有业务人员为储户办理业务。项目2中,将存款、取款、转帐、查询、挂失、改密功能由客户自助完成,其他功能仍由柜台完成。

   与项目1相比,存款、取款、转帐、查询、挂失、改密功能的实现,将由使用Bank类的成员函数,改为由User类的成员函数完成,从文件中读取数据的任务,也将不能在进入系统时,整体读入,而只能在办理业务时,从文件中找到用户数据并操作(实际行系统,使用这些数据,有严格的权限要求)。

【项目3-职工信息管理系统】

  职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。设计一个职工信息管理系统,使之能提供以下功能:

1)系统以菜单方式工作

2)职工信息录入功能(职工信息用文件保存)--输入

3)职工信息浏览功能--输出,包括在退出系统时,将数据保存到文件

4)查询和排序功能:

  •    按工资查询
  •    按学历查询等

5)职工信息删除、修改功能(任选项)

【项目4-图书信息管理系统设计】

  图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一个图书信息管理系统,使之能提供以下功能:

1)系统以菜单方式工作

2)图书信息录入功能(图书信息用文件保存)--输入

3)图书信息浏览功能--输出

4)查询和排序功能:(至少一种查询方式)--算法

  •    按书名查询
  •    按作者名查询

5)图书信息的删除与修改(可选项)

【项目5-学生信息管理系统设计】

  学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:

1)系统以菜单方式工作

2)学生信息录入功能(学生信息用文件保存

3)学生信息浏览功能---输出

4)查询、排序功能

  •      按学号查询
  •      按姓名查询

5)学生信息的删除与修改

【项目6-销售管理系统】

  某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:

1)销售员的代号

2)产品的代号 

3)这种产品的当天的销售额 

  每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。

1)计算上个月每个人每种产品的销售额。

2)按销售额对销售员进行排序,输出排序结果(销售员代号)

3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)

4)输出统计报表

【项目7-通讯录管理】

  联系人信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。

1)能建立、修改和增删学生通讯录

2)能够按多种方式进行查询

【项目8-大奖赛计分系统】

  逐渐拓展为一个接近实用的系统:

1)输入选手人数m和评委人数n,由键盘输入数据,显示选手的得分。输入中需要保证得分在0-10之间,选手的得分是去掉一个最高分和最低分后的平均成绩。

2)在一些评委数很多的比赛中,可能不止去掉一位最高或最低,由键盘输入要去掉的最值数目s,请改造程序,实现计分。

3)评委打分范围可以设置,如010分、百分制等,请改造程序。

4)得出的分数并不是只显示就行了,还能够随时动态显示排名。

5)将本次大奖赛的成绩,保存到一个文件中。

6)上面的程序中,在输入选手成绩之前,要“设置”的参数不少,包括mns,以及分数范围等。将这些参数也保存到一个文件中,运行程序时,直接从文件中读取即完成设置。当然,也应该设计修改设置的功能,将修改后的值保存到文件。

7)在计分中,可能会出现输入错误,请提供改分功能。

  你还想到了其他什么功能?请继续加入。

【项目n-其他】

  你还想到了哪些题目(包括游戏)?只要用得上相关的技术,鼓励自拟。为防止最后验收时才发现设计不合理,请提前与老师讨论。

银行储蓄系统指导

  该银行储蓄系统的目标,将是设计一个可以支持多名储户开户、存款、取款、转帐、改密、挂失、解挂、销户等功能的系统,以此初步体会完整系统开发,综合运用已经学过的知识。

  以下提示中,给出了多个层次的需要,可以先保证最基本、最简单功能的实现,迭代式地完善,实现“改进意见”中的要求。

  按照模块化程序设计要求,充分利用函数实现功能。不赞成写很长的函数,提倡用多文件组织。

功能

图       示

说明和提示

登录


  输入业务员用户名和密码。3次输入不正确,强制退出程序。

基本要求

  可以只设一名业务员,用全局变量表示其用户名和密码,明文保存在文件中(即不加密存储)。

改进意见

  可以用一个文本文件保存多名业务员的信息。定义类表示业务员,在程序开始执行时,将文件内容读入业务员对象数组,以支持多名业务员登录,开展工作。

系统菜单

  当业务员信息验证后,进入到系统主控菜单,由业务员为储户办理各种业务,直到按0后退出。

基本要求

  每次启动系统,都是从0用户开始办理业务

改进意见

  储户的信息都保存在文件中,在处理业务前需要将信息读入。

开户

  增加一个银行账户(银行卡)

  系统是暂设最多支持2000账户。设现在已经有100名客户,新增客户的账号为10001+100=10101,这样,自动生成连续的账号。

开户后,账号状态为0-正常

销户

  输入账号,确认后,将余额全部取完,并将状态state置为2-销户。

  办理销户的账号,其状态必须为“0-正常”(下同)。

存款

  输入账号、金额,记录存款后的余额。

取款

  输入账号、金额,记录取款后的余额。

  取款额不能超过余额。

查询

  输入账号,显示账户信息。

转账

  输入转出账号、金额、转入账户,记录转账后的余额。

  账户必须存在,扣除转出账户的金额,要与转入账户增加的金额相同。

挂失

  输入账号,将状态改变为 1-挂失

解挂

  输入账号,将状态为 1-挂失 的账户状态改为 0-正常

改密

  用新密码替代旧密码。

  新密码必须与确认密码相同。

计算利息

(这属于银行后台管理的功能,不体现在界面上,以上的设计尚不能支持真实系统中的计息功能,故将此作为选做功能。)

  现行银行计息的规则是,每半年计算一次利息,并将利息加到账号余额中。

  如果要计算利息,需要将每一笔存、取、转的信息记录下来,以获得各个时间段内的金额,完成利息计算。

  请自行设计有关的数据结构完成设计



目录
相关文章
|
16天前
|
C++
C++代码的可读性与可维护性:技术探讨与实践
C++代码的可读性与可维护性:技术探讨与实践
18 1
|
27天前
|
存储 C++
C++程序数组与指针:深入理解与实践
C++程序数组与指针:深入理解与实践
26 1
|
27天前
|
存储 算法 C++
C++程序一维数组:深入理解与实践
C++程序一维数组:深入理解与实践
24 1
|
27天前
|
存储 C++
C++程序指针变量:深入理解与实践
C++程序指针变量:深入理解与实践
22 1
|
5天前
|
存储 算法 安全
用C++打造极致高效的框架:技术探索与实践
本文探讨了如何使用C++构建高性能框架。C++凭借其高性能、灵活性和跨平台性成为框架开发的理想选择。关键技术和实践包括:内存管理优化(如智能指针和自定义内存池)、并发编程(利用C++的并发工具)、模板与泛型编程以提高代码复用性,以及性能分析和优化。在实践中,应注意代码简洁性、遵循最佳实践、错误处理和充分测试。随着技术发展,不断提升对框架性能的要求,持续学习是提升C++框架开发能力的关键。
14 1
|
9天前
|
C++
C++程序设计实践一下(题目来自杭州电子科技大学ACM)
C++程序设计实践一下(题目来自杭州电子科技大学ACM)
12 1
|
9天前
|
C++
C++程序设计实践一上(题目来自杭州电子科技大学ACM)
C++程序设计实践一上(题目来自杭州电子科技大学ACM)
8 2
|
23天前
|
安全 算法 程序员
探索C++的魅力:语言特性、编程实践及代码示例
C++是广泛应用的编程语言,尤其在系统级编程、应用开发、游戏和嵌入式系统中广泛使用。其主要特性包括:面向对象编程(封装、继承、多态),泛型编程(通过模板实现代码复用和类型安全),以及丰富的标准库和第三方库。在编程实践中,需注意内存管理、异常处理和性能优化。示例代码展示了面向对象和泛型编程,如类的继承和泛型函数的使用。C++的内存管理和库支持使其在解决复杂问题时具有高效和灵活性。
|
23天前
|
程序员 编译器 C++
C++中的异常处理:技术详解与实践
C++中的异常处理:技术详解与实践
|
23天前
|
存储 算法 搜索推荐
C++编程之旅:深入理解与实践
**C++编程基础概览** C++是一种高效、灵活且功能强大的编程语言,适用于操作系统、游戏开发、网络编程等领域。它支持过程化、面向对象和泛型编程,包含丰富的数据类型、运算符、控制结构,并提供类、对象、继承等面向对象特性。C++标准模板库(STL)提供了向量、列表等数据结构和排序算法,便于开发。通过异常处理机制,C++能有效管理运行时错误。学习C++涉及深入理解其语法、数据类型、函数、面向对象概念以及如何利用STL来编写高效代码。

热门文章

最新文章