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

课程主页在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菜鸟起飞铺跑道,和学生一起享受快乐和激情的大学 =====
时间: 2024-11-05 12:09:05

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

c++-关于《C++程序设计原理与实践》第3章例子的一个问题

问题描述 关于<C++程序设计原理与实践>第3章例子的一个问题 本人菜鸟,现正在学习C++.<C++程序设计原理与实践>第3章有一个例子,代码如下: #include #include #include #include #include using namespace std; inline void keep_window_open(){ char ch; cin >> ch; } int main() //C++ Programs start by executi

源代码-C++程序设计原理与实践

问题描述 C++程序设计原理与实践 #include "std_lib_facilities.h" int main() { cout<<"Hello,world!n"; return 0; } 我下了源代码,放到那里才能猜VC98编译时不出错?最好详细点,带有图解 解决方案 ...大哥,都什么年代了还用98

《C++程序设计入门同步实践宝典 》可以下载了

<C++程序设计入门同步实践宝典>可以告一段落了.这是假期计划之外的事情,不小心又花了近二十天的时间,其他计划中的事情得一一落实了.将此版定为0.5版,以后还会有不小的改动. 下载地址:http://download.csdn.net/detail/sxhelijian/4482514 下载需要资源分5分,以对自己辛苦一番有所表示.常在CSDN泡的同学,也应该分享些你的原创挣点积分了.缺少积分的穷孩子,也可以给我留言,提供Email寄过去. 发个封皮: 有人提出上目录,好主意: 完工后写的前言

2014秋C++ 第8周项目 分支程序设计

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看. 阅读并验证 阅读下面的两段程序,用"人脑"运行写出输出结果,再在计算机或手机上运行程序,对比自己写出的结果,进行反思.1.#include <iostream>using namespace std;int main(){    int a=1,b=2,c=3;

2014秋C++ 第9周项目 循环程序设计

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看. 阅读程序 程序分析题,阅读下列程序,写出程序的运行结果,建议在上机时进行验证(云学堂将给出代码,直接复制到C4droid或CodeBlocks中运行即可),如果与自己的预期有出入,尤其注意对照找出问题. 读这些小程序,可以见识不少处理技巧.读程序,也是一种非常非常重要的学习方式,应该给予重视!

2014秋C++ 第5周项目 初识C++

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看. [项目1-见识初学者常见错误]下面是最经典和最简单的C++程序.在ideone.com中运行程序,并在能正确运行的程序基础上,"捣乱"制造些错误,对此进行观察.经验是从错误中得来的,这个项目就是要让大家积累这一类经验. #include <iostream> u

2014秋C++ 第7周项目 数据类型和表达式

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看. [项目1-编辑.编译.运行第一个程序]请编程序解决下面的问题:输入两个电阻r1和r2的阻值,计算并输出它们串联后的阻值r(设电阻值均为整数).分析:r=r1+r2,根据题意需要声明3个变量r.r1和r2,类型是整型(int).程序流程图如图,据此可以写出程序. 步骤:(1)打开CodeBloc

2014秋C++ 第13周项目 C++中的一维数组

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  [项目1 - 数组大折腾](1)创建一个有20个元素的整型数组,通过初始化,为数组中的前10个元素赋初值,然后通过键盘输入后10个元素的值,从前往后(从第0个到第19个)输出数组中元素的值,每5个元素换一行. int main( ) { int a[20]={...}; //初始化前10个元

2014秋C++第13周项目2参考-成绩处理

课程主页在http://blog.csdn.net/sxhelijian/article/details/39152703,课程资源在云学堂"贺老师课堂"同步展示,使用的帐号请到课程主页中查看.  [项目2- 成绩处理]在数组score中将要存储某小组C++程序设计的成绩,请设计实现下面的各功能函数,并在main函数中调用,组合成一个完整的应用:(1)输入小组人数及成绩,要保证成绩在0-100之间:(2)输出该小组的最高成绩.最低成绩.平均成绩:(3)输出考得最高成绩和最低成绩的同学的