2016c++课设任务书
2016c 课设任务书详解

《面向对象程序设计》课程设计任务书学期:2016-2017 第一学期时间2016年12月12日开始班级:15计科本1、本2、15计应专1机电与信息工程学院教师陈小常【设计目的】本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《面向对象程序设计》课程后进行的一次全面的综合练习。
本课程设计的目的和任务:(1)巩固和加深学生对C++课程的基本知识的理解和掌握;(2)掌握C++编程和程序调试的基本技能;(3)利用C++进行简单软件设计的基本思路和方法;(4)提高运用C++解决实际问题的能力;(5)掌握书写程序设计说明文档的能力。
课设报告要求:1、封面上写明:题目、指导教师、专业、班级、姓名、学号、起止日期以及其他内容。
2、在实习报告的扉页上写明设计题目和实习报告要求。
3、系统需求与功能分析,画出功能结构图。
4、各个类的设计思路及其源代码,并适当加以注释。
5、主要功能代码的实现思路及测试过程描述。
6、程序调试正确后的运行结果显示。
7、程序设计中所遇到的问题及解决问题的办法。
8、整个应用程序还需作哪些改进。
9、课程设计的感想和体会。
【设计内容与任务】每组学生在教师提供的课程设计题目中任意选择一题,题目有难有易,学生根据自身情况选题后独立完成,每组成员限定1——4人。
题目选定后不可更换。
题目1 组合类与排序目的与要求:通过类的组合,可以将现有的若干个类合成一个新类,它反映的是对象的组合概念,由小类装成更大的类。
类组合的难点在于其构造函数(包括析构函数)设计。
本实验要求学会创建组合类对象、删除组合类对象时,如何创建(删除)其内嵌对象,这里包括参数的传递、构造的顺序等。
设计任务及过程任务:设计计算机类分解为显示器类、CPU类、硬盘类、主板类、内存类、显卡类等;然后按CPU价格排序(升序)。
过程:数据输入每台主机CPU有自己的数据如主频、频率、价格、日期等;数据存储日期类、CPU类、RAM类、一台主机类、N台主机类;数据处理即排序算法,使用算法对记录进行排序题目2拷贝构造函数与对象复制目的与要求:1、了解拷贝构造函数的含义;2、了解拷贝构造函数的相关语法规则;3、学会运用拷贝构造函数;设计任务及过程任务:以具体对象为列,讨论同类对象的赋值与复制。
c课程设计任务书

c 课程设计任务书一、教学目标本课程的教学目标是让学生掌握C语言的基本语法、数据结构和算法,培养学生编写简单程序的能力。
具体分为以下三个部分:1.知识目标:学生能理解C语言的基本语法、关键字、数据类型、运算符、表达式、函数、数组、指针、结构体等概念。
2.技能目标:学生能运用C语言编写简单的程序,解决实际问题,具备基本的编程能力。
3.情感态度价值观目标:培养学生对计算机科学的兴趣,增强学生的自主学习能力、团队合作能力和创新意识。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.C语言的基本语法和关键字。
2.数据类型、运算符和表达式。
3.函数、数组和指针。
4.结构体和其他数据结构。
5.基本算法和编程技巧。
6.实际编程案例。
三、教学方法为了达到课程目标,我们将采用以下教学方法:1.讲授法:讲解C语言的基本语法、关键字、数据类型、运算符、表达式、函数、数组、指针、结构体等概念。
2.案例分析法:通过分析实际编程案例,让学生掌握基本的编程技巧和算法。
3.实验法:让学生动手编写程序,解决实际问题,提高编程能力。
4.讨论法:学生进行小组讨论,分享学习心得,培养团队合作能力。
四、教学资源为了支持教学内容和教学方法的实施,我们将准备以下教学资源:1.教材:《C程序设计语言》(K&R)或《C Primer Plus》。
2.参考书:《C专家编程》、《C陷阱与缺陷》。
3.多媒体资料:教学PPT、视频教程。
4.实验设备:计算机、编程环境(如Visual Studio、Code::Blocks等)。
5.在线资源:编程、论坛、开源项目等。
五、教学评估为了全面、客观地评估学生的学习成果,我们将采用以下评估方式:1.平时表现:评估学生在课堂上的参与度、提问回答、小组讨论等,以了解学生的学习态度和实际应用能力。
2.作业:布置适量的课后作业,让学生巩固所学知识,通过作业批改了解学生的掌握情况。
3.考试:进行期中、期末考试,考察学生对C语言基本语法、数据结构、算法的掌握程度。
C语言课程设计任务书(必备)

