武汉大学 第一次上机 开发环境与C++基础-2015.doc
8页实验一 开发环境与 C++基础一. 实验目的1. 熟悉 VC++开发环境,能够使用开发环境提供的工具创建项目,编辑源程序,编译、运行程序;2. 掌握利用 VC++ 调试工具对程序进行调试的步骤、方法,熟悉常见的编译错误及其改正方法;3. 熟悉 C++程序的开发流程;4. 掌握 C++语法组成要素及其定义;5. 培养良好的编程习惯,理解结构化程序设计思想的基本内涵;6. 掌握 C++程序中变量的作用域和生存期的涵义和作用;7. 掌握 C++自定义数据类型的定义和应用;8. 掌握函数的创建、调用方式和函数参数的传递机制;9. 熟练掌握指针、数据、字符、字符串的使用;10. 掌握常用的排序和查询算法的实现11. 了解编译预处理指令二. 知识要点1. C++的基本数据类型;2. C++自定义数据类型;3. 标准 C++关键字的作用、标识符定义、运算符的优先级别及结合方向;4. 标准 C++程序的流程控制方式; 5. 变量的作用域、生存期和存储类型;6. 函数的定义、声明、调用方法和函数的存储类型;7. 函数参数传递的三种方式,传值、传地址和引用传递;8. 编译预处理指令的应用三. 实验内容㈠Visual C++ 集成开发环境应用实习⒈ 利用应用程序向导建立一个 MFC 的单文档应用程序,命名为 Mysdi,并使用资源编辑器编辑图标、工具栏、快捷键、串表和版本信息。
⒉ 利用 MFC AppWizard 建立一个名为 mydlg 的对话框应用程序,并修改程序的大小图标、修改版本号等⒊ 利用 Visual C++创建一个 Win32 Application 应用程序,程序运行后在程序窗口显示“Hello World”㈡C++语言基础实习 ⒈ 从键盘输入一个字符序列,编程统计其中的数字个数和英文字母个数,输入的字符序列以“#”作为结束符2. 利用 Visual C++编写一个 Win32 Console Application 控制台程序,程序运行后,当用户输入一个 6 位数据时,程序可以将其分离为单独的数字,每两个数字间用 3 个空格分开应用求模运算符和整型除法)⒊ 编程求 π 值,使用格里高利公式:π/4=1-1/3+1/5-1/7+…,直到最后一项的绝对值小于 10-6 为止⒋ 编写一个程序,确定员工的工资总额每位员工在一周内工作 40 小时以内,是按正规工作时间付酬,超出 40 小时,是正规工作时间报酬的 1.5 倍假定已经有了公司员工的花名册、每位员工在上个星期的工作时间以及每位员工的小时报酬在程序中应将每位员工的信息输入,计算显示员工的应得工资。
练习使用嵌套的 if/else 语句和 switch 语句)⒌ 编写一个程序,实现以下功能:⑴首先编写以下函数声明的函数:void swap(float* px,float*py),该函数用于交换两个实型变量的值⑵编写一个 swap()内联函数,并使用引用传递参数实现交换两个整型变量的值⑶编写一个函数 swapstruct(),实现交换两个结构变量的功能, 要 求 使 用 引 用 传 递 参 数 ⑷ 编写一个主函数验证上述函数的功能6. 使用结构变量表示每个学生的信息:姓名、学号、三门课的成绩和平均成绩编写一个冒泡排序函数,根据学生的平均成绩排序从键盘上输入 n 个学生的数据(采用动态内存分配方法) ,在主函数中调用排序函数输出每个学生的姓名和三门课的成绩以及平均成绩7. 设计开发一个学生成绩管理系统要求具有以下功能:a) 运行程序后显示以下信息:1、Display all information2、Add a student3、Delete a student4、Quitb) 按 1 后进行简单数据处理并输出所有信息,输出的信息包括: 序号、学生姓名、学号、三门课的成绩、该学生的平均成绩、总成绩;并在最后计算每一门课程的平均成绩。
c) 按 2 选择增加学生信息,学生数量最多为 50,超过之后无法输入输入信息包括学生姓名、学号、三门课程成绩(在程序中可以事先初始化几个学生信息) d) 按 3 删除学生信息,根据输入序号删除对应的学生信息,序号从 0 依次往后排,当删除中间的学生信息后,将该序号后的学生信息依次往前移e) 每次处理完之后继续显示之前的信息,可以再次按键进行操作f) 按 4 退出程序四. 实验要求1. 新建 MFC Appwizard 项目,完成实验内容㈠2. 新建 Win32 Console Application 项目完成实验内容㈡,一个题目对应一个项目3. 对“C++语言基础实习”的程序进行单步运行,查看运行过程中变量值的变化情况;在程序中设置断点,将程序运行到断点处,观察所有变量的值与预期值是否一致4. 代码书写规范具体要求:①每一行代码只写一条语句;②每一行代码有缩进;③适当加注释;④变量名要见名知义五. 附件一C++常 见 错 误英文 参考译文Ambiguous operators need parentheses 不明确的运算需要用括号括起Ambiguous symbol ''xxx'' 不明确的符号Argument list syntax error 参数表语法错误Array bounds missing 丢失数组界限符Array size toolarge 数组尺寸太大Bad character in paramenters 参数中有不适当的字符Bad file name format in include directive 包含命令中文件名格式不正确Bad ifdef directive synatax 编译预处理 ifdef 有语法错Bad undef directive syntax 编译预处理 undef 有语法错Bit field too large 位字段太长Call of non-function 调用未定义的函数Call to function with no prototype 调用函数时没有函数的说明Cannot modify a const object 不允许修改常量对象Case outside of switch 漏掉了 case 语句Case syntax error Case 语法错误Code has no effect 代码不可述不可能执行到Compound statement missing{ 分程序漏掉"{"Conflicting type modifiers 不明确的类型说明符Constant expression required 要求常量表达式Constant out of range in comparison 在比较中常量超出范围Conversion may lose significant digits 转换时会丢失意义的数字Conversion of near pointer not allowed 不允许转换近指针Could not find file ''xxx'' 找不到 XXX 文件Declaration missing ; 说明缺少";" Declaration syntax error 说明中出现语法错误Default outside of switch Default 出现在 switch 语句之外Define directive needs an identifier 定义编译预处理需要标识符Division by zero 用零作除数Do statement must have while Do-while 语句中缺少 while 部分Enum syntax error 枚举类型语法错误Enumeration constant syntax error 枚举常数语法错误Error directive :xxx 错误的编译预处理命令Error writing output file 写输出文件错误Expression syntax error 表达式语法错误Extra parameter in call 调用时出现多余错误File name too long 文件名太长Function call missing 函数调用缺少右括号Fuction definition out of place 函数定义位置错误Fuction should return a value 函数必需返回一个值Goto statement missing label Goto 语句没有标号Hexadecimal or octal constant too large 16 进制或 8 进制常数太大Illegal character ''x'' 非法字符 xIllegal initialization 非法的初始化Illegal octal digit 非法的 8 进制数字 Illegal pointer subtraction 非法的指针相减Illegal structure operation 非法的结构体操作Illegal use of floating point 非法的浮点运算Illegal use of pointer 指针使用非法Improper use of a typedefsymbol 类型定义符号使用不恰当In-line assembly not allowed 不允许使用行间汇编Incompatible storage class 存储类别不相容Incompatible type conversion 不相容的类型转换Incorrect number format 错误的数据格式Incorrect use of default Default 使用不当Invalid indirection 无效的间接运算Invalid pointer addition 指针相加无效Irreducible expression tree 无法执行的表达式运算Lvalue required 需要逻辑值 0 或非 0 值Macro argument syntax error 宏参数语法错误Macro expansion too long 宏的扩展以后太长Mismatched number of parameters in definition 定义中参数个数不匹配Misplaced break 此处不应出现 break 语句Misplaced continue 此处不应出现 continue 语句Misplaced decimal point 此处不应出现小数点Misplaced elif directive 不应编译预处理 elifMisplaced else 此处不应出现 else Misplaced else directive 此处不应出现编译预处理 elseMisplaced endif directive 此处不应出现编译预处理 endifMust be addressable 必须是可以编址的Must take address of memory location 必须存储定位的地址No declaration for function ''xxx'' 没有函数 xxx 的说明No stack 缺少堆栈No type information/没有类型信息 缺少堆栈Non-portable pointer assignment 不可移动的指针(地址常数)赋值Non-portable pointer comparison 不可移动的指针(地址常数)比较Non-portable pointer conversion 不可移动的指针(地址常数)转换Not a valid expression format type 不合法的表达式格式Not an allowed type 不允许使用的类型Numeric constant too large 数值常太大Out of memory 内存。





