




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
上海应用技术学院 课 程 设计 20112011 20122012 学年第学年第 2 2 学期学期 设计题目设计题目 成绩记录簿成绩记录簿 院 系 院 系 计算机科学与信息工程计算机科学与信息工程 专专 业业 网络工程网络工程 班班 级级 1110430111104301 学号学号 11104301151110430115 学生姓名学生姓名 xxxx 设计时间设计时间 2012 06 25 2012 07 062012 06 25 2012 07 06 指导教师指导教师 xxxxxx 提交日期提交日期 2012 07 062012 07 06 目录目录 1 概述概述 1 1 题目题目 1 2 程序简述程序简述 1 3 程序性能程序性能 2 课题分析课题分析 2 12 1 程序系统的结构 2 2 结构流程图结构流程图 2 32 3 功能 2 4性能性能 2 5输入输出项信息输入输出项信息 3 功能模块说明功能模块说明 3 1流程逻辑流程逻辑 3 2 算法算法 4 程序测试 运行结果及说明程序测试 运行结果及说明 5 课程设计总结课程设计总结 6附录 参考文献 原代码解析 限制条件 程序测附录 参考文献 原代码解析 限制条件 程序测 试 试 6 1 参考文献参考文献 6 2 原代码解析原代码解析 6 36 3 限制条件限制条件 1 1 概述概述 1 11 1 题目题目 成绩记录簿成绩记录簿 1 1 2 2 程序描述程序描述 本程序是非数值计算型算法设计 我设计出了通讯录管理系统的基本功 能 并设计了简单的界面 本程序主要考察对自定义函数的熟悉程度 本程 序主要使用的是链表的相关操作 包括结构体链表的创建 输入 输出 查 找 删除等 我设计的这个通讯录系统也初步实现了人员信息的显示 删除 查找 修改 添加等必要的功能 1 建立一个主界面 2 用 switch 语句进行分类讨论 3 分别进入录入 查询 删除 求平均值等子函数 4 将子函数与主函数相连即可 1 31 3程序性能程序性能 该程序可以建立学生的成绩记录 可以方便老师和同学方便的查 阅成绩 这个程序有录入和删除的功能 还可以求出平均成绩 并排序 2 课题分析课题分析 2 1 程序系统的结构 2 2 程序流程图程序流程图 课程编号 主函数 求平均值查询 退出 添加成绩 删除成绩 按平均值排序 查 询 学 生 成 绩 查 询 班 级 成 绩 查询成绩添加成绩 添 加 学 生 学 号 添 加 课 程 编 号 添 加 学 生 姓 名 添 加 学 生 成 绩 查询学生成绩 学 号 查 询 姓 名 查 询 查询班级成绩 课 程 编 号 2 3 功能功能 成绩记录簿中记录以下数据 学号 姓名 课程编号 课程名称 成绩 学分 所有 成绩都以百分制计分 输入信息时要检查数据项学号 课程编号 成绩 学分的合 法性 学号 8位数字 课程编号 5位数字 成绩 0 100 之间的整数 学分 1 5之间的实型数 添加成绩 需要输入学生的学号或姓名 课程编号及成绩 如已有该门课程成绩给 出提示 查询 班级或个人 成绩 查询个人成绩 以学号或姓名作为关键字 可查询一个学生的所有成绩 和已完成 的总学分 查询班级成绩 以课程编号为关键字 成绩表后面要统计平均分 及格率及全班同 学不同课程在不同分数段分布的人数及百分比 拓展功能 a 程序启动时先从文件读入数据 如果文件中没有数据则给出提示 b 每次修改的数据写入文件 2 42 4 性能性能 方便 灵活 直观 易用 2 5输入输出项信息输入输出项信息 输入项 输入项 char name 10 设置学生名称设置学生名称 long int id 定义学号为长整型定义学号为长整型 float avg 平均分为实数平均分为实数 输出项输出项 int m1 m2 m3 score xf 定义整型 float avg 以浮点型输出平均分 3 功能模块说明功能模块说明 3 1 流程逻辑流程逻辑 主程序提供一个界面 允许用户选择 使用 switch 语句 用时直接输入数 字即可 增加函数 功能是插入学生成绩 使用一个无穷循环 直到录入 n 时结 束 删除函数 功能是删除 分为两步 先找后删 找 用 strcmp 函数 来 做如果找到记录 i 值 反之记为 1 删除可以从 i 项开始将数组的后一项赋值 给前一项 前一项自动被删掉 这样完成删除 查询函数与之类似 将删除改为输出即可 求平均值函数与查询类似只是输出时只输出平均值而已 按平均值排序只要加一个排序函数即可 退出函数什么都不写 即可 No Yes 3 2 算法算法 本程序参考了冒泡法 其代码结构为 For i 0 i k i 开始 输入口令 主菜单 选择的序号是否 符合需求 添 加 学 生 成 绩 添 加 班 级 成 绩 删 除 成 绩 查 询 学 生 成 绩 查 询 班 级 成 绩 写 入 文 件 读 取 文 件 退 出 系 统 For j i jb 其中也多次用到了循环和判断结构 3 运行结果及说明运行结果及说明 1 开始时 开始时 2 2 添加 添加 3 删除 4 查询学生成绩 1 按名字查询 2 按学号查询 4 查询班级成绩 5 写入文本文件 6 读取文本文件 读取文本文件 4 课程设计总结课程设计总结 短短的俩周已经过去了 在此我将交出我一周的成果 我真是百感交错 1 原先写程序直接编 条理性太差 如果先做一个流程图就条理很多 2 学会了将文件存入和读取 并学会在文件中加入信息和删除信息 3 我在查找学生姓名时遇到困难 从课本上找到了一个函数 strcmp 解决了 问题 困难 我在定义学生的学号时首先用整型 d 发现输出与录入不同 改用长整型 ld 仍然不行 但是字符型 s 却可以做到 事实上 与过去相比 我认为这短短的一周给我的感悟更为强烈 在此 首先我要感谢 老师 是 老师把我带进了这一门 俗话说的好 万 丈高楼平地起 所以说 基础很重要 而 老师讲课认真 讲也很透彻 使我 们能较好的理解这门课 可以跟紧课堂进度 是我们有机会能打下结实良好的 基础 而且 老师在平时也鼓励我们多提问 在我们遇到问题时 富有耐心地 为我们解答 在此再次感谢老师对我们不辞操劳的讲解 谢谢 一开始 当我第一眼看到这课程设计的时候 我感到十分的 痛苦 老 实说 在还未进行编程之前 我就感到这与我们之前的编程完全不一样 与这 次相比 以前的上机实验就像是小孩子玩得 一点技术含量也没有 以前的那 些实验只要看看书 花上一二个小时 基本就可以完成了 而且以前的小程序 最多也不过二三十行 不像这次要百来行 从中可见它的难度 从而联想到那 些专业编程员 我更深刻感到自己的不足 由于之前从未进行过如此大的编程 所以一开始根本没头绪 后来只好用 死办法 像写作文一样 首先先在纸上列出大致的提纲 然后再一个个慢慢延 伸展开 最后再输入计算机 用它来运行 可惜不运行还好 一运行只见一片 的红色错误提示 有些错误很简单 很好改 是由于自己的粗枝大叶引起的 比如 有些字符未定义 漏了一个 等 但也有些高深莫测的问题 例如 当我好不容易把程序运行出来后 却发现当我选择删除这一项时 会发现不论 我选择是按学号删除还是按姓名删除都不会出现我所要删除的内容 而是直接 询问确定删除请按 1 又或者是当我添加时是添加了三个同学的成绩 但当 我查询全班成绩时 却只有两位同学的成绩 后来在百思不得其解之下 我只 好向周围同学寻求帮助 最终在大家的帮助之下才解决的 诸如此类的问题还 不少 有的已经解决 但有些还未 可惜时间不够 也只能如此 经过这一周的课程设计 我发现我懂得了很多 它使我在编程时更仔细了 也使我学会了向周围人求教 培养了我自我学习 独立思考 并且 使我更体 会到了和高中的不一样 一切靠自觉 没有人会跟在你后面一直催你 告诉你 该怎样怎样 同时 我也更加了解到自己的不足 基础严重不扎实 虽然这门 课快结束了 但我会努力在假期中把自己的基础补好 期待在下次的课程设计 时能够得心应手 6附录 参考文献 原代码解析 限制条件 程序测附录 参考文献 原代码解析 限制条件 程序测 试 试 参考文献 1 谭浩强 C程序设计 第三版 北京 清华大学出版社 2005 2 谭浩强 C程序设计题解与上机指导 第三版 北京 清华大学出版社 2005 3 Herbert Schildt C语言大全 第四版 北京 电子工业出版社 2004 4 Samuel P Harbison Guy L Steele C语言参考手册 第5版 北京 机械工业出版社 2003 5 张建勋 C语言程序设计教程 北京 清华大学出版社 2008 2 6 崔武子 C程序设计教程 第2版 北京 清华大学出版社 2007 6 第2版 7 K N King C 语言程序设计 现代方法 第 2 版 北京 人民邮电出版社 2010 原代码解析 原代码解析 include include include define MAX 1000 struct Lesson char LessonName 100 char LessonNumber 100 int LessonMark float LessonCredit struct Student char Name 100 char Number 100 int LessonCount struct Lesson L 100 struct Student S MAX int StudentCount 0 void PrintInterface int Student Insert int Student Delete void Student Select void Class Select void WriteFile void ReadFile int main int n PrintInterface scanf d void PrintInterface int n while 1 printf n printf n 1 添加 添加 n printf n 2 删除 删除 n printf n 3 查学生成绩 查学生成绩 n printf n 4 查班成绩表 查班成绩表 n printf n 5 写入文本文件 写入文本文件 n printf n 6 读取文本文件 读取文本文件 n printf n 0 退出 退出 n printf n printf n 选择操作选择操作 scanf d switch n case 1 if Student Insert printf n 添加成功添加成功 回车继续回车继续 n else printf n 添加失败添加失败 回车继续回车继续 n break case 2 Student Delete break case 3 Student Select break case 4 Class Select break case 5 WriteFile break case 6 ReadFile break case 0 exit 1 break default printf 无此功能无此功能 请重新选择请重新选择 按回车确定按回车确定 n return 0 int Student Insert int i j n printf n 请输入所添加的学生人数请输入所添加的学生人数 scanf d if StudentCount n MAX return 0 for i StudentCount i StudentCount n i printf n t 第第 d 个学生 个学生 n i StudentCount 1 printf n t 学生学号 学生学号 scanf s if strlen S i Number 8 printf 输入错误输入错误 请重新输入请重新输入 return 0 printf n t 学生姓名 学生姓名 scanf s S i Name printf n t 该学生所修课程数 该学生所修课程数 scanf d for j 0 j S i LessonCount j printf n t 第第 d 门课 门课 n j 1 printf n t t 课程编号 课程编号 scanf s S i L j LessonNumber if strlen S i L j LessonNumber 5 printf 输入错误输入错误 请重新输入请重新输入 return 0 printf n t t 课程名称 课程名称 scanf s S i L j LessonName printf n t t 课程成绩 课程成绩 scanf d if S i L j LessonMark100 printf 输入错误输入错误 请重新输入请重新输入 return 0 printf n t t 课程学分 课程学分 scanf f if S i L j LessonCredit5 printf 输入错误输入错误 请重新输入请重新输入 return 0 if S i L j LessonMark 60 S i L j LessonCredit 0 StudentCount n return 1 int Student Delete char a 100 char b 100 int i j printf n 删除学生 删除学生 n printf n 学生姓名 学生姓名 scanf s a printf n 学生学号 学生学号 scanf s b if strlen b 8 printf 输入错误请重新输入输入错误请重新输入 return 0 for i 0 i StudentCount i if 0 strcmp S i Name a for j i 1 j StudentCount printf n 未找到该学生未找到该学生 n n return 0 else StudentCount return 1 void Student Select int x char y 100 char a 100 int i j printf n 输入所查学生信息 输入所查学生信息 1 姓名姓名 2 学号 选择 学号 选择 scanf d if x 1 x 2 if x 1 printf n 姓名 姓名 fflush stdin gets a for i 0 i StudentCount i if 0 strcmp S i Name a printf n 学号 学号 s t 姓名 姓名 s n S i Number S i Name printf n 课程编号课程编号 t 课程名称课程名称 t 课程成绩课程成绩 t 课程学分课程学分 n printf n for j 0 j S i LessonCount j printf s t t s t t d t t f n S i L j LessonNumber S i L j LessonName S i L j LessonMark S i L j LessonCredit printf n printf n n else printf n 学号 学号 fflush stdin gets y for i 0 i StudentCount i if strcmp S i Number y 0 printf n 学号 学号 s t 姓名 姓名 s n S i Number S i Name printf n 课程编号课程编号 t 课程名称课程名称 t 课程成绩课程成绩 t 课程学分课程学分 n printf n for j 0 j S i LessonCount j printf s t t s t t d t t f n S i L j LessonNumber S i L j LessonName S i L j LessonMark S i L j LessonCredit printf n printf n n break printf 查找完毕查找完毕 回车继续回车继续 n getchar else printf 选择错误选择错误 回车继续回车继续 n getchar return void Class Select char a 100 double x 0 y 0 z 0 int i j printf n 请输入课程编号 请输入课程编号 fflush stdin scanf s a printf 学号学号 t 姓名姓名 t 课程名称课程名称 t 课程成绩课程成绩 t 课程学分课程学分 n printf n for i 0 i StudentCount i for j 0 j 60 y break printf n 平均分 平均分 f t 及格率 及格率 f n n z x y x 100 printf n 查找完毕查找完毕 回车继续回车继续 n getchar void WriteFile FILE fp int i j char a 100 printf n 请输入写入的文件地址 请输入写入的文件地址 n n 地址输入格式 例如地址输入格式 例如 d Student txt scanf s printf n 写入中写入中 n i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能化组织管理策略-洞察及研究
- 城市更新项目融资风险管理-洞察及研究
- 2025-2030工业互联网安全防护体系建设需求分析与服务商竞争评估
- 2025-2030封装缺陷检测技术创新与质量管控体系优化报告
- 板块俯冲与沉积作用-洞察及研究
- 敏捷定制软件敏捷度评估-洞察及研究
- 混合云环境下的供应链安全策略-洞察及研究
- 文本聚类性能评估方法-洞察及研究
- 微型电动汽车安全测试题及答案解析
- 化妆品安全与检测试题及答案解析
- 鼠疫防治知识讲座课件
- 考务人员管理办法
- 乡村医生超声培训课件
- 急性喉炎护理课件
- 大学生职业规划大赛《智能焊接技术专业》生涯发展展示
- 2025新外研版初中英语七年级上全册课文翻译
- 检验科室内质控培训课件
- 七一党课:传承红色基因勇担时代使命2025年建党104周年“七一”专题党课
- 桥梁拆除施工质量保证技术措施
- 县红十字会日常管理制度
- 2025-2030年中国冷链物流行业深度分析及发展前景与发展战略研究报告
评论
0/150
提交评论