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

合集下载

面向对象课程设计题目(1)

面向对象课程设计题目(1)

2011计算机科学与技术专业面向对象课程设计题目李爱华一设计要求每个题目可以1人或至多两人,按题目要求完成程序设计及课程设计报告。

(题目相同者的课程设计报告不能完全相同。

)二题目列表三题目内容及要求题目1 矩阵运算内容及要求:定义矩阵类,实现矩阵加法、减法、乘法、矩阵转置、求矩阵的逆矩阵等。

用程序实现验证n*n矩阵的如下定理:A(BC)=(AB)C。

题目2 填XO游戏程序内容及要求:游戏规则和胜利条件:棋盘共有5行5列:选择难度(1):两个斜对角之一都为X或O,则玩家胜。

一横行都为X或O则玩家胜。

)一竖行都为X或O则玩家胜。

选择难度(2):两个斜对角之一都为X或O,则玩家胜。

选择难度(3):两个斜对角都为X或O,则玩家胜。

输入必须为一个两位整数,如11,代表棋盘的第一行第一列,输完后按回车键;玩者下一步X或O,计算机也自动下一步X或O。

程序运行示例:题目3 统计学生成绩内容及要求:要求编写一个“Student”类及用来存取文件的save()和load()函数,使用函数及运算符重载技术完成如下操作:(1)计算每个学生的平均成绩,将数据存入文件stud.dat中并验证是否正确地存入了文件。

(2)要求对“<<”和“>>”运算符进行重载。

(3)把学生姓名和平均成绩抽取出来,建立一个简明文件stud_mean.dat,并验证是否正确地存入了。

(4)从文件stud.dat按如下格式输出大于等于平均成绩的学生信息:学号姓名算术语文平均(5)将两门功课成绩都不及格的学生信息从文件中删除并另外存入文件bad.dat中。

(6)编写能检索文件中某个学生信息的子程序。

如无此学生,输出“未查到”信息。

(7)使用多文件编程和菜单操作。

题目4 会议记录管理系统内容及要求:定义会议信息类class Conference会议信息包括:会议编号,会议名称、部门名称、会议地点,会议日期,会议主持人,会议记录人,出席人员,会议摘要。

面向对象程序设计(C++课程设计报告)

面向对象程序设计(C++课程设计报告)
打开线数据文件Line.dat,可以显示出文件里面的线图形。
(2)问题描述:
使用MFC,应用MFC中已有函数以及画图类完成一个划线程序,使得能用鼠标在MFC视图中划出一道可以自定义线的格式的线,然后完成拾取、保存以及读取工作。
(3)问题分析:
该题目需要我们在熟练运用MFC的基础上,对MFC中函数进行掌握,并学会划线类地应用。首先需要我们完成划线操作利用buttondown和buttonup两个消息响应函数,然后将所有的线的属性放入vector容器中,实现线的存储,利用两边之和约等于第三边完成线的选取工作,再利用文本输入输出流完成保存和读取。
void CHuaxianView::OnMenuitem32771()
{
// TODO: Add your command handler code here
dialog a;
a.DoModal();
m_b=a.m_b;
m_r =a.m_r;
m_w =a.m_w;
m_y =a.m_y;
}
在ChuaxianView类的OnLButtonDown()函数中完成记录起始点的工作:
// TODO: add draw code for native data here
for(int i = 0; i < m_vLines.size() ;i++)
m_vLines[i].Draw(pDC);//将容器中所有线进行重绘
}
在ChuaxianView类的对话框函数中完成数据输入与更新:
void CHuaxianView::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

面向对象程序设计样卷

面向对象程序设计样卷

面向对象程序设计样卷一、选择题( 本大题共10小题, 每题2分, 共20分)4.在下列定义的引用中, ( B )是错误的。

A. int i;B. int i;int &j = i; float &j=i;C. float i;D. char d;float &j = i; char &e = d;5. 假定BB为一个类,则执行BB y;语句时将自动调用该类的( B )A. 有参构造函数B. 无参构造函数C. 拷贝构造函数D. 赋值重载函数7.下列对派生类的描述中, ( C )是错误的。

