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