课+程+设+计+报+告_第1页
课+程+设+计+报+告_第2页
课+程+设+计+报+告_第3页
课+程+设+计+报+告_第4页
课+程+设+计+报+告_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课 程 设 计 报 告 课程名称课程名称 数据结构数据结构 课题名称课题名称 1 2 专专 业业 班班 级级 学学 号号 姓姓 名名 指导教师指导教师 刘铁武刘铁武 2014 年年 月月 日日 一 一 设计内容 设计内容 课题课题 1 学生管理系统 学生管理系统 学生信息定义 学生信息必须包含如下项 包括但不限于 学号 ID ID 要求全局 唯一 不可重复 姓名 密码 班级 成绩 至少 3 门 年龄 管理员信息定义 管理员信息必须包含如下项 包括但不限于 用户名 密码 功能要求 功能要求 增 管理员能够增加学生 存 学生信息既能够在内存中存在 也能够存于 磁盘中 掉电后信息不丢失 删除 管理员能够删除学生 完成下列情况的任一种即可 一条一条删除 例如根据 ID 删除 批量删除 例如根据某种区间删除 改 管理员 能够修改学生 完成下列情况的任一种即可 一项一项地修改 如提示是否修改哪一项 是学号还是姓名 批量修改 例如一下子修改好学号 姓名 成绩 等 查询 描述 能够查询某些学生信息 必须完成下列所有情况 根据姓名 根据单科成绩 排序 能够按序显示学生信息 排序算法不限 必须完成下列所有情况 根据姓名 根据单科 成绩 根据排名 权限 查看个人信息 能够登录系统查看个人信息 修改密码 能够登录系统中修改个 人密码 必须完成下列所有情况 检验旧密码是否正确 如不正确提示重新输入旧码 如 正确 检验两次输入的新密码是否一致 如不一致 提示重新输入密码 如一致 用新密 码覆盖旧密码 登录 管理员和学生能够登录到系统中 必须有密码出错提示 输入错 误超过三次则自动退出系统 二 二 设计要求 设计要求 a 界面友好 用户的一些操作前后做出一些必要的提示或确认 所有完成的功能都需要友好 例如 增加失败提示 删除失败和成功提示 删除前的确认 修改失败和成功提示 修改前 后的确认 查找失败提示 查找成功的确认 退出系统时 如果有修改 要提示是否保存 其它方面的界面问题 b 结构清晰 模块化 对界面 显示 菜单管理 逻辑管理 文件操作等等代码要独立 必须多个 c 文件 用 makefile 封装 一个函数只做一件事 函数功能要单一 一个函数不能超过 50 行 避 免重复 冗余代码 代码块清晰 c 变量命名规范 变量名应该具有自明性 常量 枚举和宏定义命名 常量名 宏和枚举值由全大写字母组成 单词间通过下划线来界定 函数的命名 使用 动词 或者 动词 名词 动宾词组 的形式 由一个或多个单词组成 且以小写字母开头 以后每个单词之间用下划线隔开 变量的命名与定义 应当使用 名词 或者 形容词 名词 由一个或多个单词组成且以小写字母 开头 以后每个单词之间用下划线隔开 d 注释充分 变量 函数 包括参数 返回值 代码功能块 一些复杂算 法 等都需要清晰明了地说明 三 其它要求 三 其它要求 1 1 选题 选题 每位学生需完成两个课题 其中一个必选 另一个自选 必选题次为 学 号 7 1 2 2 课程设计报告内容说明 课程设计报告内容说明 1 1 需求分析需求分析 程序的功能 输入输出的要求 2 2 概要设计概要设计 程序的模块构成以及模块之间的层次结构 各模块的调用关系 每个模块 的功能 课题涉及的数据结构和数据库结构 即要存储什么数据 这些数据是什么样 的结构 它们之间有什么关系等 3 3 详细设计详细设计 采用 C 语言定义相关的数据类型 写出各模块的类 C 码算法 画出各函数 的调用关系图 主要函数的流程图 4 4 调试分析以及设计体会调试分析以及设计体会 测试数据 准备典型的测试数据和测试方案 包括正确的输 入及输出结果和含有错误的输入及输出结果 程序调试中遇到的问题以及解决问题的方 法 课程设计过程经验教训 心得体会 5 5 使用说明使用说明 用户使用手册 说明如何使用你编写的程序 详细列出每一步的操作步 骤 6 6 书写格式书写格式 见附带说明 7 7 附录附录 参考书目 源程序清单 带注释 3 3 成绩评定 成绩评定 指导老师负责验收程序的运行结果 并结合学生的工作态度 实际动手能力 创新精 神和设计报告等进行综合考评 并按优秀 良好 中等 及格和不及格五个等级给出每位 同学的课程设计成绩 具体考核标准包含以下几个部分 平时出勤 占 10 系统 需求分析 功能设计 数据结构设计及程序总体结构合理与否 占 10 程序能否完整 准确地运行 个人能否独立 熟练地调试程序 占 40 设计报告 占 30 注意 不 得抄袭他人的报告 或给他人抄袭 一旦发现 成绩为零分 独立完成情况 占 10 三三进进度度安安排排 第第 1717 周周 星期一星期二星期三星期四星期五 上午 8 00 12 00 下午 13 30 17 30 第第 周周 星期一星期二星期三星期四星期五 上午 8 00 12 00 下午 13 30 17 30 目目 录录 课程设计的目的与意义 I 前 言 II 第 1 章 需求分析 1 1 1 数据需求 1 1 2 功能需求 1 1 3 创新需求 2 第 2 章 系统设计 2 2 1 总体设计 2 2 2 详细设计 2 第 3 章 设计及用法说明 8 3 1 学生个人信息表 8 3 2 课程表 8 3 3 学生选课表 9 3 4 学生表 9 第 4 章 系统调试及源程序 10 第 5 章 小结 11 参考文献 12 第第 1 章章 需求分析需求分析 1 11 1 数据需求数据需求 需求分析阶段主要有两个方面的任务 分析学生的数据要求和分析学生的 处理要求 通过以上分析 我们已经基本了解了学生对处理的要求 接下来需 要的工作是分析学生对数据的要求 为了把学生的数据清晰明确地表达出来 系统分析员通常建立一个概念性 的数学模型 概念性模型是一种面向问题的数学模型 是按学生的观点来对数 据和信息建模 最常用的表示概念性数据模型的方法是实体 联系方法 这种方 法用 E R 图描述现实世界中的实体 而不涉及这些实体在系统中的实现方法 该方法又称为 E R 模型 E R 图中共用三种符号 实体 属性和联系 通常实 体用矩形来表示 属性用椭圆或圆角矩形来表示 联系用菱形来表示 联系有 分为一对一 一对多和多对多三种类型 1 21 2 功能需求功能需求 1 信息录入功能 在这个功能里包括学生基本信息 班级课程信息 学生学期成绩单及成绩单表 格和班级名单的录入 2 浏览功能 浏览功能包括浏览学生成绩 浏览班级课程 浏览课程名称和专业信息 3 查询功能 查询功能包括按班级和学号查询成绩 按班级查询课程设置 另外 我们为了保证个人信息不外泄 在进入本系统之前我们必须输入下确的 密码 这样可以防止非法学生越权操作损害数据库而造成损失 1 31 3 创新需求创新需求 在基本要求达到后 可进行创新设计 如系统学生功能控制 对管理员级 和一般级别的学生系统功能操作不同 第第 2 章章 系统设计系统设计 2 1 总体设计总体设计 总体设计即概念模型设计 使用数据流图可以使我们的逻辑结构一目了然 用 图形表示出来 将更利于我们理解和设计 以下为学籍管理系统的数据流图 在信息世界中 信息从客观事物出发流经数据库 通过决策机构最后又回到客 观世界 信息的这一循环经历了三个领域 信息世界 数据世界 现实世界 现实世界的事物反映到人的头脑中 人的大脑对它有个认识过程 经过分析 选择 命名 分类等 进入信息世界 这些信息再进一步加工 编码 然后 进入数据世界 而软件系统的开发工作需要考虑这两个方面的问题 也就是要 考虑系统开发所需要的数据 以及如何对这些数据进行操作 这两个问题贯穿 了整个软件系统的开发过程 这也就是数据库的设计问题 软件设计的一个核 心 2 2 详细设计详细设计 在系统设计的开始 首先考虑的是如何用数据模型来数据库的结构与语义 以 对现实世界进行抽象 在本系统中采用目前广泛的 实体联系模型 ER 模型 来描述数据库的结构与语义 以对现实世界进行第一次抽象 ER 模型直接从现 实世界抽象出实体类型及实体间联系 然后用 ER 图来表示数据模型 它有以 下几个特点 接近于人的思维 容易理解 与计算机无关 学生容易接受 本系统为学生学籍管理 主要管理学籍的注册 学生信息及成绩等事项 根据 需要可以查询学生的信息 依据学籍管理的实际情况 考虑了多方面的因素以 后 确定系统的 ER 图如 学生课程信息 学生基本信息 学生班级信息 学生成绩信息 学生 图 1 学生实体 ER 图 学号 家庭住址姓名 性别 学生基本信息 年龄 图 2 学生基本信息实体 ER 图 课程 课程编号 课程名称 图 3 课程实体图 专业 班级 专业班号 班主任 人数 图 4 班级实体图 根据上述数据流程图的分析 得出体系统的 ER 图 如下 老师 授课 课程 选课 课程 成绩 成绩单 成绩评 定 学生 图 6 系统 ER 图 数据流图中涉及到的数据表定义如下 1 学生注册表 学生名 密码 2 学生基本信息表 学号 姓名 专业班级 性别 年龄 3 班级信息表 班级名称 专业名 4 选课信息表 课程号 学号 学分 5 学生成绩表 学号 姓名 班级 课程名 学分 数据中涉及的视图定义如下 1 视图 1 学号 课程号 课程名 学分 2 视图 2 COUNT 课程记录 课程号 SUM VAL 课程记录 学分 3 选课信息 学号 课程名 姓名 成绩 学分 班级名称 用到表 学生基本信息表 学生选课信息表 学生成绩表 4 学生详细信息 班级名 学号 性别 成绩 课程名 学分 用到表 学生基本信息表 学生成绩表 3 系统分析 处理流程如下图 是 否 开始 学生登陆 密码是否正确 学生窗口 退出系统 1 系统启动 进入欢迎界面后进入主界面 2 在登陆界面 通过身份验证 进入系统 但在这里密码必须正确 3 根扰需要进入你需要的模块 并执行指定模块 4 功能结束 返回主界面 5 退出系统 4 模块设计 1 学生登陆模块 2 成绩管理模块 3 学生选课模块 4 信息查询模块 程序结构图如下 系统子菜单 学生学籍管理系统 学生登录 学生登陆教师登陆管理员登录 选课系统 学生选课 按课 程名 查询 按学 分查 询 查询选课退出 学籍管理系统 系统学生 选课 学生基 本信息 信息浏览 学生信息系统 学生基本信息 基本信息选课信息成绩管理 第第 3 章章 设计及用法说明设计及用法说明 数据库逻辑结构设计数据库逻辑结构设计 在这个学籍管理系统中草药 需要设计 3 个基本表 学生基本信息表 课程 信息表 教师个人信息表 而学生的选课信息 我们需要单独建立一个学生选 课表来保存 由于每个学期我们都要选课 所以我们在选课结束后将这个表保 存到成绩数据表中 在这个系统中我们有三类人员 管理员 教师 学生 所 以我们需要对不同的人员进行密码确认 以防止越权行为 同时也维护了数据 的安全性 在这个系统中我们设计管理员的权限最大 她可以对数据进行修改 老师信息 学生信息进行删除和修改 教师的权限输入学生成绩 且可以更改 学生成绩 而学生仅限于浏览 如浏览选课信息 成绩信息 无法对其进行修 改 而这些学生名和密码需单独保存在一个数据表中 所建表格如下 3 13 1 学生个人信息表学生个人信息表 该表主要用于记录学生个人信息 包括学号 姓名 性别 年龄 家庭住 址 专业 其结构如表 1 所示 表 1 学生基本情况表 列标题列名数据类型宽度是否空 学号SnoChar10NO 姓名SnaChar10NO 性别SexChar10Yes 年龄AgeChar10Yes 家庭住址AddChar10Yes 专业ProChar10Yes 3 23 2 课程表课程表 该表主要用于记录课程信息 包括课程号 课程名 其结构如表 2 所示 表 2 课程表 列标题列名数据类型宽度是否空 课程编号CnoChar10NO 课程名称CnaChar10NO 3 33 3 学生选课表学生选课表 该表主要记录学生的课程成绩 在这个学生选课表中它包括学生学号 课 程编号 以及所对应的成绩 如表 3 所示 表 3 学生选课表 列标题列名数据类型宽度是否空 学号SnoChar10NO 课程编号CnoChar10NO 成绩GradeChar10Yes 3 43 4 学生表学生表 该表用于记录学生的密码和学生名 其结构如表 4 所示 表 4 学生表 列标题列名数据类型宽度是否空 学生名IdChar10NO 密码PdChar10NO 班级表 列标题列名数据类型宽度是否空 专业班号ZybhChar10NO 人数NumChar10Yes 班主任TnaChar10Yes 第第 4 章章 系统调试系统调试 1 学管理系统的录入界面 根据需要选择各项功能键 2 输入与保存学生信息 浏览所有的学生信息 删除学生信息 添加并保存学生信息 实验结果 包括输入数据和输出结果 源程序源程序 学籍管理系统 include include include include include 数据结构 struct zf char no 10 char name 16 char sex 5 char position 20 int age char date 30 学生类 class user private zf g user next public int menu select static int count user user void handle menu user user input user user load user void find user 查找 void find na user 按姓名查找 void find no user 按学号查找 user add user 添加信息 user edit user 修改 void save user 保存信息 void display user 显示信息 void show user user delete user user 删除 friend ostream int user count 0 user user 初始化 next NULL g no 0 g name 0 0 g sex 0 g position 0 g age 0 g date 0 user user if next NULL delete next 主函数 void main user head head new user head handle menu head int user menu select int cn cout n n 学管理系统 endl endl cout t t1 录入与保存学生信息 n cout t t2 浏览学生信息 n cout t t3 删除学生信息 n cout t t4 添加学生信息 n cout t t5 修改学生信息 n cout t t6 查询学生信息 n cout t t7 退出系统 n n cout cn if cn7 cout n t t 输入错误 重选 1 7 else break return cn 菜单处理 void user handle menu user head for switch menu select case 1 head input head cout s for if s 1 save head break if s 2 break else cout s break case 2 display head break case 3 head delete user head break case 4 add head break case 5 head edit head break case 6 find head break case 7 cout g name 0 0 cout n t t 没有记录可存 endl return ofstream out out open user txt ios out if out cout n t t 不能打开文件 endl exit 1 cout n t t 存文件 endl out count n user p head while p NULL out next out close cout n n t count 条纪录已经存入文件 请继续操作 endl 录入函数 user user input user head ifstream in in open user txt ios in ios nocreate if in cout n t t 还没建立学生 退出时请保存文件 count 0 head load head user info star star new user info head while info next NULL info info next head count int j 0 do j head count cout n t t 输入学生 count 1 的信息 当输入 0 时结束 n cout star g no if strcmp star g no 0 0 break cout star g name cout star g sex cout star g position cout star g age cout star g date if head count 0 head star info next star info star star new user while 1 info next NULL return head istream is getline ob g name 16 n is ob g no is ob g name is ob g sex is ob g position is ob g age is ob g date return is ostream os ob g name n os ob g sex n os ob g position n os ob g age n os ob g date n return os 查询函数 void user find user head int cn cout n t t1 按姓名查找 n t t2 按学号查找 n t t3 基本查找 n t t4 退出系统 n cout cn do switch cn case 1 find na head break case 2 find no head break case 3 display head break case 4 exit 0 while cn4 void user find na user head char input 16 user p cout input p head while p NULL if strcmp input p g name 0 cout n 您要查找的信息如下 n next if p NULL cout n t t 没有找到相应的记录 n endl return void user find no user head char input 16 int sum 0 int number 0 user p cout input p head while p NULL if strcmp input p g no 0 cout n t t 您要查找的信息如下 n next if p NULL printf t tnot find n return 浏览 void user display user head if head count 0 cout n t t 现在没有记录 endl return user p p head cout n t 现共有如下 count 条数据 n n cout t 住房号 t 姓名 t 性别 t 职称 t 年龄 t 入住时间 n n for int i 0 icount i cout t g no t g name t g sex t g position t g age t g date next cout endl void user show user p cout t 住房号 t 姓名 t 性别 t 职称 t 年龄 t 入住时间 n cout t g no t g name t g sex t g position t g age t g date next 添加 user user add user head ifstream in in open user txt ios in ios nocreate if in cout t 还没建立学生 退出时请保存文件 count 0 head load head user info star star new user info head while info next NULL info info next cout n t t 请输入要添加的学生信息 n cout star g no cout star g name cout star g sex cout star g position cout star g age cout star g date cout s for if s 1 head count save head break if s 2 break else cout count 0 head star info next star info star star new user info next NULL return head 删除 user user delete user user head char input 30 int cn 0 cout n t t1 通过姓名 cout n t t2 通过学号 cout cn while 1 switch cn case 1 cout n t t 请输入姓名 break case 2 cout n t t 请输入学号 if cn 1 else break cin input user old p p head old head while p NULL if cn 1 show p cout c for if c 1 if p head head p next else old next p next count cout n t t 记录已清空 n return head if count 0 head new user cout n t t 记录已经删空 endl return head else if c 2 return head else cout c else old p p p next cout n t t 没有找到相应的记录 endl return head user user loa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论