A. 一个派生类能够作为另一个派生类的基类B.派生类至少应有一个基类C. 基类中成员访问权限继承到派生类中都保持不变D.派生类成员除了自己定义的成员外, 还包含了它的基类成员10.控制输出格式的控制符中, ( D )是设置输出宽度的。

A.wsB.endsC. setfill()D.setw()二、填空题( 本大题共10小题, 每题2分, 共20分)1.以/*开始, 以*/结束, 在/*和*/之间的部分即为注释。

2.重载函数在参数类型或参数个数上不同, 但函数名和类名_相同。

3. 假如一个类的名称为MyClass, 使用这个类的一个对象初始化该类的另一个对象时, 能够调用__拷贝______构造函数来完成此功能。

4.当删除对象时, 程序自动调用析构函数。

5. 对于每一个类的非静态成员函数, 都有一个隐含的_this_______指针。

8. 抽象类是指类里有一个函数, 是纯嘘函数。

三、改错题( 下面程序或程序段中有一处错误, 请用注释标明错误所在行的出错原因。

本大题共5小题, 每题2分, 共10分) 1. #include<iostream>using namespace std;int main(){ cout<<"This is a program."<<endl;return 0;}2. #include<iostream>using namespace std;int main(){x=3;int y=x*x;cout<<"y="<<y<<"\n";return 0;}3. #include<iostream>using namespace std;class Aa{public:Aa(int i=0){a=i; cout<<"Constructor "<<a<<endl; } ~Aa(){ cout<<"Destructor "<<a<<endl; }void print( ){cout<<a<<endl;}private:int a;};int main(){Aa al(1),a2(2);al.print();cout<<a2.a<<endl;return 0;}4.class A{int a,b;public:A(int aa,int bb=78){a=aa;b=bb;} };int main(){A x(2), y(4,9);return 0;}5. #include<iostream>using namespace std;class Test{public:static int x;};int Test :: x=20;int main(){cout<<Test::x;return 0;}四、程序分析题( 分析程序, 写出运行结果。

面向对象课程设计题目汇总及要求

面向对象课程设计题目汇总及要求

面向对象程序设计课程设计题目汇总选题说明及要求说明:1、由于各选题的难度不同,将选题分为A、B、C三个等级,每个等级对应的最高分依次为:100分、85分和75分。

达到基本要求且有一定程度和创新和见解的同学可获得较高分数。

学生可根据自己的情况,自行选择。

2、每个题目最多只能有两组,若超过两组,则该题目自动作废!3、规定2-4人的题目,若实际人数比分组人数每少一人,则题目等级自动上调一级。

4、若实际小组人数比规定人数多一人,则题目等级自动下调一级。

