




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 1欢迎下载 辽宁工程技术大学 大型软件项目实训报告 教学单位 软件学院 专 业 软件工程 班 级 08 3 学生姓名 张兴堂 学 号 0820010329 指导教师 陈 虹 精品文档 2欢迎下载 一 实训目的 通过外出实训提高自己的实战能力 对软件编程项目有更深刻的理解 根据企 业对人才的具体需求 针对软件学院应届毕业生 开展以大型软件工程项目为目的 的实战训练 有效提升学生的项目实战能力和适应市场的能力 最终实现学生比较 理想的就业率和就业质量 二 实训时间和地点 1 实训时间 2011 年 11 月 1 月 2012 年 1 月 6 日 2 实训地点 北京达内 三 实训单位简介 达内 IT 培训集团是中国高端 IT 培训机构 致力于培养面向电信和金融领域的 Java C C Net 测试 嵌入式 PHP 等方面中高端软件人才 由美国国际数 据集团 IDG 集富亚洲 JAFCOASIA 和高盛集团投资 是国内首家获得国际风险投资 的 IT 培训机构 经过 8 年运营 达内 IT 培训集团实现了 95 的专业就业率 78 的口碑入学率 学员平均毕业薪资 3800 元 首月平均薪资 目前 达内 IT 培训团 已经发展成为集培训 咨询 开发 人才服务于一体的高新技术集团公司 公司下 设达内高端 IT 培训 达内软件人才服务中心 达内软件研发中心 达内 IT 培 训集团以中关村科技园区为依托 在中国软件业发达城市 北京 上海 广州 深圳 大连 南京 武汉 杭州 西安 苏州 成都 太原 20 大城市 建立了近 40 家培训中心 占地 2 万平米 年培训 1 万多名软件人才 已累计为 IBM 微软 摩托罗拉 华为 中软 用友 Yahoo 阿里巴巴 TOM 新浪 搜狐 百度 联想 神州数码 大唐电信 亚信等知名 IT 企业培养输送了 5 万多名中高级软件人才 目前达内全国拥 500 多名员工 年产值近 2 亿元 是中国最大的中高端软件人才培 训机构 由于达内 IT 培训集团优秀的教学效果和行业领先的经营模式赢得了 社会各界的广泛赞誉和好评 近年来达内荣获了各界权威机构的颁奖 达内成为业 界唯一的一家 2006 2007 2008 2009 连续 4 年入选德勤评选的 中国高科技高 成长 50 强公司 亚太地区高科技高成长 500 强公司 中关村管理委员会指定的 软件人才培养示范基地 被 计算机世界 评选的 就业服务杰出贡献奖 被 中国计算机报 评选的 最具影响力培训机构奖 被搜狐评为 中国十大教育 精品文档 3欢迎下载 集团 被腾讯评为 中国大学生心目中最具影响力的 IT 品牌 等等 四 实训内容 1 1 实训期间完成的学习任务 实训期间完成的学习任务 一 一 LinuxLinux 系统操作命令系统操作命令 首先 我们学习了最基础的系统操作指令 因为在学习过程中 c 和 c 代码的 编程和修改在 linux 系统下 所以我们集中精力花费了 3 天时间学习指令操作 命令 文档统计 wc 日期 date cal 关机 poweroff windows shutdown Reboot exit find grep find 目录列表 匹配标准 name size type atime 通配符 操作目录下有需要通配的内容的时候采使用通配符 1 列举 2 范围 将上一个命令的输出作为下一个命令的输入 cat etc passwd grep n root tee ls l tee a txt ln 硬连接 软连接 ln file02 file ln s file02 sfile users who who am i whoami 精品文档 4欢迎下载 系统进程信息 ps ps u 详细方式显示当前终端下的进程的信息 ps e 当前正在运行的所有进程 sleep 10 int i 1 while i 11 精品文档 6欢迎下载 printf d i 举例 猜数游戏 随机数 include rand 伪随机数 srand 设置随机数种子 include time 获取系统的时间 time 0 返回一个时间 1970 年 1 月 1 号 0 0 0 到现在 所经过的秒数 随机数 srand time 0 rand 产生一个随机数 无限循环 死循环 while 1 for do while 循环 do 语句 while 表达式 缓冲区 输入 scanf 数据类型 scanf n 将读取到的内容忽略掉 n 非 n 的字符 scanf c if scanf 0 精品文档 7欢迎下载 输出缓冲区 n 程序结束 满 4kb 人工刷新 fflush stdout stdin stderr 一维数组 数据类型相同的一组数据 结构体 数组的定义 数据类型 数组名 数组的长度 char int float 结构体 int a 5 下标 数组的初始化 int a 5 1 2 3 4 int a 5 0 指定初始化 int a 5 3 4 二维数组 数据类型 数组名 行 列 行下标 列下标 for for a i j 0 精品文档 8欢迎下载 一维 for a i 0 二维数组初始化 int a 2 3 函数的返回值 函数返回值的类型必须和 return 返回值的类型一致 如果函数没有返回值 指定 void C 语言中 返回值类型可以省略 默认 int 参数 形式参数 多个形式参数之间使用逗号分割 每个形式参数必须有类型的说明 float x y z float aver float x y 错误 C 语言中没有 bool 类型 include bool true false 本质就是一个整数 include double sqrt double gcc xxx c lm 函数调用 函数名 实际参数 形式参数和实际参数 参数名可以不一样 函数声明 C 语言规定 函数在使用之前必须声明 精品文档 9欢迎下载 声明 函数头 bool prime int 可以不写形式参数的名字 隐式声明 如果函数在使用之前并没有进行声明 编译器会自动创建 一个隐式声明 返回值类型为 int 实际参数 形式参数 值传递 拷贝一份数组赋值给形式参数 float aver float x float y t aver i j i x j y aver 返回值 t 注意 实际参数和形式参数名字一样 存储空间不一样 高内聚 低耦合 数组可以作为函数的参数 函数调用传递的是数组的名字 数组第一个元素的地址 数组的长度 sizeof 数组名 sizeof 元素 不能实现 数组传递的是地址 sizeof 地址 4 形式参数为数组的时候 我们应该设计两个参数 一个数组 另外一个 数字的长度 int function int a int length const 使用 const 修饰的变量 只读变量 如果形式参数传递的是地址 不希望在被调函数中修改地址上的 内容 可以使用 const 来修饰形参 精品文档 10欢迎下载 void f const int a int length return main 函数中使用 整个程序结束 递归 如果一个函数调用了它本身 递归函数 指针的初级 指针 就是内存的地址 指针变量就是存储地址的变量 定义一个指针变量 数据类型 变量名 指针变量所保存的地址 内存上的数据类型 告诉编译器后面的变量是一个指针变量 指针初始化 int q NULL NULL 0 0 0 空指针 不指向任何地方 指针的赋值 q 运算符 取对应地址上的内容 const 与指针 1 const int q q 指向的数据数值不能改变 q 本身可以改变 2 int const q q 本身不可以改变 q 指向的数值是可以改变的 数组名 3 const int const q 字符串 string 类型 三种表现形式 1 字面值常量 abcde 不能作为变量 可以赋值给变量 程序段 代码段 后面 0 结束 精品文档 11欢迎下载 数值相同的字面值常量在代码段只有一份 2 char arr 20 表示字符串类型的变量 数组 后面一定加上 0 printf s arr arr 是数组的名字 一直打印直到遇到 0 3 int a 10 int q char str 20 char q 指针方式存储字符串常量的地址 考虑缓冲区的大小 可能会导致缓冲区溢出 fgets char s size t size FILE stream s 指向缓冲区的指针 size 缓冲区的大小 stream 文件指针 stdin 注意 fgets 会在整个字符串后面增加 n 操作字符串的库函数 include strcpy char strcpy char dest char src 作用 将 src 指向的字符串拷贝呆 dest 指向的缓冲区中 返回值 dest 数值 地址 使用 char str1 20 char str2 20 strcpy str1 str2 strcpy str1 hello 注意 strcpy 不考虑第一个参数指向缓冲区大小 char strncpy char dest const char src size t size strcat 精品文档 12欢迎下载 char strcat char dest char src 作用 将 src 指向的字符串链接到 dest 指向的字符串结尾的地方 注意 不会考虑 dest 指向的缓冲区的大小 char strncat char dest char src size t size strlen sizeof char name 20 hello sizeof name 20 数组所占用的内存 int strlen char s strlen name 5 测量字符串的长度 不包含结尾的 n strcmp 对比两个字符串 int strcmp char s1 char s2 abc acb 返回值有三种可能 1 0 相等 2 正数 s1 s2 3 负数 s1printf i j d i j PRINT x y printf x y d x y 精品文档 14欢迎下载 define PRINT n printf n 运算符 可以将宏中的参数转换为字面值常量 限定 运算符只能出现在带参数的宏替换列表中 字符串 abc de abcde define PRINT n printf n d n n i j d n i j d n 运算符 作用 将两个标识符粘合在一起组成一个新的标识符 需求 int float int max int 整数 float max float 浮点数 define MAX type type max type MAX int int max int MAX float float max float 需要很多标识符名字 define MK ID n i n MK ID 1 i 1 MK ID 32 i 32 条件编译 就是根据预处理的结果来包含或者排除某一段代码 if endif 预处理器判断 if 后面的宏目前的数值 0 if 和 endif 之间的代码排除 非零 保留 defined if defined DEBUG DEBUG 是不是已经定义为一个宏 ifdef if defined debug 调试 n 多条调试语句 printf 精品文档 15欢迎下载 release 发布 define DEBUG ifdef DEBUG 调试语句 endif ifndef if not defined include test h include test h makefile 由很多条规则组成的 目标文件 依赖文件 生成目标文件所执行的指令 选择一条规则来执行 make 目标文件 如果想要使用定义在其他文件中的全局变量 请使用 extern 声明 extern int user id 自定义头文件 系统提供的头文件 stdio h stdlib h stdbool h string h unistd h math h time h stdarg h 等等 多文件程序中 共享全局变量 宏定义共享 函数声明共享 类型定义共享需要使用头文件 可以使用条件编译防止重复引用 ifndef SYSTEM H define SYSTEM H include include 精品文档 16欢迎下载 include s1 h include s2 h define PI 3 14 define MAX 2000 extern int i extern int j 函数的生命 int max min int int void show 类型定义 struct s endif static 静态局部变量 静态全局变量 static int user id 15 即使使用 extern int user id static 修饰函数 这个函数只能在本文件中使用 结构体 数 组 相同数据类型的数据的集合 结构体 不同数据类型的数据的集合 结构体 定义或者使用一个结构体变量之前 先进行类型定义 结构体变量的定义 struct employee em 初始化 struct employee em 101 guo M 20 5000 精品文档 17欢迎下载 2 2 实训期间完成的实践项目实训期间完成的实践项目 我在达内老师的带领下 学习了 c 和 c 基础之后 做了一个贪吃蛇的小游戏 虽然游戏比较简略 但是基本功能已经实现 1 1 功能介绍功能介绍 产生一个固定大小没有辩解的游戏区域 蛇从区域的中心开始 由玩家通过键 盘控制蛇的运动方向 用蛇头去吃随机分布在游戏区域内的食物 蛇的运动限制在游戏区域内 游戏区域没有辩解 所以蛇在区域内做循环运动 蛇的运动方向为直线运动 只走横和竖的方向 不走斜线 蛇的运动速度由游戏的难度来控制 难度越高速度越快 游戏难度分为 9 个等 级 蛇的身体长度从 1 开始每吃掉一份食物就增加一个长度 食物的出现按照随机 分布原则 蛇吃掉一份后随机在游戏区域内放一份新的食物 游戏的结束条件为 在控制蛇的过程中蛇头碰到蛇的身体的任何部位 设计者应该首先考虑实现一个可以游动的蛇 通过寻找规律 对实际对象进行 抽象概括建立对象模型 首先从物理的角度来分析蛇得运动规律 它是蠕动的 像 水一样流动 他有个特性就是身体的每一个点都经过他头部所在的点 他每一个时 刻骨节所要运动的目的地是他前一个骨节所在的位置 所以我们事先必须了解并掌 握一些基本的画图函数 并学会调用和运行 2 2 用流程图示出程序的主要控制流程和处理流程用流程图示出程序的主要控制流程和处理流程 精品文档 18欢迎下载 游戏载入内存并初 始化界面 判断游戏是 否开始 单击按钮 开始游戏 没有开始游戏 就返回初始界面 贪吃蛇开始移动 初始方向向左 根据键盘消息判断蛇头的运动方向 根据蛇头的坐标和食物的坐标判断蛇是 否已经得到食物 如果已经得到食物 则蛇的身 体加长 积分器加一 如果没有得到食物 则蛇的身 体不变 积分器不变 根据蛇头的坐标 蛇身体的坐标和墙壁 的坐标判断蛇是否已经撞墙或者自己咬 到自己 如果没有撞墙并且没有自己 咬到自己则程序继续进行 如果已经撞墙或者自己咬 到自己则程序终止 贪吃蛇程序结束 积分器开始计分 精品文档 19欢迎下载 下面是项目代码 include include include include include define NUM 60 struct direct 用来表示方向的 int cx int cy typedef struct node 链表的结点 int cx int cy struct node back struct node next node void initGame 初始化游戏 int setTicker int 设置计时器 void show 显示整个画面 void showInformation 显示游戏信息 前两行 void showSnake 显示蛇的身体 void getOrder 从键盘中获取命令 void over int i 完成游戏结束后的提示信息 void creatLink 带头尾结点 双向链表以及它的操 作 精品文档 20欢迎下载 void insertNode int x int y void deleteNode void deleteLink int ch 输入的命令 int hour minute second 时分秒 int length tTime level 蛇的 长度 计时器 游戏 等级 struct direct dir food 蛇的前进方向 食物的位置 node head tail 链表的头尾结点 int main initscr initGame signal SIGALRM show getOrder endwin return 0 void initGame cbreak 把终端的 CBREAK 模式打开 noecho 关闭回 curs set 0 把光标置为不可见 keypad stdscr true 使用用户终端的键盘上的小键盘 srand time 0 设置随机数种子 初始化各项数据 hour minute second tTime 0 length 1 dir cx 1 精品文档 21欢迎下载 dir cy 0 ch A food cx rand COLS food cy rand LINES 2 2 creatLink setTicker 20 设置计时器 这个函数是书本上的例子 有改动 int setTicker int n msecs struct itimerval new timeset long n sec n usecs n sec n msecs 1000 n usecs n msecs 1000 1000L new timeset it interval tv sec n sec new timeset it interval tv usec n usecs n msecs 1 n sec n msecs 1000 n usecs n msecs 1000 1000L new timeset it value tv sec n sec new timeset it value tv usec n usecs return setitimer ITIMER REAL void showInformation tTime if tTime 1000000 tTime 0 if 1 tTime 50 精品文档 22欢迎下载 return move 0 3 显示时间 printw time d d d c hour minute second second if second NUM second 0 minute sf minute NUM minute 0 hour 显示长度 等级 move 1 0 int i for i 0 inext cx return 如果蛇头砬到自己的身体 则游戏结 if mvinch head next cy dir cy head next cx dir cx over 2 return insertNode head next cx dir cx head next cy dir cy 蛇吃了一个 食物 if head next cx food cx 精品文档 24欢迎下载 length 恭喜你 通关 if length 50 over 3 return 重新设置食物的位置 food cx rand COLS food cy rand LINES 2 2 if lenChange move tail back cy tail back cx printw deleteNode move head next cy head next cx printw void show signal SIGALRM show 设置中断信号 showInformation showSnake refresh 刷新真实屏幕 void getOrder 精品文档 25欢迎下载 建立一个死循环 来读取来自键盘的命令 while 1 ch getch if KEY LEFT ch dir cx 1 dir cy 0 else if KEY UP ch dir cx 0 dir cy 1 else if KEY RIGHT ch dir cx 1 dir cy 0 else if KEY DOWN ch dir cx 0 dir cy 1 setTicker 20 void over int i 精品文档 26欢迎下载 显示结束原因 move 0 0 int j for j 0 jcx 5 temp cy 10 head back tail next NULL head next temp temp next tail tail back temp temp back head 在链表的头部 非头结点 插入一个结点 void insertNode int x int y 精品文档 27欢迎下载 node temp node malloc sizeof node temp cx x temp cy y temp next head next head next temp temp back head temp next back temp 删除链表的 非尾结点的 最后一个结点 void del
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 重庆育儿知识培训中心课件
- 重庆应急急救知识培训课件
- 重庆小学生安全知识培训课件
- 常见危险作业(特殊作业)安全管理精要
- 《英语教学理论与实践》课程介绍与教学大纲
- 醉酒后急救知识培训课件
- 外教君真人直播外语学习平台商业计划书
- 企业时间规划管理培训
- 酒店圣诞环境布置图片集锦
- 学校XXXX年教师教学常规检查办法
- 全校教学质量提升会上校长讲话:把每一节课教好是我们最实在的荣耀
- 市场监督局知识培训课件
- 仓储物流部门绩效考核标准与激励方案
- 机关办公室工作课件
- 医院信息化系统管理办法
- 医院新进人员岗前行风培训
- 2025年注安实务《化工安全》真题及参考答案
- 人生成长课件
- 选品与采购(AI+微课版) 课件 项目一 电子商务商品认知
- 2025年广西专业技术人员继续教育公需科目试题(附答案)
- 2025至2030全球及中国衍射光学器件行业项目调研及市场前景预测评估报告
评论
0/150
提交评论