面向对象程序设计课程设计范例

合集下载

c面向对象程序设计课程设计

c面向对象程序设计课程设计

c 面向对象程序设计课程设计一、课程目标知识目标:1. 让学生掌握面向对象程序设计的基本概念,如类、对象、封装、继承、多态等。

2. 培养学生运用面向对象思想进行问题分析、设计和解决问题的能力。

3. 让学生了解并运用面向对象编程语言(如Java、C++等)的基本语法和常用库。

技能目标:1. 培养学生运用面向对象方法编写程序的能力,能独立完成小型程序设计任务。

2. 培养学生运用面向对象设计模式优化程序结构,提高代码复用性和可维护性。

3. 培养学生具备团队协作能力,能与他人共同完成复杂程序设计项目。

情感态度价值观目标:1. 激发学生对计算机编程的兴趣,培养良好的编程习惯和自主学习能力。

2. 培养学生勇于面对编程挑战,敢于创新,善于解决问题的精神。

3. 增强学生的团队合作意识,培养沟通协调能力和责任心。

课程性质:本课程为高中信息技术课程,旨在帮助学生掌握面向对象程序设计的基本知识和技能,提高编程能力。

学生特点:学生具备一定的编程基础,对面向对象编程有一定了解,但实际应用能力有待提高。

教学要求:结合学生特点,注重理论与实践相结合,以案例驱动教学,培养学生动手实践能力和创新能力。

通过分组讨论、项目实践等教学活动,提高学生的团队协作能力和沟通能力。

在教学过程中,关注学生的学习进度和个体差异,给予个性化指导,确保课程目标的实现。

将课程目标分解为具体的学习成果,便于后续教学设计和评估。

二、教学内容1. 面向对象基本概念:介绍类、对象、属性、方法、封装、继承、多态等基本概念,对应教材第一章内容。

2. 面向对象编程语言:学习Java/C++等面向对象编程语言的基本语法,如数据类型、控制结构、异常处理等,对应教材第二章内容。

3. 面向对象设计:学习如何进行面向对象分析、设计,包括类图、对象图、序列图等UML图的使用,对应教材第三章内容。

4. 面向对象编程实践:通过案例教学,让学生动手编写面向对象程序,涵盖面向对象编程的基本特点,对应教材第四章内容。

c面向对象程序设计课课程设计

c面向对象程序设计课课程设计

c 面向对象程序设计课课程设计一、教学目标本节课的教学目标是使学生掌握C语言面向对象程序设计的基本概念和原理,包括类和对象、继承和多态等。

学生应能够运用C语言实现简单的面向对象程序,并理解面向对象程序设计的核心思想。

此外,学生还应培养良好的编程习惯和团队协作能力。

具体来说,知识目标包括:1.理解类和对象的概念,能够正确创建和使用类和对象。

2.掌握继承和多态的原理,能够运用继承和多态编写程序。

3.熟悉常用的面向对象编程构造,如封装、继承和多态。

技能目标包括:1.能够运用C语言实现简单的面向对象程序。

2.具备良好的编程习惯,如合理的函数命名、代码注释等。

3.能够进行团队协作,共同完成一个面向对象程序的设计和实现。

情感态度价值观目标包括:1.培养学生的创新意识,鼓励他们积极探索新的编程思路。

2.增强学生的自信心,让他们相信自己能够掌握面向对象程序设计。

3.培养学生的团队协作精神,让他们学会与他人共同解决问题。

二、教学内容本节课的教学内容主要包括类和对象、继承和多态等面向对象程序设计的基本概念和原理。

具体包括以下几个部分:1.类和对象:介绍类的概念,如何创建和使用类和对象,包括成员函数和成员变量。

2.继承:讲解继承的概念和原理,如何实现继承,以及继承的应用场景。

3.多态:介绍多态的概念,如何实现多态,以及多态的使用方法和注意事项。

4.面向对象编程构造:讲解封装、继承和多态的原理和应用。

三、教学方法为了提高学生的学习兴趣和主动性,本节课将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。

1.讲授法:用于讲解面向对象程序设计的基本概念和原理。

2.讨论法:鼓励学生积极参与课堂讨论,提出问题和观点,培养团队协作能力。

3.案例分析法:通过分析实际案例,使学生更好地理解和掌握面向对象程序设计的方法。

