当前位置:文档之家› 程序设计规范

程序设计规范

程序设计规范
程序设计规范

程序设计规范

一、程序风格:

1、严格采用阶梯层次组织程序代码:

各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行。要求相匹配的大括号在同一列,对继行则要求再缩进4格。例如:

2、提示信息字符串的位置

在程序中需要给出的提示字符串,为了支持多种语言的开发,除了一些给调试用的临时信息外,其他所有的提示信息必须定义在资源中。

3、对变量的定义,尽量位于函数的开始位置。

二、命名规则:

1、变量名的命名规则

①、变量的命名规则要求用“匈牙利法则”。即开头字母用变量的类型,其余部分用变量的英文意思或其英文意思的缩写,尽量避免用中文的拼音,要求单词的第一个字母应大写。即:变量名=变量类型+变量的英文意思(或缩写)

对非通用的变量,在定义时加入注释说明,变量定义尽量可能放在函数的开始处。

见下表:

bool(BOOL) 用b开头bIsParent

byte(BYTE) 用by开头byFlag

short(int) 用n开头nStepCount

long(LONG) 用l开头lSum

char(CHAR) 用c开头cCount

float(FLOAT) 用f开头fAvg

double(DOUBLE) 用d开头dDeta

void(VOID) 用v开头vVariant

unsigned int(WORD)用w开头wCount

unsigned long(DWORD) 用dw开头dwBroad

HANDLE(HINSTANCE)用h开头hHandle

DWORD 用dw开头dwWord

LPCSTR(LPCTSTR) 用str开头strString

用0结尾的字符串用sz开头szFileName

对未给出的变量类型要求提出并给出命名建议给技术委员会。

②、指针变量命名的基本原则为:

对一重指针变量的基本原则为:

“p”+变量类型前缀+命名

如一个float*型应该表示为pfStat

对多重指针变量的基本规则为:

二重指针:“pp”+变量类型前缀+命名

三重指针:“ppp”+变量类型前缀+命名

......

③、全局变量用g_开头,如一个全局的长型变量定义为g_lFailCount,即:变量名=g_+变量类型+变量的英文意思(或缩写)

④、静态变量用s_开头,如一个静态的指针变量定义为s_plPerv_Inst,即:变量名=s_+变量类型+变量的英文意思(或缩写)

⑤、成员变量用m_开头,如一个长型成员变量定义为m_lCount;即:变量名=m_+变量类型+变量的英文意思(或缩写)

⑥、对枚举类型(enum)中的变量,要求用枚举变量或其缩写做前缀。并且要求用大写。如:enum cmEMDAYS

{

EMDAYS_MONDAY;

EMDAYS_TUESDAY;

……

};

⑦、对struct、union、class变量的命名要求定义的类型用大写。并要加上前缀,其内部变量的命名规则与变量命名规则一致。

结构一般用S开头

如:struct ScmNPoint

{

int nX;//点的X位置

int nY; //点的Y位置

};

联合体一般用U开头

如: union UcmLPoint

{

long lX;

long lY;

}

类一般用C开头

如:

class CcmFPoint

{

public:

float fPoint;

};

对一般的结构应该定义为类模板,为以后的扩展性考虑

如:

template

class CcmTVector3d

{

public:

TYPE x,y,z;

};

⑧、对常量(包括错误的编码)命名,要求常量名用大写,常量名用英文表达其意思。如:#define CM_FILE_NOT_FOUND CMMAKEHR(0X20B) 其中CM表示类别。

⑨、对const 的变量要求在变量的命名规则前加入c_,即:c_+变量命名规则;例如:const char* c_szFileName;

2、函数的命名规范:

函数的命名应该尽量用英文表达出函数完成的功能。遵循动宾结构的命名法则,函数名中动词在前,并在命名前加入函数的前缀,函数名的长度不得少于8个字母。

例如:

long cmGetDevice Count(……);

3、函数参数规范:

①、参数名称的命名参照变量命名规范。

②、为了提高程序的运行效率,减少参数占用的堆栈,传递大结构的参数,一律采用指针或引用方式传递。

③、为了便于其他程序员识别某个指针参数是入口参数还是出口参数,同时便于编译器检查错误,应该在入口参数前加入const标志。如:

……cmCopyString(const char * c_szSource, char * szDest)

4、引出函数规范:

对于从动态库引出作为二次开发函数公开的函数,为了能与其他函数以及Windows的函数区分,采用类别前缀+基本命名规则的方法命名。例如:在对动态库中引出的一个图象编辑的函数定义为imgFunctionname(其中img为image缩写)。

现给出三种库的命名前缀:

①、对通用函数库,采用cm为前缀。

②、对三维函数库,采用vr为前缀。

③、对图象函数库,采用img为前缀。

对宏定义,结果代码用同样的前缀。

5、文件名(包括动态库、组件、控件、工程文件等)的命名规范:

文件名的命名要求表达出文件的内容,要求文件名的长度不得少于5个字母,严禁使用象file1,myfile之类的文件名。

三、注释规范:

1、函数头的注释

对于函数,应该从“功能”,“参数”,“返回值”、“主要思路”、“调用方法”、“日期”六个方面用如下格式注释:

//程序说明开始

//================================================================//

// 功能:从一个String 中删除另一个String。

// 参数:strByDelete,strToDelete

// (入口)strByDelete: 被删除的字符串(原来的字符串)

// (出口)strToDelete: 要从上个字符串中删除的字符串。

// 返回:找到并删除返回1,否则返回0。(对返回值有错误编码的要// 求列出错误编码)。// 主要思路:本算法主要采用循环比较的方法来从strByDelete中找到

// 与strToDelete相匹配的字符串,对多匹配strByDelete

// 中有多个strToDelete子串)的情况没有处理。请参阅:

// 书名......

// 调用方法:......

// 日期:起始日期,如:2000/8/21.9:40--2000/8/23.21:45

//================================================================//

函数名(……)

//程序说明结束

