第七章实战7:文件操作 自学内容:拓展项目(见 7.1项目1:一个程序的运行次数不能保存在内存中,一旦程序 教材) 运行结束后,保存在内存中的数据就会丢失。为了能够把 课堂作业: 每次程序运行的次数都记载下来,可以采用磁盘文件或数 据库来保存数据,本项目就是通过磁盘文件的形式把程序 1.汇报网上在线学习情 的运行次数保存下来。 况。 要求: 2.完成基本项目实现。 (1)程序运行时,打开磁盘的数据文件,读取已运行次数 3.实验交流。 (2)在内存中计算本次程序的运行次数。 课外作业: (3)显示该程序当前运行次数。 (4)程序结束前,保存运行次数到磁盘数据文件中。 1.完成本章小结 7.2项目2:有学生成绩登记表下表所示。 2.完成拓展项目的设计 和实现。 成绩 平均 姓 性 年 学号 名 别 龄 C语 英语 高 成绩 数 20121 刘 85 86 87.7 04096 子 多 19 92 01 栋 20121 童 66 82 78.7 04096 梦 女 19 88 02 嘉 20121 杨 93 68 79.7 04096 欣 女 18 78 03 悦 20121 王 77 75 73 04096 子 男 19 67 04 濠 … 其中: 学号是长度为12的数字字符组成;姓名最大长度10个字 符;性别最多允许4个字符;年龄为整数;成绩包括三项 (C语言、英语、数学),均为整数,总成绩允许有一位小 数。 要求: (1)学生信息可长期保存在磁盘文件studentInfo.dat中 (2)学生学藉管理系统可完成对学生成绩信息的增、删、 改、查操作 (3)“平均成绩”项应通过计算获得,不从键盘输入 18
18 第七章 实战 7:文件操作 7.1 项目 1:一个程序的运行次数不能保存在内存中,一旦程序 运行结束后,保存在内存中的数据就会丢失。为了能够把 每次程序运行的次数都记载下来,可以采用磁盘文件或数 据库来保存数据,本项目就是通过磁盘文件的形式把程序 的运行次数保存下来。 要求: (1)程序运行时,打开磁盘的数据文件,读取已运行次数。 (2)在内存中计算本次程序的运行次数。 (3)显示该程序当前运行次数。 (4)程序结束前,保存运行次数到磁盘数据文件中。 7.2 项目 2:有学生成绩登记表下表所示。 其中: 学号是长度为 12 的数字字符组成;姓名最大长度 10 个字 符;性别最多允许 4 个字符;年龄为整数;成绩包括三项 (C 语言、英语、数学),均为整数,总成绩允许有一位小 数。 要求: (1)学生信息可长期保存在磁盘文件 studentInfo.dat 中 (2)学生学藉管理系统可完成对学生成绩信息的增、删、 改、查操作 (3)“平均成绩”项应通过计算获得,不从键盘输入 学号 姓 名 性 别 年 龄 成绩 平均 C 语 成绩 言 英语 高 数 20121 04096 01 刘 子 栋 男 19 92 85 86 87.7 20121 04096 02 童 雨 嘉 女 19 88 66 82 78.7 20121 04096 03 杨 欣 悦 女 18 78 93 68 79.7 20121 04096 04 王 子 濠 男 19 67 77 75 73 …… … … … … … … …… …… … … …… 自学内容:拓展项目(见 教材) 课堂作业: 1. 汇报网上在线学习情 况。 2. 完成基本项目实现。 3. 实验交流。 课外作业: 1. 完成本章小结 2. 完成拓展项目的设计 和实现
(4)第一次使用该系统时,可从键盘输入初始数据,并建 立初始学生信息磁盘文件:studentInfo.dat (5)学生信息在内存中使用单链表进行存储和管理,如果 增加、删除或修改学生信息后,可根据需要随时保存到文 件中 (6)退出系统前,要求把当前系统内的数据保存到文件中 知识点: 1.掌握单链表的建立、查询、修改及删除结点操作; 2.进一步掌握文件的打开、读写和关闭操作; 3.掌握通过指针动态分配和释放内存空间的操作; 4.进一步掌握指针和结构体处理复杂的数据结构。 第八章实战8:数据库操作 自学内容:拓展项目(见 8.1项目1:使用MySQL数据库保存程序运行次数,要求: 教材) (1)程序运行后产生并显示一个整数,该整数是前一次运 课堂作业: 行产生的整数+1。 (2)程序产生的整数永久保存在MySQL数据库的表中。 1.汇报网上在线学习情 8.2项目2:使用MySQL管理学生信息,要求: 况。 (1)将学生及成绩信息存放在MySQL数据库中,不限学 2.完成基本项目实现。 生人数。本程序通过主菜单访问数据库中的学生成绩。可 3.实验交流。 以对学生成绩进行4种基本操作:增加,修改,删除,查 课外作业: 询。 (2)4种操作无先后之分,可以任意进行。 1.完成本章小结 (3)“平均成绩”项应通过计算获得,不从键盘输入。 2.完成拓展项目的设计 知识点: 和实现。 1.掌握调用MySQL数据库的访问接口; 2.了解一些MySQL相关结构体和指针的应用方式; 3.掌握一些MySQL相关函数的调用方式; 4.了解MySQL的日常管理方法和知识; 5.了解在数据库中创建一个表,对表进行数据的增加,修改; 6.了解SQL语句语法。 第九章实战9:图形操作*(选学) 自学内容:拓展项目(见 91项目1:贪吃蛇游戏。在一个密闭的围墙空间内有一条蛇, 教材) 和随机出现的一个食物,通过按WSAD键控制蛇向上下左 课堂作业: 右四个方向移动。如果蛇头碰到食物,表示蛇吃掉食物, 蛇的身体会增长一节;接着又出现新的食物,等待被蛇吃 1.汇报网上在线学习情 掉。游戏进行的过程中,蛇身会变的越来越长。如果蛇在 况。 移动过程中,蛇头碰到自己的身体咬到自己,或碰到围墙, 2.完成基本项目实现。 则游戏结束。 3.实验交流。 要求: 课外作业: (1)利用EGE库对图形进行操作。 (2)利用C语言位运算提高游戏运行性能。 1.完成本章小结 (3)实现蛇的表示:通过画矩形框,并利用一定的颜色进 2.完成拓展项目的设计 行填充,表示蛇的一节身体。游戏初始,蛇只有蛇头,当 和实现。 19
19 (4)第一次使用该系统时,可从键盘输入初始数据,并建 立初始学生信息磁盘文件:studentInfo.dat (5)学生信息在内存中使用单链表进行存储和管理,如果 增加、删除或修改学生信息后,可根据需要随时保存到文 件中 (6)退出系统前,要求把当前系统内的数据保存到文件中 知识点: 1. 掌握单链表的建立、查询、修改及删除结点操作; 2. 进一步掌握文件的打开、读写和关闭操作; 3. 掌握通过指针动态分配和释放内存空间的操作; 4. 进一步掌握指针和结构体处理复杂的数据结构。 第八章 实战 8:数据库操作 8.1 项目 1:使用 MySQL 数据库保存程序运行次数,要求: (1)程序运行后产生并显示一个整数,该整数是前一次运 行产生的整数+1。 (2)程序产生的整数永久保存在 MySQL 数据库的表中。 8.2 项目 2:使用 MySQL 管理学生信息,要求: (1)将学生及成绩信息存放在 MySQL 数据库中,不限学 生人数。本程序通过主菜单访问数据库中的学生成绩。可 以对学生成绩进行 4 种基本操作:增加,修改,删除,查 询。 (2)4 种操作无先后之分,可以任意进行。 (3)“平均成绩”项应通过计算获得,不从键盘输入。 知识点: 1. 掌握调用 MySQL 数据库的访问接口; 2. 了解一些 MySQL 相关结构体和指针的应用方式; 3. 掌握一些 MySQL 相关函数的调用方式; 4. 了解 MySQL 的日常管理方法和知识; 5. 了解在数据库中创建一个表,对表进行数据的增加,修改; 6. 了解 SQL 语句语法。 自学内容:拓展项目(见 教材) 课堂作业: 1. 汇报网上在线学习情 况。 2. 完成基本项目实现。 3. 实验交流。 课外作业: 1. 完成本章小结 2. 完成拓展项目的设计 和实现。 第九章 实战 9:图形操作*(选学) 9.1 项目 1:贪吃蛇游戏。在一个密闭的围墙空间内有一条蛇, 和随机出现的一个食物,通过按 WSAD 键控制蛇向上下左 右四个方向移动。如果蛇头碰到食物,表示蛇吃掉食物, 蛇的身体会增长一节;接着又出现新的食物,等待被蛇吃 掉。游戏进行的过程中,蛇身会变的越来越长。如果蛇在 移动过程中,蛇头碰到自己的身体咬到自己,或碰到围墙, 则游戏结束。 要求: (1)利用 EGE 库对图形进行操作。 (2)利用 C 语言位运算提高游戏运行性能。 (3)实现蛇的表示:通过画矩形框,并利用一定的颜色进 行填充,表示蛇的一节身体。游戏初始,蛇只有蛇头,当 自学内容:拓展项目(见 教材) 课堂作业: 1. 汇报网上在线学习情 况。 2. 完成基本项目实现。 3. 实验交流。 课外作业: 1. 完成本章小结 2. 完成拓展项目的设计 和实现
吃掉一个食物后,蛇身增加一节。 (4)实现蛇的移动:必须沿蛇头方向在密闭围墙内上下左 右移动;如果游戏者无按键动作,蛇自行沿当前方向前移; 当游戏者按了WSAD键后,需要重新确定蛇的位置,然后 移动。 (5)实现根据坐标绘制蛇、食物;食物要求在密闭围墙中 随机生成。 (6)处理上下左右的方向按键。 9.2项目2:俄罗斯方块。 要求: (1)实现各种方块的生产,包括形状和颜色等信息; (2)实现各个方块的上下左右移动和旋转的功能; (3)实现消行的功能; (4)实现开始,结束、重玩等功能。 知识点: 1.图形函数及调用 附注:实验教学安排见《C语言课程设计》实验教学大纲 五、建议学时分配表 学时分配 序号 课程内容 对应教学目标 讲授 实验 习题课 小计 第一章 实战1:语法及条 目标1、目标2、 0 4 4 件结构应用 目标3 第二章 实战2:递归 0 目标1、目标2、 4 4 目标3 3 第三章 实战3:大型C项 0 4 4 目标1、目标2、 目的实现 目标3 4 第四章实战4:数组 0 4 4 目标1、目标2、 目标3 5 第五章实战5:结构体 0 4 目标1、目标2、 目标3 6 第六章 实战6:指针 0 4 目标1、目标2、 目标3 7 第七章实战7:文件操作 0 4 目标1、目标2、 目标3 20
20 吃掉一个食物后,蛇身增加一节。 (4)实现蛇的移动:必须沿蛇头方向在密闭围墙内上下左 右移动;如果游戏者无按键动作,蛇自行沿当前方向前移; 当游戏者按了 WSAD 键后,需要重新确定蛇的位置,然后 移动。 (5)实现根据坐标绘制蛇、食物;食物要求在密闭围墙中 随机生成。 (6)处理上下左右的方向按键。 9.2 项目 2:俄罗斯方块。 要求: (1) 实现各种方块的生产,包括形状和颜色等信息; (2) 实现各个方块的上下左右移动和旋转的功能; (3) 实现消行的功能; (4) 实现开始,结束、重玩等功能。 知识点: 1. 图形函数及调用 附注:实验教学安排见《C 语言课程设计》实验教学大纲 五、建议学时分配表 序号 课程内容 学 时 分 配 对应教学目标 讲 授 实 验 习题课 小 计 1 第一章 实战 1:语法及条 件结构应用 0 4 4 目标 1、目标 2、 目标 3 2 第二章 实战 2:递归 0 4 4 目标 1、目标 2、 目标 3 3 第三章 实战 3:大型 C 项 目的实现 0 4 4 目标 1、目标 2、 目标 3 4 第四章 实战 4:数组 0 4 4 目标 1、目标 2、 目标 3 5 第五章 实战 5:结构体 0 4 4 目标 1、目标 2、 目标 3 6 第六章 实战 6:指针 0 4 4 目标 1、目标 2、 目标 3 7 第七章 实战 7:文件操作 0 4 4 目标 1、目标 2、 目标 3
8 第八章实战8:数据库操 0 目标1、目标2、 4 作 目标3 9 第九章实战9:图形操作* 0 0 目标1、目标2、 (选学) 目标3 合计 0 32 32 六、教学方法(本课程的主要教学方法) 本课程主要采用翻转课堂、机房教学、案例导向、项目驱动等教学方法,启发学生对学 科知识的把握理解和实际操作能力。通过项目开发和综合案例分析,把本课程理论的学习融 入对活动实践的研究和认识之中,切实提高分析问题、解决问题的能力。具体内容包括: 1.翻转课堂(网络在线学习) 2.上机实践 3.项目讨论 4.项目交流、汇报 5.项目分组完成 七、课程考核内容及方式 (考核方式、重点考核内容、各部分成绩占比、预期目标等) 1.考核方式考查(考查/考试) 2考核形式采用无纸化考核方式。平时考核包括:小组课堂汇报及展示,平时纪律(出勤、 上机)及其它加分项或减分项;实验考核包括:编程情况(基本项目+扩展项目+拓展项目), 拓展项目设计文档;期末考核包括:综合项目的设计、编程、答辩。 3.成绩评定: (1)翻转课堂模式 平时考核成绩:占课程总成绩的20%;(其中考勤占10%,作业占5%,平时测验 5%) 期末考核成绩:占课程总成绩的40%: 课内实验成绩:占课程总成绩的40%: (2)非翻转课堂模式 平时考核成绩:占课程总成绩的15%;(其中考勤占10%,作业占3%,平时测验 2%) 期末考核成绩:占课程总成绩的25%: 课内实验成绩:占课程总成绩的60%; 21
21 8 第八章 实战 8:数据库操 作 0 4 4 目标 1、目标 2、 目标 3 9 第九章 实战 9:图形操作* (选学) 0 0 0 目标 1、目标 2、 目标 3 合 计 0 32 32 六、教学方法(本课程的主要教学方法) 本课程主要采用翻转课堂、机房教学、案例导向、项目驱动等教学方法,启发学生对学 科知识的把握理解和实际操作能力。通过项目开发和综合案例分析,把本课程理论的学习融 入对活动实践的研究和认识之中,切实提高分析问题、解决问题的能力。具体内容包括: 1. 翻转课堂(网络在线学习) 2. 上机实践 3. 项目讨论 4. 项目交流、汇报 5. 项目分组完成 七、课程考核内容及方式 (考核方式、重点考核内容、各部分成绩占比、预期目标等) 1.考核方式 考查(考查/考试) 2.考核形式 采用无纸化考核方式。平时考核包括:小组课堂汇报及展示,平时纪律(出勤、 上机)及其它加分项或减分项;实验考核包括:编程情况(基本项目+扩展项目+拓展项目), 拓展项目设计文档;期末考核包括:综合项目的设计、编程、答辩。 3.成绩评定: (1)翻转课堂模式 平时考核成绩:占课程总成绩的 20%;(其中考勤占 10%,作业占 5%,平时测验 5%) 期末考核成绩:占课程总成绩的 40%; 课内实验成绩:占课程总成绩的 40%; (2)非翻转课堂模式 平时考核成绩:占课程总成绩的 15%;(其中考勤占 10%,作业占 3%,平时测验 2%) 期末考核成绩:占课程总成绩的 25%; 课内实验成绩:占课程总成绩的 60%;
八、推荐教材和教学参考书 教材:《C语言项目综合实战.》,叶安胜,鄢涛编著,科学出版社,2015年第1版。 参考书:《C语言项目实训教程》,侯小毛等编著,人民邮电出版社,2012年第1版。 参考书:《C语言程序设计基础教程》,叶安胜等编著,科学出版社,2011年第1版。 参考书:《C语言程序设计上机辅导与习题》,叶安胜编著,科学出版社,2011年第1版。 参考书:《C程序设计》,潭浩强编著,清华大学出版社,2007年第3版。 撰写人:刘永红、鄢涛 审核人: 学院分管领导签字(盖章): 年月日 22
22 八、推荐教材和教学参考书 教 材:《C 语言项目综合实战.》,叶安胜, 鄢涛编著,科学出版社,2015 年第 1 版。 参考书:《C 语言项目实训教程》,侯小毛等编著,人民邮电出版社,2012 年第 1 版。 参考书:《C 语言程序设计基础教程》,叶安胜等编著,科学出版社,2011 年第 1 版。 参考书:《C 语言程序设计上机辅导与习题》,叶安胜编著,科学出版社,2011 年第 1 版。 参考书:《C 程序设计》,谭浩强编著,清华大学出版社,2007 年第 3 版。 撰写人:刘永红、鄢涛 审核人: 学院分管领导签字(盖章): 年 月 日