wbs编程
⑴ c 语言是否需要头文件和库函数
需要啊 你如果要是用TC 编程 按F1两次就有 hander files 你把光标移过去 就可以看到 一些头文件 里边就有一些基本的 库函数 你可以看看
字符处理函数
本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换
头文件 ctype.h
函数列表<>
函数类别 函数用途 详细说明
字符测试 是否字母和数字 isalnum
是否字母 isalpha
是否控制字符 iscntrl
是否数字 isdigit
是否可显示字符(除空格外) isgraph
是否可显示字符(包括空格) isprint
是否既不是空格,又不是字母和数字的可显示字符 ispunct
是否空格 isspace
是否大写字母 isupper
是否16进制数字(0-9,A-F)字符 isxdigit
字符大小写转换函数 转换为大写字母 toupper
转换为小写字母 tolower
地区化
本类别的函数用于处理不同国家的语言差异。
头文件 local.h
函数列表
函数类别 函数用途 详细说明
地区控制 地区设置 setlocale
数字格式约定查询 国家的货币、日期、时间等的格式转换 localeconv
数学函数
本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51)
头文件 math.h
函数列表
函数类别 函数用途 详细说明
错误条件处理 定义域错误(函数的输入参数值不在规定的范围内)
值域错误(函数的返回值不在规定的范围内)
三角函数 反余弦 acos
反正弦 asin
反正切 atan
反正切2 atan2
余弦 cos
正弦 sin
正切 tan
双曲函数 双曲余弦 cosh
双曲正弦 sinh
双曲正切 tanh
指数和对数 指数函数 exp
指数分解函数 frexp
乘积指数函数 fdexp
自然对数 log
以10为底的对数 log10
浮点数分解函数 modf
幂函数 幂函数 pow
平方根函数 sqrt
整数截断,绝对值和求余数函数 求下限接近整数 ceil
绝对值 fabs
求上限接近整数 floor
求余数 fmod
本分类函数用于实现在不同底函数之间直接跳转代码。 头文件 setjmp.h io.h
函数列表
函数类别 函数用途 详细说明
保存调用环境 setjmp
恢复调用环境 longjmp
信号处理
该分类函数用于处理那些在程序执行过程中发生例外的情况。
头文件 signal.h
函数列表
函数类别 函数用途 详细说明
指定信号处理函数 signal
发送信号 raise
可变参数处理
本类函数用于实现诸如printf,scanf等参数数量可变底函数。
头文件 stdarg.h
函数列表
函数类别 函数用途 详细说明
可变参数访问宏 可变参数开始宏 va_start
可变参数结束宏 va_end
可变参数访问宏 访问下一个可变参数宏 va_arg
输入输出函数
该分类用于处理包括文件、控制台等各种输入输出设备,各种函数以“流”的方式实现
头文件 stdio.h
函数列表
函数类别 函数用途 详细说明
文件操作
删除文件 remove
修改文件名称 rename
生成临时文件名称 tmpfile
得到临时文件路径 tmpnam
文件访问 关闭文件 fclose
刷新缓冲区 fflush
打开文件 fopen
将已存在的流指针和新文件连接 freopen
设置磁盘缓冲区 setbuf
设置磁盘缓冲区 setvbuf
格式化输入与输出函数 格式输出 fprintf
格式输入 fscanf
格式输出(控制台) printf
格式输入(控制台) scanf
格式输出到缓冲区 sprintf
从缓冲区中按格式输入 sscanf
格式化输出 vfprintf
格式化输出 vprintf
格式化输出 vsprintf
字符输入输出函数 输入一个字符 fgetc
字符串输入 fgets
字符输出 fputc
字符串输出 fputs
字符输入(控制台) getc
字符输入(控制台) getchar
字符串输入(控制台) gets
字符输出(控制台) putc
字符输出(控制台) putchar
字符串输出(控制台) puts
字符输出到流的头部 ungetc
直接输入输出 直接流读操作 fread
直接流写操作 fwrite
文件定位函数 得到文件位置 fgetpos
文件位置移动 fseek
文件位置设置 fsetpos
得到文件位置 ftell
文件位置复零位 remind
错误处理函数 错误清除 clearerr
文件结尾判断 feof
文件错误检测 ferror
得到错误提示字符串 perror
实用工具函数
本分类给出了一些函数无法按以上分类,但又是编程所必须要的。
头文件 stdlib.h
函数列表
函数类别 函数用途 详细说明
字符串转换函数 字符串转换为整数 atoi
字符串转换为长整数 atol
字符串转换为浮点数 strtod
字符串转换为长整数 strtol
字符串转换为无符号长整型 strtoul
伪随机序列产生函数 产生随机数 rand
设置随机函数的起动数值 srand
存储管理函数 分配存储器 calloc
释放存储器 free
存储器分配 malloc
重新分配存储器 realloc
环境通信 中止程序 abort
退出程序执行,并清除环境变量 atexit
退出程序执行 exit
读取环境参数 getenv
程序挂起,临时执行一个其他程序 system
搜索和排序工具 二分查找(数据必须已排序) bsearch
快速排序 qsort
整数运算函数 求绝对值 abs
div
得到除法运算底商和余数
求长整形底绝对值 labs
求长整形除法的商和余数 ldiv
多字节字符函数 得到多字节字符的字节数 mblen
得到多字节字符的字节数 mbtowc
多字节字符转换 wctomb
多字节字符的字符串操作 将多字节串转换为整数数组 mbstowcs
将多字节串转换为字符数组 mcstowbs
字符串处理
本分类的函数用于对字符串进行合并、比较等操作
头文件 string.h
函数列表
函数类别 函数用途 详细说明
字符串拷贝 块拷贝(目的和源存储区不可重叠) memcpy
块拷贝(目的和源存储区可重叠) memmove
串拷贝 strcpy
按长度的串拷贝 strncpy
字符串连接函数 串连接 strcat
按长度连接字符串 strncat
串比较函数 块比较 memcmp
字符串比较 strcmp
字符串比较(用于非英文字符) strcoll
按长度对字符串比较 strncmp
字符串转换 strxfrm
字符与字符串查找 字符查找 memchr
字符查找 strchr
字符串查找 strcspn
字符串查找 strpbrk
字符串查找 strspn
字符串查找 strstr
字符串分解 strtok
杂类函数 字符串设置 memset
错误字符串映射 strerror
求字符串长度 strlen
日期和时间函数
本类别给出时间和日期处理函数
头文件 time.h
函数列表
函数类别 函数用途 详细说明
时间操作函数 得到处理器时间 clock
得到时间差 difftime
设置时间 mktime
得到时间 time
时间转换函数 得到以ASCII码表示的时间 asctime
得到字符串表示的时间 ctime
得到指定格式的时间 strftime
函数库未来的发展方向
本部分用于说明各类别函数库在将来如何发展。
序号 库类别 头文件 详细说明
1 错误处理 errno.h
2 字符处理 ctype.h
3 地区化 local.h
4 数学函数 math.h
5 信号处理 signal.h
6 输入输出 stdio.h
7 实用工具程序 stdlib.h
8 字符串处理 string.h
⑵ 关于C语言编程时的错误
我已经测试了,主要是语法错误。在VC++6.0中编译阶段就能得到错误信息。要保证代码正确性,首先代码格式要良好,这样才容易找出错误。
{a[0].score=a[2].score;j=2;}};这句最后的};是多余的。
还有一个逻辑问题。学生姓名是字符串类型,最后一句输出时你却用%c,显然应当用%s,并且将a[j].name[20]修改为a[j].name
最后一个建议:最后一句输出也加上\n
⑶ 《Windows网络编程技术》txt全集下载
Windows网络编程技术 txt全集小说附件已上传到网络网盘,点击免费下载:
内容预览:
……
⑷ 有类似于MS Project的免费软件么
试试openproj,是开源软件,但功能比MS project少。
⑸ 如何用VC创建一个excel文档
下面介绍的方法可以参考:
在Visual C中如何进行处理了利用Excel 2000的ActiveX Automate功能处理起来同VB中类似。
但要注意以下几点 对于对象的属性值的读取或赋值需要用GetProperty或SetPropertyNewValue函数不能象VB中直接通过属性名称取值或赋值。
例如Worksheet.GetCount Worksheet.SetName“Sheet1”。
对集合对象中的成员对象的引用必须使用集合对象的GetItem函数。
例如Worksheets.GetItemColeVariantlong1或Worksheets.GetItemColeVariant“Sheet1”取得第一个工作表。
在COM接口中时常用到VariantBSTRSafeArray数据类型。
Variant数据类型是一个联合可表示几乎所有的类型的数据具体用法见MSDN中的相关介绍类_variant_t是对VARIANT数据类型的封装。
在Excel 2000的VB编程帮助中如果提到某函数或属性需要一个值该值的数据类型通常是Variant在封装Excel 2000对象的类定义中说明了具体需要的数据类型。
BSTR是一个包括了字符串和字符串长度的数据结构类_bstr_t是对BSTR数据类型的封装。
在Excel 2000的VB编程帮助中提到的字符串通常指BSTR。
具体函数参数或属性的数据类型见封装该对象的类的定义。
SafeArray是一个包括数组和数组边界的结构数组边界外的内容不允许访问。
在Excel 2000的VB编程帮助中提到的数组是指SafeArray。
关于SafeArray的处理请见MSDN的相关帮助。
对于缺省参数和缺省值。
在VB中函数的参数可以空缺在VC中不允许必须将所有的参数填写完全。
如果你希望指定某个参数为缺省值根据参数数据类型的不同可指定不同的缺省值。
当参数数据类型为字符串时可以用长度为0的字符串。
如果参数是Variant类型可用常量vtMissing该常量在comdef.h中定义。
也可用_variant_tDISP_E_PARAMNOTFOUND VT_ERROR产生一个Variant对象。
Excel对象中的集合对象有时包括的子对象是不一定的例如Range对象可以表示Cell的集合也可以表示Column的集合或Row的集合Range.GetItem1可以返回Cell或Column或Row对象。
对对象的引用或传递对象使用IDispatch类对象有时利用Variant对IDispatch进行包装。
以下是一段源程序演示如何启动Excel 2000利用一个模板文件产生一个新文档在该文档的”Sheet1”工作表的第一个单元中填写一段文字设置第一列的列宽然后调用一个模板中的宏执行一段程序最后打印预览该Excel文档。
模板文件名称MyTemplate.xlt。
程序在Visual C 6.0 sp4Windows 2000 Professional sp-1下调试通过。
首先利用Visual C 6.0建立一个MFC基于对话框的工程项目共享DLLWin32平台。
工程名称ExcelTest。
在主对话框中加入一个按钮 ID IDC_EXCELTEST Caption Test Excel 双击该按钮增加成员函数void CExcelTestDlg::OnExceltest。
在BOOL CExcelTestApp::InitInstance中dlg.DoModal之前增加代码 if
CoInitializeNULL0 AfxMessageBox初始化COM支持库失败 exit1 在return FALSE 语句前加入
CoUninitialize 选择Menu-View-ClassWizade打开ClassWizade窗口选择Add Class-From a
type library选择D:Program FilesMicrosoft OfficeofficeExcel9.OLBD:Program
FilesMicrosoft Office是本机上Microsoft Office 2000的安装目录可根据个人机器上的实际安装目录修改。
选
择_Application、Workbooks、_Workbook、Worksheets、_Worksheet、Range加入新类分别为
_Application、Workbooks、_Workbook、Worksheets、_Worksheet、Range头文件Excel9.h源
文件Excel9.cpp。
在ExcelTestDlg.cpp文件的头部include
ExcelTestDlg.h语句之下增加 include comdef.h include Excel9.h 在void
CExcelTestDlg::OnExceltest 函数中增加如下代码 void CExcelTestDlg::OnExceltest
_Application ExcelApp Workbooks wbsMyBooks _Workbook wbMyBook Worksheets
wssMysheets _Worksheet wsMysheet Range rgMyRge //创建Excel 2000服务器启动Excel
if ExcelApp.CreateDispatchExcel.ApplicationNULL
AfxMessageBox创建Excel服务失败 exit1 //利用模板文件建立新文档
wbsMyBooks.AttachDispatchExcelApp.GetWorkbookstrue
wbMyBook.AttachDispatchwbsMyBooks.Add_variant_tg:exceltestMyTemplate.xlt
//得到Worksheets wssMysheets.AttachDispatchwbMyBook.GetWorksheetstrue //得到sheet1
wsMysheet.AttachDispatchwssMysheets.GetItem_variant_tsheet1true
//得到全部Cells此时rgMyRge是cells的集合
rgMyRge.AttachDispatchwsMysheet.GetCellstrue //设置1行1列的单元的值
rgMyRge.SetItem_variant_tlong1_variant_tlong1_variant_tThis Is A Excel
Test Program //得到所有的列 rgMyRge.AttachDispatchwsMysheet.GetColumnstrue
//得到第一列
rgMyRge.AttachDispatchrgMyRge.GetItem_variant_tlong1vtMissing.pdispValtrue
//设置列宽 rgMyRge.SetColumnWidth_variant_tlong200 //调用模板中预先存放的宏
ExcelApp.Run_variant_tCopyRow_variant_tlong10vtMissingvtMissing
//打印预览
wbMyBook.SetSavedtrue ExcelApp.SetVisibletrue
wbMyBook.PrintPreview_variant_tfalse //释放对象 rgMyRge.ReleaseDispatch
wsMysheet.ReleaseDispatch wssMysheets.ReleaseDispatch
wbMyBook.ReleaseDispatch wbsMyBooks.ReleaseDispatch
ExcelApp.ReleaseDispatch 添加完以上程序后可运行看结果。
⑹ 想成为一名项目经理需要什么证书,条件
目开始阶段是一个最重要的阶段。项目经理在接手一个新项目的时候,首先要尽可能地多从各个方面了解项目的情况,如:
1.这个项目是什么项目,具体大概做什么事情,是谁提出来的,目的是解决什么问题。在国内很多客户都很不成熟的情况下,千万不要根据项目的名称望文生义地去想象项目的目标。一个名为“办公自动化”的项目很有可能在你进场以后一个月才发现客户其实需要的是一个计算机生产管理辅助信息系统系统。前期了解情况的工作越详细,后面的惊讶就越少,项目的风险就越小。
2.这个项目里牵涉哪些方面的人,如投资方、具体业务干系方、项目建成后的运营方、技术监督方等等,很多项目里除了业主单位的结构很复杂以外,还有一些其他单位也会牵涉进来,如项目监理公司、业主的行业主管机构等。项目经理需要了解每个方面的人对这个项目的看法和期望是什么。事先了解各个方面的看法和期望,可以让你在做项目碰到问题的时候,就每件事情分析哪些人会在什么方面支持你,哪些人会出于什么目的反对你,从而提前准备联合朋友去对抗敌人,让事情向你所希望的方向发展。没有永远的朋友,也没有永远的敌人,只有一致的利益,这句话作为项目经理是一定要记住的;
3.基本了解了客户的情况后,下面的事情就是了解自己公司各方面对这个项目的看法。首先是高层领导是否重视,这个决定了你在需要资源的时候,公司是否会根据你的要求提供最有力的支持。领导口头肯定是说支持的,你需要做的是了解公司对这个项目的实际期望,是想把项目越做越大还是想赚钱?是想做样板工程还是干脆想敷衍了事,公司领导对项目的态度决定了你做这个项目的战略,而这个战略方针将对你做项目计划产生直接的影响;
4.在做整体项目计划前,还要大致计算一下你手上的资源。首先是时间,现在市场竞争激烈,往往很多项目要求在几乎不可能的时间范围里完成。对于这一点,你在做项目的风险控制计划的时候要充分考虑。其次是人员,根据项目预算和已往经验,大致计算一下未来的项目小组有多少种角色,每个角色目前公司是否有人,是否能完全归这个项目使用,是否需要另外招聘一些人员,招聘的准备工作要尽早启动。最后就是一些设备的准备,项目所需大件关键设备要尽早预定,以后不管发生设备等人还是人等设备的情况,浪费的都是你的时间;
5.现在是做项目说明书的时候了。一份好的项目说明书不仅将要做的事情描述得很清楚(主要是讲做什么,而不是说怎么做),而且把如何检查也说明得很透彻。也就是说它不仅说明白了要做哪些事情,也让客户的业务人员(一般不懂技术)知道项目做成什么样就算完成了。简单地说,项目说明书描述项目做哪些事情和每件事情做到什么程度以及如何检查每一个结果。
6. 是到做总体计划的时间了吗?不,你现在已经知道了客户的目标和你手上的资源,那么做计划以前,你还需要和你的经理和客户充分沟通资源的问题。因为很多资源是还不明确的,你需要写一份报告,详细分析这个项目的风险以及对资源的需求情况。如果一些问题不能得到解决的话,将发生什么样的后果。如果资源不够,就要高层改变策略,增加对这个项目的投入。甚至在条件许可的情况下,有些公司会放弃这个项目。总之,没有人能完成一个不可能完成的任务,如果项目经理不能尽早发现风险,那么就只能去当烈士了。
7.明白了要做哪些事情和你手上的筹码以及你做这个项目的总体策略,现在是成立项目小组的时候了。很多项目经理都没有自己选择组员的权利,那么,就尽量发挥你的影响力去寻找那些你想要的人吧。成员的组成根据项目不同,相差较大,很难有什么具体要求,但是,一定要有精通客户业务的人,很多小项目里,这个人就是项目经理本人,大项目里会配备行业专家(Instry expert),这样和客户沟通起来才不会鸡同鸭讲,双方才可以相互理解。我经常看到的情况是我们的技术人员和客户交谈时满口的专业术语,结果搞得客户一头雾水,反过来,他还指责客户不懂技术。其实,明白自己想做什么的客户已经是很好的客户了,不知道自己要做什么,更不懂怎么做还要指手画脚的客户到处存在,但是要明白,是客户选择了你,而不是你选择了客户,有了客户你才有工资拿,心平气和一点吧。
对于这种需求天天变的客户,你就一定要事先做好规矩:
一、统一联系人,客户指定一个人和项目组进行沟通,不能张领导、王领导都来说几句,如果他们意见不一致,那你只有得罪领导的选择了,所以,项目的最初就要定好规矩,我项目组只认一个的意见,有什么要求你们内部先统一再和我谈,我不想卷入你们内部业务部门之间的矛盾之中;
二、所有需求变更全部要有书面文字,这点切记!这样做好处多多:
*有书面证据,以后他还想改,你有了他以前要求的证据,告诉他:你以前可是这么说的;
*便于需求变更管理,需求如何慢慢演变的历史可以看清楚,从而更深切地体会客户的目的;
*对于客户来说,嘴巴一动最方便,反正是你们做,不花他的资源,所以要求是否合理,是否和项目的目的一致,他是不负责任的。但是如果要他写书面要求,还要签字盖章,他就要谨慎多了,而且一写东西,思想就会更加深入,很多无理要求也就这样胎死腹中了;
8.现在你要面对三群人:你的领导、你的组员和你的客户,和这些人沟通,让他们知道你打算怎么做,什么时候要他们做什么准备这些事情将是你的主要工作。既然沟通这么重要,那些事先定义一下沟通的原则也是一件很要紧的事情。很多沟通原则都是潜规则,如果你在一个部门时间做长了,对这些规则的运用觉得是一件理所应当的事情,但是,你现在面对的是多个部门甚至多个单位,不把沟通规则说清楚,你以后就会吃亏。下面的东西看起来无聊,其实还是很管用的:
第一个是规定信息的流动方式和介质,是推还是拉。推的意思就是项目经理将主动发布信息,不管通过电话、邮件还是书面方式,保证将信息传达到每个人。这种情况适合小项目,人少;拉的意思就是项目经理就是一个类似web服务器,你自己需要什么信息就去问他。当然,没有项目经理把自己搞得那么累,他会用发布信息到公共介质的方式公布信息,简单的是白板,复杂一点的是项目的公共信息交互区,潜规则就是我发了你没去看就不要说我没告诉你。说这些看似很无聊,其实里面牵涉信息传达不完全的责任问题。当然,这些都是指一般的方式,而且不要绝对化,一般情况下,主动沟通和被动访问是同时存在的,尤其是对领导,项目经理更加应该主动去和领导沟通。
第二个问题就是文档问题,很多人怕写文档,但是项目经理一定要牢记“好记性不如烂笔头”的道理。有理有时候为什么会说不清呢?就是因为没有证据。所以项目经理开始就要和客户说清楚有些文档是必须签字的,比如项目经理的项目日志,每个星期至少让客户签字,另外所有达成共识的东西,比如会议纪要,甚至领导的讲话记录,都要写成文档,双方签字,这样以后扯皮的时候,就能做到有据可查。记住:说了的就和没说一样,只有写下来大家签字后才算真正发生了的。还有一些问题,比如你提交的报告,给领导(包括本方领导和客户领导)做一个选择题,结果领导压住不批,让你无所适从,结果拖延了进度。这时候,你可以等,但是注意要留记录,标明是谁的责任;另外,如果你在开始阶段就和领导商定:如果批示提交三天后没有得到领导答复就算对方同意,这样你就会主动很多。再比如不同事件的审批流程问题:什么等级的事情记录在项目日志里、什么等级的事情要双方项目经理专门签署备忘录、什么等级的事情要双方领导出面签署合同附件等等。事先想得越周到,以后的工作就越主动。
9.好了,做了很多前期工作,定义了一些游戏规则,现在是坐下来做计划的时候了。这一节,任意找一本项目管理的书都会说得比我好,所以我就少写一点,说一些自己的体会就是了。首先是找几个关键组员,比如客户业务专家、系统分析员等等,做一下项目模块划分工作。项目分成几块去做,每一块完成什么,模块之间的信息如何交换等等。需求定义的是做什么的问题,而这里说的是怎么做的问题。这里要强调一点:
完成一个目标有很多种方式,你要选一种你最熟悉的,而不是看上去最完美的,这个思路会让你的项目减少很多风险。有时候客户会被某种新技术打动,坚持要你采用那种新技术,你就应该告诉他:你选我做这个项目,就应该容许我采用自己最喜欢的方式做事情,新技术之所以有诱惑力,就是因为吃亏的人还不多,我不希望你成为第一批受害者。采用一个计划会让你的工作更加明确,比如用微软的Project软件,你填写完表格以后,就可以知道这个项目有多少件事情要做,每件事情需要什么资源,他们之间的前后关系如何,消耗的时间有多长,完成后有什么标志等。所有的结果最后用一个叫做干特图的形式表现出来。你做完这个表以后会惊奇地发现,干特图上项目的结束时间会远远落后于你的计划结束时间(签合同的人永远不会先征求你的意见的)。
当然,学过项目管理的人会大谈什么WBS、优化路径之类的东西,但是我的经验是你再优化也不可能把这些东西安排到计划的时间结束。如果你没碰到这个问题,在我恭喜你挑了一个轻松活之前,请你再去确认你是否罗列了所有要做的事情和正确评估了他们所需要的时间。这时候,你就要考虑牺牲一些任务的时间(也意味着质量)了。按照什么标准牺牲?这个项目的战略!我们在第三节提到过的战略。我的经验是如果你什么都赶进度,其结果可能就是十件事情你一件也没做好,想想多么失败啊。所以,把资源投到你熟悉和有把握的事情上,最后的结果是十件事情,你有三件做成了精品,三件完成,还有四件因为某些原因延误,成绩单是否靓丽了很多呢?战略决定优先级,而正确排列事情的优先级是一个项目经理能力的主要体现。
好,现在项目已经完成了前期工作,了解了项目的目标、搞清楚了手上的资源,制定了项目的策略,然后编制了项目的整体计划,项目进入实施阶段。进入这个阶段反而是项目经理比较空闲的时候,不像前期的时候项目经理要象记者一样到处和不同的人接触,搞清楚他们在说什么,努力猜测他们在想什么和他们的真正目的,那才是最累人的事情。当然,小项目的项目经理往往自己也是一个资源,要做很多事情,这时候反而比谁都苦。项目经理这段时间的主要工作是保持和客户领导以及自己领导的沟通。
和客户领导沟通时特别要注意,除非你需要对方给你支持,那么你才需要讲得具体一点,否则,告诉他一切正常就可以了,而且态度要积极一些,千万不要说一些领导不懂的细节,比如:“王局长,最近项目进度还算正常,就是JVM经常发生一些内存泄漏的情况…”王局长:“(*&$@@”。和自己的领导汇报也要注意这个问题,除非他是一个技术高手,你需要他的技术经验,否则一般就汇报进度是否正常以及有问题时你的对策和打算就可以了,有些需要他支持的地方,比如资源调用需要说详细一点。和组员开会,除了一些项目进度跟踪会议以外,还有很多讨论会,需要大家用头脑风暴方法给出解决问题。与会人员很多都是技术人员,他们的特点是注重细节、缺乏大局观、有点消极悲观、自尊心强(如果总结得不对,欢迎大家拍砖).
所以,你作为会议的主持人,只要负责提出问题和记录下他们的观点,千万不要做评判者的角色。一个问题,有很多方面,从不同的角度看,现象是完全不同的,想想盲人摸象的故事吧。这些技术人员,他们往往精通一个方面,就自己的角度发表见解,除非一些很特别的情况,你都应该认为,他们提出的方案,从他们的角度来看是最合理的。你的长处是掌握事情的优先级,评估各个方面的轻重缓急,从而根据他们的意见得出一个合适的(而不是正确的)方案。所以,在会议上,你要充分尊重每一个人和他的意见,夸奖那些意见提得比较好的人,千万不要把会议带入无休止的争论(你要让大家知道事情不是非黑即白的,而是多元的,唉,我们的教育惹的祸…)。会后,你自己写文档,做决定。会议上大家的面子都被照顾了,自己实施起来的阻力就小,如果还有意见的,你就私下找他聊,如果还不能说服他,你就要让他明白,因为你负责这个项目、你担当风险,所以,这个优先级应该你来判断。组织中的高层,并不见得水平会比一般的成员高,但是,他要承担组织的风险,加之信息的不对称性,所以,对事情的优先级的判断肯定比下属强。
在开发过程中,内部管理还要注意的一点是时刻强调以验收为目的的思想,每个任务的最终可交付成果一定要是可以被检查的,比如,【界面要求:美观大方、简洁明快】,这个要求我就不知道如何检查。所以,给开发小组布置任务的时候就要考虑如何检查结果,比如我见过一个计划,里面有一个任务【开发人员熟悉EJB编程】,这个任务,除了让这些人去参加一些专业认证考试,否则,结果很难被检查。所以,时刻考虑如何检查结果、如何向客户交付是项目经理一直要注意的事情,我听说有些老项目经理拿到项目是倒排计划的,即首先看如何验收和验收标准,然后决定工作计划。很多项目开始了很久,还不知道如何验收,那么这个项目出问题的可能性就很大了。做项目就是为了验收,我们的角色不是研究机构,我们的目的就是在付出那么多劳动后得到结果。
另外我插一句:我是极其不主张到客户现场开发的。尤其是一大群技术人员直接和客户交流,很容易引起冲突和矛盾(技术人员的本性决定的)。我的做法是项目经理和项目实施人员到现场,软件开发人员还是在公司做项目。项目实施人员就是初级项目经理,他们了解自己的产品,懂得一些客户的业务,关键是在于他们具有良好的沟通能力,俗称“皮厚”。他们是客户和研发人员的桥梁,其职业方向也是很机动灵活,以后可以有很多方向可以转,比开发人员的路要宽得多。
接着,我们再谈谈最让人头痛的需求变更问题。变更通常分为两种:一种是部分更改了原先的目标,即需求变更;另一种是没改变目标,但是客户不满意目前的实现方式,大到流程的实现,小到界面的布局,都是属于这类。碰到这种情况是难以避免的,主要是事先沟通的不够充分和客户随着项目的进展,慢慢想清楚了问题,改变了以前的思路。这时候,如果需要改并且你的战略是容许这种情况的,那么注意下面几点:
1. 确保以前的文档,就是记载着以前的结论的东西,客户是否签过字,如果没有,赶紧把你的工作停下来,赶快再和客户自己确认一下你的方案,然后让他签字,避免以后说话没有凭据;
2. 和客户坐下来,自己探讨他修改的根本目的是什么,是不是有同样能达到相同目的,但是对你来说有代价更小的选择?
3. 项目初期的工作)明确更改流程,一般是客户指定一人签字(否则客户每个领导都有权力来插一杠子,你就废了),以正式项目文件的方式提交给你,然后,你做评估分析,分析对成本、进度的影响,在你的领导同意后,出相应意见书,主要是要说明更改设计的原因和指出由此带来的不确定后果(这个东西先写出来,后面如果真的发生了,至少不是你的错)。然后再让客户在上面签字。见过医院给病人做手术以前让家人签的免责条款吗?对,就学习那个,让大家都意识到任何的更改都有成本和代价。
系统开发告一段落后,就进入客户培训、系统验收阶段,这个阶段,我一般会注意以下几个问题:
一、给客户做培训前,多注意一些表面功夫。很多程序员认为,系统的逻辑核心是否正确是关键,至于界面如何,界面上的用词是否准确,那是无关紧要的问题,而且培训的时候也是信手拈来,想到哪里说到哪里,下面听讲的人不知所云,云山雾罩,培训效果自然可以想象。我的体会是,给客户做培训的版本,如果你在做多次测试以后仍然不能确定逻辑是否合乎要求,那么,你至少要在界面上多花一点功夫。注意每个界面的布局、用词、链接的正确性等等,总之不要让客户看到一些他不该看到的东西。文档方面,准备至少两个文档:用户手册和培训手册。这两个文档的内容很多都是一致的,但是角度完全不同。用户手册往往是站在系统设计者的角度,按照自己的思路,分模块讲解系统的操作和功能;而培训手册,一定要站在客户业务人员的角度,根据每个角色面对不同业务的办理,如何通过使用本系统的一系列功能来实现目标。所以,第一次培训以前,系统界面是否完整正确、培训文档是否完备都是很关键的因素,第一炮打不响,以后就麻烦很多。
作为项目经理,其实脑子里就是几样东西:做哪些事情、做到什么程度、怎么交货、手上的资源以及各个事情的优先级。所谓多快好省那是人类的梦想,这四个方面都是相互矛盾的,属于典型的又要马儿跑,又要马儿不吃草的类型。考虑问题的轻重缓急方面,往往是把快放在第一位,各方领导都会给你最后期限,所以保进度是第一位的;省是第二位的,企业的根本目的是盈利,如果收入不能增加的话,至少费用要控制住;好是第三位的,没办法,谁都想精益求精,但是,没有强大的资源保障,质量只好先牺牲了;最后是多,客户的要求源源不断,如何降低客户的期望值,让他们从理想回到现实也是项目经理的分内工作。
验收前,除了做好文档工作,即可交付成果以外,多花时间搞清楚客户的做事情流程是很重要的事情,这些在前面已经有所提及,这里就不再多说。
我对验收最大的体会就是举证问题。即千万不要让客户这么想:你必须有证据证明你的系统是没问题的。这样你就没戏了,微软那么多天才,做了XP还天天打补丁,要你的程序没问题,既不可能,你也没办法拿出证据。你要让客户明白,所谓验收,就是我按照测试文档的测试用例跑一遍,结果和预期结果一致就应该算通过了,而且还容许有一些小错误留在验收后改正,他可以对测试用例提意见。所以,验收前双方要确认测试计划和测试用例。如果他认为系统不符合要求,那么他应该举证,证明这个系统和最初设计相背离的。所以,参考法律概念,千万不要举证倒置。另外,认为系统完美了才能验收的想法也是错误的,软件开发合同里一定要注明验收以后维护期的费用问题,否则,客户担心一旦验收就得不到你们的支持,自然不配合验收,那么,你这个项目经理就很难交功课了。
不过你开头说想考2级建造师...但是我个人认为2级建造师是可有可无的...因为现在2级遍地都是...要吗就努力点去考1级的...
当然你要是有时间也是可以是考的..毕竟多本证书不是坏事呀`~~
⑺ c编程将这两个字符串进行合并操作,生成一个新的字符串
多字节字符的字符串操作 将多字节串转换为整数数组 mbstowcs 将多字节串转换为字符数组 mcstowbs 字符串处理 本分类的函数用于对字符串进行合并、比较等操作 头文件 string.h 函数列表 函数类别 函数用途 详细说明 字符串拷贝 块拷贝
⑻ 求C语言编程中常用的函数
字符处理函数
本类别函数用于对单个字符进行处理,包括字符的类别测试和字符的大小写转换
头文件 ctype.h
函数列表<>
函数类别 函数用途 详细说明
字符测试 是否字母和数字 isalnum
是否字母 isalpha
是否控制字符 iscntrl
是否数字 isdigit
是否可显示字符(除空格外) isgraph
是否可显示字符(包括空格) isprint
是否既不是空格,又不是字母和数字的可显示字符 ispunct
是否空格 isspace
是否大写字母 isupper
是否16进制数字(0-9,A-F)字符 isxdigit
字符大小写转换函数 转换为大写字母 toupper
转换为小写字母 tolower
地区化
本类别的函数用于处理不同国家的语言差异。
头文件 local.h
函数列表
函数类别 函数用途 详细说明
地区控制 地区设置 setlocale
数字格式约定查询 国家的货币、日期、时间等的格式转换 localeconv
数学函数
本分类给出了各种数学计算函数,必须提醒的是ANSI C标准中的数据格式并不符合IEEE754标准,一些C语言编译器却遵循IEEE754(例如frinklin C51)
头文件 math.h
函数列表
函数类别 函数用途 详细说明
错误条件处理 定义域错误(函数的输入参数值不在规定的范围内)
值域错误(函数的返回值不在规定的范围内)
三角函数 反余弦 acos
反正弦 asin
反正切 atan
反正切2 atan2
余弦 cos
正弦 sin
正切 tan
双曲函数 双曲余弦 cosh
双曲正弦 sinh
双曲正切 tanh
指数和对数 指数函数 exp
指数分解函数 frexp
乘积指数函数 fdexp
自然对数 log
以10为底的对数 log10
浮点数分解函数 modf
幂函数 幂函数 pow
平方根函数 sqrt
整数截断,绝对值和求余数函数 求下限接近整数 ceil
绝对值 fabs
求上限接近整数 floor
求余数 fmod
本分类函数用于实现在不同底函数之间直接跳转代码。 头文件 setjmp.h io.h
函数列表
函数类别 函数用途 详细说明
保存调用环境 setjmp
恢复调用环境 longjmp
信号处理
该分类函数用于处理那些在程序执行过程中发生例外的情况。
头文件 signal.h
函数列表
函数类别 函数用途 详细说明
指定信号处理函数 signal
发送信号 raise
可变参数处理
本类函数用于实现诸如printf,scanf等参数数量可变底函数。
头文件 stdarg.h
函数列表
函数类别 函数用途 详细说明
可变参数访问宏 可变参数开始宏 va_start
可变参数结束宏 va_end
可变参数访问宏 访问下一个可变参数宏 va_arg
输入输出函数
该分类用于处理包括文件、控制台等各种输入输出设备,各种函数以“流”的方式实现
头文件 stdio.h
函数列表
函数类别 函数用途 详细说明
文件操作
删除文件 remove
修改文件名称 rename
生成临时文件名称 tmpfile
得到临时文件路径 tmpnam
文件访问 关闭文件 fclose
刷新缓冲区 fflush
打开文件 fopen
将已存在的流指针和新文件连接 freopen
设置磁盘缓冲区 setbuf
设置磁盘缓冲区 setvbuf
格式化输入与输出函数 格式输出 fprintf
格式输入 fscanf
格式输出(控制台) printf
格式输入(控制台) scanf
格式输出到缓冲区 sprintf
从缓冲区中按格式输入 sscanf
格式化输出 vfprintf
格式化输出 vprintf
格式化输出 vsprintf
字符输入输出函数 输入一个字符 fgetc
字符串输入 fgets
字符输出 fputc
字符串输出 fputs
字符输入(控制台) getc
字符输入(控制台) getchar
字符串输入(控制台) gets
字符输出(控制台) putc
字符输出(控制台) putchar
字符串输出(控制台) puts
字符输出到流的头部 ungetc
直接输入输出 直接流读操作 fread
直接流写操作 fwrite
文件定位函数 得到文件位置 fgetpos
文件位置移动 fseek
文件位置设置 fsetpos
得到文件位置 ftell
文件位置复零位 remind
错误处理函数 错误清除 clearerr
文件结尾判断 feof
文件错误检测 ferror
得到错误提示字符串 perror
实用工具函数
本分类给出了一些函数无法按以上分类,但又是编程所必须要的。
头文件 stdlib.h
函数列表
函数类别 函数用途 详细说明
字符串转换函数 字符串转换为整数 atoi
字符串转换为长整数 atol
字符串转换为浮点数 strtod
字符串转换为长整数 strtol
字符串转换为无符号长整型 strtoul
伪随机序列产生函数 产生随机数 rand
设置随机函数的起动数值 srand
存储管理函数 分配存储器 calloc
释放存储器 free
存储器分配 malloc
重新分配存储器 realloc
环境通信 中止程序 abort
退出程序执行,并清除环境变量 atexit
退出程序执行 exit
读取环境参数 getenv
程序挂起,临时执行一个其他程序 system
搜索和排序工具 二分查找(数据必须已排序) bsearch
快速排序 qsort
整数运算函数 求绝对值 abs
div
得到除法运算底商和余数
求长整形底绝对值 labs
求长整形除法的商和余数 ldiv
多字节字符函数 得到多字节字符的字节数 mblen
得到多字节字符的字节数 mbtowc
多字节字符转换 wctomb
多字节字符的字符串操作 将多字节串转换为整数数组 mbstowcs
将多字节串转换为字符数组 mcstowbs
字符串处理
本分类的函数用于对字符串进行合并、比较等操作
头文件 string.h
函数列表
函数类别 函数用途 详细说明
字符串拷贝 块拷贝(目的和源存储区不可重叠) memcpy
块拷贝(目的和源存储区可重叠) memmove
串拷贝 strcpy
按长度的串拷贝 strncpy
字符串连接函数 串连接 strcat
按长度连接字符串 strncat
串比较函数 块比较 memcmp
字符串比较 strcmp
字符串比较(用于非英文字符) strcoll
按长度对字符串比较 strncmp
字符串转换 strxfrm
字符与字符串查找 字符查找 memchr
字符查找 strchr
字符串查找 strcspn
字符串查找 strpbrk
字符串查找 strspn
字符串查找 strstr
字符串分解 strtok
杂类函数 字符串设置 memset
错误字符串映射 strerror
求字符串长度 strlen
日期和时间函数
本类别给出时间和日期处理函数
头文件 time.h
函数列表
函数类别 函数用途 详细说明
时间操作函数 得到处理器时间 clock
得到时间差 difftime
设置时间 mktime
得到时间 time
时间转换函数 得到以ASCII码表示的时间 asctime
得到字符串表示的时间 ctime
得到指定格式的时间 strftime
函数库未来的发展方向
本部分用于说明各类别函数库在将来如何发展。
序号 库类别 头文件 详细说明
1 错误处理 errno.h
2 字符处理 ctype.h
3 地区化 local.h
4 数学函数 math.h
5 信号处理 signal.h
6 输入输出 stdio.h
7 实用工具程序 stdlib.h
8 字符串处理 string.h
34
⑼ 比赛如何用WBS形式描述出来
摘要