#《面向对象程序设计》课程设计指导书

2020-02-21 22:50

《C++语言程序设计》课程设计指导书

课程设计名称:C++程序设计课程设计 指导老师:胡锦美、高维维 课程设计周(时)数:1周

课程设计授课单位:软件教研室 指导方式:集体辅导和个别辅导相结合 课程设计适用专业:计算机科学和技术 课程设计教材及主要参考资料: 《C++语言程序设计》(《C++语言程序设计案例教程》),郑莉编著,清华大学出版社 服务课程名称:C++语言程序设计

服务课程讲课学时:C++ 一、课程设计教学目的及基本要求

本课程设计是《程序设计及C++语言》课程的组成之一,也是它的继续和延伸。采用研究型学习方法,分组完成一个管理类型的小型软件。开设本课程的目的是使学生通过参加小型软件的开发过程,进一步掌握面向对象的程序设计方法,使学生具有团队协作精神,并培养学生的创新能力和创新意识。要求如下:

1.了解并掌握面向对象程序设计方法,具备初步的独立分析和设计能力;

2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; 3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;

4.训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作方法和作风。

5.设计的题目要求达到一定工作量(500行以上代码),并具有一定的深度和难度。 6.编写出课程设计说明书,说明书不少于10页(代码不算)。

7. 学生必须仔细阅读《C++语言程序设计》课程设计方案,认真主动完成课设的要求。有问题及时主动通过各种方式和教师联系沟通。学生要发挥自主学习的能力,充分利用时间,安排好课设的时间计划,并在课程设过程中不断检测自己的计划完成情况。

在课程设计前期安排学习C++编程和面向对象的软件工程(包括使用UML进行面向对象的系统分析和设计)的有关知识,以自学和上机实验为主。 二、课程设计内容及安排

1.问题分析和任务定义:根据设计题目的要求,充分地分析和理解问题,明确问题要求做什么,(而不是怎么做)限制条件是什么。

2.概要设计:对问题描述中涉及的操作对象定义相应的类,并按照以数据结构为中心的原则划分模块,定义主程序模块和各抽象数据类型。逻辑设计的结果应写出每个抽象数据类型的定义(包括数据结构的描述和每个基本操作的功能说明),各个主要模块的算法,并画出模块之间的调用关系图;

3.详细设计:定义相应的存储结构并写出各函数的伪码算法。在这个过程中,要综合考虑系统功能,使得系统结构清晰、合理、简单和易于调试,抽象数据类型的实现尽可能做到数据封装,基本操作的规格说明尽可能明确具体。详细设计的结果是对问题作出进一步的求精,写出数据存储结构的类型定义,写出函数形式的算法框架; 4.程序编码:把详细设计的结果进一步求精为程序设计语言程序。同时加入一些注解和断言,使程序中逻辑概念清楚;

5.程序调试和测试:采用自底向上,分模块进行,即先调试低层函数。能够熟练掌握调试工具的各种功能,设计测试数据确定疑点,通过修改程序来证实它或绕过它。调试正确后,认

真整理源程序及其注释,形成格式和风格良好的源程序清单和结果;

6.结果分析:程序运行结果包括正确的输入及其输出结果和含有错误的输入及其输出结果。算法的时间、空间复杂性分析; 7.编写课程设计报告; 设计题目: A类:

1.学生选课软件设计(A类) 功能要求:

每个学生可选修多门课程,每门课可被多个学生选修,课程内容由课程代码(4个字符)、名称和学生选课表组成,学生由学生编号、姓名组成,要求编程实现: ( 1 )输入和修改课程信息

( 2 )添加学生选课信息,通过课程代码添加到相应课程选修表中。 ( 3 )将每门课选课的人数统计并显示。 人机界面自定义,要汉化并使界面友好。 2. 订票系统(A类) 功能要求:

(1)录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)

(2)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); 可以输入起飞抵达城市,查询飞机航班情况; (3)订票:(订票情况可以存在一个数据文件中,结构自己设定) 可以订票,如果该航班已经无票,可以提供相关可选择航班; (4)退票: 可退票,退票后修改相关数据文件;

客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 (5)修改航班信息:

当航班信息改变可以修改航班数据文件 3.运动会分数统计系统(A类)