实际人数比规定人数多两个的分组无效!题目列表题目一、单链表(1人)(C级) (3)题目二:一元多项式求和(1人)(B级) (3)题目三:快餐店点餐系统(3人)(B级) (3)题目四、简单车辆管理系统(3人)(B级) (4)题目五、滚动发车系统设计(3人)(B级) (4)题目六、简单银行账户系统(3人)(A级) (5)题目七、银行叫号系统设计(3人)(B级) (5)题目八、学生学籍管理系统(3人)(B级) (6)题目九、教师工资信息管理系统(3人)(A级) (6)题目十、书刊租借信息管理系统(3人)(A级) (7)题目十一、仓库管理信息系统(3人)(B级) (7)题目十二、研究生管理信息系统(3人)(B级) (8)题目十三、图书馆管理信息系统(3人)(B级) (8)题目十四、学生宿舍管理信息系统(3人)(B级) (9)题目十五、理财管理信息系统(3人)(B级) (9)题目十六、IT设备资产管理系统(3人)(B级) (10)题目十七、员工管理信息系统(3人)(B级) (10)题目十八某软件公司客户关系(CRM)管理系统(4人)(A级).. 11 题目十九:足球联赛排名(3人)(A级) (11)题目二十:小学生四则运算测验(3人)(B级) (12)题目二十一:学生电子投票平台设计(3人)(B级) (12)题目二十二:物品库存管理系统(3人)(B级) (12)题目二十三:个人财政支出管理系统(2人)(C级) (13)题目二十四:电话簿管理系统(2人)(C级) (13)题目二十五:股票交易系统(4人)(A级) (13)题目二十六:学生信息管理系统(2人)(C级) (13)题目二十七:学生成绩管理系统(2人)(C级) (13)题目二十八:小型字符串类(2人)(B级) (14)题目二十九:分数计算器(2人)(B级) (14)题目二十九:复数计算器(1人)(C级) (14)题目三十:无符号大整数计算器(2人)(B级) (15)题目三十一:超市密码存储箱系统(2人)(A级) (15)题目一、单链表(1人)(C级)建立一个单链表类,该链表类能够实现以下功能:(1)有合理的构造函数,能够由用户输入数据,创建链表,如果用户输入的数据不合理,能够给出提示信息(2)能够实现单链表元素的遍历(3)能够在指定位置插入一个元素(4)能够删除指定位置的元素(5)能够统计单链表中的元素个数并输出题目二:一元多项式求和(1人)(B级)编写一个程序用单链表存储一元多项式,并实现以下功能:(1)能够运行用户合理输入两个的多项式(2)能够实现两个多项式相加(3)能够将相加的结果输出(4)能够对常见的错误进行正确的处理和输出题目三:快餐店点餐系统(3人)(B级)快餐店点餐系统一般具有高效、便捷的特点。

面向对象程序设计(Java) 课程设计总体要求及题目说明

面向对象程序设计(Java) 课程设计总体要求及题目说明

《面向对象程序设计(Java) 》课程设计题目说明上海电力学院计算机与信息工程学院指导教师:曹渝昆、张维、杜海舟、张挺2012年6月目录题目1:出租车计费系统 (2)题目2:学生综合测评系统 (2)题目3:旅馆预订系统 (3)题目4:简单的学籍管理系统 (4)题目5:商场库存管理系统 (4)题目6:小型图书管理系统 (5)题目7:小型婴儿出生信息登记系统 (5)题目8:学校档案管理系统 (6)题目9:小型学籍与成绩管理软件 (6)题目10:公交线路管理系统 (7)题目11:实验设备管理系统 (7)题目12:职工工资管理系统 (8)题目13:学校人事管理系统 (8)题目14:家庭财务管理系统 (8)题目15:教师工资管理系统 (9)题目16:教师工作量管理系统 (9)题目17:租车管理系统 (10)题目1:出租车计费系统1、需求分析设计界面友好的出租车计费系统,通过现成的自动测路程的仪器将出租车行驶的公里数传达到出租车计费系统,按一定比例折合成RMB费用,方便出租车司机准确快速计算当天出行驶费用。

2、程序的基本功能1)界面的标题为出租车计费系统。

2)创设一个可以计费的系统,可以根据行驶公里的长短计算出相应的金额。

3)界面上有0-9以及清空按钮方便输入及清空。

4)界面中有时间,可以设定当天的日期。

题目2:学生综合测评系统1、需求分析:每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、高等数学、物理、英语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。

考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。