4.实验法:让学生动手编写面向对象程序,提高他们的实践能力。

四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将选择和准备以下教学资源:1.教材:《C语言面向对象程序设计》等相关教材。

《面向对象程序设计》课程设计实例

《面向对象程序设计》课程设计实例

课程设计报告例子:高等院校人事信息管理系统1、系统设计目标及意义、功能此题目要完成一个高等院校的人事信息管理系统,能够实现学校中各类人员的信息录入、查询、修改、删除、统计、保存、显示等操作。

假设高校中有三类人员:授课教师、行政人员、行政人员兼职教师〔既上课又完成行政人员的工作〕。

系统具体实现的功能如下:1)从文件中加载员工信息:系统可以实现把存储在文件person.txt中的学校人员根本信息加载到系统中,可以防止数据的重复录入。

2)增加学校员工信息:系统可以实现键盘录入新员工信息,员工信息包括员工编号、类型、姓名、性别、年龄、政治面貌、学历、工资等。

如果目前学校无员工,那么直接录入员工信息;如果有员工,那么自动生成新员工的编号〔增加1〕。

学校人员分为授课教师、行政人员、行政人员兼职教师三类,各类员工的工资计算方法如下:授课教师工资=根本工资+课时费〔30*学时数〕行政人员工资=根本工资+行政补贴行政人员兼职教师工资=根本工资+行政补贴+课时费〔20*学时数〕3〕查询学校员工信息:系统可以实现按“编号〞或“姓名〞查询员工,并输出相关信息。

4〕修改学校员工信息:系统可以实现对录入的员工信息重新进行编辑、修改,分别修改员工的姓名、性别、年龄、政治面貌、学历和工资信息。

5〕删除学校员工信息:系统可以实现当员工离开学校时删除相关信息。

6〕统计学校员工信息:系统可以统计学校中的党员人数和女员工人数。

7〕学校员工信息存盘:系统可以实现把员工根本信息存储到磁盘文件person.txt中,方便用户以后读取数据,防止重复录入。

8〕显示所有员工信息:系统可以输出学校所有员工的信息,包括员工编号、姓名、性别、年龄、政治面貌、学历、工资、人员类型等。

9〕系统界面采用文本菜单方式,交互性好,系统界面如图10所示:系统数据存盘文件格式如下:编号姓名性别年龄政治面貌学历工资员工类型1000 张莉女32 党员博士7500 11001 白飞女28 群众硕士2500 21002 孟丹男40 党员博士10500 3其中员工类型为1表示授课教师,2表示行政人员,3表示行政人员兼职教师2、系统详细设计系统使用类来组织管理数据,共包括五个类,分别是学校类school、员工类person、任课教师类teacher、行政人员类staff、行政人员兼职教师类staffteacher。

《面向对象程序设计》课程设计报告样本

《面向对象程序设计》课程设计报告样本

课程设计报告系别计算机科学与技术系课程名称面向对象程序设计设计题目***专业计算机科学与技术班级1501班组长***组员*** *** *** *** *** *** 时间2016-2017-2目录课程设计报告 (1)坦克游戏 (5)任务分工 (5)实现功能 (5)一、画出坦克 (5)1.定义坦克类(class Tank),用paint画出坦克共有属性:外形,颜色,方向,速度等 (5)2.定义子弹类(class Shot) (5)二、我的坦克可以上下左右移动,炮筒方向也跟着变换 (6)1.定义我的坦克类(class Hero) (6)2.我的坦克初始位置 (6)三、敌人的坦克可以上下左右移动,炮筒方向也跟着变换 (6)1.定义敌人的坦克类(class EnemyTank) (6)2. (6)3. 定义敌人的坦克数量 (6)四、我的坦克可以发子弹(线程),按下j键,发射一颗子弹(最多可连发5颗) (6)五、当敌人坦克击中我的坦克,显示爆炸效果 (6)六、进入游戏时,首页面出现闪烁字体“stage:1” (7)1.设置字体颜色 (7)2.设置字体类型和大小 (7)3.设置字体显示的位置 (7)4. 产生闪烁效果需让字体一会出现,一会消失 (7)七:设置菜单:游戏(G):开始新游戏(N)、退出系统(E)、存盘退出(C)、续上局(S) (7)1.初始化菜单和快捷方式 (7)2. 对jmi1响应 (7)八、点击菜单各按钮 (8)1.点击“开始新游戏”按钮时,需删除旧面板(即开始界面),创建新界面 (8)2.点击“退出系统”按钮时,保存击毁敌人数量后退出 (8)3. 点击“存盘退出”按钮时,保存击毁敌人的数量和坐标后退出 (8)4.点击“续上局”按钮时,在上局的基础上继续玩 (8)九、可以在玩游戏时暂停和继续,存盘退出游戏,可以记录当时的敌人坦克坐标,并可以恢复 (9)1.用文件流的方式将击毁敌人坦克数量保存在指定文件中 (9)2.若是存盘退出,把敌人坦克坐标保存在指定文件中 (9)3.当打开“续上局”时,把保存的信息导入 (9)4.完成操作后,需关闭字节流,遵循先开后关原则 (9)十、设置面板的大小、游戏界面的大小 (9)1.面板大小 (9)2.游戏界面大小 (9)十一、画出提示坦克和信息 (10)1.敌人坦克为蓝色,设置位置 (10)2.我的坦克为黄色,设置位置 (10)3. 玩家的总成绩,设置字体样式大小、位置 (10)十二、记录类(class Recorder),同时保存玩家的设置 (10)1.设置每关有20辆敌人坦克,我有3辆,记录总共消灭多少敌人 (10)附件一:运行过程(截图) (11)1.进入初始界面 (11)2.点击“开始游戏“按钮 (12)3.当我的坦克消灭一辆敌人坦克,敌人坦克数量减1,您的总成绩加1. (13)坦克游戏(描述游戏……)任务分工(每个人的任务)实现功能一、画出坦克1.定义坦克类(class Tank),用paint画出坦克共有属性:外形,颜色,方向,速度等①坦克绘画:如:炮筒方向向上// 画出左边矩形g.fill3DRect(x, y, 5, 30, false);// 画出右边矩形g.fill3DRect(x + 15, y, 5, 30, false);// 画出中间矩形g.fill3DRect(x + 5, y + 5, 10, 20, false);// 画出中间圆g.fillOval(x + 5, y + 10, 10, 10);// 画出直线g.drawLine(x + 10, y + 15, x + 10, y);②坦克颜色:敌人坦克为蓝色,我的坦克为黄色。

Java面向对象程序设计语言课程设计指导书(精选5篇)

Java面向对象程序设计语言课程设计指导书(精选5篇)

Java面向对象程序设计语言课程设计指导书(精选5篇)第一篇:Java面向对象程序设计语言课程设计指导书山东建筑大学商学院电子商务专业《Java面向对象程序设计语言》课程设计(实验)指导书一、对学生的基本要求:1、理论联系实际、严肃认真、实事求是的科学态度和勇于探索的创新精神。

2、运用所学基础理论与专业知识分析和解决实际问题,培养独立思考完成任务的能力。

3、运用Java面向对象程序设计方法、标准与规范开发小型应用软件系统。

二、设计的要求及内容及要求:应用Java面向对象程序设计语言开发小型应用软件系统。

可以从给定的选题中选择一个课题或自拟课题(自拟课题需经指导教师批准),完成系统分析、设计和开发。

具体要求如下:(1)针对你所选择的系统进行需求分析,写出系统的功能要求,设计的应用程序应具有的功能要素。

(2)程序代码应符合教学中应该具有的规范要求,类名、方法名,属性名称应与设计中实际的应用含义相符,程序中具有相应的注释。

(3)程序的界面要合理、美观。

(4)每人最终提交一个可行的应用软件程序和规范的课程设计说明书。

说明书应严格按照说明书的要求,格式清晰、规整。

并提交所设计程序的电子文档。

三、设计进度:1、17周周一~周二:选题,系统的需求分析。

分析并规划你所设计的系统应达到的功能,满足什么样的要求。

2、17周周二~周四:系统设计。

分析要达到你所要求的功能需要编写什么类,规划类的层次结构,设定好类明、方法名、属性名;规划你所设计的系统应具有什么样的界面布局。

查阅资料帮助自己规划好你的系统。

3、17周周五~18周周二:程序设计。

根据自己所规划的程序进行具体代码设计,代码设计要符合程序设计的规范要求,注意程序的编写格式。

4、18周周三:程序测试。

对自己所规划的程序进行测试,看是否有异常及程序Bug出现,并进行调试修正程序代码。

5、18周周三:编写课程设计说明书。

按照本指导书要求格式编写程序设计报告(见附件)。

《面向对象程序设计》课程设计

《面向对象程序设计》课程设计

《面向对象程序设计》课程设计一、课程设计的目的1、培养学生面向对象编程的思想;2、使学生熟悉C++语言的使用;3、培养学生C++编程的思想和方法;4、使学生掌握C++编程调试的基本技能;5、培养学生分析、解决问题的能力。

二、课程设计内容与要求1、内容一:模拟实现银行ATM自动取款机系统。

系统至少包括以下几方面的功能:(1)修改密码功能;(2)余额查询功能;(3)取款功能;(4)转账功能。

内容二:模拟实现学籍管理系统。

系统主要功能有:(1)学生基本信息的录入;(2)学生基本信息的查询;(3)学生基本信息的修改;(4)学生基本信息的删除。

内容三:模拟实现图书借阅系统。

系统主要功能有:(1)图书信息的添加;(2)读者信息的添加;(3)图书信息的查询;(4)借书;(5)还书;2、设计要求:(1)分析数据对象及其联系;(2)实现相关类的设计;(3)分析系统功能构成;(4)对应用系统编程并运行调试3其他要求(1)每个学生自选一个内容独立完成。

(2)在课上完的时候提交附件中的课程设计报告,即word文档,文件名要求按“学号_姓名”命名,学号要全称,内容一定要按照附件报告中的要求去做,正文字体为宋体,字号为四号字,单倍行距。

课程设计报告最后由学委统一收齐上交。

(3)注意事项:实验报告如有雷同,一律不及格。

程序上课时要检查验收,并评分。

本课程设计为1个学分,希望大家认真完成。

附:课程设计报告格式《面向对象程序设计》课程设计报告题目:图书管理系统专业:班级:学号:姓名:指导教师:完成日期:年月日《面向对象程序设计》课程设计一、系统中所使用的数据对象及说明1、读者reader类属性属性名称类型描述readername string 读者姓名方法方法名称功能setReader 设置读者信息2、图书类book3、图书馆类library4、各个类之间的关系二、系统功能结构及相关算法描述1、系统功能结构2、相关算法流程图(1)添加图书流程三、程序源码#include <iostream> #include <string>#include <iomanip> using namespace std; class book{public:string ID;book();void setBook(string id,string bn,string au,float p,string s); void setStatus(string s);void display();void display2();protected:string bookname;string author;float price;string status;};四、系统运行结果(截图)1、主菜单2、添加读者信息3、添加图书信息4、借书5、读者借阅记录查询五、课程设计总结。

面向对象程序设计课程设计报告模板

面向对象程序设计课程设计报告模板
2.实训内容
使用MyEclipse为开发工具,使用Rational Rose为建模工具,使用MySQL为数据库服务器,基于GUI和JDBC技术,分析、设计并实现一个管理信息系统。
3.需求分析3.1需求描述3 Nhomakorabea2用例描述
4.功能设计
4.1系统层次方框图
4.2算法设计(活动图或时序图)
5.数据设计
5.1类图设计
5.2数据表设计
6.运行结果
7.关键代码
8.实训总结
成绩
Score
教师签字日期
姓名
学号
班级
代码行数
项目名称
1.实训目的
面向对象程序设计课程设计是计算机科学与技术专业培养计划中的重要实践教学环节,旨在通过一个管理信息系统的开发,加深学生对Java语言的理解和应用,尤其是对面向对象编程思想、Java编码规范、图形用户接口、JDBC访问数据库的理解,巩固软件工程课程的相关知识,了解软件开发的基本流程,进一步提高学生的学习能力、理解能力、表达能力及沟通能力。

c面向对象程序设计课程设计

c面向对象程序设计课程设计

c 面向对象程序设计课程设计一、教学目标本课程的教学目标是使学生掌握C语言面向对象程序设计的基本概念、原理和方法,培养学生运用C语言解决实际问题的能力。

1.掌握面向对象程序设计的基本概念,如类、对象、封装、继承、多态等。

2.熟悉C语言中的面向对象编程机制,如构造函数、析构函数、继承、多态等。

3.了解常用的面向对象编程技术,如抽象类、接口、模版等。

4.能够运用面向对象的方法分析问题、设计程序。

5.能够使用C语言实现简单的面向对象程序。

6.能够阅读和理解面向对象的程序代码。

情感态度价值观目标:1.培养学生的团队协作精神,使学生在解决问题时能够与他人合作。

2.培养学生勇于尝试、不断探索的学习态度,提高学生面对困难的信心。

二、教学内容本课程的教学内容主要包括面向对象程序设计的基本概念、C语言的面向对象编程机制以及常用的面向对象编程技术。

1.面向对象程序设计的基本概念:类、对象、封装、继承、多态等。

2.C语言的面向对象编程机制:构造函数、析构函数、继承、多态等。

3.常用的面向对象编程技术:抽象类、接口、模版等。

4.面向对象程序设计的基本概念:讲解类、对象、封装、继承、多态等概念,通过实例让学生理解这些概念的应用。

5.C语言的面向对象编程机制:讲解构造函数、析构函数、继承、多态等编程机制,并通过实例进行分析。

6.常用的面向对象编程技术:介绍抽象类、接口、模版等编程技术,并通过实例进行讲解。

三、教学方法本课程采用讲授法、讨论法、案例分析法和实验法等多种教学方法。

1.讲授法:通过讲解基本概念、原理和方法,使学生掌握面向对象程序设计的基础知识。

2.讨论法:学生进行小组讨论,培养学生的团队协作精神和沟通能力。

3.案例分析法:通过分析实际案例,使学生了解面向对象程序设计的应用场景。

4.实验法:让学生动手编写面向对象的程序,培养学生的实际编程能力。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。

1.教材:选用权威、实用的教材,如《C面向对象程序设计》。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象程序设计课程设计题目:学号:姓名:专业班级:指导教师:职称:职称:年月日目录1.系统需求分析 (1)2.总体设计 (2)3.详细设计 (3)4.系统调试 (6)5.结果分析 (7)6.总结 (8)7.附录:源程序清单 (9)1.系统需求分析考勤信息记录了学生的缺课情况,它包括:缺课日期、第几节课(连续用begin-end的形式表示)、课程名称(课程名称中不会出现空格)、学生姓名、缺课类型(迟到、早退、请假及旷课)。

试设计考勤管理系统,使之能提供以下功能:1).录入学生的缺课记录:从键盘输入数据(提示:为避免重复从键盘输入数据,测试时可将数据存储在文件中,利用输入重定向功能读入),输入格式为:缺课日期第几节课课程名称学生姓名缺课类型每行一条纪录。

例如:2009-04-29 2-4 中国近现代文学史李云龙迟到2009-04-28 2-4 大学生社交礼仪马志鹏旷课2).修改某个学生的缺课记录:可以对缺课纪录的任意部分进行修改,然后显示一下修改后的纪录。

3).查询某个学生的缺课情况:查询结果按照日期升序排序,同一天内按照所缺课程的时间升序排序。

4).统计某段时间内(以天为单位),旷课学生姓名及旷课节数,查询结果先按旷课节数降序排序,旷课节数相同的学生按姓名升序排序;5).统计某段时间内,有学生旷课的课程及旷课人次,按旷课人次由多到少排序,旷课人次相同的课程按课程名称升序排序;6).系统以菜单方式工作。

(所谓菜单指用户可以自由选择所要执行的功能。

学生可以通过以上功能录入信息、修改信息、查询信息、整理统计出所要了解的信息,除了要实现上述的基本功能之外,本系统还应该在细节上下工夫,使用户使用方便,在使用的过程中保持一个愉快的心情。

学生考勤管理系统有广大的用户群,这其中有老师、有教务处主任、有公司管理人员,也可以供给一般用户使用。

总之该系统可以满足用户需求,实现对其管理的人员的考勤工作。

2. 总体设计 学生考勤管理系统包含五个大的功能,分别是:录入学生缺课信息、修改学生缺课信息、查询某个学生的缺课情况、统计某段时间内(以天为单位),旷课学生姓名及旷课节数和统计某段时间内,有学生旷课的课程及旷课人次。

学生的缺课信息主要包含缺课日期,第几节课、课程名称,学生姓名,缺课类型。

在录入学生缺课信息时根据系统提示逐一输入。

每输入完一条信息,系统会提示是否继续输入,用户可以选择继续或返回主菜单。

在修改学生缺课信息时,用户首先输入要修改的学生姓名,系统会检索如果系统中有该学生的相关信息则系统首先会提示用户修改该学生的那一部分信息,用户可自行选择。

如果系统中没有该学生的相关信息,则系统会给相关提示,用户可以选择继续输入要修改的学生姓名或选择退出返回主菜单。

在查询学生缺课信息时,用户先输入要查询的学生姓名,系统检索判断是否存在该 学生的信息然后做出相应的提示。

总之,用户可以方便的在系统提示下进行使用。

学生考勤管理系统中功能模块图: 修改某学生的缺课信息 查询某学生的缺课信息 统计某段时间内旷课学生姓名及旷课节数 统计某段时间内,有学生旷课的课程及旷课人次 录入学生的缺课信息 学生考勤管理系统录入缺课学生的姓名、缺课日期、缺课节次、缺课课程名称、缺课类型修改某学生的缺课日期、缺课节次、缺课课程名称、缺课类型 查询某学生的缺课日期、缺课节次、缺课课程名称、缺课类型 按时间升序显示旷课学生姓名及旷课节数 按时间升序显示有学生旷课的课程及旷课人次3. 详细设计 学生考勤管理系统中四个类的类层次图为:学生考勤管理系统中各功能模块的实现:1、学生缺课信息录用功能模块: 图4 学生缺课信息录入的功能2、修改某学生缺课信息功能的模块图图5 学生考勤管理系统修改学生缺课信息功能图3 查询某学生缺课信息功能图:图6 学生考勤管理系统查询学生缺课信息功能图4、统计某段时间内旷课学生姓名及旷课节数功能模块:图7统计某段时间内旷课学生姓名及旷课节数功能图 5、统计某段时间内,有学生旷课的课程及旷课人次功能模块输入要查询的学生姓名 修改某学生的缺课课程修改某学生的缺课类型 学生缺课信息录用功能 录入学生缺课节次录入学生缺课日期录入学生缺课课程名称 录入缺课学生姓名录入学生缺课类型修改某学生的缺课日期 统计某段时间内旷课学生姓名及旷课节数 显示某段时间内旷课学生姓名及旷课节数返回菜单 Time 类Xinxi 类qstu 类 qkechen类 菜单 录入学生的缺课信息 查询某学生的缺课信息 修改某学生的缺课信息 统计某段时间内,有学生旷课的课程及旷课人次 统计某段时间内旷课学生姓名及旷课节数 修改某学生缺课信息功能 修改某学生的缺课节次 查询某学生缺课信息功能 统计某段时间内旷课学生姓名及旷课节数功能 显示要查询的学生缺课信息 继续查询或返回菜单 图表 3-1学生考勤管理系统中中四个类的类层次图 图表 3-2学生考勤管理系统中菜单函数的功能图统计某段时间内,有学生旷课的课程及旷课人次功能统计某段时间内,有学生旷课的课程及旷课人次返回菜单显示某段时间内,有学生旷课的课程及旷课人次图8统计某段时间内,有学生旷课的课程及旷课人次功能图图 9 学生考勤管理系统中四个类的UML 图Tine-year:int-month:int-day:int+time()+~time() Xinxi-name[20]:char-kechen[10]:char-jieci[3]:char- queke[10]:char-tm[3]:char-tiaoshu:int=0+xinxi()+~xinxi()+setname(n:char*):void+settime(y:int,m:int,d:int):void+setqklx(qk: char*): void+setjieci(jc: char*):void+setkechen(kc: char*):void+getname():char*+getqklx():char*+getjieci():char*+getkechen():char*+gettime():int* qkechen-renci:int -kcshu:int=0 +qkechen() +~qkechen() +getrc(st1[]:xinxi,n:int ,j:int):int +qkn[20]:charqstu -jieshu:int -qst:int+qstu()+~qstu()+print(st1:xinxi &):void+getjs( st1[]:xinxi,n:int, j:int):int+setjs(js:int=0):int +qstn[20]:char基类派生类派生类 派生类4.系统调试程序编写完成后,我进行了程序调试。

调试过程中,出现了以下问题:当录入学生缺课信息时,出现了无法退出录入函数的情况,主要原因是输入函数中while循环语句没有设置跳出循环的条件。

除此之外,修改某学生缺课信息时,如果没有该学生的缺课信息,系统没有提示要用户没有该学生信息,也没有建议用户重新输入要修改的学生姓名。

由此我发现了该系统修改学生缺课信息的不足。

于是,我对修改函数进行了修改和完善。

在该函数中,我设置了if语句用来判断系统中是否存有用户要修改的学生缺课信息。

如果没有,则提示用户没有该学生的缺课信息,用户可以选择继续输入要修改的学生姓名或者退出修改环节,可以在循环语句中改变循环进行的条件从而终止循环。

至于在修改后显示该学生的缺课信息,运行时发现系统并没有做到这一点,对源代码检查之后发现是修改函数中显示函数的调用出了点问题,显示函数的实参有误,应该把要修改缺课信息的学生所在的信息类对象作为实参,然后用显示函数的形参引用实参对象,通过对象调用信息类的成员函数,从而实现显示功能。

至于该系统的查询功能的实现,在调试时发现还有欠缺,当随便输入一个学生姓名时,系统没有显示该学生的缺课信息,也没有提示系统没有找到该学生的有关信息,经过在查询函数while循环中加入一个if条件语句后,系统实现了提示用户的功能,如果系统中没有你要查询的学生缺课信息,系统将会提示用户,用户可以继续输入要查询的学生姓名也可以通过按系统设置的退出键选择退出查询环节。

至于两个统计功能至今没有完善,主要是特定时间学生缺课次数和课程的缺课人次的统计问题尚待解决,现如今只完成了一两条学生缺课信息的统计。

主要问题是特定时间这个前提条件对我造成了一定的障碍。

对系统中存储的信息进行查找和统计运用对象指针比较方便,但我没有使用,也算有点遗憾。

在调试过程中我出现的最严重的问题是函数形参引用对象数组,结果系统提示将近几十个错误,在我把函数形参改为对象数组后,错误一下减少了很多。

还有比较突出的问题是整个程序不知哪掉了个}号系统会提示有错,但就不懂那专业术语啥意思。