参加运动会有n个系,系编号为1……n。比赛分成m个男子项目,和w个女子项目。项目编号为男子1……m,女子m+1……m+w。不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。(m<=20,n<=20) 功能要求:

(1)可以输入各个项目的前三名或前五名的成绩; (2)能统计各系总分,

(3)可以按系编号、系总分、男女团体总分排序输出;

(4)可以按系编号查询系某个项目的情况;可以按项目编号查询取得前三或前五名的系。 4.图书管理(A类)

图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格、库存量等。试设计一图书信息管理系统,使之能提供以下功能: 系统以菜单方式工作

(1)采编入库:新购入一本书,经分类和确定书号后登记到图书账目中去,若该书已存在,这库存量增加

(2)借阅:若 一种书的现存量大于0,则借出一本,登记借阅者的图书证号和归还期限

(3)归还:注销借阅者的登记,改变该书的现存量(过期罚款-选作) (4)清除库存:某书已吴保留价值,将它从图书账目中注销 (5)查询功能:-- 按书名查询 按作者名查询 5.学生信息管理(A类) (一)功能要求: (1) 信息维护:

要求:学生信息数据要以文件的形式保存,能实现学生信息数据的维护。此模块包括子模块有:增加学生信息、删除学生信息、修改学生信息 (2) 信息查询:

要求:查询时可实现按姓名查询、按学号查询 (3) 成绩统计:

要求:A输入任意的一个课程名(如数学)和一个分数段(如60--70),统计出在此分数段的学生情况。

(4) 排序:能对用户指定的任意课程名,按成绩升序或降序排列学生数据并显示排序结果(使用表格的形式显示排序后的输出结果)(使用多种方法排序者,加分) 6. 通信录管理系统(A类)

用C/C++设计出模拟手机通信录管理系统,实现对手机中的通信录进行管理。 (一) 功能要求

(1) 查看功能:选择此功能时,列出下列三类选择。

A 办公类 B 个人类 C 商务类 ,当选中某类时,显示出此类所有数据中的姓名和电话号码) (2) 增加功能:能录入新数据(一个结点包括:姓名、电话号码、分类(可选项有:A 办公类 B 个人类 C 商务类)、电子邮件)。例如 杨春 13589664454 商务类 chuny@126.com

当录入了重复的姓名和电话号码时,则提示数据录入重复并取消录入;当通信录中超过15条信息时,存储空间已满,不能再录入新数据;录入的新数据能按递增的顺序自动进行条目编号。

(3) 拔号功能:能显示出通信录中所有人的姓名,当选中某个姓名时,屏幕上模拟打字机的效果依次显示出此人的电话号码中的各个数字(可调用\—Sleep来实现延时)。

(4) 修改功能:选中某个人的姓名时,可对此人的相应数据进行修改

(5) 删除功能:选中某个人的姓名时,可对此人的相应数据进行删除,并自动调整后续条目的编号。

7. 学校教职工信息表(A类) 设计要求:

设计要求实现如下功能:

(1)建立职工信息数据,包括职工号、姓名、性别、工资、出生时间、参加工作时间和年龄(必须计算得到)。

(2)根据职工信息表,建立只含有姓名和年龄的职工信息简表。 (3)使用继承的方法构造3个类,(即雇员类——虚基类,教师类和工人类——派生类)使用相应的对象放置10个(或以上)职工信息。

(4)编写同名display()成员函数,用来输出数组的内容。 (5)按不同类别输出职工信息,比如按系输出教师信息。

(6)要求对“<<”和“>>”运算符进行重载。考虑到输人职工编号时,也会因不小心引人空格,而且名字中也需要有空格,所以重载“>>’’运算符时,需要满足这个要求。

(7)抽取并计算职工的平均年龄。 (8)检索(查找)指定信息。(如按姓名检索、按年龄检索) (9)显示各年龄段分布的情况 (10)参考界面如下:

增加 (一位教师记录 、增加一位工人记录) 计算 (教师平均年龄、计算工人平均年龄) 删除 (一个教师、删除一个工人)

显示 (全部职工记录、按系输出教师信息)

检索 (按姓名检索所有信息 按按职工号检索所有信息) 结束程序运行