2、程序的基本功能:1.学生信息处理(1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。

提示:学生信息可先输入到数组中,排序后可写到文件中。

(2) 插入(修改)同学信息:提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,(3) 删除同学信息:提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。

福建师范大学2021年8月课程考试《面向对象的程序设计》作业考核(答案参考)

福建师范大学2021年8月课程考试《面向对象的程序设计》作业考核(答案参考)

《面向对象的程序设计》期末考试A卷姓名:专业:学号:学习中心:一、单选题 (请将答案填在下表中,共25题,每题2分,共50分)1 2 3 4 5 6 7 8 9 10C A B B AD A D A A11 12 13 14 15 16 17 18 19 20A C C C D D D A D C21 22 23 24 25D A A A A1、Observer模式不适用于()。

A.当一个抽象模型存在两个方面,其中一个方面依赖于另一方面,将这二者封装在独立的对象中以使它们可以各自独立的改变和复用B.当对一个对象的改变需要同时改变其他对象,而不知道具体有多少个对象有待改变时C.当一个对象必须通知其它对象,而它又不能假定其它对象是谁,也就是说你不希望这些对象是紧耦合的D.一个对象结构包含很多类对象,它们有不同的接口,而想对这些对象实施一些依赖于其具体类的操作2、顺序图由类角色,生命线,激活期和()组成。

A.关系B.消息C.用例D.实体3、UML中类的有三种,下面哪个不是其中之一()A.实体类B.抽象类C.控制类D.边界类4、如果用例A与用例B相似,但A的功能较B多,A的动作序列是通过在B的动作序列中的某些执行点上插入附加的动作序列而构成的,则称()。

A.用例A实现用例BB.用例A继承用例BC.用例A扩展用例BD.用例A包括用例B5、()技术是将一个活动图中的活动状态进行分组,每一组表示一个特定的类、人或部门,他们负责完成组内的活动。

A.泳道B.分叉汇合C.分支D.转移6、关于继承表述错误的是:()。

A.继承是一种通过扩展一个已有对象的实现,从而获得新功能的复用方法B.泛化类(超类)可以显式地捕获那些公共的属性和方法。

特殊类(子类)则通过附加属性和方法来进行实现的扩展C.在一定意义上说破坏了封装性,因为这会将父类的实现细节暴露给子类D.继承本质上是“白盒复用”,对父类的修改,不会影响到子类7、当我们想创建一个具体的对象而又不希望指定具体的类时,可以使用()模式。

面向对象程序设计题目库

面向对象程序设计题目库

题目模板课程名称:面向对象程序设计层次:高起专题目阶段:阶段性作业1(阶段性作业1-4只包含客观题,每套作业的题量为20-30小题)一、单选题1. 下列关于栈的叙述正确的是_(1)_(A):栈是非线性结构(B):栈是一种树状结构(C):栈具有先进先出的特征(D):栈具有后进先出的特征答案B2. 已知,int m=10,在下列表示引用的方法中正确的是_(2)_(A):int &x=m (B): int &y=10 (C): int &z (D): float &t=&m答案A3. 结构化程序设计所规定的三种基本控制结构是_(3)_(A):输入、处理、输出(B): 树形、网形、环形(C):顺序、选择、循环(D): 主程序、子程序、函数答案C4. 结构化程序设计的一种基本方法是_(4)_(A):筛选法(B): 递归法(C): 归纳法(D): 逐步求精法答案D5. C++语言的跳转语句中,对于break和continue说法正确的是_(5)_(A):break语句只应用与循环体中(B): continue语句只应用与循环体中(C): break是无条件跳转语句,continue不是(D): break和continue的跳转范围不够明确,容易产生问题答案B6. 考虑函数原型void test(int a,int b=7,char="*"),下面的函数调用中,属于不合法调用的是_(6)_(A):test(5) (B): test(5,8) (C): test(6,"#") (D): test(0,0,"*")答案C7. C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是_(7)_(A):面向过程(B): 面向对象(C): 安全性(D): 复用性答案B8. 关于delete运算符的下列描述中,_(8)_是错误的。

面向对象程序设计习题

面向对象程序设计习题

第6章面向对象程序设计一. 选择题1.下面有关类和对象的说法中, 不对的的是【】。

A) 类是系统提供的一种数据类型B) 对象是类的实例C) 类和对象的关系是抽象和具体的关系D) 任何一个对象只能属于一个具体的类2. 面向对象的特点重要概括为【】。

A) 可分解性、可组合型性和可分类性B) 继承性、封装性和多态性C) 封装性、易维护性、可扩展性和可通用性D) 抽象性、继承性和封装性3. 要使一个类能被同一命名空间中的其他类访问, 但不能被这个命名空间以外的类访问, 该类可以【】。