C语言课程设计任务书(必备)课程名称:C语言课程设计课程设计任务书一、课程设计概述本次课程设计旨在帮助学生巩固和运用所学的C语言知识,进行实际的程序开发和问题解决。
学生将通过自主编程实现特定功能的程序,并进行测试和调试。
本次课程设计的主题是自动售货机程序设计。
二、课程设计目标1. 理解程序开发的基本过程,包括需求分析、程序设计、编码、测试和调试等环节;2. 掌握C语言的基本语法、数据类型、控制结构和函数等知识;3. 能够使用C语言设计和实现简单的程序,并能进行测试和调试;4. 培养学生的团队合作意识和创新意识。
三、课程设计内容1. 设计一个简单的自动售货机程序,实现以下功能:a. 显示商品清单和价格;b. 输入金额,并根据金额选择购买商品;c. 计算并显示找零金额;d. 更新商品库存;e. 显示交易完成信息。
四、课程设计要求1. 学生需自主完成程序的设计和编码,并确保程序的功能完备和正确性;2. 程序需使用C语言编写,且需遵循良好的编码规范;3. 程序需具有一定的用户友好性,能够提示用户输入和输出相关信息;4. 学生可以自行选择合适的编程环境和工具,并提交运行结果截图;5. 学生可以组成小组进行合作,但每个学生需独立完成一份课程设计报告。
五、课程设计报告要求1. 报告内容应包括课程设计的需求分析、算法设计、实现思路和程序测试等部分;2. 程序设计的相关代码应附在报告中,并进行适当的注释;3. 报告应使用规范的格式,包括封面、目录、正文、参考文献等部分;4. 报告应具有较高的学术水平和语言表达能力;5. 报告需以电子版的形式提交。
六、课程设计评分方式1. 程序功能正确性:40%;2. 代码质量和规范性:20%;3. 实现思路和效率:20%;4. 报告内容和撰写质量:20%。
七、课程设计安排1. 学生选题和组团:第1周;2. 确定需求和设计算法:第2-3周;3. 编码、测试和调试:第4-5周;4. 报告撰写和提交:第6周;八、备注事项1. 本任务书仅为设计任务的指导,学生可以根据自身实际情况进行调整;2. 学生可向任课教师咨询和讨论相关问题,但需保持独立思考和创新能力。
16自动化C程序设计课程设计任务书

C程序设计课程设计任务书一、课程设计目的1.进一步掌握复杂数据结构的应用以及模块化的编程方法;2.学会用C语言编写一个较完整的实用程序,培养自己的动手操作能力;3.学习C语言程序设计的基本思路和方法,编程、调试、撰写报告等;二、任务内容:任务一:多轮随机叫号/抽奖系统要求:程序通过对叫号轮数,每轮叫号个数的设置,实现规定范围内的随机数产生功能。
1.任务要求通过菜单运行。
2.模拟多轮叫号或抽奖系统,实现号码范围、轮数、每轮叫号个数等的用户自定义设置,并根据用户设定实现号码的随机抽取。
3.任务要求抽取号码不得重复。
自编判断随机号码是否已经存在函数。
4.任务要求,最后输出所有抽取号码。
5.要求使用多文件结构(主函数要求尽量简单,避免使用全局变量)。
任务二:自编字符串处理函数要求:自编求字符串长度函数,逆序存放字符串函数,实现对输入字符串的检测,检测其是否为数字串(数字字符串即,字符串中字符皆为0-9数字组成),并将其逆序存放,最后输出逆序存放后的十进制数。
1.自定义数字字符串判断函数(求字符串长度函数需要自编)。
2.要求判断输入,若输入为非数字字符串,要求重新输入。
3.自定义字符串字符逆序存放函数,实现输入字符串的逆序存放。
4.用1个10进制数表示实现逆序后的字符串,并输出该值。
5.要求使用多文件结构(主函数要求尽量简单,避免使用全局变量)。
任务三:值班管理系统程序要求实现值班记录的增加、删除、修改、查询、统计、存储操作。
要求:1.实现值班记录按工号进行增加、删除、修改功能;2.实现可按工号或日期进行的查询功能;3.实现可从文档进行初始化值班信息的功能;4.实现值班信息文档保存功能;5.实现按工号统计值班时间的功能;6.要求系统有菜单进行指导操作,且运行良好。
三、课程设计报告的要求1.每位同学必须认真、独立的完成课程设计的编程和调试。
2.课程设计报告要求使用A4纸打印,必须有目录。
封面提供,内容要认真独立完成。
《C++面向对象课程设计》任务书-16版 (1)

