




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C C 语言语言 课程设计任务书课程设计任务书 适用于计算机科学与技术专业 适用于计算机科学与技术专业 班 级 姓 名 班 级 姓 名 山山 东东 建建 筑筑 大大 学学 计算机科学与技术学院计算机科学与技术学院 2012 年年 11 月月 课程编码 JS0059 课程名称 C C 课程设计 Course Design of C C Programming Languge 适用专业 计算机科学与技术 先修课程 C 语言 总 学 时 2 周 实验学时 0 授课学时 0 上机学时 20 一 课程设计的目的和要求 一 课程设计的目的和要求 本课程设计是计算机科学与技术专业重要的实践性环节之一 是在学生学习完 C 语言 课程后进行的一次全面的综合练习 本课程设计的目的和任务 1 巩固和加深 学生对 C 课程的基本知识的理解和掌握 2 掌握 C 编程和程序调试的基本技能 3 利用 C 进行简单软件设计的基本思路和方法 初步理解面向过程和面向对象的编程思 想 4 提高运用 C 解决实际问题的能力 5 掌握书写程序设计说明文档的能力 6 培养学生实际操作能力和团结协作能力 为以后的工作打下坚实的基础 二 课程设计内容 二 课程设计内容 本次课程设计共有两部分内容 一是阅读给定示例程序 具体内容参见附录二 分 析程序的功能 给出程序流程图或 UML 图 二是完成程序设计任务书规定任务的程序编 写 本次课程设计共有 6 项任务 具体内容参见附录一 要求每位同学完成课程设计任 务书中的任意 1 项 具体思路和要求可参见第 2 学期课件 10 程序设计方法学课件 10 程序设计方法学或教材第 13 章 面向对 象程序设计 第 13 章 面向对 象程序设计 不得从网上下载或者抄袭别人的资料 一经发现 课程设计不及格 三 课程设计进度表 第一阶段 分散学习阶段 12 16 周 不得从网上下载或者抄袭别人的资料 一经发现 课程设计不及格 三 课程设计进度表 第一阶段 分散学习阶段 12 16 周 在该阶段 主要任务是阅读指导老师提供的 C 语言成绩管理系统程序源代码 参 见附录二 对源代码进行分析 从源代码出发 逆向得到该题目的设计过程 最后写 出题目的书面设计报告 该设计题目基本符合整个课程设计的设计要求 具有很强的参 考意义 设计报告主要分概要设计和详细设计 一 概要设计主要是根据源代码总结出本题目划分的模块并给出模块层次图 层 次图的画法参考课程设计指导书的设计部分 二 详细设计的主要内容和工作步骤如下 1 分析源代码中的每个函数及接口部分 并给出每个函数的流程图 或 N S 图 或 UML 图 2 根据流程图给出详细的算法描述 采用伪代码的方式 3 最后 设计报告书由这两部分组成 打印出报告书 上交指导老师 然后 每 位同学根据自己的设计报告制作答辩用 ppt 指导老师安排时间对同学进行抽查答辩 并根据答辩情况给出成绩 该成绩计入课程设计的最终成绩 占 40 老师最后做总结 性报告 主要是根据答辩情况 针对同学们出现的各种问题 对本题目再次进行详细的 讲述 包括设计思想 设计方法和过程 代码实现用到的关键技术 最后 审核通过后 本阶段结束 课程设计正式进入下一阶段 第二阶段 集中设计阶段 17 18 周 第二阶段 集中设计阶段 17 18 周 时间为 2 周 大致划分如下 第 1 天 布置任务 参见附录一 及分组 总体需求分析 第 2 4 天 阅读相关文档 设计说明 查找资料 第 5 6 天 程序代码设计与实现 程序调试 修改 完善 第 7 8 天 撰写课程设计说明书 打印 第 9 10 天 课程设计检查与答辩 四 课程设计步骤与方法 四 课程设计步骤与方法 1 需求分析 为提出的问题找出解决的办法和思路 根据设计任务书的要求或采用 自顶向下的方法创建主程序和子程序 控制函数间的相互作用 或采用面向对象的方法 给出 UML 图和类图 2 根据需求 设计系统功能模块或类 并设计相应的数据结构及函数 3 根据基本思路 确定输入和输出 设计程序的算法 4 确定用到的所有数据结果及函数的描述和定义 并设计测试数据进行测试 5 在计算机上编译调试程序 检验程序的可运行性 6 编写 C 语言程序设计课程设计说明书 参见模板 课程设计说明书要求 1 封面 2 课程设计任务书 3 目录 4 正文 5 参考文献 6 运行结果图 7 程序设计工作总结 8 附程序源码 五 课程设计答辩 五 课程设计答辩 课程设计完成后 组织学生进行答辩 答辩采用主动申请和被动抽查方式 并结合 答辩结果给出相应成绩 六 教材与参考书目 六 教材与参考书目 1 Y Daniel Liang 著 王刚 刘晓光 刘璟译 C 程序设计 机械工业出版社 2009 年 11 月 2 钱能 C 程序设计教程 修订版 设计思想与实现 清华大学出版社 2009 年 7 月 3 郑秋生 C C 程序设计教程 电子工业出版社 2007 年 10 月 编 写 人 徐遵义 审 核 人 批 准 人 编写日期 2011 年 11 月 附录一 C 语言课程设计任务书 山东建筑大学计算机科学与技术学院 C 语言课程设计任务书语言课程设计任务书 1 设计题目 学生信息管理系统 指导教师 班 级 学 生 已知技术参数 和设计要求 1 学生信息数据 包括学号 姓名 专业 性别 综合成绩 出生时间 年龄 必须计算得到 本科生还包括英语成绩 研究生 包括发表论文数量 2 增加 删除本科生信息 增加 删除研究生信息 计算本科 生综合平均成绩 英语平均成绩 对研究生进行论文数量排序 显 示全部学生 按姓名检索学生 3 要应用以下知识点 类的定义 类的继承 对象链表 文件 访问 简单的排序算法 查找算法等 设计内容与步 骤 1 定义三个类 即学生类 虚基类 本科生和研究生类 派生 类 2 定义本科生和研究生存储结构 对象链表类及数据的存储 3 分析设计各类的属性和操作 4 程序设计 实现 调试 5 课程设计说明书 设计工作计划 与进度安排 1 设计工作 8 学时 2 实现与调试 8 学时 3 课程设计说明书 4 学时 设计考核要求 1 考勤 20 2 课程设计说明书 50 完成基本的操作可以获得 40 分 如果能 实现要求的所有操作功能则可得满分 3 答辩 30 计算机科学与技术学院制 山东建筑大学计算机科学与技术学院 C 语言课程设计任务书语言课程设计任务书 2 设计题目 高考模拟录取系统 college entrance examination simulation 指导教师 班 级 学 生 已知技术参数 和设计要求 1 高考成绩包含考生准考证号 姓名 性别 年龄 毕业学校 语文 数学 英语三门课的成绩等信息 该信息以文本文件存储在 磁盘上 2 完成以下功能 1 计算每个考生语文 数学 英语三门课 的总分并排序 并按照 5 分一个分数段 进行人数统计 2 对语文 数学 英语三门课分别统计每门课的平均成绩 以及最高分并输出 3 按照一定的录取人数 统计达到标准的人数 并将达到标准的学 生信息输出到指定文件 注意最后一分的处理 3 要应用以下知识点 类的定义 对象链表 文本文件的读写 简单的排序算法 查找算法等 设计内容与步 骤 1 定义考生信息类 定义考生对象链表 2 设计考生对象的文件存储与访问 3 分析设计类的属性与所有操作 4 程序设计 实现 调试 5 课程设计说明书 设计工作计划 与进度安排 1 设计工作 8 学时 2 实现与调试 8 学时 3 课程设计说明书 4 学时 设计考核要求 1 考勤 20 2 课程设计说明书 50 完成基本的操作可以获得 40 分 如果能 实现要求的所有操作功能则可得满分 3 答辩 30 计算机科学与技术学院制 山东建筑大学 计算机科学与技术学院 C 语言课程设计任务书语言课程设计任务书 3 设计题目 学籍管理系统 指导教师 班 级 学 生 已知技术参数 和设计要求 1 主要参数 给定格式的学生基本信息文件及其内容 学生成 绩基本信息文件及其内容 2 完成以下功能 计数据录入功能 学生基本情况查询和成绩 查询 删除功能 排序功能 3 要应用以下知识点 格式文件的输入 输出 类的定义 文 件访问 对象链表的操作 简单的排序算法 查找算法等 设计内容与步 骤 1 设计学生基本信息类和成绩基本信息类 2 定义学生基本信息对象和成绩基本信息对象链表类 3 分析设计类的属性和所有的操作 4 程序设计 实现 调试 5 课程设计说明书 设计工作计划 与进度安排 1 设计工作 8 学时 2 实现与调试 8 学时 3 课程设计说明书 4 学时 设计考核要求 1 考勤 20 2 课程设计说明书 50 完成基本的操作可以获得 40 分 如果能 实现要求的所有操作功能则可得满分 3 答辩 30 计算机科学与技术学院制 山东建筑大学 计算机科学与技术学院 C 语言课程设计任务书 语言课程设计任务书 4 设计题目 运动会管理系统 指导教师 班 级 学 生 已知技术参数 和设计要求 1 主要参数 比赛项目信息包括编号 名称 比赛时间 比赛 地点 运动员信息包括编号 姓名 成绩 名次 比赛信息包括将 运动员加入比赛项目 比赛成绩管理 2 完成以下功能 比赛项目的添加 删除 查询 运动员信息 的录入 删除 查询 比赛项目和运动员信息的文件读入和保存 3 要应用以下知识点 格式文件的输入 输出 类的定义 文 件访问 对象链表的操作 简单的排序算法 查找算法等 设计内容与步 骤 1 定义项目信息类 运动员信息类 2 定义项目信息对象和运动员对象链表类 3 分析设计各类的属性及其所有的操作 4 程序设计 实现 调试 5 课程设计说明书 设计工作计划 与进度安排 1 设计工作 8 学时 2 实现与调试 8 学时 3 课程设计说明书 4 学时 设计考核要求 1 考勤 20 2 课程设计说明书 50 完成基本的操作可以获得 40 分 如果能 实现要求的所有操作功能则可得满分 3 答辩 30 计算机科学与技术学院制 山东建筑大学 计算机科学与技术学院 C 语言课程设计任务书 语言课程设计任务书 5 设计题目 宾馆客房管理系统 指导教师 班 级 学 生 已知技术参数 和设计要求 1 主要参数 宾馆客房信息如客房号 客房类型 客房价格 空闲情况 和入住客人信息如客人姓名 客人身份证号 入住时间 退房时间 预付费用等信息 1 间客房最多可住 2 人 1 位客人只能 住 1 间客房 客房信息和客人信息可以从文件读入和保存到文件 2 完成以下功能 客房信息的录入功能 客房信息浏览功能 浏览全部客房的信息 客房信息的删除 修改功能 客人入住登记 客人退房结算 客房入住查询 查询空房间情况 按姓名或房间号 查询 3 要应用以下知识点 类的定义 对象链表的定义和操作 格 式化文件的读写 简单的排序算法 查找算法等 设计内容与步 骤 1 设计客房信息类 客人信息类以及客房对象链表和客人对象链表 2 分析设计各类的属性及所有的操作 3 格式文件的设计与访问 4 程序设计 实现 调试 5 课程设计说明书 设计工作计划 与进度安排 1 设计工作 8 学时 2 实现与调试 8 学时 3 课程设计说明书 4 学时 设计考核要求 1 考勤 20 2 课程设计说明书 50 完成基本的操作可以获得 40 分 如果能 实现要求的所有操作功能则可得满分 3 答辩 30 计算机科学与技术学院制 山东建筑大学 计算机科学与技术学院 C 语言课程设计任务书 C 语言课程设计任务书 6 设计题目 学生选课管理系统 指导教师 班 级 学 生 已知技术参数 和设计要求 1 主要参数 选修课信息 课程编号 课程名称 总学时 学 分 授课教师 选修学生信息 学号 姓名 专业 班级等信息 每位学生只能选修一门课程 2 完成以下功能 课程信息录入 课程信息用文件保存 浏览 修改 删除功能 学生信息录入 学生信息用文件保存 浏览 删除 功能 学生选修课程按教师选择或按学分选择 3 要应用以下知识点 文件的读写 类或结构体的定义 链表 的管理 简单的排序算法 查找算法等 设计内容与步 骤 1 定义选修课类 选修学生类以及选修课对象链表和选修学生对象 链表 2 分析设计各类的属性及所有的操作 3 格式文件的读写 4 程序设计 实现 调试 5 课程设计说明书 设计工作计划 与进度安排 1 设计工作 8 学时 2 实现与调试 8 学时 3 课程设计说明书 4 学时 设计考核要求 1 考勤 20 2 课程设计说明书 50 完成基本的操作可以获得 40 分 如果能 实现选修课和选修学生信息的保存 读取 录入 浏览 查询 排 序 删除 修改等功能则可得满分 3 答辩 30 计算机科学与技术学院制 附录二 C 语言成绩管理系统程序源代码 一 面向过程的程序源代码一 面向过程的程序源代码 file CppSMIS CPP include include include include include using namespace std const int FilePathLen 1024 const int ClassNameLen 32 struct ResultPercentage 成绩百分比 float fUsually 平时成绩 float fExperiment 实验成绩 float fExam 考试成绩 struct Results 学生成绩 int nNo 学号 char chName 10 姓名 float fUsually 平时成绩 float fExperiment 实验成绩 float fExam 考试成绩 float fTotality 总成绩 Results pNext 指向下一位学生成绩 bool FileExist string strFilePathName bool IsDirectory string strDirName string GetResultsFileName bool FreeMem Results pRsHead Results ResultsFromFile string strFilePathName bool ResultsToFile string strFilePathName ResultPercentage rw Results pRsHead int nSavePercentage 1 void Display Results pRsHead int nNum 1 int MenuMain bool ResultsBrowser bool ResultsInput bool ResultsCount bool ResultsInquiry int MenuInquiry int InquiryByNo Results pRsHead int InquiryByName Results pRsHead int InquiryFail Results pRsHead Results ResultsSort Results pRsHead int nAscending 1 Results InquiryHead10 Results pRsHead Results InquiryTail10 Results pRsHead 判断文件是否存在 bool FileExist string strFilePathName int result struct stat buf result stat strFilePathName c str return result 0 判断目录是否存在 bool IsDirectory string strDirName struct stat buf if stat strDirName c str return buf st mode 根据输入文件目录及班级名称生成数据文件全名称 string GetResultsFileName char chFilePath FilePathLen 文件存放目录 char chClass ClassNameLen 班级名称 string strFilePathName 输入成绩存放目录及班级 cin ignore cout 请输入文件目录 cin getline chFilePath FilePathLen strFilePathName string chFilePath if IsDirectory strFilePathName cout 目录 strFilePathName 不存在 endl int nLen strFilePathName length int nPos strFilePathName find last of nLen if nPos nLen strFilePathName strFilePathName string 输入成绩班级 cout pNext delete pRsCur while pRsHead NULL return true 从给定文件读取学生成绩并计算总成绩 Results ResultsFromFile string strFilePathName Results pRsNew pRsHead NULL ResultPercentage rw ifstream fileIn 打开文件 fileIn open strFilePathName c str ios in ios binary if fileIn fail cout Can not open file strFilePathName fTotality pRsNew fUsually rw fUsually pRsNew fExperiment rw fExperiment pRsNew fExam rw fExam if pRsHead NULL pRsHead pRsNew else pRsNew pNext pRsHead pRsHead pRsNew fileIn close return pRsHead 保存数据到文件 bool ResultsToFile string strFilePathName ResultPercentage rw Results pRsHead int nSavePercentage Results pRsCur ofstream fileOut if pRsHead NULL return false 以追加方式打开文件 fileOut open strFilePathName c str ios out ios app ios binary if fileOut fail cout Can not open file strFilePathName pNext 关闭文件 fileOut close return true 显示所有学生或 nNum 位学生成绩 nNum 0 所有 void Display Results pRsHead int nNum Results pRsCur if pRsHead NULL return pRsCur pRsHead 显示单个学生成绩 if nNum 1 cout 学号 nNo endl cout 姓名 chName endl cout fixed setprecision 2 cout 平时成绩 fUsually endl cout 实验成绩 fExperiment endl cout 考试成绩 fExam endl cout 总 成 绩 fTotality endl return int nCount 0 显示所有学生成绩 cout setw 12 学号 setw 12 姓名 setw 10 平时成绩 cout setw 10 实验成绩 setw 10 考试成绩 setw 10 总 成 绩 endl do cout setw 12 nNo cout setw 12 chName cout fixed setprecision 2 cout setw 10 fUsually cout setw 10 fExperiment cout setw 10 fExam cout setw 10 fTotality cout 0 pRsCur pRsCur pNext while pRsCur NULL return 系统主菜单 int MenuMain int nChoice 0 do cout endl cout C 语言成绩管理系统 endl cout 1 浏览已录入成绩 endl cout 2 录入班级成绩 endl cout 3 统计班级成绩 endl cout 4 查询班级成绩 endl cout 0 退出 endl endl cout nChoice while nChoice4 return nChoice 查询子菜单 int MenuInquiry int nChoice 0 do cout endl cout 成绩查询 endl cout 1 按学号查询 endl cout 2 按姓名查询 endl cout 3 查询不及格同学 endl cout 4 查询班级前 10 名 endl cout 5 查询班级后 10 名 endl cout 0 退出 endl endl cout nChoice while nChoice 5 return nChoice 成绩浏览 bool ResultsBrowser string strFilePathName ifstream fileIn ResultPercentage rw strFilePathName GetResultsFileName 打开文件 fileIn open strFilePathName c str ios in ios binary if fileIn fail cout Can not open file strFilePathName endl return false 成绩权重 fileIn read char cout fixed setprecision 2 cout 平时成绩 rw fUsually 100 cout 实验成绩 rw fExperiment 100 cout 考试成绩 rw fExam 100 endl cout endl fileIn close Results pRsHead 成绩记录 pRsHead ResultsFromFile strFilePathName Display pRsHead 0 FreeMem pRsHead return true 成绩录入 bool ResultsInput char chChoice bool bFileExist string strFilePathName 录入班级和文件存放目录 strFilePathName GetResultsFileName bFileExist FileExist strFilePathName if bFileExist cout 文件 strFilePathName chChoice if toupper chChoice N return false Results pRsHead NULL Results pRsNew pRsPrev ResultPercentage rw 录入各部分成绩比例 if bFileExist cout rw fUsually cout rw fExperiment cout rw fExam 录入所有学生成绩 cout 请依次输入每位学生信息 学号为 1 结束输入 pNext NULL pRsNew fTotality 0 cout pRsNew nNo if pRsNew nNo 1 delete pRsNew break cout pRsNew chName cout pRsNew fUsually cout pRsNew fExperiment cout pRsNew fExam if pRsHead NULL pRsHead pRsNew else pRsPrev pRsHead while pRsPrev pNext NULL pRsPrev pRsPrev pNext pRsPrev pNext pRsNew while true bool bRet 数据保存 if bFileExist bRet ResultsToFile strFilePathName rw pRsHead else bRet ResultsToFile strFilePathName rw pRsHead 0 释放内存 FreeMem pRsHead return bRet 成绩统计 bool ResultsCount bool bFileExist string strFilePathName strFilePathName GetResultsFileName bFileExist FileExist strFilePathName if bFileExist cout 文件 strFilePathName 不存在 return false int nFailNum nTotalNum double fSum fMean Results pRsCur pRsHead NULL pRsHead ResultsFromFile strFilePathName if pRsHead NULL cout No student score record fTotality nTotalNum if pRsCur fTotality pNext while pRsCur NULL fMean fSum nTotalNum Display pRsHead 1 cout 平均成绩 fixed setprecision 2 fMean endl cout 不及格人数 nFailNum pNext NULL return pRsHead while pRsHead NULL pRsMaxPrev NULL pRsMax pRsHead pRsCurPrev pRsHead pRsCur pRsCurPrev pNext 查找最大值 while pRsCur NULL if pRsCur fTotality pRsMax fTotality pRsMax pRsCur pRsMaxPrev pRsCurPrev pRsCurPrev pRsCur pRsCur pRsCur pNext 将最大 最小 节点从链表 pRsHead 摘出 if pRsMaxPrev NULL 第 1 个节点 pRsHead pRsHead pNext else if pRsMax pNext NULL 最后节点 pRsMaxPrev pNext NULL else 中间节点 pRsMaxPrev pNext pRsMax pNext pRsMax pNext NULL 将最大 最小 节点插入排序链表 pRsSort 的前端 if pRsSort NULL pRsSort pRsMax else if nAscending 1 升序 次大值插入排序链表首部 pRsMax pNext pRsSort pRsSort pRsMax else 降序 插入排序链表尾部 pRsCur pRsSort while pRsCur pNext NULL pRsCur pRsCur pNext 次大值链接到尾部 pRsCur pNext pRsMax return pRsSort 根据学号查询 int InquiryByNo Results pRsHead Results pRsCur int nNo nNum cout nNo nNum 0 pRsCur pRsHead while pRsCur NULL if pRsCur nNo nNo nNum Display pRsCur pRsCur pRsCur pNext if nNum 0 cout 学号 nNo 无该学生成绩 endl return nNum 根据姓名查询 int InquiryByName Results pRsHead int nNum char chName 20 Results pRsCur cout chName chName 0 nNum Display pRsCur pRsCur pRsCur pNext if nNum 0 cout 姓名 chName 无该学生成绩 fTotality pNext cout 共有学生人数 nNum pNext cout 共有学生人数 nNum pNext cout 共有学生人数 nNum endl Display pRsSort 10 return pRsSort 成绩查询 bool ResultsInquiry int nChoice string strFilePathName Results pRsHead NULL strFilePathName GetResultsFileName pRsHead ResultsFromFile strFilePathName if pRsHead NULL return false do nChoice MenuInquiry switch nChoice case 0 break case 1 InquiryByNo pRsHead break case 2 InquiryByName pRsHead break case 3 InquiryFail pRsHead break case 4 pRsHead InquiryHead10 pRsHead break case 5 pRsHead InquiryTail10 pRsHead break default break while nChoice 0 FreeMem pRsHead return true 系统主程序 int main int nChoice 0 do nChoice MenuMain switch nChoice case 0 break case 1 ResultsBrowser break case 2 ResultsInput break case 3 ResultsCount break case 4 ResultsInquiry break default cout 选择错误 endl while nChoice 0 return 0 二 面向对象的程序源代码二 面向对象的程序源代码 file FileDir h include using namespace std C 文件目录属性类 class CFileDir private string m strPathName public CFileDir string CFileDir bool FileExist bool IsDir long GetFileSize char GetFileDrive string GetCreateTime string GetModifiedTime file FileDir cpp include include using namespace std include include FileDir h CFileDir CFileDir string CFileDir CFileDir bool CFileDir FileExist struct stat buf int result result stat m strPathName c str return result 0 bool CFileDir IsDir struct stat buf 判断是否存在 if stat m strPathName c str return buf st mode long CFileDir GetFileSize struct stat buf int result result stat m strPathName c str if result 0 return buf st size return 0 char CFileDir GetFileDrive struct stat buf int result result stat m strPathName c str if result 0 return buf st dev A return 0 string CFileDir GetCreateTime struct stat buf int result result stat m strPathName c str if result 0 return string ctime return 0 string CFileDir GetModifiedTime struct stat buf int result result stat m strPathName c str if result 0 return ctime return 0 file ResultPercentage h include using namespace std 成绩各部分百分比 class CResultPercentage private float m fUsually 平时成绩 float m fExperiment 实验成绩 float m fExam 考试成绩 public CResultPercentage void Display void GetPercentage float bool SetPercentage float fUsually float fExperiment float fExam file ResultPercentage cpp include include include include include using namespace std include ResultPercentage h CResultPercentage CResultPercentage m fUsually 0 1f 平时成绩 m fExperiment 0 1f 实验成绩 m fExam 0 8f 考试成绩 显示成绩各部分比例 void CResultPercentage Display cout endl cout C 语言各部分成绩比例 endl cout fixed setprecision 2 cout 平时成绩 m fUsually 100 cout 实验成绩 m fExperiment 100 cout 考试成绩 m fExam 100 endl cout endl bool CResultPercentage SetPercentage float fUsually float fExperiment float fExam float fTotal if fUsually 0 fExperiment 0 fExam 0 cout 成绩各部分比例不能小于零 1e 7 cout 成绩各部分比例之和应该等于 1 endl return false m fUsually fUsually 平时成绩 m fExperiment fExperiment 实验成绩 m fExam fExam 考试成绩 return true void CResultPercentage GetPercentage float 平时成绩 fExperiment m fExperiment 实验成绩 fExam m fExam 考试成绩 file Results h 成绩类 class CResults public int m nNo 学号 char m chName 10 姓名 float m fUsually 平时成绩 float m fExperiment 实验成绩 float m fExam 考试成绩 float m fTotality 总成绩 CResults pNext 指向下一位学生成绩 public CResults void Display int nDisplayAll 0 file Results cpp include include include using namespace std include Results h CResults CResults m nNo 0 学号 strcpy m chName 姓名 m fUsually 0 0f 平时成绩 m fExperiment 0 0f 实验成绩 m fExam 0 0f 考试成绩 m fTotality 0 0f 总成绩 pNext NULL 指向下一位学生成绩 void CResults Display int nDisplayAll if nDisplayAll 0 cout 学号 m nNo endl cout 姓名 m chName endl cout fixed setprecision 2 cout 平时成绩 m fUsually endl cout 实验成绩 m fExperiment endl cout 考试成绩 m fExam endl cout 总 成 绩 m fTotality endl else cout setw 12 m nNo cout setw 12 m chName cout fixed setprecision 2 cout setw 10 m fUsually cout setw 10 m fExperiment cout setw 10 m fExam cout setw 10 m fTotality cout endl file ResultList h include using namespace std include Results h include ResultPercentage h class CResultList private CResults m pRsList CResultPercentage m pRw string m strPathName public CResultList string strPathName CResultList void SetPathName string strPathName bool ResultInput int nEnterPercentage 1 bool ResultFromFile bool ResultToFile int nSavePercentage 1 void Display int nNum 0 bool ResultCount int InquiryByNo int nNo int InquiryByName char chName 10 int InquiryFail int InquiryHead10 int InquiryTail10 private int GetTotal void ResultsSort int nAscending 1 void FreeMem file ResultList cpp include include include include using namespace std include ResultList h CResultList CResultList string strPathName m pRw NULL m pRsList NULL m strPathName strPathName CResultList CResultList FreeMem void CResultList SetPathName string strPathName FreeMem m strPathName strPathName bool CResultList ResultInput int nEnterPercentage CResults pRsNew pRsPrev float fUsually fExperiment fExam 录入各部分成绩比例 if nEnterPercentage cout endl 请依次输入成绩各部分比例 小数 endl cout fUsually cout fExperiment cout fExam if m pRw NULL delete m pRw m pRw new CResultPercentage if m pRw SetPercentage fUsually fExperiment fExam delete m pRw return false 录入所有学生成绩 cout endl 请依次输入每位学生信息 学号为 1 结束输入 endl do pRsNew new CResults cout pRsNew m nNo if pRsNew m nNo 1 delete pRsNew break cout pRsNew m chName cout pRsNew m fUsually cout pRsNew m fExperiment cout pRsNew m fExam if m pRsList NULL m pRsList pRsNew else pRsPrev m pRsList while pRsPrev pNext NULL pRsPrev pRsPrev pNext pRsPrev pNext pRsNew while true 保存到文件 ResultToFile nEnterPercentage return true bool CResultList ResultFromFile CResults pRsNew ifstream fileIn 释放已有数据 FreeMem 打开文件 fileIn open m strPathName c str if fileIn fail cout Can not open file m strPathName GetPercentage fUsually fExperiment fExam 成绩记录 while fileIn eof pRsNew new CResults fileIn read char pRsNew sizeof pRsNew int ng fileIn gcount if ng 0 文件结尾处理 delete pRsNew break pRsNew m fTotality pRsNew m fUsually fUsually pRsNew m fExperiment fExperiment pRsNew m fExam fExam pRsNew pNext NULL if m pRsList NULL m pRsList pRsNew else pRsNew pNext m pRsList m pRsList pRsNew fileIn close return true bool CResultList ResultToFile int nSavePercentage CResults
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 供热管网改造工程质量验收标准方案
- 光伏项目冬季施工专项保障方案
- 建筑夜间施工扬尘治理技术方案
- 内涝治理效果评估标准方案
- 水库坝体结构优化设计方案
- 供热老旧管网改造用户供暖保障方案
- 光伏项目购售电合同签订方案
- 冷链供应链协同管理实施方案
- 2025年商务 招聘 试题及答案
- 护理测评考试题及答案
- 2025-2026学年人教版(2024)初中化学九年级上册教学计划及进度表
- 《研学旅行指导师实务》课件-第6章 基(营)地研学课程操作
- 高中英语3500词汇表
- 综合英语教程第二册课件
- 《绣球》课件
- 土地增值税培训课件
- 遥感图像的目视判读
- JISG3506-2004高碳钢盘条(中文版)
- 轧制原理-PPT课件
- SY2BVT-1振动仪操作规程5
- 白酒委托灌装合同协议书范本
评论
0/150
提交评论