A) 不使用任何修饰符B) 使用private修饰符C) 使用public修饰符D) 使用internal修饰符4. 在C#中, 【】访问修饰符修饰的字段只能由当前程序集访问。

A) private B) public C) protected D) internal5. 类的字段和方法的默认访问修饰符是【】。

A) public B) private C) protected D) internal6. 下列关于构造函数的描述中, 不对的的是【】。

A) 构造函数中, 不可以包含return语句B) 一个类只能有一个构造函数C) 实例构造函数在生成类实例时被自动调用D) 用户可以定义无参构造函数7. 下列关于构造函数的描述中, 【】是对的的。

A) 构造函数名必须与类名相同B) 构造函数不可以重载C) 构造函数不能带参数D) 构造函数可以声明返回类型8. 下列的【】不是构造函数的特性。

A) 构造函数的函数名与类名相同B) 构造函数可以重载C) 构造函数可以带有参数D) 可以指定构造函数的返回值类型9. 类ClassA有一个名为M1的方法, 在程序中有如下一段代码, 假设该段代码是可以执行的, 则声明M1方法时一定使用了【】修饰符。

ClassA Aobj=new ClassA();ClassA.M1();A) public B) public static C) private D) virtual10. 在C#中, 从属性的读写特性上来进行分类, 可以划分为以下3种, 除了【】。

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

面向对象程序设计课程设计题目设计说明1. 每人一组,每组选择一个题目;如果列出多个版本,只需要完成其中一个版本即可。

2. 由学习委员负责统计各组员及其题目,以电子档模式提交题目列表名单。

3. 每组必须给出相应的UML类图,可用Visio或者其他类似的工具完成。

设计要求1.编码规范要求遵循Java编码规范,参见附录。

2.知识点要求项目应至少覆盖以下知识点:封装、继承与多态等基本概念;方法和数组;输入输出流;使用抽象类、接口;对象组合;异常处理;包的使用。

3.文档打包及提交要求文档打包:以“班级-学号-姓名-题目-设计报告.rar”形式将相关文档打包。

提交要求:统一交至教学平台。

压缩包的内容:1)运行正确的源代码(包括文件夹结构)。

2)设计报告:描述软件功能、和设计方案的UML类图;设计中涉及的主要知识点;运行结果截图;使用帮助文档。

题目列表及说明:1. 打字游戏GUI本地版可根据一片文章自动导入单词整个单词下落或者淡入淡出同时多个单词出现对输入错误的单词分析记忆功能积分2. 文件加密和解密要求:采用图形用户界面1)给定任意一个文本文件,进行加密,生成另一个文件。

2)对加密后的文件还原。

3. 5子棋游戏设计程序,完成下述功能:在大于9条线的方形网格棋盘上,放置黑白两色棋子;两人各执一色,通过网络对弈;可以在任何两条线的交点上放置棋子;同色棋子先同行、同列或者同队角线上5颗连成一条线者获胜。

4. 俄罗斯方块(网络版)设计程序,完成下述功能:完成一个可以两个人通过网络对战的俄罗斯方块游戏,每一方都可以在自己的屏幕上看到对方的当前游戏状况,游戏先结束的一方为失败者。

5. 音乐播放器(JavaGUI本地版)设计程序,完成下述功能:选择各类声音文件进行播放。

完成前进、后退、暂停、回放等控制功能。

6. 电子相册(JavaGUI本地版)设计程序,完成下述功能:选择图形的显示。

完成图形的放大、缩小、剪切、旋转等控制功能。

图片的自动播放功能。