(5) 软件要求:最终的软件对问题的描述应正确无误,运行稳定、可靠,界面友好。
(6) 每人都需要交一份总结报告。
六、进度安排:设计时间为第19周,一个周(7.3—7.8),
第一阶段:设计动员,分组,布置课程设计任务。 查阅资料,制定方案,进行程序总体设计和详细设计说明书撰写。
(3) 正文部分应该包括:需求分析、总体设计、数据库设计(非数据库编程不需要)、程序类设计(含功能需求、用户界面设计、程序代码设计与分析、运行结果,每个人可选择2个类进行)、系统使用说明。
(4)附录中包括源程序、设计体会等。源程序中应有注解,说明每个类的功能,使别人能比较容易地读懂源程序;设计体会中应包括本系统的不足之处以及可改进的地方,还应说明系统的特色、新的发明、创造等等。
第二阶段:根据设计说明书进行编码 , 系统调试整理,撰写设计(或调研)报告,验收,答辩,提交设计(或调研)报告,评定成绩。
7月7日开始可向指导教师提交报告、程序,并对设计内容进行答辩。
(1)分析设计准备阶段(7.3—7.4)
(2)编程调试阶段(7.5—7.6)
(3)总结报告和书写说明书阶段(7.7—7.8)
五、课程设计报告内容
课程设计报告中应包括需求分析、概要设计、详细设计、调试分析、测试结果、附录等,具体地:
(1) 不少于5000字,可以使用统一的设计说明书稿纸(A4),亦可以自己打印(A4)。注意要双面打印。
(2) 主要内容及装订顺序:封面(统一提供)、目录、正文、参考文献。
(2)概要设计中应包括设计思想、实现方法、系统中主要类及类的设计。
二、上机环境
操作系统:xxx
开发工具:xxx
c课程设计任务书

c 课程设计任务书一、教学目标本章节的教学目标分为三个维度:知识目标、技能目标和情感态度价值观目标。
1.知识目标:学生能够掌握课本中的基本概念、原理和方法,了解相关学科的前沿动态,提高自己的知识水平。
2.技能目标:学生能够运用所学知识解决实际问题,提高自己的实践能力;能够独立思考、分析问题,提高自己的创新意识。
3.情感态度价值观目标:学生能够树立正确的价值观,关注社会热点问题,提高自己的社会责任感和使命感。
二、教学内容本章节的教学内容以课本为基础,结合学科前沿动态,进行详细的教学大纲设计。
1.教材章节:第1-5章,主要涵盖基本概念、原理和方法。
2.教学内容安排:–第1周:第1章,基本概念和原理–第2周:第2章,方法和技术–第3周:第3章,应用案例分析–第4周:第4章,实验设计与实践–第5周:第5章,学科前沿动态三、教学方法本章节的教学方法采用多样化教学手段,激发学生的学习兴趣和主动性。
1.讲授法:教师讲解基本概念、原理和方法,引导学生理解和掌握。
2.讨论法:学生分组讨论案例分析,培养学生的独立思考和团队协作能力。
3.案例分析法:分析实际案例,让学生了解所学知识在实际中的应用。
4.实验法:学生动手实验,巩固理论知识,提高实践能力。
四、教学资源本章节的教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:选用权威出版的教材,保证知识的科学性和系统性。
2.参考书:推荐学生阅读相关学科的权威著作,拓宽知识面。
3.多媒体资料:制作精美的PPT,直观展示知识点,提高学生的学习兴趣。
4.实验设备:确保实验教学的顺利进行,提高学生的实践能力。
五、教学评估本章节的教学评估分为三个部分:平时表现、作业和考试。
1.平时表现:评估学生在课堂上的参与度、提问和回答问题的积极性,以及小组讨论的表现。
2.作业:布置适量的作业,评估学生的知识掌握和应用能力。
3.考试:期末进行闭卷考试,全面评估学生的知识水平和运用能力。
六、教学安排本章节的教学安排包括教学进度、教学时间和教学地点。
C语言课程设计任务书(18份)详细版

