2014秋C++ 学术休假期间程序设计自主学习及实践方案

简介: 课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂“贺老师课堂”同步展示,使用的帐号请到课程主页中查看。 说明  关于大学的寒假和暑假,另外一种说法称之为“学术休假”,这是一段师生各自可以自主安排工作的时间。  大学的生活,绝不是大家都照着同样的课表,听完课考完试,得到一个及格的分数就可以了。在这一段
课程主页在 http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在 云学堂“贺老师课堂”同步展示,使用的帐号请到课程主页中查看。 


说明

  关于大学的寒假和暑假,另外一种说法称之为“学术休假”,这是一段师生各自可以自主安排工作的时间。
  大学的生活,绝不是大家都照着同样的课表,听完课考完试,得到一个及格的分数就可以了。在这一段人生中最灿烂的时间里,利用学术休假,做好安排,让自己个性化发展,要为学识和人生的自由发展,争取更多的发言权。
  学术休假期间的放松是需要的,另外还可以:

  • 补足课程学习中的欠账:适用于整个学期的学习一直被动的同学。对C++,可以考虑将没有完成的实践完成,以及做过没有感觉的实践项目再做一遍。即使考试通过了,这样的工作仍然有意义。
  • 开阔视野:在寒假,更适合读几本好书,以此丰富自己的头脑。和行业、专业相关的,推荐《浪潮之巅》和《程序开发心理学》,了解计算机,可看《大话处理器》,在我们的QQ群,我还分享过其他书。图书馆的书开学后两周还上不算超期,可以自行选择。拓展视野的另一种方式是行万里路,建议暑假实施。
  • 拓展能力:利用已经学的知识,做点项目(如组织一个游戏开发体验团队,或本文后面建议的项目),自学些新的技能(如开始自学网页制作、图形编辑等,是大一学生合适的内容),提升自己的能力(如选择一个合适的OJ平台,刷上几十道题)。
  • 其他基础性的学习提升:例如英语,每天坚持读一些,让自己能开口说英语。
  休假期间需要“兄弟们”的时候,就在群里吱一声。分开了,这个群的价值更大了。
  学术休假期是一个自主的时间段,如何度过,你说了算。相信大家都会有适合自己的安排。

学术休假期的项目建议

  攻略:可以按着项目1的指导,完成银行储蓄系统的开发,也可以在阅读指导文档之后,自行选择其他的项目中的一个进行体验。
  不必贪多,做一个足矣。也可以约几位兄弟一起完成。

【项目1-银行储蓄系统】
  见本文下一节项目指导。

【项目2-职工信息管理系统】
  职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。设计一个职工信息管理系统,使之能提供以下功能:
(1)系统以菜单方式工作
(2)职工信息录入功能(职工信息用文件保存)--输入
(3)职工信息浏览功能--输出,包括在退出系统时,将数据保存到文件
(4)查询和排序功能:
   按工资查询
   按学历查询等
(5)职工信息删除、修改功能(任选项)

【项目3-图书信息管理系统设计】
  图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一个图书信息管理系统,使之能提供以下功能:
(1)系统以菜单方式工作
(2)图书信息录入功能(图书信息用文件保存)--输入
(3)图书信息浏览功能--输出
(4)查询和排序功能:(至少一种查询方式)--算法
   按书名查询
   按作者名查询
(5)图书信息的删除与修改(可选项)

【项目4-学生信息管理系统设计】
  学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:
(1)系统以菜单方式工作
(2)学生信息录入功能(学生信息用文件保存)---输入
(3)学生信息浏览功能---输出
(4)查询、排序功能
     按学号查询
     按姓名查询
(5)学生信息的删除与修改(可选项)

【项目5-销售管理系统】
某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:
1)销售员的代号
2)产品的代号 
3)这种产品的当天的销售额 
每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。
1)计算上个月每个人每种产品的销售额。
2)按销售额对销售员进行排序,输出排序结果(销售员代号)
3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)
4)输出统计报表

【项目6-通讯录管理】
联系人信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
(1)能建立、修改和增删学生通讯录
(2)能够按多种方式进行查询

【项目7-大奖赛计分系统】
延续学期中做过的题目,逐渐拓展为一个接近实用的系统:
(1)输入选手人数m和评委人数n,由键盘输入数据,显示选手的得分。输入中需要保证得分在0-10之间,选手的得分是去掉一个最高分和最低分后的平均成绩。
(2)在一些评委数很多的比赛中,可能不止去掉一位最高或最低,由键盘输入要去掉的最值数目s,请改造程序,实现计分。
(3)评委打分范围可以设置,如0~10分、百分制等,请改造程序。
(4)得出的分数并不是只显示就行了,还能够随时动态显示排名。
(5)将本次大奖赛的成绩,保存到一个文件中。
(6)上面的程序中,在输入选手成绩之前,要“设置”的参数不少,包括m、n、s,以及分数范围等。将这些参数也保存到一个文件中,运行程序时,直接从文件中读取即完成设置。当然,也应该设计修改设置的功能,将修改后的值保存到文件。
(7)在计分中,可能会出现输入错误,请提供改分功能。
你还想到了其他什么功能?请继续加入。



银行储蓄系统指导

  该银行储蓄系统的目标,将是设计一个可以支持多名储户开户、存款、取款、转帐、改密、挂失、解挂、销户等功能的系统,以此初步体会完整系统开发,综合运用已经学过的知识。
  以下提示中,给出了多个层次的需要,可以先保证最基本、最简单功能的实现,迭代式地完善,实现“改进意见”中的要求。
  按照模块化程序设计要求,充分利用函数实现功能。不赞成写很长的函数,提倡用多文件组织。

功能

图       示

说明和提示

登录

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

基本要求

  可以只设一名业务员,用全局变量表示其用户名和密码,写在程序中。

改进意见

  可以用一个文本文件保存多名业务员的信息。定义结构体表示业务员,定义该种类型的结构体数据,在程序开始执行时,读入业务员信息,以支持多名业务员登录。

  用文件保存密码时,一般不用“明文”,而要加密处理。

系统菜单

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

基本要求

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

改进意见

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

开户


账号由系统自动分配

确认密码和密码不同时要拒绝。

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

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

  银行账户如下定义:

struct Account

{

    long accNumber;//卡号

    string accName;//户主

    string password;//密码

    double balance;//余额

    string identity;//身份证号

    int state;//状态 0:正常 -1:挂失 2:销户

};

  设全局变量Number,表示第一张卡号

long Number=10001;

  在开户时,新增账户的卡号,即为Number,并更改该值,以使下一个账户获得连续值。

基本要求

  设银行只支持2000个账户,用下面的数组存储用户的信息

Account array[2000];

改进意见

1、要求密码是6位数字字符,身份证号由18位数字字符构成,身份证号最后一位可以是x

2、用静态数组太浪费空间,改用动态数组

3、将用户信息改为链表,是更合适的做法

4、关闭程序前,将数据写入文件,银行的业务信息得以保存。开始运行程序时,再将文件中的数据读入。保存密码时,可以考虑加密。

5、新增账户的卡号,也可以保存在专门文件中。

6、账户状态state可以定义为枚举型。

销户

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

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

存款

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

取款

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

  取款额不能超过余额。

查询

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

转账

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

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

挂失

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

解挂

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

改密

  用新密码替代旧密码。

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

计算利息

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

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

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

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





=================== 迂者 贺利坚 CSDN博客专栏=================
 |== IT学子成长指导专栏 专栏文章的分类目录(不定期更新) ==|
 |== C++ 课堂在线专栏  贺利坚课程教学链接(分课程年级) ==| 
|== 我写的书——《逆袭大学——传给IT学子的正能量》    ==|
 ===== 为IT菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =====
目录
相关文章
|
10天前
|
存储 C++ 容器
C++STL(标准模板库)处理学习应用案例
【4月更文挑战第8天】使用C++ STL,通过`std:vector`存储整数数组 `{5, 3, 1, 4, 2}`,然后利用`std::sort`进行排序,输出排序后序列:`std:vector<int> numbers; numbers = {5, 3, 1, 4, 2}; std:sort(numbers.begin(), numbers.end()); for (int number : numbers) { std::cout << number << " "; }`
17 2
|
21天前
|
存储 安全 编译器
C++学习过程中的一些值得注意的小点(1)
C++学习过程中的一些值得注意的小点(1)
|
21天前
|
存储 算法 数据库
【C++ 软件设计思路】学习C++中如何生成唯一标识符:从UUID到自定义规则
【C++ 软件设计思路】学习C++中如何生成唯一标识符:从UUID到自定义规则
103 0
|
23天前
|
存储 C++ 容器
学会在 C++ 中使用变量:从定义到实践
C++中的变量是数据容器,包括`int`、`double`、`char`、`string`和`bool`等类型。声明变量时指定类型和名称,如`int myNum = 15;`。`cout`与`&lt;&lt;`用于显示变量值。常量用`const`声明,值不可变。变量名应唯一,遵循特定命名规则,常量声明时需立即赋值。
111 1
|
23天前
|
存储 算法 编译器
【C++ 字符数组的模板特化】面向字符串的C++模板特化:理解与实践
【C++ 字符数组的模板特化】面向字符串的C++模板特化:理解与实践
47 1
|
23天前
|
算法 程序员 C语言
【C++ 随机数分布类型 】深入探索C++随机数分布:原理、应用与实践(二)
【C++ 随机数分布类型 】深入探索C++随机数分布:原理、应用与实践
54 0
【C++ 随机数分布类型 】深入探索C++随机数分布:原理、应用与实践(二)
|
24天前
|
算法 Java 编译器
【C++ 14新特性 】C++14 数字分隔符:深入理解与实践
【C++ 14新特性 】C++14 数字分隔符:深入理解与实践
52 2
|
23天前
|
存储 安全 编译器
【C++ 17 新功能 std::visit 】深入解析 C++17 中的 std::visit:从原理到实践
【C++ 17 新功能 std::visit 】深入解析 C++17 中的 std::visit:从原理到实践
69 0
|
27天前
|
编译器 测试技术 C++
【Python 基础教程 01 全面介绍】 Python编程基础全攻略:一文掌握Python语法精髓,从C/C++ 角度学习Python的差异
【Python 基础教程 01 全面介绍】 Python编程基础全攻略:一文掌握Python语法精髓,从C/C++ 角度学习Python的差异
157 0
|
24天前
|
算法 网络协议 编译器
【C++ 14 新特性】C++14二进制字面量:深度探索与实践
【C++ 14 新特性】C++14二进制字面量:深度探索与实践
37 1

热门文章

最新文章