①、对于某些函数,其部分参数为传入值,而部分参数为传出值,所以对参数要详细说明该参数是入口参数,还是出口参数,对于某些意义不明确的参数还要做详细说明(例如:以角度作为参数时,要说明该角度参数是以弧度(PI),还是以度为单位),对既是入口又是出口的变量应该在入口和出口处同时标明。等等。

②、函数的注释应该放置在函数的头文件中,在实现文件中的该函数的实现部分应该同时放置该注释。

③、在注释中应该详细说明函数的主要实现思路、特别要注明自己的一些想法,如果有必要则应该写明对想法产生的来由。对一些模仿的函数应该注释上函数的出处。

④、在注释中详细注明函数的适当调用方法,对于返回值的处理方法等。在注释中要强调调用时的危险方面,可能出错的地方。

⑤、对日期的注释要求记录从开始写函数到结束函数的测试之间的日期。

⑥、对函数注释开始到函数命名之间应该有一组用来标识的特殊字符串。

如果算法比较复杂,或算法中的变量定义与位置有关,则要求对变量的定义进行图解。对难以理解的算法能图解尽量图解。

2、变量的注释:

对于变量的注释紧跟在变量的后面说明变量的作用。原则上对于每个变量应该注释,但对于意义非常明显的变量,如:i,j等循环变量可以不注释。

例如:long lLineCount //线的根数。

3、文件的注释:

文件应该在文件开头加入以下注释:

/////////////////////////////////////////////////////////////////////

// 工程: 文件所在的项目名。

// 作者:**,修改者:**

// 描述:说明文件的功能。

// 主要函数:…………

// 版本: 说明文件的版本,完成日期。

// 修改: 说明对文件的修改内容、修改原因以及修改日期。

// 参考文献: ......

/////////////////////////////////////////////////////////////////////

为了头文件被重复包含要求对头文件进行定义如下:

#ifndef __FILENAME_H__

#define __FILENAME_H__

其中FILENAME为头文件的名字。

4、其他注释:

在函数内我们不需要注释每一行语句。但必须在各功能模块的每一主要部分之前添加块注释,注释每一组语句,在循环、流程的各分支等,尽可能多加以注释。

其中的循环、条件、选择等位置必须注释。

对于前后顺序不能颠倒的情况,建议在注释中增加序号。

例如:

在其他顺序执行的程序中,每隔3—5行语句,必须加一个注释,注明这一段语句所组成的小模块的作用。对于自己的一些比较独特的思想要求在注释中标明。

四、程序健壮性:

1、函数的返回值规范:

对于函数的返回位置,尽量保持单一性,即一个函数尽量做到只有一个返回位置。(单入口单出口)。

要求大家统一函数的返回值,所有的函数的返回值都将以编码的方式返回。

例如编码定义如下:

#define CM_POINT_IS_NULL CMMAKEHR(0X200)

:

:

建议函数实现如下:

long 函数名(参数,……)

{

long lResult; //保持错误号

lResult=CM_OK;

//如果参数有错误则返回错误号

if(参数==NULL)

{

lResult=CM_POINT_IS_NULL;

goto END;

}

……

END:

return lResult;

}

2、关于goto的应用:

对goto语句的应用,我们要求尽量少用goto语句。对一定要用的地方要求只能向后转移。

3、资源变量的处理(资源变量是指消耗系统资源的变量):

对资源变量一定赋初值。分配的资源在用完后必须马上释放,并重新赋值。

4、对复杂的条件判断,为了程序的可读性,应该尽量使用括号。

例:if(((szFileName!=NULL)&&(lCount>=0)))||(bIsReaded==TRUE))

五、可移植性:

1、高质量的代码要求能够跨平台,所以我们的代码应该考虑到对不同的平台的支持,特别是对windows98和windowsnt的支持。

2、由于C语言的移植性比较好,所以对算法函数要求用C代码,不能用C++代码。

3、对不同的硬件与软件的函数要做不同的处理

测绘程序设计实习报告

测量程序设计实习报告 姓名: XX 班级: XXXX 学号: XXXX 教师评语:

实验名称:使用C#开发环境建立测量程序框架 一、实验的目的与任务: (1)学会用C#窗体程序开发环境建立应用程序框架方法 (2)学会使用常见的Windows控件 (3)根据自身需要设计一个测量程序界面 二、实验的过程与步骤: 1、首先打开visual studio 2010,选择文件→新建→项目。在弹出的对话框中右栏一侧选择windows窗体应用。选择文件存放地址,输入项目名称,点击确定,完成。 2、拖动menuSctrip控件到主窗体,并且键入“文件”、“工具”两个选项,在“文件”下添加一个“打开”选项;在“工具”下添加“近似平差计算”、“高斯消元”两个选项。 3、选择项目→添加windows窗体,输入窗体名称“CLSJ”,点击确定。

4、在CLSJ窗体中拖入SplitContainer控件,将窗体分为左右两部分,调整大小。在拖入一个“TabControl”,新建选项卡。最后,加入“Button”、“TextBox”、“Label”控件。 5、用相同的方法,新建一个名为高斯消元的窗体,然后按照需要进行设计。 三、程序运行效果 四、本实验心得体会

这是第一次接触这种可视化开发编程,刚开始不是很熟悉,对于编程语言来说,在掌握一定语法之后,要多用,多结合实际进行一些简单编程,这样才能提高对一种编程语言的理解。 实验名称:导线计算程序设计及粗差探测 一、实验的目的与任务: (1) 掌握方位角计算的程序设计方法 (2) 掌握符合导线、闭合导线、支导线计算的程序设计方法 (3) 理解粗差探测的程序设计方法 二、实验的设计与开发步骤: 1、考虑到在测量时所用的角度均为度分秒,而在c#计算时只是别度分秒,因此先设计两个函数,可以将度分秒和弧度制进行转化。 2、其次先写一个point 类,包含x ,y 两个成员变量,然后在设计一个方位角函数,用两个point 类当作形参传递进去,根据方位角计算公式παk x y +??=arctan ,(根据象限角和方位角关系对k 进行调节)应该分为四种情况,但是考虑到分母不为0,因此应该在加一种情况,即导线与y 轴重合。 3、然后根据边长,根据方位角,公式 ααsin *cos *1212l y y l x x +=+=进行坐标推算。

