C课程设计报告(学生信息管理系统).doc_第1页
C课程设计报告(学生信息管理系统).doc_第2页
C课程设计报告(学生信息管理系统).doc_第3页
C课程设计报告(学生信息管理系统).doc_第4页
C课程设计报告(学生信息管理系统).doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

课 程 设 计 报 告 课程名称课程名称 C 语言程序设计语言程序设计 课题名称课题名称 学生信息管理系统学生信息管理系统 专专 业业 电气工程及其自动化电气工程及其自动化 班班 级级 1086 班班 学学 号号 201013010632 姓姓 名名 周铁周铁 指导教师指导教师 彭祯彭祯 刘琤刘琤 郭芳郭芳 2011 年年 6 月月 20 日日 2 湖南工程学院 课 程 设 计 任 务 书 课程名称 C 课程设计 课 题 学生信息管理系统 专业班级 电气 1086 班 学生姓名 周铁 学 号 201013010632 指导老师 彭祯彭祯 刘琤刘琤 郭芳郭芳 审 批 任务书下达日期 2011 年 6 月 20 日 任务完成日期 2011 年 7 月 1 日 3 目录 一 题目总体介绍一 题目总体介绍 4 二 需求分析二 需求分析 5 三 总体设计三 总体设计 6 1 现行系统组织结构图 现行系统组织结构图 6 2 数据结构分析 数据结构分析 6 3 工作原理等 工作原理等 6 三 详细设计三 详细设计 6 四 系统调试与结果分析四 系统调试与结果分析 19 六 总结六 总结 22 七 附件七 附件 22 参考文献 23 4 一 题目总体介绍 一 一 课程设计题目 课程设计题目 学生信息管理 二 课程设计内容与主要功能 课程设计内容与主要功能 设计与开发一个学生信息管理系统 对学生的学号 姓名 性别 年龄等基 本信息进行管理 主要功能如下 1 输入记录 2 显示全部记录 3 查找记录 4 删除记录 5 插入记录 6 保存文件 7 读文件 8 按学号显示记录 9 按姓名排序 三 三 目的与要求 目的与要求 1 目的 1 要求学生达到熟练掌握 C 语言的基本知识和技能 2 基本掌握 C 语言程序设计的基本思路和方法 3 能够利用所学的基本知识和技能 解决简单的 C 语言程序设计问题 2 基本要求 1 设计正确 方案合理 2 界面友好 使用方便 3 程序精炼 结构清晰 3 创新要求 在基本要求达到后 可进行创新设计 如根据查找结果进行修改的功能 4 写出设计说明书 四 四 设计方法和基本原理 设计方法和基本原理 5 1 问题描述 功能要求 1 能够从屏幕上读取一个学生的信息并将信息存入到数据文件中 2 能够将指定的信息从文件中删除 3 能够按学号 姓名 性别 年龄对学生的信息进行检索并将检索结 果显示在屏幕上 4 如果检索不到相应的信息应提示用户 2 问题的解决方案 根据系统功能要求 可以将问题解决分为以下步骤 1 写出需求分析 做什么 2 分析系统中的各个实体之间的关系及其属性和行为 3 根据问题描述 设计系统的类层次 4 完成类层次中各个类的描述 包括属性和方法 5 完成类中各个成员函数的定义 6 用户界面的设计 7 分析系统功能模块 系统流程图 8 代码编写 功能调试 9 完成系统总结报告以及系统使用说明书 二 需求分析 1 能够从屏幕上读取一个学生的信息并将信息存入到数据文件中 2 能够将指定的信息从文件中删除 3 能够按学号 姓名 性别 年龄对学生的信息进行检索并将检索结 果显示在屏幕上 7 如果检索不到相应的信息应提示用户 三 总体设计 6 1 1 现行系统组织结构图 现行系统组织结构图 2 2 数据结构分析 数据结构分析 使用整型 双精度 字符型定义变量和函数 使用结构体 类等概念实现数 据存储 同时也是用这些自定义类型定义了变量和函数 体现面向对象设计的特 点 开始 选择菜单序号 1 输 入 记 录 2 显 示 记 录 3 查 找 记 录 4 删 除 记 录 5 插 入 记 录 6 保 存 记 录 7 读 文 件 0 退 出 按要求逐 步输入学 生信息 把当前学 生信息拷 贝到后一 条 1 学号查询 姓名查找 2 保存 输入学 生信息 退出 保存 8 按 学 号 显 示 记 录 9 按 姓 名 排 序 7 3 3 工作原理等 工作原理等 系统功能结构图 主程序 初 始 化 程 序 菜 单 程 序 查 找 记 录 删 除 记 录 插 入 记 录 保 存 记 录 输 入 记 录 显 示 记 录 退 出 读 文 件 按 学 号 显 示 记 录 按 姓 名 排 序 8 四 详细设计 1 1 类设计 类设计 类 student 数据成员 学号 姓名 性别 年龄 类 school 成员函数 输入记录函数 enter 输入编号到计算机中 显示记录函数 list 显示全部输入的内容 如学号 姓名 性别 年龄等 按姓名查找显示记录函数 search 按学号或姓名查找学生的信息 删除记录函数 delete 删除指定学号学生信息 插入记录函数 add 插入指定学号学生信息 记录保存为文件函数 save 将学生信息保存为文件函数 从文件中读记录函数 load 从文件中读出学生信息 按序号查找显示记录函数 display 按序号查找学生信息 按姓名排序函数 sort 按学生姓名排序 文件复制函数 copy 将文件复制 显示单条记录函数 print STUDENTS temp 显示单条学生信息 查找函数 find STUDENTS t int n char s 查找学生信息 输出函数 menu select 输出学生信息 五 系统调试与结果分析 1 1 初始目录 初始目录 2 2 输入数据 输入数据 3 3 显示所有记录 显示所有记录 9 4 4 查找记录 查找记录 5 5 删除记录 删除记录 6 6 插入记录 插入记录 7 7 按姓名排序 按姓名排序 8 8 复制信息 复制信息 9 9 按序号排序 按序号排序 2 2 系统运行的结果 系统运行的结果 设计特点和不足之处 系统整体清晰明了 功能基本齐全 但系统中报错功能不完整 当学号等信息输 入数字等时不出现报错 可设置提醒重新输入 10 六 总结 1 在做了课程实验以后 我对 C 语言的了解更深了 很多知识得到了巩 固 一些不懂的知识也渐渐明了 但从 C 语言这门课程开始 已发现程 序 设计的乐趣 在学习 C 语言的过程中也学到了许多计算机应用基础知识 对计 算机的机体也有了一个大体的了解 2 作了学生学生信息管理系统程序后 我对数据类型 函数 指针 结 构体更加熟悉了 作为 C 语言所特有得指针 结构体和对象再编写程 序得过程中运用十分广泛 我还必须多加练习才能达到一个更高的水 平 结构体和对象 指针都是非常重要的 3 这次实训是彭祯老师给了很大引导 经过自己的改写 实现要 求 先做简单的输出 一步步的再做其它图案 在实际操作过程中犯 的一些错误还会有意外的收获 感觉实训很有意思 在具体操作中对 这学期所学的 C 语言的理论知识得到巩固 达到实训的基本目的 也 发现自己的不足之出 在以后的上机中应更加注意 同时体会到 C 语 言具有的语句简洁 使用灵活 执行效率高等特点 发现上机实训的 重要作用 特别是对数组和循环有了深刻的理解 4 在完完整整的做完一个课程实验后 我对程序的整体性有了一个明确 的认识 做一个程序必须要注意程序前后的联系 要具有清晰的思路 程序要具有层次 对整体性的把握至关重要 11 5 学习计算机语言 最重要的就是上机操作 我深感自己动手能力比较 差 在以后的学习中 还必须多多上机调试程序 从实践中多积累经 验 为以后学习和工作打下坚实的基础 七 附件 头文件 h include I O 函数 include 标准库函数 include 字符串函数 include 字符操作函数 define M 50 定义常数表示记录数 typedef struct 定义数据结构 char no 20 学号 char name 20 姓名 12 char sex 5 性别 int age 年龄 STUDENTS 以下是函数原型 int enter STUDENTS t 输入记录 void list STUDENTS t int n 显示记录 void search STUDENTS t int n 按姓名查找显示记录 int delete STUDENTS t int n 删除记录 int add STUDENTS t int n 插入记录 void save STUDENTS t int n 记录保存为文件 int load STUDENTS t 从文件中读记录 void display STUDENTS t 按序号查找显示记录 void sort STUDENTS t int n 按姓名排序 void copy 文件复制 void print STUDENTS temp 显示单条记录 int find STUDENTS t int n char s 查找函数 int menu select 主菜单函数 主函数开始 main STUDENTS stu M 定义结构体数组 int length 保存记录长度 clrscr 清屏 for 无限循环 switch menu select 调用主菜单函数 返回值整数作开关语句的 条件 case 0 length enter stu break 输入记录 case 1 list stu length break 显示全部记录 13 case 2 search stu length break 查找记录 case 3 length delete stu length break 删除记录 case 4 length add stu length break 插入记录 case 5 save stu length break 保存文件 case 6 length load stu break 读文件 case 7 display stu break 按序号显示记录 case 8 sort stu length break 按姓名排序 case 9 copy break 复制文件 case 10 exit 0 如返回值为 11 则程序结束 菜单函数 函数返回值为整数 代表所选的菜单项 menu select char s 80 int c gotoxy 1 25 将光标定为在第 25 行 第 1 列 printf press any key enter menu n 提示压任意键继续 getch 读入任意字符 clrscr 清屏 gotoxy 1 1 printf MENU n n printf 0 Enter record n printf 1 List the file n printf 2 Search record on name n printf 3 Delete a record n printf 4 add record n printf 5 Save the file n printf 6 Load the file n 14 printf 7 display record on order n printf 8 sort to make new file n printf 9 copy the file to new file n printf 10 Quit n printf n do printf n Enter you choice 0 10 提示输入选项 scanf s s 输入选择项 c atoi s 将输入的字符串转化为整型数 while c10 选择项不在 0 11 之间重输 return c 返回选择项 主程序根据该数调用相应的函数 输入记录 形参为结构体数组 函数值返回类型为整型表示记录长度 int enter STUDENTS t int i n char s clrscr 清屏 printf nplease input num n 提示信息 scanf d 输入记录数 printf please input record n 提示输入记录 printf no name sex age n printf n for i 0 i n i scanf s t i no scanf s t i name scanf s t i sex scanf d 15 return n 返回记录条数 显示记录 参数为记录数组和记录条数 void list STUDENTS t int n int i clrscr printf n n STUDENTS n printf no name sex age n printf n for i 0 in 1 如果整数 i 值大于 n 1 说明没找到 printf not found n 16 else print t i 找到 调用显示函数显示记录 显示指定的一条记录 void print STUDENTS temp clrscr printf n n n printf no name sex age n printf n printf 20s 20s 10s 10d n temp no temp name temp sex temp age printf end n 查找函数 参数为记录数组和记录条数以及姓名 s int find STUDENTS t int n char s int i for i 0 i n i 从第一条记录开始 直到最后一条 if strcmp s t i name 0 记录中的姓名和待比较的姓名是否相等 return i 相等 则返回该记录的下标号 程序提前结结束 return i 返回 i 值 删除函数 参数为记录数组和记录条数 int delete STUDENTS t int n char s 20 要删除记录的姓名 int ch 0 int i j 17 printf please deleted name n 提示信息 scanf s s 输入姓名 i find t n s 调用 find 函数 for i i j 从最后一个结点开始向后移动一条 18 strcpy t j 1 no t j no 当前记录的学号拷贝到后一条 strcpy t j 1 name t j name 当前记录的姓名拷贝到后一条 strcpy t j 1 sex t j sex 当前记录的性别拷贝到后一条 t j 1 age t j age 当前记录的年龄拷贝到后一条 strcpy t i no temp no 将新插入记录的学号拷贝到第 i 个位置 strcpy t i name temp name 将新插入记录的姓名拷贝到第 i 个位置 strcpy t i sex temp sex 将新插入记录的性别拷贝到第 i 个位置 t i age temp age 将新插入记录的年龄拷贝到第 i 个位置 n 记录数加 1 return n 返回记录数 保存函数 参数为结构体数组和记录数 void save STUDENTS t int n int i FILE fp 指向文件的指针 if fp fopen record txt wb NULL 打开文件 并判断打开是否 正常 printf can not open file n 没打开 exit 1 退出 printf nSaving file n 输出提示信息 fprintf fp d n 将记录数写入文件 fprintf fp r n 将换行符号写入文件 for i 0 i n i fprintf fp 20s 30s 10s 19 10d t i no t i name t i sex t i age 格式写入记录 fprintf fp r n 将换行符号写入文件 fclose fp 关闭文件 printf save success n 显示保存成功 读入函数 参数为结构体数组 int load STUDENTS t int i n FILE fp 指向文件的指针 if fp fopen record txt rb NULL 打开文件 printf can not open file n 不能打开 exit 1 退出 fscanf fp d 读入记录数 for i 0 i 0 移动文件指针到该记录位置 print t id 调用输出函数显示该记录 printf r n else printf no d number record n id 如果序号不合理显示信息 fclose fp 关闭文件 排序函数 参数为结构体数组和记录数 void sort STUDENTS t int n int i j flag STUDENTS temp 临时变量做交换数据用 for i 0 i n i flag 0 设标志判断是否发生过交换 for j 0 j0 比较大小 21 temp t j t j t j 1 t j 1 temp flag if flag 0 break 如果标志为 0 说明没有发生过交换循环结束 printf sort sucess n 显示排序成功 复制文件 void copy char outfile 20 目标文件名 int i n STUDENTS temp M 定义临时变量 FILE sfp tfp 定

温馨提示

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

评论

0/150

提交评论