已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序管理系统 1 需求分析 1 题目的内容与要求 1 内容 1 每一条记录包括一个学生的学号 姓名 3 门成绩 平均成绩 2 输入功能 可以一次完成无数条记录的输入 3 显示功能 完成全部学生记录的显示 4 查找功能 完成按姓名查找学生记录 并显示 5 删除功能 请求用户输入要删除的学生记录的学号 从链表中删除结 点 6 排序功能 按学生平均成绩进行排序 7 保存功能 将学生记录保存在任何自定义的文件中 如保存在 c score 8 读取功能 将保存在文件中的学生记录读取出来 9 有一个清晰美观界面来调用各个功能 本程序中采用菜单的设计来实 现美观界面 2 要求 1 整个系统均用 C 语言实现 2 利用指针 链表来实现学生成绩的数据结构设计 3 系统具有输入 显示 查询 删除 排序 插入 保存 读取基本功 能 4 系统的各个功能模块都用函数的形式来实现 2 开发工具 操作系统 Windows7 旗舰版 硬件环境 CPUIntel R Core TM i3380 内存 2G 硬盘 320G 软件环境 TurboC 2 概要设计 1 总体结构 本程序主要分为十个模块 主函数模块 菜单设计模块 InputRecord 模 块 PrintRecord 模块 SearchRecord 模块 DeleteRecord 模块 UpdateRecord 模块 SortRecord 模块 WriteRecordToFile 模块 ReadRecordFromFile 模块 主函数模块实现函数调用 主菜单 输入列表 查找 删除 修改 排序 写入 读出 帮助 2 课程设计目的 1 进一步掌握和利用 C 语言进行程序设计的能力 2 进一步理解和运用结构化程序设计的思想和方法 3 初步掌握开发一个小型实用系统的基本方法 4 学会调试一个较长程序的基本方法 5 学会利用流程图或 N S 图表示算法 6 掌握书写程设计开发文档的能力 书写课程设计报告 3 课程设计的意义 课程设计让我更进一步地了解 掌握和利用 C 语言 加强了我对利用 C 语 言进行程序设计的能力 让我学会了开发小型系统的基本方法 激发了我对计 算机这一专业的热情 更重要的是 C 语言程序设计大大地开拓了我的思维 让 我更有条理地处理事情 这次课程设计对我个人以后的发展有这很大的帮助 3 算法分析 1 主函数 main 通过调用菜单设计模块来判断即调用用户选择的功能模块 2 菜单设计模块 菜单窗口图像的存储和重放 在文本模式下使用 gettext 函数存放某一 缓冲区的文本 puttext 函数将缓冲区的文本显现出来 菜单窗口和菜单项的生成 将实现存放在字符指针数组中的菜单各项内容 填入相应的位置中 并用红色标出相应项选择对应的热键 生成光条 在菜单上压上光条 用户按 Up 或 Down 键 使光条在整 个菜单项上移动 来标明要选择的菜单项 当按回车键后 转 入执行菜单项功能 这是通过相应菜单项的图像存取和改变背景色后的重 放来实现的 键识别 键盘操作函数 bioskey 来得到用户按键的扫描码 3 输入记录函数 STUDENT create 这是一个无参函数 用来执行第学生成绩记录的输入 当学生为 0 时停止 输入 函数结束后 带回一个指向链表头的指针 head 算法 先声明一个首节点 head 并将 head next 设为 NULL 每输入一个 数据就声明一个新节点 p 把 p next 设为 NULL 并且链接到之前列表的尾端 head NULL for 指针 p 指向新开辟的单元 指针 p 是否为空 是否 输入学号 p num 输出p num 是否为 0 内存是否 溢出 输入姓名 p name 停止for i 0 isum s 菜单 p average float s 3 p order 0 p next head head p 4 显示记录函数 void print STUDENT head 这是一个不返回值的有参函数 形参为 链表头的指针 负责对全部学 生成绩记录的输出 不足之处就是不能对学生成绩进行分页显示 算法 先将 p 结点的指针指向第一个结点 将 p 结点 即第一个结点 的数 据输出 然后再将 p 结点的指针指向 p 指针的的指针 即下一结点 将 p 结点 即第一结点 的数据输出 重复执行此步聚直到 p 指针指向 NULL 为止 p head 使指向第一个结点 输出 p 所指向的结点 p 指向一下个结点 当 p 指的不是表尾 5 查找记录函数 void search STUDENT head 这是一个不返回值的有参函数 形参为 链表头的指针 实现按学号对 某个学生进行查找 并显示所查找到的记录 算法 采用线性查找法往下一个节点查找 输入所要查找的学生的学号 s 设一个指针变量 p 先指向第一个结点 当 strcmp p name s p2 next t p1 head 当 p1 NULL 时 i p1 order i p1 p1 next 输出 排序成功 9 保存数据到文件函数 void save STUDENT head 这是一个不返回值的有参函数 形参为 链表头的指针 可以把学生记 录保存在电脑上由自己任意命名的二进制文件 N S 流程图如下 输入要保存记录的文件地址 outfile 文件不能打开 否是 p head 输出一个出错信 当 p 不为空时息 并返回菜单 fwrite p LEN 1 fp 写入一条记录 p p next 指针后移 fclose fp 关闭文件 10 从文件读数据函数 STUDENT load 这是一个不返回值的有参函数 形参为 链表头的指针 根据输入的文件 地址进行读取 N S 流程图如下 定义两个指针变量 p1 p2 输入要打开的记录文件地址 infile 文件不能打开 否是 开辟一个新单元 指针 p1 是否为空返回菜单 否是 返回菜单 读入记录 fclose fp 关闭文件 4 测试及输出结果 1 主菜单界面 2 输入模块 3 显示模块 4 查找模块 5 删除模块 6 更新模块 7 排序模块 8 写入文件模块 9 从文件读取数据模块 5 心得体会 经过一个多星期的 C 语言课程设计 感觉自己收获不少 首先是 链表本 来上课是没有上的 但这个课程设计里面主要都是用链表 因为要达到这样的 功能 使用链表相当方便 但不容易理解 所以在这方面我很了很多的时间看 课本和参考课外书 使 C 语言的知识强化了不少 其次 在做课程设计的过程 中 发现了平时很多没有注意到的问题 例如 返回值函数和不返回值函数两 者在主函数中的调用是不同的 更重要的是 这次课程设计虽然花了我 不少时间 但正是这些时间 让我见识到了 C 语言的重要性 从这里我也得到 一个体会 做一个程序 或者开发一个软件 应该着重从它的后台制作入手 不能做出一个中看不中用的程序或者软件 相信这次的课程设计为我以后继续 从事计算机工作打了一个小小的开头 6 参考文献 1 郭友强编著 C 语言程序设计 试验指导与课程设计 北京 清华 大学出版社 1999 2 黄维通编著 C 语言程序设计习题解析与应用案例分析 北京 清 华大学出版社 2004 3 谭浩强编著 C 程序设计 北京 清华大学出版社
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程管理领域职位晋升路径分析
- 零售业门店理财顾问服务流程安排
- 网络技术公司数据专员招聘分析
- 服务请求的响应与处理时效性提升计划
- 机构研究报告-小马智行-市场前景及投资研究报告:自动驾驶商业化Robotaxi未来可期
- 低血糖患者的护理
- 智能家居产品交互设计要点
- 房产销售面试准备攻略及话术
- 新兴企业客户管理岗的培训与工作技巧解读
- 酒店预订与接待员职位晋升手册
- 2025-2026学年高一上学期第三次月考地理卷【测试范围:湘教必修一第1~4章】(考试版A3)(浙江专用)
- 杆状体肌病治疗及护理
- 2025中钞特种防伪科技有限公司招聘18人笔试历年备考题库附带答案详解试卷3套
- 2026年湖南有色金属职业技术学院单招职业技能考试必刷测试卷带答案
- 2025岩土工程勘察测量行业市场现状研究投资评估规划分析
- 2026年牡丹江大学单招职业技能考试题库及答案1套
- ICU患者体位的管理
- 观赏鱼买卖合同(标准版)
- DB13T 3046-2025健康体检质量控制规范
- BIM技术在房屋建筑结构加固中的应用分析
- 机械公司安全生产“双控”风险辨识与管控手册
评论
0/150
提交评论