程序设计实训心得体会

程序设计实训心得体会 心得体会这种学习方法对于一个人来说也许是优秀的,但没有被推广普及的必要。因为学习的方法因人而异,方法的奏效是它与这个人相适应的结果,以下《程序设计实训心得体会》由心得体会栏目为您精心提供。 在软件实验室经过2个星期Jsp程序设计实训,从对软件开发没有太多经验的我掌握了更多的软件开发的方 法和技能,收获颇多。 经过这次理论学习,了解到要做好软件开发,要求 掌握的知识并不是只有编写代码方面的,网络、数据库、操作系统等的知识对做好项目开发是很有帮助的。这让 我明确了以后学习的目标,在不断学习软件开发的同时,也应该继续其他相关知识的深入学习。 实训期间经历的许许多多,给我们带来了很多很多 有实无形的东西,知识、友情以及团队开发的热情,快 乐无一不包围着我们。在这我很想感谢几个人,王璐老 师和班上一同参与这次实训的2位同学。王璐老师对我 们备至关心,不论在学习前后,都给予我们关怀不少, 并且王璐老师不愧是从事多年软件开发的专业人士,其 深厚的专业技能知识和丰富的经验令我等钦佩无比。对 于我们未出茅庐的大学生而言,遇到的问题多而复杂,

询问有经验的人,他们或许一句话就能解决问题,而自 己就得找资料或上网摸索可能要一两天,有时甚至绞尽 完脑汁都不得其解。用个词形容,老师的解答如醍醐灌顶,而对我们,则甘之如饴。 实训这段期间真的好累,尽管实验室给我们提供了 一个相当不错的上课学习环境,但是整天木木地待在实 验室面对毫无生气的荧屏,为 code而烦恼,为bug而郁闷,被文档所包围,随程序侵蚀。然而,这就是学习的 生活,既选之也则安之。忙碌的生活让我每天似乎没有 太多的时间去想一些其他的事,耐心的去调试,专注的 去编写更好的算法,沉浸充实和快乐之中。 更重要的是,两个星期的实训使我们明白我们所欠 缺的不仅仅是技术知识,更重要的是有一种处理事情的 方法、面对问题的心态和动手能力。面对完全陌生的新 知识、新技术、新项目以及整个IT行业,我们不能畏惧,要以一种积极的心态去面对,分析并抓住关键所在。因 为我们所即将应对的每一个项目都是既需要实际操作, 又需要详细规划的。作为组长,协调组员、激励其他组 员和积极参与项目开发是我每天必做的工作。我认为每 个人都应该在团队中做好自己应尽的职责,再优秀的个 人也可能完成一个即庞大又复杂的项目工作,我们必需 紧密的联合在一起,以一个团队的角色来面对。

VB程序设计实验要求及报告

上海立信会计学院本科实验报告 班级: 学号: 姓名: 指导教师: 系部: 专业: 实验时间: 实验3 选择结构 一、 实验目的 1. 掌握单分支、双分支和多分支条件语句的使用 2. 掌握情况语句的使用及其与多分支条件语句之间的区别。 二、实验要求 1. 在C:\下建立子文件夹“VB 实验3”,按照题目要求,在该文件夹下为各题保存相应的文件,如本实验中的第一题,需保存的文件有:工程文件、窗体文件 及可执行文件(),本实验中的第二题,需保存的文件有:工程文件、窗体文件 及可执行文件(),其余实验依此类推。 2. 撰写实验过程中出现了哪些问题、错误,你是如何解决的,做一个小结。 三、 实验内容: 1. 编一程序输入上网的时间并计算上网费用,计算的方法如下: 费用= 50250~102.51030?? ???>≤>≤小时上网时间元,每小时小时上网时间元,每小时小时上网时间元,基数 同时为了鼓励多上网,采用累进计费制,但每月收费最多不超过150元。上网时间在文本框中输入;上网费用在标签中输出,所有控件字体默认、大小为小四。要求使用多分支结构(IF THEN ELSEIF )编写,效果如图3-1所示。

图3-1 Option Explicit Private Sub Command1_Click() Dim s!, sum! s = Val If s <= 0 Then MsgBox "上网时间不能为负数和零", , "输入错误" Text1 = "" Else If s <= 10 Then sum = 30 ElseIf s > 10 And s <= 50 Then sum = 30 + (s - 10) * ElseIf s > 50 And s <= 60 Then sum = 130 + (s - 50) * 2 Else sum = 150

程序设计基础实验报告

《程序设计基础》 实验报告 专业班级: 姓名: 学号:

实验一 面向过程的简单程序设计 1.实验目的要求 (1) 使用C++语言编写简单的计算机程序,掌握C++程序从编辑、编译到运行的全过程, 初步了解C++程序的特点。 (2) 掌握C++语言的数据类型(包括对各种数据类型变量的定义、初始化、赋值等)、运 算符和表达式的使用。 (3) 掌握赋值语句的使用。 (4) 掌握数据的输入输出方法。 2.实验内容 (1)设计简单程序,分别计算下列表达式,式中变量由键盘输入,输出表达式的值。 <1> d c b a x -++ <2> 11 11+++x x <3> sinX+cosX+tan -1 X <4> e x+y +e x-y <5> log 10(1+21x +) <6> 22b a -+??b a - (其中??a 表示取不大于a 的最大整数)。 <1> #include using namespace std; int main() { float x,a,b,c,d,e; cin>>x>>a>>b>>c>>d; e=x+(a+b)/(c-d); cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=sqrt(1+1/(x+1/(x+1)));

cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=sin(x)+cos(x)+1/tan(x); cout< #include #include using namespace std; int main() { double x,y,z; cin>>x>>y; z=exp(x+y)+exp(x-y); cout< #include #include using namespace std; int main() { double x,y; cin>>x; y=log(1+sqrt(1+x*x)); cout< #include #include using namespace std; int main()

C程序设计实践报告