C语言课程设计任务书详细版(18份)C语言课程设计任务书1题目:某学院教学信息管理系统功能:1、每一条记录包括一位教师的职工号、姓名、职称、性别、3门主讲课程(课程名称、开课学期、课程性质(学位与非学位课)和教学效果),教学效果综合评分。
2、输入功能:可以一次完成若干条记录的输入。
3、显示功能:完成全部教师记录的显示。
4、查找功能:完成按姓名或课程查找教师的相关记录,并显示。
5、排序功能:按职工号或教学效果综合评分进行排序。
6、插入功能:按教学效果综合评分高低插入一条教师记录。
7、将教师记录存在文件中。
8、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!要求:1、用C语言实现系统;2、利用结构体数组实现教学信息的数据结构设计;3、系统具有增加,查询,插入,排序等基本功能;4、系统的各个功能模块要求用函数的形式实现;5、将教学信息存在文件中。
课程设计的最后成果是实验报告一份,内容包括:1、预习报告(题目、流程图、程序的设计思想等);2、实验总结报告(测试方案、源程序代码(需打印)、调试中问题及解决方案、小结等)。
C语言课程设计任务书2题目:酒店房间登记与计费管理系统功能:1、屏幕上出现一个界面,让操作员能够方便的选择所需要进行的操作,包括登记入住、查询房间的入住情况、查询当前费用、结账退房等操作。
2、对不同标准的房间实施不同的收费标准,也可以按天收费或按小时收费,可根据顾客需要在登记的入住的时候进行选择。
3、在结账退房时,根据入住的时间,计费方式和房间单价计算出总费用。
分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数;2、完成最低要求:建立房间列表,完成登记入住、查询房间入住情况功能。
3、进一步要求:完成计费和费用查询功能。
要求:1、用C语言实现系统;2、函数功能要划分好(结构化程序设计);3、界面友好(良好的人机交互),加必要的注释;4、要提供程序测试方案,程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。
C程序设计课程设计任务书

