资源描述
C++课程设计任务书
指引时间:上学期
指引教师:邹汉斌
一、课程设计目:
通过 C++课程设计,使学生能将学到面向对象程序设计思想用到详细工作和学习中,加深对类与对象理解,是将计算机课程与实际问题相联接核心环节。通过课程设计,可以提高学生分析问题、解决问题,从而运用所学知识解决实际问题能力,因而必要予以足够注重。
二、课程设计规定
1.明确课设任务,复习与查阅关于资料
2.按规定完毕课设内容,课设报告规定文字和图工整、思路清晰、对的。
3.四至五名同窗分为一组,完毕一种应用问题程序编写工作。
4.相应用程序规定:
(1)凡等待顾客输入时,给出足够提示信息,如“请选取(1 借书 2 还书……):”提示顾客选取。
(2)程序具备一定健壮性,不会由于顾客输入错误引起程序运营错误而中断执行。对输入值类型、大小范畴、字符串长度等,进行对的性检查,对不合法输入值给出出错信息,指出错误类型,等待重新输入 。
(3)对删除数据应给出警告。
三、课程设计环节与办法
1.需求分析:对顾客提出问题提出解决办法和思路。
2.依照需求,设计系统功能模块,并设计相应类和界面。
3.依照基本思路,拟定输入和输出,设计程序算法。
4.拟定用到所有类描述和定义,并设计测试程序来对类进行测试。
6.在计算机上编译程序,检查程序可运营性。
7.编写C++课程设计报告。
课程设计报告内容
写设计报告(规定正规打印,A4幅面),内容涉及:
题目
系统功能模块构造图
数据构造设计及用法阐明
程序构造(画流程图)
各模块功能
实验成果(涉及输入数据和输出成果)
体会
参照文献
附录:源程序清单
四、课程设计题目及分组:
题目1:一种简朴商品管理系统
1.课题功能描述
编写一种简朴商品信息管理程序,重要完毕商品信息录入、排序、查询和显示等功能。2. 问题详细描述
某超市电器区每种商品涉及如下信息:商品代码(整型),商品名称(字符串),商品数量(整型),单价(双精度),销售量(整型),库存量(=商品数量-销售量,整型), 规定编写各种函数分别实现下列功能,而后在main函数中进行调用。
(1) 录入商品信息:从键盘输入这些商品代码,名称,数量,单价,销售量信息,而后自动计算其库存量。
(2) 查询满足条件商品信息:查询1:按商品代码查询顾客指定商品信息。在主函数中给出查询成果,若找到则输出该商品信息,如找不到,则给出相应提示信息,而后可多次查询也可退出程序运营。查询2:按库存量进行查询顾客指定商品信息。查询成果解决同查询。(还可以扩充)
(3)修改商品信息:一方面查询到需要修改商品,然后修改保存。
(4)删除商品信息:一方面查询到需要删除商品,然后删除。
(5) 按需求对商品信息排序:排序1:将商品按照商品库存量进行升序排序,若库存量相似则按照销售量升序排序。 排序2:将商品按照代码进行升序排序。
(6) 显示所有商品信息:输出某个商品信息。
(7) 程序运营结束:
****电器超市简朴商品管理系统
*************************************
1.录入商品信息,请选取:1
2. 查询商品信息,请选取:2
3.修改商品信息,请选取:3
4.删除商品信息,请选取:4
5.商品信息排序,请选取:5
6. 显示所有商品信息,请选取:5
7. 结束程序,请选取:7
*************************************
请选取:(顾客可依照菜单项进行选取)
题目2:简朴通信录系统设计
通信录人员信息至少涉及姓名、性别、电话、地址、邮政编码、邮箱、QQ号码和类别(例如:同窗、朋友等)
详细功能:
1. 输入人员信息功能
2. 查询人员信息功能
1)可以依照姓名、电话精准查询人员信息
2)可以依照地址进行模糊查询人员信息
3. 依照姓名对人员信息排序输出信息;
4. 依照姓名、电话修改人员信息;
5. 依照姓名、电话删除人员信息;
6、显示所有人员信息
题目3:高校教师工作量记录系统
计算每个教师在一种学期中所教课程总工作量。(教师单个教学任务信息为:教师号、姓名、性别、职称、认教课程、班级、班级数目、理论学时、实验学时、单个教学任务总学时)
功能规定 :
A、教师信息解决
(1) 输入教师授课教学信息,涉及教师号、姓名、性别、职称、任教课程、班级、班级数目、理论学时、实验学时。
(2) 插入(修改)教师授课教学信息:
(3) 删除教师授课教学信息:
(4) 浏览教师授课教学信息:
B、教师工作量数据解决:
(1) 计算单个教学任务总学时。计算原则如下表:
班级数目
单个教学任务总学时
2
1.5*(理论学时+实验学时)
3
2*(理论学时+实验学时)
>=4
2.5*(理论学时+实验学时)
(2) 计算一种教师一种学期总教学工作量。总教学工作量=所有单个教学任务总学时之和。
(3)教师数据查询:
提示:输入教师号或其她信息,即读出所有数据信息,并显示出来。
C、教师综合信息输出(提示:输出教师信息到屏幕。)
题目4: 学生成绩记录管理系统
功能规定 :
1、 各种基本数据录入。如:学生基本信息:如学号、姓名、性别、年龄、宿舍号码、电话号码、班级等; 学生各科课程成绩:语文成绩,数学成绩,外语成绩,数据库成绩等。
2、各种基本数据修改。即:容许对以及录入数据重新进行编辑、修改。
3、各种基本数据插入。如:在学生选修课程基本信息中插入一条新信息等。
4、各种基本数据删除。如:假设某同窗转学或出国深造,删除该生有关信息;
5、基于各种数据查询。如:查询某班学生信息,查询某学生成绩等。
6、基于各种基本数据记录计算。如:A记录每个学生各门功课平均成绩,并按平均成绩从高到低顺序排名输出每个学生各门功课综合成绩和平均成绩(名次、学号、姓名、平均成绩、各门功课考试成绩、平时成绩、综合成绩);B记录并输出各班各门功课平均成绩和总平均成绩;列出不及格学生清单(学号、姓名、不及格课程和成绩)。
7、退出系统
题目5: 小型公司工资管理系统
功能规定
1)公司重要有4类人员:经理、技术员、销售员、销售经理。规定存储这些人职工号、姓名、月工资、岗位、年龄、性别等信息。其中
(1)职工编号在输入人员信息时生成,每输入一种人员信息编号顺序加1。
(2)程序对所有人员有提高级别功能。
(3)可以按照不同身份进行月薪计算。
(4)能按姓名或者编号查找各类人员信息。
(5)可以修改/删除各类人员信息。
(6)可以显示所有人员信息。
2)工资计算办法:
经理:固定月薪为8000;
技术员:工作时间*小时工资(100元每小时);
销售员:销售额*4%提成;
销售经理:底薪(5000)+所辖部门销售额总额*0.5%;
3)类层次构造大体如下:
雇员类
技术员类
经理类
销售员类
销售经理类
题目6: 高校人事管理系统
详细设计规定求实现如下功能:
(1)建立人员信息数据,涉及编号、姓名、性别、出生时间、岗位(部门)、参加工作时间和年龄(必要通过计算得到)等等其她信息;
(2)依照人员信息表,建立只具有姓名和年龄信息简表(可选功能);
(3)对所选人员信息按需求进行排序(如编号排序,按年龄排序等等)
(4)规定对“<<”和“>>”运算符进行重载。考虑到输入人员编号时,也会因不小心引入空格,并且名字中也需要有空格,因此重载”>>”运算符时,需要满足这个规定;
(5)检索(查找)指定信息(如显示所有人员信息、按姓名检索、按年龄检索、按部门检索等等);
(6)对人员信息进行记录:(对各个年龄段人数进行记录、计算人员平均年龄,对各个部门人数进行记录等)
参照系统界面如下:
1-增长一位人员信息记录
2-检索(查找)指定人员信息记录
3-修改指定人员信息记录
4-删除指定人员信息记录
5-对指定人员信息进行排序
6-对人员信息进行记录
7-结束程序运营 。
题目7: 学校运动会管理系统设计
本课程设计项目重要是模仿解决一场运动会举办时,如何查询、管理比赛项目(含时间、地点、选手等信息)和选手信息(含参加比赛项目、成绩、名次等信息)。而在此管理系统 中,一种比赛项目有多名运动员参赛,而同一运营员可参加各种比赛项目。
项目应包括如下功能:
1、 各种基本数据录入。如:比赛项目信息:涉及比赛项目编号、名称、比赛时间、比赛地点等;运动员信息:涉及运动员编号、姓名、性别、年龄、工作单位或省份;比赛赛事信息:某运动员参加某比赛项目,成绩、名次。
2、各种基本数据修改。即:容许对以及录入数据重新进行编辑、修改。
3、各种基本数据插入。如:在学生选修课程基本信息中插入一条新信息等。
4、各种基本数据删除。如:假设某项目取消或某运动员因某种因素能参加比赛,删除该有关信息;
5、基于各种数据查询。如:查询某场比赛运动员信息,查询某运动员参加比赛等。
6、基于各种基本数据记录计算。如:A记录每场比赛名次等等。
7、退出系统
题目8: 学生选修课程系统设计
假定有n门课程,每门课程有课程编号、课程名称、课程性质、总学时、授课学时、实验学时、学分、开课学期等信息。学生可以按规定(如每个学生总学分不得少于20、没学期不能超过3门课程,每门课程不得超过50个人,但不能少于10否则该课程不开设)自由选课。使之能提供某些功能:
1、 课程信息录入功能
2、 课程信息浏览功能
3、 查询功能:(按课程性质查询、按课程学分查询,查询每个学生选修信息、查询每门课程选修信息等)
4、 学生选修课程
5、修改课程或选课信息(依照课程编号或名称修改课程信息、依照学生姓名修改选课信息);
6、删除课程或选课信息(依照课程编号或名称删除课程信息、依照学生姓名删除选课信息);
题目9:学生通讯录管理系统
使用面向对象办法编写一种程序,实当前如下菜单中,输入数字序号,执行相应功能。
基本规定:
(1) 学生信息涉及:学号,姓名,所在专业和年级、性别,出生年月,手机,QQ、家庭住址等
(2) 查询学生时,可以按照学号或姓名完毕查询
(3) 修改或删除学生时,可按照学号或姓名找到学生后完毕相应修改
(4) 显示学生信息时,规定可以按照学号或姓名升序或降序分别进行显示
(5) 该系统首页信息如下
学生通讯录管理系统
请选取要进行操作:
1. 添加新学生信息
2. 查询学生信息
3. 修改学生信息
4. 删除学生信息
5. 显示通讯录中所有信息
6. 退出系统
题目10:学生成绩记录系统
使用面向对象办法编写一种程序,实当前如下菜单中,输入数字序号,执行相应功能。
基本规定
(1) 选取课程,输入学生人数,以及本课程所有学生成绩
(2) 记录本课程总成绩,平均成绩,最高成绩,最低成绩。
(3) 将所有学生成绩以及记录各项成果,以和谐界面形式显示。
(4) 下列菜单所给课程只作为参照,可以依照自己实际状况设计课程名称。
学生成绩管理系统
请选取课程:
1. C++程序设计
2. 图形图像解决
3. 英语
4. 计算机导论
5. 高等数学
6. 退出系统
学生成绩管理系统
所选课程:C++程序设计
1. 输入学生人数及成绩
2. 成绩记录
3. 显示记录成果
4. 返回
题11:学生信息管理系统
使用面向对象办法编写一种程序,实当前如下菜单中,输入数字序号,执行相应功能。
基本规定
(1) 学生信息涉及:学号、姓名、专业及年级、若干门课程、总成绩、平均成绩
(2) 查询学生时,可以按照学号或姓名完毕查询
(3) 修改或删除学生信息时,可按照学号或姓名找到学生后完毕相应修改或删除。
学生成绩管理系统
请选取要进行操作:
1. 输入学生信息
2. 查询学生信息
3. 修改学生信息
4. 计算每位学生各门课程总成绩和平均成绩
5. 显示每位学生所有信息
6. 退出系统
题目12:大数计算问题
大数是超过整数表达范畴整数,针对正整数运算,定义一种大数类,并编写两个大数类对象加法和减法函数。
基本规定:
(1) 编写大数类对象构造函数和输入输出函数
(2) 编写大数类对象加法和减法运算函数
(3) 设计主函数时,可指定测试数据。
题目13:外币兑换系统
使用面向对象办法编写一种程序,实当前如下菜单中,输入数字序号,执行相应功能。
基本规定:
(1) 在下列菜单中选取对换方式,在接下来下级菜单中选取币种,然后在随后弹出菜单中输入要兑换货币数额和汇率,完毕转换操作。
(2) 兑换时,可在中华人民共和国银行网站查找汇率中间价。
(3) 可按照如下菜单提示设计程序。
外币兑换系统
请选取:
1. 外币对换人民币
2. 人民币兑换外币
3. 退出系统
外币兑换系统
你选取是:外币对换人民币
请选取币种:
1. 英镑
2. 欧元
3. 日元
4. 瑞士法郎
5. 加拿大元
6. 美元
7. 港元
8. 澳元
9. ........
10. 返回
外币兑换系统
你选取是:英镑
1. 输入汇率中间价和所换金额
2. 显示兑换成果
3. 返回
题目14:简朴计算器
设计一基于Windows应用程序,使其能完毕简朴计算功能。
计算功能涉及:加、减、乘、除、求余数、求阶乘、指数运算、
程序界面自己设计
题目15:单选题评判
设计一基于Windows应用程序,使其能对单选题进行评判。可按照下列形式设计,题目不少于5个题,选取题自己设计安排。
面向对象程序设计课程设计(之方向二-VC++ MFC应用)指引书
1.设计一:“用VC++制作一种人事管理系统”
1.1 课程设计目和意义
人事管理系统具备数据库应用系统典型特性,同步系统构造与现实生活联系紧密,便于没有分析、设计经验同窗进一步扩展,应此它开发简朴而又不失普通性。
本设计目是使同窗们初步掌握VC++ MFC应用程序构造和开发。
1.2 课程设计规定(满分85~90)
(1) 完毕具备如下功能人事管理系统:人事信息增、删、改、查和排序,并能成功演示其运营。
(2) 阐述在开发过程中遇到问题及解决过程。
(3) 解决VC在开发数据库应用时“日期/时间字段”查询和更新问题。(可以采用其她新办法)
(4) 阐述你对“MFC AppWizard(exe)”生成应用程序框架结识、理解和开发心得。
(5) 选做:同窗们可依照自己调研进一步扩充系统功能,如“万能查询”,即可以按所有字段查询。
附:教学大纲中关于规定:
成绩考核
《面向对象编程技术》课程设计实验采用课程设计实验报告和课程设计实验应用系统程序综合评估成绩,其中课程设计实验报告占60%;课程设计应用系统程序占40%。课程设计提交一份综合实验报告,一份程序软盘,课程设计应用系统程序采用上机检查方式拟定分数。
课程设计实验报告基本格式
课程设计实验报报告基本内容至少涉及封面、正文、附录三某些。
1.封面
封面涉及“《面向对象编程技术》课程设计实验报告”、班级、姓名、设计时间等信息。
2.正文
(1)应用程序名称;
(2)应用程序主题、设计目;
(3)应用程序简介:设计目、功能简介、基本内容、重要技术、运营环境等;
(4)应用程序总体设计构造图、类层次图、重要运营界面简介;
(5)创新和难点:阐述创新得意之处;在开发过程中遇到重点、难点问题及解决过程。
(6)课程设计中当前存在问题;
(7)设计实践过程中心得体会。
3.附录
附录中至少涉及:
附录1: 程序安装、使用阐明。
2.设计一:“用VC++制作一种人事管理系统”开发指引
2.1 数据库设计
采用Access数据库:“人事管理系统.mdb”数据库中有一张“人事管理数据表”
办法一:运用VC++创立数据工程
VC主菜单 | 文献 | 新建 | 工程标签中数据库工程 | 输入工程名和保存位置 ,ok
|进入数据源选取对话框,选机器数据源
| new,顾客数据源,下一步
| 数据源类型选 Microsoft Access Driver[*.mdb]下一步,完毕
| 先create 一种库“人事管理系统.mdb”,然后输入数据源名称,ok
| 回到数据工程窗体,双击弹开,Tables右键,准备在数据库中new一张“人事管理数据表”。不规范VC++安装版无法“New Table”,因此只得把前面工作全删掉,准备采用办法二。
办法二:用Office中Access软件建库、建表、输入数据,配备ODBC数据源
“人事管理数据表”构造如下:
字段名称
字段类型
字段大小
索引
必要填写
职工编号
数字
长整型
有(无重复),主键
是
职工姓名
文本
20
是
职工性别
文本
2
是
所在部门
文本
30
是
职工年龄
数字
整型
是
工作时间
日期/时间
10 《短日期》
是
基本工资
数字
单精度
是
职称
文本
20
是
简历
备注
默认
是
输入数据:
配数据源: 控制面板 | 管理工具| 双击数据源(ODBC)《指W2K,98或xp下也许位置不同》
| User DSN | Add | 数据源类型选 Microsoft Access Driver[*.mdb],完毕
| 输入数据源名称“人事管理系统”,“选取”刚创立好mdb文献,拟定
2.2 创立人事管理应用程序框架
VC++ | 文献 | 新建 | 工程标签中MFC AppWizard(exe)向导 |输入工程名和保存位置 ,ok
选“单文档”,“支持文档/视图架构”,next
选不带文献支持数据库视图,点Data Source,选中刚建好ODBC数据源及其中表
此时就可以finish。看一下摘要。
向导已帮你生成程序框架
理解此框架见参照书
2.3 制作人事管理主窗体
向导已生成主窗体:Dialog下IDD_MY_FORM。在此对话框中加10个静态标签控件(只是用来提示其旁边编辑框),如下表:
控件ID
控件类型
控件标题
IDC_STATIC_BT
静态标签
人事管理系统
IDC_STATIC_ZGBH
静态标签
职工编号
IDC_STATIC_ZGXM
静态标签
职工姓名
IDC_STATIC_ZGXB
静态标签
职工性别
IDC_STATIC_SZBM
静态标签
所在部门
IDC_STATIC_ZGNL
静态标签
职工年龄
IDC_STATIC_GZSJ
静态标签
工作时间
IDC_STATIC_JBGZ
静态标签
基本工资
IDC_STATIC_ZC
静态标签
职称
IDC_STATIC_JL
静态标签
简历
每个控件下右键 | 属性,可设立其ID和标题
在相应静态标签右边放9个编辑框控件,每个控件下右键 | 属性,可设立其ID。
控件ID
控件类型
绑定数据库字段
IDC_EDIT_ZGBH
编辑框控件
职工编号
IDC_EDIT_ZGXM
编辑框控件
职工姓名
IDC_EDIT_ZGXB
编辑框控件
职工性别
IDC_EDIT_SZBM
编辑框控件
所在部门
IDC_EDIT_ZGNL
编辑框控件
职工年龄
IDC_EDIT_GZSJ
编辑框控件
工作时间
IDC_EDIT_JBGZ
编辑框控件
基本工资
IDC_EDIT_ZC
编辑框控件
职称
IDC_EDIT_JL
编辑框控件
简历
为每个编辑框控件绑定数据源字段:选定一种编辑框控件,右键 | 建立类向导 | 成员变量标签 |class name列表下选CmySet(数据库成果集)。
左边是数据库字段资源,右边是在类中为其分派成员变量,但m_column*不好记,又不能改,只得所有删掉(Delete Variable…)再手工建立(Add Variable…),换为好记名字
将编辑框(在CmyView视图类中)与上述变量绑定:Add Variable…然后选而不是输入。
你会发现惟独IDC_EDIT_GZSJ与m_gzsj(工作时间)联不上(没有m_pSet->m_gzsj可选) ,看一下m_gzsj定义,
在“人事管理系统Set.h”文献中。
用是Ctime类,此类有些毛病(年份范畴有限)《如下花了很大精力解决“日期/时间字段”问题,本来可以把数据库“工作时间”字段改为“文本”类型,这样向导就会自动相应Cstring,从而回避此问题。之因此不回避,重要目是想通过解决此问题,让同窗们理解MFC程序构造。》,并且应当时始化为0(即NULL)(据说用SQL Server数据库就没问题,难道是与Access不匹配???),因而检查一下CmySet类构造函数:
m_gzsj=NULL;
发现惟独没有对m_gzsj初始化,因而加一句m_gzsj=0;再回去看看,成果还是不能绑定(还是没有m_pSet->m_gzsj可选)。 因此还是不用Ctime类,改用COleDateTime类,改头文献:
改构造函数中初始化:
再回去看看,成果可以绑定了,注意类型变为COleDateTime。
再到视图类中看看影射函数DoDataExchange(),已有映射了。
保存,编译出错,提示DDX_FieldText(pDX,IDC_EDIT_GZSJ,m_pSet->m_gzsj,m_pSet);中'DDX_FieldText' :none of the 10 overloads can convert parameter 3 from type 'class COleDateTime'
可见 COleDateTime与CString无法转换
办法1:自己转 (请用此办法完毕背面“增长记录”)
int dyear,dmonth,dday;
dyear= m_pSet->m_gzsj.GetYear();
dmonth= m_pSet->m_gzsj.GetMonth();
dday= m_pSet->m_gzsj.GetDay();
CString dstr;
dstr.Format(“%d-%d-%d”,dyear,dmonth,dday);
DDX_FieldText(pDX,IDC_EDIT_GZSJ,dstr,m_pSet);
编译,运营
开始对的,但点“下一记录”,出错,考虑:DDX_FieldText(pDX,IDC_EDIT_GZSJ,dstr,m_pSet);中最后指针已没有用处,将此句改为:DDX_Text(pDX,IDC_EDIT_GZSJ,dstr);编译,运营,暂时对的(尚未通过UPDATE验证)
办法2:不用Cstring,即不用编辑框控件IDC_EDIT_GZSJ,取消其与m_gzsj绑定,再删掉此编辑框控件;在对话框中加一种“Date Time Picker”控件,资源索引ID为IDC_DATETIMEPICKER_GZSJ,并与m_gzsj绑定。
此时视图类中影射函数DoDataExchange()增长了一句:DDX_FieldDateTimeCtrl(pDX,DATETIMEPICKER_GZSJ,m_pSet->m_gzsj,m_pSet)。
但编译报错:没有DDX_FieldDateTimeCtrl标记(应当是VCBUG),故改为:DDX_DateTimeCtrl(pDX,DATETIMEPICKER_GZSJ,m_pSet->m_gzsj);运营也对的(尚未通过UPDATE验证)
2.4 为系统实现增长、删除、排序和查询功能
2.4.1增长4个按钮,ID如下表:
控件ID
控件类型
控件标题
IDC_BUTTON_ADD
命令按钮
增长记录
IDC_BUTTON_DEL
命令按钮
删除记录
IDC_BUTTON_SORT
命令按钮
排序记录
IDC_BUTTON_FILTER
命令按钮
筛选记录
2.4.2 增长新对话框(窗体)及创立类成员
在查询或过滤记录时,需要一种对话框,用于输入查询条件,增长对话框办法:
VC主菜单,“插入”|“资源”|“对话框(Dialog)类型”| 放一种“分组框控件”,标题为“请输入过滤查询条件”| 在分组框内放一种“编辑框”控件
新建对话框在工程中是不可辨认,须为其定义一种新“类”并作一种类声明,才可在工程中调用,对话框中“右键”| “类向导”,提示必要创立新类,创立,并命名为CDlgQuery
切到“成员变量”标签,为编辑框控件IDC_EDIT1增长成员变量m_query
2.4.3编制按钮单击响应代码
回到IDD_MY_FORM对话框,
(1) 双击“增长记录”按钮,完毕下列代码:
void CMyView::OnButtonAdd()
{
// TODO:Add your control notification handler code here
m_pSet->AddNew();
m_pSet->Update();//更新记录集
m_pSet->Requery();//重新提取数据
m_pSet->MoveLast();//移动下一条记录
UpdateData(FALSE);//更新视图
}
(2) 双击“删除记录”按钮,完毕下列代码:
void CMyView::OnButtonDel()
{
// TODO:Add your control notification handler code here
m_pSet->Delete();
m_pSet->MoveNext();
if (m_pSet->IsEOF())
m_pSet->MoveLast();
if (m_pSet->IsBOF())
m_pSet->SetFieldNull(NULL);
UpdateData(FALSE);
}
(3)“筛选记录”按钮响应代码:按职工编号查询,要用到对话框IDD_DIALOG1(CDlgQuery类)来输入筛选条件,因此“人事管理系统View.cpp”中要加入“#include "DlgQuery.h"”。
CDlgQuery Dlgquery;
CString value;
if (Dlgquery.DoModal()==IDOK)//“模式窗口方式打开,结束前不能操纵父窗口”
{
value="职工编号=+"+Dlgquery.m_query+"";
m_pSet->m_strFilter=value;
m_pSet->Requery();
UpdateData(FALSE);
}
(4) 双击“排序记录”按钮,完毕下列代码:按职工编号排序
m_pSet->m_strSort="职工编号";
m_pSet->Requery();
UpdateData(FALSE);
阐明:对于数据库操作可以采用异常解决机制下保护代码,如下所示:
try
{
…//被保护代码
}
catch (CDBException* e)
{
MessageBox(e->m_strError);//对于异常信息解决,这里是简朴输出错误信息
}
例:对于删除记录代码可以这样写:
try
{
m_pSet->Delete();
m_pSet->MoveNext();
if (m_pSet->IsEOF())
m_pSet->MoveLast();
if (m_pSet->IsBOF())
m_pSet->SetFieldNull(NULL);
UpdateData(FALSE);
}
catch (CDBException* e)
{
MessageBox(e->m_strError) ;
}
}
《面向对象编程技术课程设计》(之方向3-电脑游戏制作)指引书
1.课程设计目和意义
在中华人民共和国,电子游戏曾一度被人们斥为“电子海洛因”。然而电子游戏在青年学生中大受欢迎却又是一种不争事实。正如水能载舟,亦能覆舟同样,任何事物均有其两面性。与其千方百计地封堵,还不如让同窗们从技术角度来研究它,这样既可以掌握复杂系统设计技巧,也可以破除对电子游戏神秘感。我相信,一种人如果自己能制作游戏,如果能清晰地懂得那个绚丽多彩虚拟世界背后无非就是某些类、变量、函数话,她就不也许再沉迷于打游戏———与一堆对象、内存变量和函数较劲。同步,从技术上讲,游戏程序开发异常复杂,能充分体现面向对象拟人化思想和面向对象设计技巧。通过游戏程序制作,可以协助学生真正掌握面向对象程序设计精髓。
2.课程设计规定
附:教学大纲中关于规定:
成绩考核
《面向对象编程技术》课程设计实验采用课程设计实验报告和课程设计实验应用系统程序综合评估成绩,其中课程设计实验报告占60%;课程设计应用系统程序占40%。课程设计提交一份综合实验报告,一份程序软盘,课程设计应用系统程序采用上机检查方式拟定分数。
课程设计实验报告基本格式
课程设计实验报报告基本内容至少涉及封面、正文、附录三某些。
1.封面
封面涉及“《面向对象编程技术》课程设计实验报告”、班级、姓名、设计时间等信息。
2.正文
(1)应用程序名称;
(2)应用程序主题、设计目;
(3)应用程序简介:设计目、功能简介、基本内容、重要技术、运营环境等;
(4)应用程序总体设计构造图、类层次图、重要运营界面简介;
(5)创新和难点:阐述创新得意之处;在开发过程中遇到重点、难点问题及解决过程。(6)课程设计中当前存在问题;
(7)设计实践过程中心得体会。
3.附录
附录中至少涉及:
附录1: 程序安装、使用阐明。
2.1 设计一:“子弹打飞机” (满分90)
(1) 规定白手起家,独立完毕,即不容许套用现成案例,程序要能看出“土香气”。能成功演示,报告中还要给出重要代码(设计思想可参照设计三中 TankWar剖析.doc(或pdf))
(2) 重要功能:飞机横向飞过;炮塔不能移动,在垂直方向上发出单发炮弹(f键),判断炮弹与否击中飞机。(重
点在于模仿物体运动,同窗们不会MFC图形编程没关系,可以在控制台下采用字符方式模仿飞机等;也可
以用Turbo C++ 3.0来编程,)
2.2 设计二:“基地保卫战” (满分95)
(1) 规定白手起家,独立完毕,即不容许套用现成案例,程序要能看出“土香气”。能成功演示,报告中还要给出重要代码 (设计思想可参照设计三中 TankWar剖析.doc(或pdf))
(2) 要功能:一堆敌机从天而降,炮塔可以左右移动(<和>键)发出连发炮弹束(f键),在飞机撞上炮塔前击落它。
2.3 设计三:“坦克大战” (满分100)
(1) 参照(《PC游戏编程(窥门篇)》谭文洪著)中“坦克大战”(TankWar工程),并对其进行完善、扩充,程序要能看出专业水平和商业化产品效果。
(2) 规定:修改案例中“子弹可以穿透石头墙”错误;增长上帝模式(无敌);修改一种敌军坦克,使之威力更大(规定坦克画面采用学生自己头像)(需要重新编译资源包;之因此“改”而不是“增”,是由于同窗们无法修改地图编辑器,另一种办法是在程序运营后动态加入);回答 “坦克大战”指引书.doc(或pdf) 和 TankWar剖析.doc(或pdf)中带有蓝色《….?》标记问题。
3. 设计一:“子弹打飞机”开发指引
(1)为了突出面向对象思想,回避图形界面、音效等商业化元素带来复杂性,建议采用同窗们熟悉控制台应用和字符界面。
(2)为此给出turbo c++几种惯用函数vc++模仿程序(VC++控制台模仿函数.txt)。严重声明,其中几种函数是DOS解决方式,原则windows程序平并不这样用,而是有自己解决方式。这里只是模仿,由于同窗们短时间内不也许掌握windows解决方式。当前还没有人完全对的模仿这几种函数,其中gettext函数中(unsigned long *)b处是我瞎碰出来,与puttext不对偶,完全没有道理,运营时也有内存泄漏。但愿同窗们参照VC++协助(MSDN)中关于控制台输入输出内容,帮我解决这个问题。
void gotoxy(int x,int y) //光标移到(x,y)(DOS时代,字符方式下,屏幕宽80、高25)
{
COORD point;// new cursor position coordinates
HANDLE hOutput = GetStdHandle(STD_OUTPUT_HANDLE);// handle of console screen buffer
point.X = x;point.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),point);
}
void clrscr() //清屏
{
COORD coordScreen = { 0, 0 };
DWORD cCharsWritten;
CONSOLE_SCREEN_BUFFER_INFO csbi;
DWORD dwConSize;
HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo(hConsole, &csbi);
dwConSize = csbi.dwSize.X * csbi.dwSize.Y;
FillConsoleOutputCharacter(hConsole,TEXT(' '),dwConSize,coordScreen,&cCharsWritten);
GetConsoleScreenBufferInfo(hConsole,&csbi);
FillConsoleOutputAttribute(hConsole,csbi.wAttributes,dwConSize,coordScreen,&cCharsWritten);
SetConsoleCursorPosition(hConsole,coordScreen);
展开阅读全文