C程序设计实践报告文件编码(008-TTIG-UTITD-GKBTT-PUUTI-WYTUI-8256)

课程实践报告 设计题目: 程序设计(VC++)实践 设计时间2013-1- 至2013-1- 学院(系): 计算机科学与工程学院 2013年1月 一.实践任务 选择题目,创新性题目可只选择1 题,仅选提高题应不少于3 题,仅选基础题应不少于6 题,也可组合选题,还可自行选择感兴趣的题目(须经指导老师审定)。对于提高题、创新题及游戏题可组成团队开发,但应制定详细的项目分工说明。二.实验步骤及记录(题目,源程序代码及运行结果) 1.与学号对应的题(必做题):基础题 12 题目: 建立一个STRING,将一个字符串交叉插入到另一个字符串中(假定两字符串不 等长)。例如将字符串“abcde”交叉插入字符串“ABCDEFG”的结果为“aAbBcCdDeEFG”或“AaBbCcDdEeFG”。 具体要求如下: (1)私有数据成员 char str1[60] :存放被插入的字符串。 char str2[40] :存放待插入的字符串。 char str3[100] :存放插入后的字符串。 (2)公有成员函数 STRING (char *s1, char *s2 ):构造函数,用s1 和s2 初始化str1 和str2。

void process():将str2 中的字符串插入到str1 中,存放到str3 中。void print():输出插入后的字符串。 (3)在主程序中定义STRING 类的对象test 对该类进行测试。 源程序代码: #include<> #include<> class STRING{ char str1[60]; char str2[40]; char str3[100]; public: STRING(char *s1,char *s2){ strcpy(str1,s1); strcpy(str2,s2); } void process(){ char *p1=str1,*p2=str2; for(int i=0;*p2;i=i+2){ for(int k=strlen(str1);k>=i;k--){ str1[k+1]=str1[k]; } *p1=*p2; p1=p1+2;

程序设计实验报告

学生实验报告 院系:测绘学院 专业班级:测绘13级3班 学号:2013305517 学生姓名:王泽 指导教师:郭辉老师 2016年05月20日

安徽理工大学实验报告 实验课程名称:数据结构与软件开发上机实验 开课院系及实验室:测绘学院红楼二楼机房 实验1 编程基本知识练习 实验目的: 通过该实验课内容的练习,学生应掌握VB 编程的基本语法、变量的定义、数组(动态数组)的定义、VB 语言中子过程与函数的定义以及文本文件的读写等知识。 实验内容: 1)变量的定义动态数组的定义与应用; 2)矩阵的加、减、乘运算(定义Sub()子过程或Function()来实现); 3)数据文件的建立、数据的读取与写入。 实验步骤: 1.编辑界面 1.1 打开VB 编程工具,进入编程主界面。

1.2 在窗体上新建“读入数据”和“输出数据”两个按钮。 1.3 双击“窗体”进入代码输入界面,进行代码编辑。 2.用VB 编写的源代码 2.1 矩阵基本运算源码详见附录一。 (1)两矩阵相加 (2)两矩阵相减 (3)矩阵转置 (4)两矩阵相乘 (5)矩阵求逆 2.2 文本文件(本实验中data.txt)的读取源代码 (1)建立文本文件并输入数据 在桌面上新建一“data.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\data.txt”)。输入以下内容: 6,7,4,0.005 A,35.418 B,45.712 C,25.270

D,24.678 在桌面上新建一“result.txt” ( 文本文件路径为C:\Users\ WH\Desktop\练习\result.txt”)。(2)从文本文件中读数据 Dim linedata as string, m_GaochaN as integer,m_Pnumber as integer,m_knPnumber as integer,M as Double,k1 as integer 'linedata 为存储文本文件一行信息的字符串变量 Dim a() as String,H() as Double 'a()为存储点名,H()存储高程 Open“C:\Users\ WH\Desktop\练习\data.txt”For Input As #1 Line Input #1, linedata k = Split(linedata, ",") m_GaochaN = Val(k(0)) m_Pnumber = Val(k(1)) m_knPnumber = Val(k(2)) M = CDbl(k(3)) For k1 = 1 To m_knPnumber Line Input #1, linedata k = Split(linedata, ",") a(k1)= k(0) GetstationNumber (a) H(k1) = CDbl(k(1)) Next Close #1 (3)将读入点名存储到点名数组中,且返回该点名所对应编号 Function GetstationNumber(name As String) Dim i As Integer For i = 1 To m_Pnumber If P_Name(i) <> "" Then '将待查点名与已经存入点名数组的点比较 If P_Name(i) = name Then GetstationNumber = i Exit For End If Else '待查点是新的点名,将新点名放到P_Name 数组中 P_Name(i) = name GetstationNumber = i Exit For End If Next i End Function (4)从文本文件中写数据(将从data.txt 读入的数据,写入到result.txt 文件中) Open“C:\Users\ WH\Desktop\ 练习\result.txt” For Output As #1 outstring = outstring + str(m_GaochaN) +","

程序设计基础实践课目标要求