8.销售管理系统(A类)

某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容: 1)销售员的代号 2)产品的代号

3)这种产品的当天的销售额

每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,读取上个月的销售情况(自己设定),进行如下处理。 1)计算上个月每个人每种产品的销售额。

2)按销售额对销售员进行排序,输出排序结果(销售员代号)

3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额) 4)输出统计报表 9.成绩记录簿(A类)

编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。具体功能: (1)创建信息链表并以磁盘文件保存;

(2)读取磁盘文件并显示输出所有学生的成绩; (3)按学号或姓名查询成绩; (4)添加成绩记录;

(5)修改指定姓名或学号的学生的成绩并可存盘;

(6)显示输出60分以下、60~79、80~89、90分以上各分数段的学生信息。 10.单项选择题标准化测试系统(A类) 功能要求:

用文件保存试题库。(每个试题包括题干、4个备选答案、标准答案) 1.试题录入:可随时增加试题到试题库中

2.试题抽取:每次从试题库中可以随机抽出N道题(N由键盘输入) 3.答题:用户可实现输入自己的答案

4.自动判卷:系统可根据用户答案和标准答案的对比实现判卷并给出成绩。 11.简单图形处理系统(A类)

设某图形处理程序只考虑点、直线、圆三种基本图形。对于点,给出点的横纵坐标;对于直线,给出直线方程ax+by+c=0的三个系数a,b,c;对于圆,给出圆心坐标和半径。试说明图形的几何形状类型,并编写输入和输出图形数据、求两点矩离、求两直线交点、 已知点和半径形成圆、已知两点形成直线等函数。

12.学生管理系统(最多3人完成 A+类)

使用下面的数据,用C/C++设计一个简单的学籍管理系统,实现出最基本的功能。

学生基本信息文件(A.TXT)及其内容:A.TXT文件不需要编程录入数据,可用文本编辑工具直接生成

学号 姓名 性别 宿舍号码 电话号码 01 张成成 男 501 87732111 02 李成华 女 101 87723112 … …. .. … ………..

学生成绩基本信息文件(B.TXT)及其内容:

学号 课程编号 课程名称 学分 平时成绩 实验成绩 卷面成绩 综合成绩 实得学分 01 A01 大学物理 3 66 78 82 02 B03 高等数学 4 78 -1 90 … …. ………. .. .. …

(一) 功能要求及说明:

(1) 数据录入功能: 对B.TXT进行数据录入,只录入每个学生的学号、课程编号、课程名称、学分、平时成绩、实验成绩、卷面成绩共7个数据. 综合成绩、学分由程序根据条件自动运算。

综合成绩的计算:如果本课程的实验成绩为-1,则表示无实验,综合成绩=平时成绩*30%+卷面成绩*70%; 如果实验成绩不为-1,表示本课程有实验,综合成绩=平时成绩*15%+实验成绩*.15%+卷面成绩*70% .

实得学分的计算: 采用等级学分制.

综合成绩在90-100之间 ,应得学分=学分*100% 综合成绩在80-90之间 ,应得学分=学分*80%

综合成绩在70-80之间 ,应得学分=学分*75% 综合成绩在60-70之间 ,应得学分=学分*60%

综合成绩在60以下 ,应得学分=学分*0%

(2)查询功能:分为学生基本情况查询和成绩查询两种 A:学生基本情况查询:

A1----输入一个学号或姓名(可实现选择),查出此生的基本信息并显示输出。 A2---输入一个宿舍号码,可查询出本室所有的学生的基本信息并显示输出。 B:成绩查询:

B1:输入一个学号时,查询出此生的所有课程情况,格式如下: 学 号:xx 姓 名:xxxxx

课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx 课程编号:xxx 课程名称:xxxxx 综合成绩:xxxx 实得学分: xx … … … … ……… … … 共修:xx科,实得总学分为: xxx

(3)删除功能:当在A.TXT中删除一个学生时,自动地在B.TXT中删除此人所有信息。 (4 ) 排序功能:能实现选择按综合成绩或实得学分升序或降序排序并显示数据。

B类:

1.多功能计算器


#《面向对象程序设计》课程设计指导书.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:助学申请书

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: