面向对象程序设计C#课程设计计划(09级)
《面向对象程序课程设计(C#)》计划
班级:B090501/02/03/04任课教师:张文学石念峰
一、设计目的
《面向对象程序设计课程设计》是《面向对象程序设计》课程的实践环节。通过课程设计实践,使学生进一步加深理解和掌握面向对象的基本概念、面向对象程序开发的基本思路和方法、windows Form 设计原则和方法以及它们在软件开发过程中的使用方法,达到提高学生C#语言编程和调试动手能力,培养学生使用面向对象程序设计、数据结构、数据库原理和软件工程等相关课程知识解决实际问题的能力的目的。
通过该课程设计,应达到下列基本要求:
1.熟练掌握C#的基本知识和技能;
2.基本掌握面向对象程序开发的基本思路和方法,熟悉面向对象软件开发过程,并初步具备利用面向对象的编程思想来完成系统设计的能力;
3.初步具备学生自学参考书籍及查阅手册、图表和文献资料的能力;
4.初步养成重视软件测试、重视文档写作、重视界面设计的程序开发习惯;
5.初步养成学生团队协作能力。
二、设计题目
学生每2~3人组成一个小组,以小组为单位,从下面题目中选择1个,分工协作,共同完成。
1.类似于“记事本”的文本编辑器https://www.360docs.net/doc/804267204.html,/view/94338d0302020740be1e9b11.html
1.1问题描述https://www.360docs.net/doc/804267204.html,/view/dd7b2e03a6c30c2259019e6e.html
设计一个文本编辑器,具有对文本文件进行读写等基本操作,类似于Windows中的记事本。
1.2基本要求
(1)能够实现基本的文本文件读取、保存、设置字体等功能;
(2)具有菜单、工具栏和状态栏;
(3)实现其它相关功能如字体、剪贴板的操作,查找、打印预览等功能;
(4)实现多文档界面;
(5)根据以上功能,设计数据结构和Windows UI界面,完成程序设计。
2. 学生成绩管理
2.1问题描述
建立学生成绩数管理系统,数据信息文本文件存储,也可以采用数据库存储。
2.2基本要求
(1)学生信息按照行政班级组织;
(2)提供学生成绩的查询功能,输入学生的学号或姓名,能查找出该生各学期各门课程的成绩。
(3)能对成绩数据进行添加、删除、修改等基本操作,并能进行一般的统计计算(如计算学生的总分
和平均分,课程的平均分等)
(4)其它辅助管理功能,如统计具有各等级奖学金资格的人数。
(5)用户权限控制,一般用户只能查询,管理员用户可以修改数据库的内容。
(6)根据以上功能,设计数据结构和Windows UI界面,完成程序设计。
3. 简易的绘图程序
3.1问题描述
类似于Windows的画图程序。
3.2基本要求
(1)能够画点、直线、矩形、多边形(正多边形和任意多边形)、圆、圆弧、椭圆等几何形状;
(2)具有存储功能和编辑功能(要求存储后的图形文件再次打开后和在当前操作状态下都可以编辑);
(3)具有简单的计算功能,比如计算直线的长度、矩形或圆的面积等;
(4)根据以上功能,设计数据结构和Windows UI界面,完成程序设计。
4. 校园导游程序
4.1问题描述
用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号、名称、简介等信息,图中的边表示景点间的道路,存放路径长度等信息。要求能够回答有关景点介绍、游览路径等问题。
4.2 基本要求
(1)查询各景点的相关信息;
(2)查询图中任意两个景点间的最短路径;
(3)查询图中任意两个景点间的所有路径;
(4)增加、删除、更新有关景点和道路的信息;
(5)具有存储功能,能够存储校园景点及其相关信息;
(6)根据以上功能,设计数据结构和Windows UI界面,完成程序设计。
5. 自选课题
要求:
1. 学生可以根据个人兴趣和特长自选课题,课题难度要求不低于以上选题难度;
2. 使用面向对象设计技术,Windows界面,C#编程语言。
3.对于选题功能给出详细描述。
4.根据功能要求,设计数据结构和Windows UI界面,完成程序设计。
三、设计要求
(1)按照面向对象程序设计分析要求进行类抽象和设计,所有界面必须具有良好的人机交互,布局合
理,菜单和工具栏条图标清晰、直观;
(2)所有功能必须同时具备菜单和工具条;
(3)采用C#语言开发,源代码必须添加必要注释,函数和变量命名规范,具有可读性;
(4)设计完成后,需要写成一份课程设计报告(打印出来),表达课程设计所做工作。
(5)结果形式:程序及数据库压缩文件包一个,课程设计报告一份。
四、进行方式及进度安排
1、设计地点:
实习安排在计算机机房
2、进行方式:
●教师宣布课程设计注意事项及课程设计组织形式,并对相关理论知识进行简单介绍。
●学生以2~3人为小组,从设计内容中选择一道题目,分析设计任务,确定各自设计任务,并
以文本形式上报指导教师。
●学生以小组为单位,首先分析各自的设计任务,查阅手册、图表和文献资料完成程序设计,
然后上机编程和运行调试。
●学生独立完成所承担任务的课程设计报告撰写,上报指导教师。
3、进度安排
第1-2天:确定小组,分析所选题目,进行分工,查阅相关资料,写出需求分析,确定系统功能,划分模块;设计算法、数据结构;
第2-4天:编制代码并调试,编写课程设计报告;
第5天:提交源程序清单和课程设计报告,进行答辩。
五、成绩评定
成绩按五级制评定。对完成的设计结果(40%)进行测试,结合答辩情况(30%)和课程设计报告(30%),进行成绩评定。
六、课程设计报告要求
按照软件工程设计步骤详细叙述课程设计题目的完成过程。
课程设计报告的格式要求:
1.课程设计题目:___________________
2.班级:B09050XX 完成人:_______________ 完成时间:__ ________
3.课程设计内容:
(1)本课题做了哪些工作、实现了什么结果、系统功能。
(2)所设计应用系统运行所需要的软件、硬件环境。
(3)数据结构设计:包括类图的设计、数据流程图设计;
(4)设计关键功能算法和绘制函数流程图。
(5)程序的功能、运行测试结果说明(测试应包括测试数据集及相应程序运行结果截屏),对于程序中没有实现的功能,应说明没有实现的原因。
(6)简要总结及自我评价。
附件:
类图设计参考。
图1链表类图
5
《面向对象程序设计C 》期末试卷及标准答案
《面向对象程序设计C++》期末考试试卷(B) 一、单项选择题(每小题2分,共40分) 1、关于C++与C语言关系的描述中,()是错误的。 A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的 C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的 2、已知:int m=10; 下列表示引用的方法中,()是正确的。 A.int &x=m; B.int &y=10; C.int &z; D.float &t=&m; 3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是()。 A.testDefaulParam(5); B.testDefaulParam(5,8); C.testDefaulParam(5,'#'); D.testDefaulParam(0,0,'*'); 4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是()。 A.函数的返回值类型B.参数的类型C.函数名称D.参数个数 5、下列有关C++类的说法中,不正确的是()。 A.类是一种用户自定义的数据类型 B.只有类中的成员函数或类的友元函数才能存取类中的私有成员 C.在类中,如果不做特别说明,所有成员的访问权限均为私有的 D.在类中,如果不做特别说明,所有成员的访问权限均为公用的 6、已知X类,则当程序执行到语句X array[3];时,调用了()次构造函数。 A.0 B.1 C.2 D.3 7、有关析构函数的说法,不正确的是()。 A.析构函数有且仅有一个 B.析构函数和构造函数一样可以有形参 C.析构函数的功能是在系统释放对象之前作一些内存清理工作 D.析构函数无任何函数类型
第3章 面向对象程序设计基础
第3章面向对象程序设计基础
第3章面向对象程序设计基础 【1】什么是Java程序使用的类?什么是类库? 答:类是将一类事物的特性描述出来,然后如果用这个类来定义对象,则该对象就拥有了这个类所描述的所有特性。 在Java系统中,系统定义好的类根据实现的功能不同,可以划分成不同的集合,每个集合称为一个包,所有包合称为类库。 【2】如何定义方法?在面向对象程序设计中方法有什么作用? 答:方法的定义由两部分组成:方法声明和方法体。 方法的声明如下: 返回值类型方法名(参数类型形式参数1,参数类型形式参数2…){ 程序代码; 返回值; } 在面向对象程序设计中,方法的作用是完成对类和对象属性操作。 【3】简述构造方法的功能和特点。下面的程序片段是某学生为student类编写的构造方法,请指出其中的错误。 void Student(int no,String name) {
studentNo=no; studentName=name; return no; } 答:构造方法的功能是:构造方法是一个特殊的方法,主要用于初始化新创建的对象; 特点:构造方法的方法名要求与类名相同,用户不能直接调用,只能通过new运算符调用,而且构造方法是不返回任何数据类型,甚至也不返回void数据类型,即不能在构造方法前加void。 错误之处:(1)构造方法Student()前不能加void,(2)不能用return语句,(3)类名Student 首字母S改成小写s. 【4】定义一个表示学生的student类,包括的域有学号、姓名、性别、年龄,包括的方法有获得学号、姓名、性别、年龄及修改年龄。编写Java程序创建student类的对象及测试其方法的功能。 class Student { String id; String name; String sex; int age; void talk(){
c面向对象程序设计试题和答案(经典题目)
一、填空题(每空1分,共14分) 1、观看以下程序: class point{ public: void show() {cout<<”point”< (A)指针(B)引用(C)枚举(D)结构 3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。 (A)share (B)public (C)private (D)protected 4、关于构造函数,下列说法不正确的是()。 (A)构造函数名字和类名相同 (B)构造函数在创建对象时自动执行 (C)构造函数无任何函数返回类型 (D)构造函数有且只有一个 5、派生类可以访问其基类的()。 (A)公有成员(B)保护成员 (C)私有派生(D)公有和保护成员 6、下列关于运算符重载的描述中,错误的是()。 (A)运算符重载不可以改变操作数的个数 (B)运算符重载不可以改变运算符的功能 (C)运算符重载不可以改变结合方向 (D)运算符重载不可以改变运算优先级 7、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是() (A)面向过程(B)面向对象(C)安全性(D)复用性 8、对于类中定义的成员,其隐含访问权限为()。 A.public B.protected C.private D.static 9、下面有关重载函数的说法中正确的是() (A)重载函数必须具有不同的返回值类型;(B)重载函数形参个数必须不同; (C)重载函数必须有不同的形参列表(D)重载函数名可以不同; 10、有如下的对类“CSample”的说明,其中()是错误的。 class CSample { A.int a=23; B.CSample(); public: C.CSample(int val); D.~ CSample(); 11、在int a=3,int *p=&a;中,*p的值是( ) A.变量a的地址值 B.无意义 C.变量p的地址值 D.3 12、每个类()构造函数。 (A)只能有一个(B)只可有公有的 1 什么是面向对象程序设计,它与传统的结构式程序有什么不同。 面向对象程序设计是一种适用于设计、开发各类软件的范型。它是将软件看成是一个由对象组成的社会:这些对象具有足够的智能,能理解从其他对象接受的信息,并以适当的行为作出响应;允许低层对象从高层对象继承属性和行为。通过这样的设计思想和方法,将所模拟的现实世界中的事物直接映射到软件系统的解空间。 与传统的结构式程序设计相比,面向对象程序设计吸取了结构式程序设计的一切优点(自顶向下、逐步求精的设计原则)。而二者之间的最大差别表现在: ·面向对象程序采用数据抽象和信息隐藏技术使组成类的数据和操作是不可分割的,避免了结构式程序由于数据和过程分离引起的弊病。 · 面向对象程序是由类定义、对象(类实例)和对象之间的动态联系组成的。而结构式程序是由结构化的数据、过程的定义以及调用过程处理相应的数据组成的 2 用面向对象方法建立模型的思维过程是怎样的。 用面向对象方法建立拟建系统的模型的过程就是从被模拟现实世界的感性具体中抽象要解决的问题概念的过程。这种抽象过程分为知性思维和具体思维两个阶段,其中:·知性思维是从感性材料中分解对象,抽象出一般规定,形成了对对象的普遍认识。·具体思维是从知性思维得到出的一般规定中揭示的事物的深刻本质和规律,其目的是把握具体对象的多样性的统一和不同规定的综合。 3 解释以下概念: ①对象:在现实世界中,对象就是可以感觉到的实体。每个对象具有一个特定的名字以 区别于其他对象;具有一组状态用来描述它的某些特性;具有一组操作,每一个操作决定对象的一种功能或行为(为自身服务的操作和为其他对象提供服务的操作)。而在面向对象系统中,对象是可以标识的存储区域。每个对象的状态被保存在此区域中,而实现一类对象行为的操作(代码)被保存在另外相关的存储器区域中。 ②消息:消息是要求某个对象执行其某种功能操作(方法)的规格说明。因此,消息是 由消息的接收者、消息要求提供的操作(消息名)和必要的参数组成的。 ③类:在现实世界中,类是对一组具有共同特性(属性和行为)的客观对象的抽象。而 在面向对象系统中,类是由程序员自定义的具有特定结构和功能的类型,是一种代码共享的手段。 ④实例:任何一个对象都是该对象所属类的一个具体实例。 ⑤公有消息:是由对象外向对象发送的消息,用于激活该对象的某种方法。 ⑥私有消息:是由对象向自身发送的消息,用于内部操作;该类消息不能从对象外向该 对象发送。 ⑦消息序列:在面向对象系统中一个事件的发生总会有多个对象的多次相互作用才能完 成,使得这些对象能够相互作用的消息组成的序列被称为消息序列。 4 类与实例的关系如何? 类是创建对象的模板,而对象是实现类的实例。属于同一类的不同实例必须具有: ·相同的操作集合; ·相同的静态属性集合; ·不同的对象名和属性动态值。什么是面向对象程序设计
(完整版)《面向对象程序设计》答案