程序设计基础 课程实践目标要求 一、课程实践目标 程序设计基础课程实践是督促和检验学生程序设计综合能力的教学环节,通过课程实践使学生综合使用所学过的C语言程序设计知识,掌握结构化程序设计的基本思路和方法,在所掌握的基本知识和技能的基础上,进一步提高自学能力和查找资料的能力,解决一定程度的复杂的结构化程序设计问题,加深对所学知识的理解与掌握,增强学生利用自己所学知识解决实际问题的能力,为以后的程序开发打下基础。 课程实践的目的和要求: 1、使学生巩固和加强《C语言程序设计》课程的理论知识。 2、使学生掌握C语言的基本概念、语法、语义和数据类型的使用特点。 3、使学生掌握C语言程序设计的方法及编程技巧,能正确使用C语言编写程序。 4、进一步理解和运用结构化程序设计的思想和方法;学会利用传统流程图或N-S图表示算法。 5、使学生掌握调试程序的基本方法及上机操作方法。 6、掌握书写程序设计开发文档的能力,使学生学会撰写课程实践总结报告。课程实践的思想和方法还可以作为学生做毕业论文时的参考资料。 7、通过查阅手册和文献资料,培养学生独立分析问题和解决问题的能力。为学生做毕业设计打好基础。 8、初步掌握开发一个小型实用系统的基本方法:结合实际应用的要求,使课程实践既覆盖知识点,又接近工程实际需要。通过激发学习兴趣,调动学生主动学习的积极性,并引导他们根据实际编程要求,训练自己实际分析问题的能力及编程能力,并养成良好的编程习惯。 9、培养学生的创新能力和创新思维。学生可以根据指导书和相关文献上的参考算法,自己设计出相应的应用程序。 10、培养学生良好的程序设计风格。在实际编程中,为了提高编程质量,对空行、空格和注释均有要求。学生在课程实践书写代码时,应该严格按要求处理,以便建立良好的程序设计风格。 二、课程实践内容 1.基本要求 ⑴课程实践题目选一,可以协商合作,但每名同学必须完成每个功能函数,甚至每条语句的作用。只有了解了整个程序设计思路,每个函数、设置每条语句的作用,才达到开“计算机与程序设计语言”这门课的目的。

大学程序设计基础实验报告 (2)

**大学程序设计基础实验报告 实验名称:实验三分支结构 实验目的: 1、掌握IF-ELSE语句使用。 2、掌握ELSE-IF语句使用。 3、熟悉SWITCH语句使用。 实验内容: 在本地电脑中新建一个文件夹,用于存放C程序,文件夹的名字要求是“学号姓名-实验序号”,如E:\ 1920115555张三-03。启动C-Free,完成如下各题。 1、编程题:输入参数a,b,c,求一元二次方程ax2+bx+c=0的根(①a、b、c都为0,②a 和b为0,c不为0,③a为0,b不为0,c任意,④a不为0,且a、b、c满足b2-4ac ≥0,⑤a不为0,且a、b、c满足b2-4ac<0)。 2、编程题:输入职工的月薪salary,计算并输出应缴纳的个人所得税tax。tax=rate * (salary –850),rate的计算方式如下: 当salary <= 850,则rate = 0; 当850 < salary <= 1350,则rate = 5%; 当1350 < salary <= 2850,则rate = 10%; 当2850 < salary <= 5850,则rate = 15%; 当salary > 5850,则rate = 20%;。 3、编程题:根据输入的3个边长a、b、c,判断它们是否能构成三角形,若能构成三 角形,则进一步判断此三角形是哪种类型的三角形(等边三角形、等腰三角形、直角三角形和一般三角形。等腰直角算作等腰)。 4、编程题:输入一个形式如“操作数运算符操作数”的表达式,对2个整数进行乘、 除或求余运算。【请分别用if语句和switch语句实现此题功能】 上交作业的方法: 1.将程序代码及注释和运行程序的窗口复制到实验结果下方对应的题号上,并把这 次实验上机操作中遇到的问题及解决方法、心得等填好完成实验报告。 2.保存以上所有按要求已调试通过,并形成.c(或.cpp)和.exe文件到以自己的“学 号姓名-03”命名的文件夹中,并将以自己的“学号姓名”命名的文件夹压缩后上 交到ftp://10.172.250.252:1161中的“作业上传”文件夹下的“报告上交02”文件 夹下的子文件夹“源文件压缩上交”中,同时把以“学号姓名-03”命名的word 文档上交到“报告上交03”文件夹下的另一子文件夹“word文件上交”中。 特别提醒:每次上传的文件名一定要是“学号姓名-实验序号. doc”(如1720115555张

Windows程序设计实践报告

~ Windows程序设计 实践报告 ; BY:08级空间信息与数字技术 60020 马腾

目录 任务一:Windows消息循环机制及API程序设计实践 (3) 一、实践目的 (3) 二、任务概述 (3) 三、windows消息循环 (3) 四、学习收获 (3) 任务二:基于MFC的对话框程序设计 (4) 一、任务概述 (4) 二、MFC消息映射 (4) 三、计算器程序的设计思路 (4) 四、遇到困难及解决 (5) 五、关键代码 (5) 六、运行情况 (6) 七、收获 (6) 任务三:基于MFC的单文档绘图程序设计 (7) 一、任务概述 (7) 二、模块设计及封装 (7) 三、设计的优点 (8) 四、程序风格 (8) 五、运行情况 (8) 六、使用方式 (9) 七、困难及解决 (12)

任务一:Windows消息循环机制及API程序设计实践 一、实践目的 通过实践充分理解Windows的消息循环机制,了解Windows的API函数族的分类及大致功能,并在此基础上了解基本Windows API方式开发的窗口程序的基本过程。任何框架开发环境归根结底都是对Windows API函数的封装与调用。在利用一个框架环境开发Windows程序的过程中,应该明白所使用的框架模块调用了Windows API中的那些功能函数。 二、任务概述 用visual C++开发一个Win32窗口程序,并实现如下功能: 实现菜单功能; 点击某两个菜单可在主窗口中显示或清除文字(文字内容不做要求); 点击某个菜单可弹出一个自定义的对话框(对话框中的元素不做要求), 单击对话框中的“确定”或“取消”按钮,可结束对话框。 三、windows消息循环 Windows多进程的窗口图形操作系统与DOS操作系统最大的区别就是:DOS 采用顺序执行的过程,而Windows采用事件的消息驱动。 用户进行的鼠标操作,键盘输入等操作和各个应用程序之间,应用程序和系统之间的操作都作为一个事件,产生消息,进入到指定的消息队列中,等待取出进行处理。这打破了顺序执行,而采用事件驱动的形式。 四、学习收获 1.了解了Windows的消息循环机制 2.了解了一个窗口程序的生存的始末,从窗口类的定义,注册窗口类,创建窗口,到程序运行的消息循环的主函数。 3.了解了句柄的概念,每个菜单项,窗口都有一个句柄作为自己的标示,作为消息的一部分,告诉系统处理哪个窗口,菜单项的消息。 4.了解了一些简单的API:CheckMenuItem,DialogBox等。 5.了解了消息分类,处理消息的函数里,将消息分为了WM_COMMAND、WM_PAINT