7. 多人聊天室((JavaGUI本地版/WEB版)多人同时上网聊天。

8.扑克游戏(JavaGUI本地版/WEB版)开发具有“升级”功能的4人对战游戏。

“升级”又叫拖拉机。

要求采用Java 网络编程技术。

9.编写一个记事本程序要求:用图形用户界面实现。

能实现编辑、保存、另存为、查找替换等功能。

提示:使用文件输入输出流。

10.模拟龟兔赛跑要求:用图形用户界面实现。

能设置比赛时间,马匹的数量等等。

在任意时间段内马匹的速度是随机的。

开始比赛之后以动画显示赛马过程。

提示:使用多线程11.ATM柜员机模拟程序要求:使用图形用户界面。

当输入给定的卡号和密码(初始卡号和密码为)时,系统能登录ATM柜员机系统,用户可以按照以下规则进行:1)查询余额:初始余额为10000元2)ATM取款:每次取款金额为100的倍数,总额不超过5000元,支取金额不允许透支。

3)ATM存款:不能出现负存款。

4)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

12.超市收银系统要求:使用图形用户界面。

由收银员输入顾客的会员卡卡号(若有卡)、所购商品的货号等。

从数据库中取出有关价格信息,再把这些信息返回给收银台。

同时把该收银台的销售总量和有关种类商品的剩余量以及该持卡顾客的消费情况交数据库存储以供查询。

另外,对没有卡的消费情况不记录该顾客的消费情况等个人信息。

如果一个未持卡顾客一次购物满200元,可为其发放一张会员卡,以后在该商场购物可向9折优惠。

13.扩充的万年历多功能计时功能:当前时间显示;按年月显示日历;调整时间。

备忘录功能:备忘录设置,备忘录删除。

14.网络监听程序使用图形用户界面。

有服务器和客户端,服务器监听客户端的登陆。

即:如果A客户端登陆服务器,则服务器界面上的A字母对应的红灯变成绿色。

绿灯表示连接,红灯表示断线。

提示:socket的监听方法15.全球通计费程序使用图形用户界面。

使用真实的全球通资费标准,模拟统计一个特定号码的一个月的实时话费。

能根据输入实现各种用户的话费的计算并显示月实时帐单。

提示:使用接口和多个子类实现分别表示金卡、银卡等各种套餐的话费计算。

16.日历记事本要求:带有日程提醒功能的日历。

1)显示信息:用户可以向前翻页查询前一个月的日期,也可以向后翻页查询下一个月的日期。

2)定时提醒:用户可以针对某一天来添加,删除和编辑这一天的日程提醒信息,当系统时间和提醒时间相吻合时,给出具有提示信息的对话框。

3)查询信息:用户可以查询到某个月的所有的提示信息。

17.电子英汉词典能够编辑词典库中的信息能够实现英译汉,汉译英。

(要考虑一词多义)18.小游戏要求:程序随机产生20—50根火柴,由人与计算机轮流拿,每次拿的数量不超过3根,拿到最后一根为胜。

(使用图形界面)19.敏感词汇分析要求:任意选择一个文本文件,分析该文件,如果存在敏感词汇(这些词汇保存在sentive.txt文件中,每个词占一行),报告每个词出现的次数。

20. 一个简单的学生成绩管理信息系统数据要求:1)建立的数据库中包含如下信息:学生学号、姓名、班级,语文、数学、英语成绩。

2)至少要有5个班级,每个班级要有10名以上学生。

3)使用.txt格式文本表示各种表。

功能需求:1)能够实现根据以下关键字查询:学生姓名、学号、班级、课程名称。

2)能够实现按照单科成绩、总成绩、平均成绩、学号排序。

3)能够实现学生信息的插入、删除和修改。

4)能够查询每个课程的最高分、最低分及相应学生姓名、班级和学号。

5)能够查询每个班级某门课程的优秀率(90分及以上)、不及格率,并进行排序。

界面要求:1)尽量使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。

2)如果无法实现图形界面,则在命令行方式下也需要提供菜单,方便用户操作。

附录:Java编码规范一、Java 命名约定采用适用于相关领域的术语采用大小写混合使名字可读尽量少用缩写,但如果用了,要明智地使用,且在整个工程中统一避免使用长的名字(一般小于15个字母)避免使用类似的名字,或者仅仅是大小写不同的名字避免使用下划线(除静态常量等)包(Package)采用完整的英文描述符,应该都是由小写字母组成。