C程序设计课程设计任务书一、课程设计题目和总体要求1、题目:《学生成绩管理系统》的设计与实现;2、总体要求:分析课程设计题目的要求;写出详细设计说明;编写程序代码,调试程序使其能正确运行;设计完成的软件要便于操作和使用;设计完成后提交课程设计报告。
二、课程设计目的1、进一步掌握和利用C语言进行程序设计的能力;2、进一步理解和运用结构化程序设计的思想和方法;3、初步掌握开发一个小型实用系统的基本方法;4、学会调试一个较长程序的基本方法;5、学会利用流程图或N-S图表示算法;6、掌握书写程序设计开发文档的能力(书写课程设计报告)三、课程设计内容1、每一条记录包括一个学生的学号、姓名、3门课成绩、平均成绩;2、输入功能:可以一次完成若干条记录的输入;3、显示功能:完成全部学生记录的显示;4、查找功能:完成按姓名查找学生记录,并显示;5、排序功能:按学生平均成绩进行排序;6、插入功能:按平均成绩高低插入一条学生记录;7、将学生成绩记录在文件score中;8、应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观。
可以看出,本程序应该完成以下功能:1、学生记录的输入2、追加学生记录3、修改记录4、删除记录5、浏览全部记录6、查找记录(按姓名查找)7、插入记录8、对记录进行排序(按平均成绩排序)9、退出四、课程设计报告的内容1、课程设计名称、班级、学号、学生姓名和课程设计起止日期2、课程设计目的和要求3、课程设计任务要求4、详细设计说明5、软件使用说明6、课程设计心得与体会7、附录1:参考文献8、附录2:部分程序清单(带有较详细的注释)五、评分依据1、根据平时上机考勤、表现和进度,教师将每天点名和检查2、根据课程设计完成情况,必须有可运行的软件3、根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格六、进度计划1、第一天分析课题的要求,编写详细设计说明2、第二天交详细设计说明电子稿,编程3、第三天编程及调试4、第四天写课程设计报告,提交软件5、第五天提交课程设计报告,答辩。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《面向对象程序设计》课程设计任务书学期:2016-2017 第一学期时间2016年12月12日开始班级:15计科本1、本2、15计应专1机电与信息工程学院教师陈小常【设计目的】本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《面向对象程序设计》课程后进行的一次全面的综合练习。
本课程设计的目的和任务:(1)巩固和加深学生对C++课程的基本知识的理解和掌握;(2)掌握C++编程和程序调试的基本技能;(3)利用C++进行简单软件设计的基本思路和方法;(4)提高运用C++解决实际问题的能力;(5)掌握书写程序设计说明文档的能力。
课设报告要求:1、封面上写明:题目、指导教师、专业、班级、姓名、学号、起止日期以及其他内容。
2、在实习报告的扉页上写明设计题目和实习报告要求。
3、系统需求与功能分析,画出功能结构图。
4、各个类的设计思路及其源代码,并适当加以注释。
5、主要功能代码的实现思路及测试过程描述。
6、程序调试正确后的运行结果显示。
7、程序设计中所遇到的问题及解决问题的办法。
8、整个应用程序还需作哪些改进。
9、课程设计的感想和体会。
【设计内容与任务】每组学生在教师提供的课程设计题目中任意选择一题,题目有难有易,学生根据自身情况选题后独立完成,每组成员限定1——4人。
题目选定后不可更换。
题目1 组合类与排序目的与要求:通过类的组合,可以将现有的若干个类合成一个新类,它反映的是对象的组合概念,由小类装成更大的类。
类组合的难点在于其构造函数(包括析构函数)设计。
本实验要求学会创建组合类对象、删除组合类对象时,如何创建(删除)其内嵌对象,这里包括参数的传递、构造的顺序等。
设计任务及过程任务:设计计算机类分解为显示器类、CPU类、硬盘类、主板类、内存类、显卡类等;然后按CPU价格排序(升序)。
过程:数据输入每台主机CPU有自己的数据如主频、频率、价格、日期等;数据存储日期类、CPU类、RAM类、一台主机类、N台主机类;数据处理即排序算法,使用算法对记录进行排序题目2拷贝构造函数与对象复制目的与要求:1、了解拷贝构造函数的含义;2、了解拷贝构造函数的相关语法规则;3、学会运用拷贝构造函数;设计任务及过程任务:以具体对象为列,讨论同类对象的赋值与复制。
过程:数据输入成矩阵;数据存储定义图像类设计、构造函数、拷贝构造函数、显示图像;数据处理所需要到的拷贝构造函数。
题目3组合派生类与对象移动目的与要求:1、了解组合派生类的含义;2、了解拷组合派生类的相关语法规则;3、学会运用派生类与对象移动。
设计任务及过程任务:定义点类(两点),然后类组合成直线类,最后线类派生类增加如颜色等属性的类。
过程:数据输入两点及属性线性、颜色;数据存储,点、直线、扩展直线属性类的设计;数据输出显示相关的属性。
题目4组合派生类与队列操作目的与要求:1、了解组合派生类的含义;2、了解拷组合派生类的相关语法规则;3、学会运用派生类与队列操作。
设计任务及过程任务:以公有派生类对象作为队列的元素,进行入队、出队、访问元素等基本操作。
过程:数据输入5个点的属性值;数据存储,基类、派生类、队列类的设计;数据输出显示相关的属性。
题目5 类模版继承与栈操作目的与要求:1、了解类模版继承与栈操作的含义;2、学会运用类模版继承与栈操作;3、使用类模版继承进行栈基本简单操作;设计任务及过程任务:在学生信息中按序号从小到大顺序,将记录逐条入栈,再逐个出栈、显示。
过程:创建、入栈、出栈、释放、数据输出。
题目6 矩阵的常用运算目的与要求:(1)定义矩阵类。
要求从键盘输入矩阵的行数和列数,以及矩阵的元素值,并用动态内存空间存储。
(2)以菜单的方式选择矩阵的常用运算。
并判断两个矩阵能否进行加、减、乘的运算。
(3)要求重载相关运算符进行矩阵的常用运算。
(4)输出两个矩阵运算后的和、差、积。
题目7 通过string类对象操作学生数据目的与要求:⑴学生数据模型用类CSstudent定义,其数据成员有姓名、学号、三门课的成绩及总成绩,成员函数有print及其它必要的函数。
其中,姓名和学号用string类对象表示,print 函数按相应对齐格式在一行中输出所有数据。
⑵设计类CStuOP。
在类中,通过string和字符串流对存放的学生数据进行添加、遍历、查找、排序和存储到文件的操作。
其中,成员函数Add添加学生数据,成员函数ShowAll 用来遍历所有学生数据,成员函数Seek用来按姓名查找学生数据,成员函数SortToFile 用来按总成绩从高到低排序,并将结果数据保存到文件student.txt中。
⑶编写一个完整的程序并测试。
题目8 分数计算器目的与要求:⑴为分数定义一个类。
分数定义为两个整数之比,比如1/2,3/4,64/2等等,将分数表示成int类型的两个值:一个表示分子,一个表示分母。
将类命名为Fraction。
⑵分数应以1/2,15/32,300/401这样的形式来输入和输出,注意分子、分母可能包含负号,所以必须支持象-1/2,15/-32,以及-300/-401这样的输入。
⑶重载提取运算符>>和插入运算符和<<。
还要重载+, -, *, /运算符,使它们能正确支持Fraction类型。
(4)应考虑有一个函数,能对分数进行约分与规格化,在规格化之后,分母一定是正的,并且分子分母的最大分约数为1。
例如,对4/-8进行规格化之后,它应该表示成等价的-1/2。
(5)仿照计算器的运算过程,采用计算器方式来进行有关分数运算。
题目9 复数运算器目的与要求:(1)为复数定义一个类,名为Complex。
复数的形式是a+bi其中,a和b是double 类型的数字,而i表示虚数单位√-1。
将复数表示成double 类型的两个值。
将成员变量命名为realPart(实部)和imagePart(虚部)。
(2)重载输入和输出运算符>>和<<.。
输入复数时,最好能接受6,6+4i,5-2i,7i,-9i,i,和-i这样形式的输入。
可考虑用字符串接受输入,然后对字符串进行讨论,以便识别各种情况。
(3)输出复数时,应对实部和虚部的各种情况加以讨论,以便能输出6,6+4i,5-2i,7i,-9i,i,和-i这样形式的复数。
注意实部、虚部可能包含负号。
(4)重载+、-、*、/ 运算符,使它们能支持Complex类型。
(5)参考教材P119例EX_ComplexFriend和P426 实验六例EX_Complex.cpp。
题目10 学生选课系统目的与要求:(1)定义学生类、课程类。
设每个学生最多只能选修5门课程,每门课程最多30名学生选修。
(2)根据用户要求,可设置并得到学生所选课程。
(3)给出学生姓名,可得到某门课程的成绩,也可得到学生所有课程的平均成绩。
(4)根据课程名,可设置选修学生,设置或修改选修学生的学生成绩,也可计算该课程的平均成绩。
题目11 将学生成绩类对象作为栈元素,并设计用栈类来存取学生成绩数据。
设学生成绩类的私有数据成员有学生姓名,学号和三门成绩。
说明:栈模型栈是一种“FILO”(先进后出)或“LIFO”(后进先出)的存储结构。
它占用一块连续的内存空间,有两个端点:一个端点是固定的,称为栈底;另一个端点是活动的,称为栈顶。
操作只能在栈顶进行,建立一个栈先要开辟栈空间。
且为了指示栈顶位置还要设定一个指针,称为栈顶指针sp。
栈有两种操作:push(压入)与pop(弹出)。
初建栈时,栈顶指针sp指向栈底。
当向栈内压入一个元素d1时,先向栈顶写入d1,再执行sp++。
再压入一个元素d2时,先向栈顶写入d2,再执行sp++。
可见,栈顶总是用于存放下一个元素。
当栈内弹出一个元素d2时,直接执行sp--,然后含会SP中的内容,当再次压入新元素时,d2被覆盖。
题目12 将学生成绩数据分成两个类CPerson和CScore,其中CPerson类的数据成员是姓名和学号,而CScore的数据成员除了三门课成绩外,还有一个CPerson类对象stu。
并且,CScore类是CPerson的友元类,这样在类CScore 中通过stu对象可以访问CPerson类的所有成员。
此外,仍使用栈模型来存取学生成绩数据,其中栈类Cstack使用静态成员来进行数据操作。
说明:Cperson和CScore类的设计由于要设计的Cperson类是将Cscore类作为自己的友元类,因此,Cperson类的私有数据成员的操作不必再在Cperson类中指定,且不必重新指定构造函数和拷贝构造函数,它们的默认版本已能满足要求。
题目13 定义个人信息类CPerson,描述的属性有姓名、年龄、性别。
并以CPerson为基类分别公有派生出学生类CSstudent和CTeacher。
其中CSstudent 类增加的属性有班级、学号、三门课程成绩、总分和平均分;CTeacher类增加的属性有职称、部门、工龄。
在定义一个研究生助手类CAssistant, 它分别从CTeacher类和CSstudent类公有派生,增加的属性有导师(CPerson类对象)、职责。
要求:(1)除某类CPerson外,其他类增加的属性用成员函数SerData来设定。
集成的属性用构造函数来初始化;但Cassistant中的CTeacher成员对象仍需要在构造函数中进行初始化。
(2)每个类都有一个成员函数ShowInfo,用于显示当前类增加的属性。
对于基类CPerson则选择全部属性。
(3)分析可能产生二义性的情况,并分别给出相应的解决办法。
(4)设计各个类的代码,在main函数中定义Cassistant类对象。
然后输出该对象的所有属性然后输出该对象的所有属性(包括基类属性)。
根据上述描述和要求,编写程序。
题目14 用简单链表模型来存取个人信息类数据。
其中。
个人信息CPerson包含的数据有:姓名、年龄和性别。
为了能用类来实现简单链表模型,且便于以后扩展,用结点类CNode和链表类CSimpList类来描述。
其中,结点类CNode包含的数据成员有:描述数据域的CPerson 对象data指向下一个节点的指针next。
链表类CSimpList用来实现结点的常用操作,其数据成员有:头指针pHead、当前指针pCur。
在链表类CSimpList要求实现下列操作。
(1)当成员函数重载“+=”运算符,根据CPerson对象构造并实现结点的添加操作。
(2)用友元函数重载后缀“++”,实现当前结点指针向后移动,并返回当前结点指针。
(3)用成员函数重载“[ ]”运算符,实现按姓名查找匹配的结点,并返回该节点的指针。
根据上述描述和要求,编写实现程序。
题目15 通过文件操作存放学生数据。
⑴学生数据模型用类CSstudent来定义,其数据成员有:姓名、学好和三门课的成绩。