还有就是我以为派生类公有继承的基类的保护成员在派生类内为公有成员,可编译时才发现是不对的。

通过认真调试,我发现我有了收获。

5.结果分析这次的课设,我写的程序也没有什么独到之处,我觉得唯一可以从我的程序可以看出的是数组用得比较多,反正是没啥特色,不仅如此,还写得功能不全,实在是惭愧。

现在在这里也只能说说它的不足之处了。

类层次不够清晰,纵观整个程序可以发现四个类之间的关系不甚恰当,我有这个感觉,但我不知如何改进。

函数参数设定不够完美,整个程序中对指针的运用比较少。

对于指针的巧妙运用把握得不够。

还有就是容易missing;或者是},这都是些应该改掉的毛病。

除此以外,我对于怎样用文件保存数据还没深入了解,但我将数据保存到文件后又因文件打不开而无法访问文件中的数据,对于动态链表,我不是很清晰,也就是说无法做到熟稔运用。

在调试过程中我发现在主函数中把字符数组名name赋值给字符指针p即p=name;然后用cout<<p;语句可以输出字符数组里全部的内容,但利用函数返回指针值却不能做到这一点,在我思考一番后终于明白了,这和内存中的地址值有关。

具体为什么我是解释不清了在调用系统的显示功能时,如果在getname()函数前加一个*号输出的只是一个字符,不加反而能输出所有字符。

getname()函数的返回值为指针类型,但前面说过利用函数返回指针类型的值并不能输出字符数组中所有的字符,为什么这里又可以呢?老天,这是为什么?我不知道这一知识,这也算我的程序的不足之处吧!对于两个统计函数的功能不全,我感到无能为力,我为了这两函数苦思了两天,硬是没凑合来。

到后来,脑子里都乱了,运行时屏幕上尽是些乱七八糟的东西。

老师帮我看看,看有没有什么简单的方法一下搞定它。

结果不是很好,但过程够了就行。

这也是自欺欺人的看法,让我再一次自责吧。

相关文档
最新文档