C程序设计实训报告

C程序设计实训报 告

实训一:类和对象的定义及使用 实训目的: (1)掌握类与对象的定义与使用方法,理解面向对象方法中经过对象间传递消息的工作机制。 (2)正确掌握类的不同属性成员的使用方法。 (3)掌握构造函数与析构函数的概念,理解构造函数与析构函数的执行过程。 (4)掌握友元函数和友元类的定义和使用。 (5)基本掌握指针和引用作为函数参数的应用。 实训内容: 定义一个时间类Time,有三个私有成员变量Hour、Minute、Second,定义构造函数、析构函数以及用于改变、获取、输出时间信息的公有函数,主函数中定义时间对象,并经过调用各种成员函数完成时间的设定、改变、获取、输出等功能。 ①按要求完成类的定义与实现。 ②修改数据成员的访问方式,观察编译结果。 ③在Time类中定义一个成员函数,用于实现时间增加一秒的功能,主函数中经过对象调用该函数,并输出增加一秒后的时间信息。 ④定义一个普通函数。

void f(Time t) { t. PrintTime( ); } 在Time类中增加拷贝构造函数的定义,主函数中调用该函数,运用调试工具跟踪,分析整个程序调用构造函数(包括拷贝构造函数)和析构函数的次数;再将f函数的形式参数分别修改为引用参数和指针参数(此时函数代码修改为{t-> PrintTime( );},主函数中调用,再分析此时调用构造函数和析构函数的次数。 实训代码: #include using namespace std; class Time { private: int Hour,Minute,Second; public: Time(int h=0,int m=0,int s=0); Time(const Time &ob); ~Time(); void ChangeTime(int h,int m,int s);

工业机器人编程技术实训课程标准

工业机器人编程技术课程标准 一、课程基本信息 先修课程:电工技术基础、电气控制与PLC、电子技术基础 后续课程:工业机器人安装与调试实训 课程类型:专业必修 二、课程性质 “工业机器人编程技术”是机电专业的一门专业核心课,是在相关专业学习课程学完后的一门综合性课程。机器人技术是一门跨多个学科的综合性技术,涉及自动控制、计算机、传感器、人工智能、电子技术和机械工程等多种学科的内容。本课程的先导课程为:“电工电子技术”、“电气控制与PLC”、“机电设备故障诊断与维修”“工业机器人安装与调试”,经过这四门课程的学习,学生已具备机械部件故障诊断与维修方法、机电设备电器控制、电子产品焊装调试、软件编程和机械图和电器原理图的识读能力。已基本具备学习本课程的知识、技能基础。《工业机器人编程技术》后续课程为《自动化工业生产的安装与调试实训》,进一步学习生产自动化的能力与技能。本课程在专业教学与实践工作之间起了承前启后的桥梁作用,是工业机器人技术专业人才培养过程重要的环节。 三、课程的基本理念 以学生为主体,以工学结合为宗旨,以岗位职业能力的培养为重点,目的是强化学生的工程实践能力与创新能力。“工业机器人编程技术”课程在设计教学思路和理念时,采用基于项目教学的课程教学模式。根据专业人才培养目标及岗位群对学生岗位能力提

出的要求,明确课程目标,分析岗位工作过程,确定岗位典型工作任务,并根据典型工作任务整合教学内容,设计相应的实训项目,注重培养学生的专业能力、方法能力、创新能力和社会能力。 四、课程设计 该该课程是依据“机电一体化专业工作任务与职业能力分析表”中的职业岗位工作项目设置的。其总体设计思路是为以工作任务为中心组织课程内容,让学生在完成具体项目的过程中构建相关理论知识,发展职业能力。课程内容突出对学生职业能力的训练,并融合了相关职业资格证书对知识、技能和态度的要求。 通过对课程内容高度归纳,概括了工业机器人系统构成、机器手动操作、机器人编程控制、机器人参数设定及程序管理等,容的组织是由易到难,由浅入深,由基本理论知识到提高知识与技能训练。学生通过学习,基本掌握本课程的核心知识与技能,初步具备工业机器人现场编程能力以及有关的创新创业技能。 五、课程的目标 (一)总目标 本课程以面向就业岗位为导向,结合工业机器人技术能力目标,对本课程进行了知识体系重构。整个学习过程突出了职业性、实践性和实用性的特点。教学知识点由工业机器人的开关机操作到认识示教器,再到手动操作方法、自动运行方法,学习内容逐渐深化。通过本门学习领域课程工作任务的完成,使学生达到理论联系实际、活学活用的基本目标,提高其实际应用技能,并使学生养成善于观察、独立思考的习惯,同时通过教学过程中的案例分析强化学生的职业道德意识和职业素质养成意识以及创新思维的能力。 (二)具体目标: 1、知识:

程序设计基础实践报告

福建师范大学闽南科技学 院 程序设计基础实践报告 题目职工工资信息管理系统 学生姓名陈显泽 学院信息科学及工程学院 专业班级土木工程1班 完成时间 2017.4.20 指导教师褚若波

目录 一、课程设计目的和要求................................... 二、课程设计基本内容.................................... 三、程序功能简介........................................ 四、主体内容............................................ 4.1 设计分析...................................... 4.2 程序结构...................................... 4.3 模块的功能及程序说明.......................... 4.4 相关模块源程序................................ 4.5 操作方法(流程)................................ 4.6 试验结果(包括输入数据和输出结果)............. 4.7 设计体会...................................... 4.8 参考文献...................................... 五、用户使用说明........................................ 六、对本设计过程及方法、手段的改进建议..................

程序设计实践报告模板

面向对象程序设计实践(Project 2) 报告 题目: 专业软件工程(NIIT) 学生姓名 班级学号 指导教师杨健 指导单位计算机学院/软件学院 日期

评分细则 评分项优秀良好中等差遵守机房规章制度 上机时的表现 学习态度 程序准备情况 程序设计能力 团队合作精神 课题功能实现情况 算法设计合理性 用户界面设计 报告书写认真程度 内容详实程度 文字表达熟练程度 回答问题准确度 简短 评语教师签名: 年月日 评 分 等 级 备 注 评分等级有五种:优秀、良好、中等、及格、不及格

Title(Here,please write the name of your Project) (题目格式:宋体,3号,加粗,居中对齐) 一、D escription and Requirement(格式:Times New Roman,4号,加粗, 两端对齐) (正文格式:宋体(中文) Times New Roman(英文),小4号,不加粗,两端对齐, 1.5倍行距) 二、Requirement Analysis(格式:Times New Roman,4号,加粗,两端对齐) 在该部分中叙述系统的功能,由此得到相应的模块,并分析需要什么的数据,由此可以指导数据库的设计。 (正文格式:宋体(中文)Times New Roman(英文),小4号,不加粗,两端对齐,1.5倍行距) 三、High level design(格式:Times New Roman,4号,加粗,两端对齐) 在此说明每个部分的算法设计说明(可以是描述算法的流程图),每个程序中使用的存储结构设计说明(如果指定存储结构请写出该存储结构的定义,如果用面向对象的方法,应该给出类中成员变量和成员函数原型声明),数据库设计的说明(给出数据库的结构,包括有哪些表,每个表有什么字段,分别存储什么样的数据) (正文格式:宋体(中文)Times New Roman(英文),小4号,不加粗,两端对齐, 1.5倍行距) 四、Low level design格式:Times New Roman,4号,加粗,两端对齐) 各个算法实现的源程序(可以是一组源程序,每个功能模块采用不同的函数实现),源程序要按照写程序的规则来编写。要结构清晰,重点函数的重点变量,重点功能部分要加上清晰的程序注释。 注意:不要粘贴全部程序,只要把关键算法的程序粘贴过来就可以了。 (正文格式:宋体(中文)Times New Roman(英文),小4号,不加粗,两端对齐, 1.5倍行距) 五、Tested data and result analysis(格式:Times New Roman,4号,加粗,

C语言程序设计实验-答案

-前言- /*非常感谢度娘以及各位网上C语言高手的支持,才能让敝人完成此文档的整理。 本文档集合了本人、度娘、众网友的力量,其中代码的正确率约为90%(不正确的有标注)。为回报度娘及众网友的帮助,本文档免费下载。 */ /*配“电子科技大学出版社(周信东主编)”的C语言程序设计实验*/ /*努力吧,骚年以及学妹们!*/ /*整理ed by 口玉刀一of GUET.*/ ===================== 实验一C语言程序初步 ===================== 1.---------------------------- 已知a=5,b=4,c=6,求出s并换行 #include"stdio.h" main() { int a,b,c,s; a=5;b=4;c=6; s=(a+b+c)/3; printf("a=%d,b=%d,c=%d\n,s=%d",a,b,c,s); } 2.------------------------------- 输入一个数字求他的平方 #include main() { int r,s; scanf("%d",&r); s=r*r; printf("s=%d\n",s); } 3.-------------------------------- (1) #include main() { printf(" *\n"); printf("***\n"); printf(" *\n"); } (2) #include

{ int v; int a,b,c; //a,b,c aer sides,v is volume of cube a=3;b=3;c=5; v=a*b*c; printf("v=%d\n",v); } ================================= 实验二数据类型、运算符和表达式 ================================= 1. (1)-------------------------------------------------- //总觉得打印结果怪怪的,DO YOU THINK SO? main() { char s1='3',s2='4',s3='5'; int c1=101,c2=102; printf("3%c\t4%c\t5%c\n",s1,s2,s3); //3%c为输出3和%c printf("s1=%d\ts2=%d\ts3=%d\n",s1,s2,s3);//注意哦,s1,s2,s3是char!而%d:输入输出为整形%ld 长整型%hd 短整型%hu无符号整形%u %lu%s:输入输出为字符串%c字符%f:输入输出为浮点型%lf双精度浮点型printf("c1=%d\t~%c\n",c1,c1); //换码符'\t',表示水平制表位(horizeontal tab),它的作用是将光标移到最接近8的倍数的位置 printf("c2=%d\t~%c\n",c2,c2); //注意c1,c2的类型 } (2) //运行结果为8.300000 %是求余数先运算x-y,把结果转换为int型的有利于四则运算 main() { float x=8.3,y=4.2,s; int a=7; s=x+a%5*(int)(x-y)%2/3; printf("s=%f",s); }

C语言程序设计习题答案与上机指导实验要求

C语言程序设计习题答案与上机指导实验要求 课堂实验应与课堂讲授内容同步,按教材章节编制实验单元。学生按照“理解程序”→“模仿程序”→“改写程序”→“编写程序”四步曲,循序渐进地学习,逐步提高学生的编程能力。 课程实验包括程序跟踪调试、程序阅读、程序改错、程序填空、程序编写多种类型(在程序阅读题中引入程序的跟踪调试,因此程序阅读题难度不大,这类题一般在前章:3~7章),可从多角度培养学生的编程能力。每章实验有基本类实验(2~3个)和提高类实验(1~2个),基本类实验要求每个同学必须完成,提高类实验学生可根据自己的能力有选择性的完成,完成者该实验可加分。每一章实验可按以下要求编写(以第X章为例): 如 第X章数据组织——数组 1.1 知识要点 数组是基本的构造类型,是一组具有相同类型数据的有序集合,数组中的元素在内存中连续存放。用数组名和下标可以唯一地确定数组元素。 以下略 1.2 实验名称螺旋方阵(提高类) 1)实验目的 (1)熟练理解和掌握二维数组的使用

(2)熟练理解循环嵌套的含义与使用方法 2)实验任务 (1)实验内容 如图所示,已知一个N*N(3≤N≤25)的方阵,从左上角第1个格式子开始,按顺时针螺旋方向将1,2,3…的数据布满整个方阵。 N=4时的方阵 (2) 实验要求 输入N,产生N阶螺旋方阵中的所有数据,保存到二维数组,并输出该螺旋方阵。 测试用例:

(3)实验要点分析 ①问题分析 螺旋方阵数据的产生有一定规律。从外到内,可以以圈为单位生成数据。比如N=4时,刚好就是两圈数据: 第1圈: 1 2 3 4 12 5 11 6 10 9 8 7 第2圈 13 14 16 15

最新大学生c语言程序设计实训报告总结

大学生c语言程序设计实训报告总结 C语言是在国内外广泛使用的一种计算机语言。其语言功能丰富、表达能力强、使用灵活方便,,小编整理了大学生c语言程序设计实训报告总结,希望能帮助到您。 大学生c语言程序设计实训报告总结一 C语言是在国内外广泛使用的一种计算机语言。其语言功能丰富、表达能力强、使用灵活方便、既具有高级语言的优点,又具有低级语言的许多特点,适合编写系统软件。其功能强大,不仅用在计算机上广泛用在电子,机械等方面上,而且,所有的windows,Unix,Linux,Mac,os/2,无一例外,哪一个不是C语言写的?很多新型的语言如,C++,Java,C#,J#,perl...都是衍生自C语言。掌握了C语言,可以说你就掌握了很多门语言。 学习C程序这门课一年了,这是我们学的第一门专业课,在大学里C语言不但是计算机专业的必修课程而且也是非计算机专业学习计算机基础的一门必修课程。所以作为我这个计算机专业的学生来说当然十分重要,老师在第一节课说过,C语言是计算机的基础,大多数软件都需要用C语言来编写,通过一个年的学习,使我由初步掌握简单的应试知识到完成高难度的深入编程,如我们在编写一个较大的程序时应该把它分开成几个小程序来看,这样会容易得多。同时,我觉得C语言应该是操作和理论相结合的课程,在不断地编写中去思考,两者是不可分割的。 在学习一年C语言的过程中我也在慢慢探索怎样才能学好C语言,

并总结了一点经验: 要了解C语言就要从语法规为基础来学习起,首先要是要了解它的结构,比如变量,首先要了解变量的定义方式(格式),其意义是什么(定义变量有什么用);其次就是要我要怎么去运用它(我要用什么型式去应用它)。在C语言的命令行中所有的语句都是有它自己的一定格式和形式出现在我们面前,所以我们在学习某种语句或命令时你首先要了解的就是它的规则是什么、有什么用、怎么实现等。这些都是语法基础也是C语言的基础如果把它们都了解很好了,那么你编起程序来就很得心应手了。比如说IFELSE和SWITCHCASE这两种条件语句都是用来判断执行功能的,那我要什么时侯用IF什么时侯用SWITCH 呢?如果你很好地了解它们的结构和作用的话那么就知道:若它的条件分支是多个而且条件的值是整数或是一个字符值时就会选SWITCH 而不会选IF。因为如果条件分支太多时要用IF语句,这样一定会出现IF的嵌套,如果IF的嵌套越多时程序的开销就会随着增大,这样对整个程序的运行效率就大在降底。而SWITCH就不同,它只要比较一次就可以找出条件的结果比起嵌套IF它的效率就大大的提高了很多。不过SWITCH也有它的约束条件,就是它的条件值一定要是一个整型数或是一个字符值,所以碰到它不能解决的问题时我们也会通常使用IF语句,毕竟IF语句它使用起来也比较方便用的范围也比较广。所以说了解语法规则是很重要的,如果没有一个良好的语法基础是很难编出一个好的程序!学习好基础后我们就可以开始来编程了。 大学生c语言程序设计实训报告总结二

c语言程序设计实践报告

中南大学 C语言程序设计实践报告 题目通讯录程序设计 学生姓名 指导教师 学院 专业班级 完成时间

一、任务描述 通讯录程序设计 设计一个实用的小型通讯录程序,具有添加,查询和删除功能。由姓名,籍贯,电话号码1,电话号码2,电子邮箱组成,姓名可以由字符和数字混合编码。电话号码可由字符和数字组成。 实现功能:(1)系统以菜单方式工作 (2)信息录入功能 (3)信息浏览功能 (4)信息查询功能 (5)信息修改功能 (6)系统退出功能 二、算法描述 设计一个实用的的小型通讯录程序必须具备系统以菜单方式工作、信息录入、信息浏览、信息查询、信息修改、系统退出功能,那么就需要这样的函数来实现。因此,我需要自定义这样的函数来解决问题,当然还会调用库函数。在定义函数的过程中会用到选择结构、循环结构等基本语句,以及对结构体数组的定义等。 三、程序设计 /******头文件(.h)***********/ #include "stdio.h" /*I/O函数*/ #include "stdlib.h" /*标准库函数*/ #include "string.h"/*字符串函数*/ #include "ctype.h" /*字符操作函数*/ #define M 50 /*定义常数表示记录数*/ typedef struct /*定义数据结构*/ { char NAME[20]; /*姓名*/ char EMAIL[30]; /*邮箱*/

char TELE1[10]; /*电话*/ char TELE2[10]; /*电话*/ char HOMETOWN[30]; /*籍贯*/ }DATA; /******以下是函数原型*******/ int enter(DATA t[]); /*输入记录*/ int add(DATA t[],int n); /*添加记录*/ int change(DATA t[],int n); /*修改记录*/ int deleter(DATA t[],int n); /*删除记录*/ void list(DATA t[],int n); /*显示记录*/ void search(DATA t[],int n); /*按姓名查找显示记录*/ void qseek(DATA t[],int n); /*快速查找记录*/ void print(DATA temp); /*显示单条记录*/ int find(DATA t[],int n,char *s) ; /*查找函数*/ int menu_select(); /*主菜单函数*/ /******主函数开始*******/ main() { int i; DATA d[M]; /*定义结构体数组*/ int length; /*保存记录长度*/ system("cls"); for(;;)/*无限循环*/ { switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/ { case 1:length=enter(d);break;/*输入记录*/ case 2:length=add(d,length); break; /*添加记录*/ case 3:length=deleter(d,length);break; /*删除记录*/ case 4:list(d,length);break; /*显示全部记录*/

相关主题
文本预览
相关文档 最新文档