对于全局包,将你的Internet 域名反转并接上包名。

例如:java.awt,com.ambysoft.www.persistence类(Class)采用完整的英文描述符,所有单词的第一个字母大写(一些专有的缩写词,比如:AWTException等则除外)。

Class的名字建议使用名词或者名词短语。

例如:Customer, SavingsAccount,LayoutManager等接口(Interface)接口的名字取决于接口的主要功能和用途。

如果接口是使对象具有某种特定的功能,则接口的名字建议使用可以描述这种功能的形容词(加上-able或者-ible 后缀)例如:Searchable,Sortable,NetworkAccessible等如果接口不是使对象具有某种特定的功能则建议使用名词或者名词短语(同类的命名规则)。

组件/部件(Component)使用完整的英文描述来说明组件的用途,末端应接上组件类型。

okButton, customerList,fileMenu异常(Exception)通常采用字母 e 表示异常。

类变量字段采用完整的英文描述,第一个字母小写,任何中间单词的首字母大写。

firstName, lastName静态常量字段(static final)全部采用大写字母,单词之间用下划线分隔。

MIN_BALANCE, DEFAULT_DATE方法方法命名采用大小写混合的形式。

以小写字母开头,名字中其他单词的首字母以大写字母开头,所有其它的单词都为小写字母,不要使用下划线分隔单词。

方法的命名应该能描绘出方法的作用和功能,方法的名字建议使用祈使动词或者动词短语。

例如:showStatus(),drawCircle(),addLayoutComponent()成员函数被访问字段名的前面加上前缀get。

getFirstName(), getLastName()布尔型的获取成员函数所有的布尔型获取函数必须用单词is 做前缀。

isPersistent(), isString() ;设置成员函数被访问字段名的前面加上前缀set。

setFirstName(), setLastName(),setWarpSpeed()二、空白的使用相关空行规范空行的使用有益于将代码按照逻辑分段,提高代码的可读性。

在下列情况下建议使用一个空行:●在版权声明块、包声明块、引用声明块之后;●在类的声明之间;●在方法的声明之间;●在类中声明最后一个属性之后,声明第一个方法之前。

空格规范下列情况建议使用单个空格(不是Tab):在一个关键字和它所修饰的块之间。

可用于如下的关键字:catch,for,if,switch,synchronized,while 。

下列关键字的后面不要跟随空格:super ,this 。

在一个参数列表中逗号之后。

空格不应该置于方法名与其左括号之间左括号和后一个字符之间不应该出现空格右括号和前一个字符之间也不应该出现空格例如:public setMethod(int i, String j)缩进规范行的缩进要求是四个空格。

由于在使用不同的源代码管理工具时Tab字符将因为用户设置的不同而扩展为不同的宽度,所以请不要使用Tab键。

建议修改各管理工具的设置将Tab字符扩展成4个空格。

三、循环计数器通常采用字母i,j,k 或者counter 都可以接受。

i, j, k, counter四、Java 注释约定一个很好的可遵循的有关注释的经验法则是:问问你自己,你如果从未见过这段代码,要在合理的时间内有效地明白这段代码,你需要哪些信息。

·一般概念注释应该增加代码的清晰度保持注释的简洁在写代码之前写注释(建议)对于复杂点的逻辑,注释出为什么做了一些事,而不仅仅是做了什么·示范文档注释在紧靠接口、类、成员函数和字段声明的前面注释它们。

单行在成员函数内采用单行注释,来说明业务逻辑、代码段和暂时变量的声明。

注释符"//"后必须紧跟一个空格,然后才是注释信息。

·注释哪些部分类类的目的、即类所完成的功能,注释出采用的不变量。

接口设置接口的目的、它应如何被使用以及如何不被使用。

成员函数注释对于设置与获取成员函数,在成员变量已有说明的情况下,可以不加注释;普通成员函数要求说明完成什么功能,参数含义是什么返回什么;普通成员函数内部注释控制结构,代码做了些什么以及为什么这样做,处理顺序等。

相关文档
最新文档