班级成绩管理系统_第1页
班级成绩管理系统_第2页
班级成绩管理系统_第3页
班级成绩管理系统_第4页
班级成绩管理系统_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

武武汉汉轻轻工工大大学学 数计学院 C C 语言课程设计报告语言课程设计报告 班级 计算机类 1307 班 学号 1305110009 姓名 韩晶 指导教师 贾瑜 日期 2014 年 6 月 18 日 一 实验目的 1 在编辑应用程序过程中 逐步加深对 C 语言编程的理解 2 加强实践的能力 动手能力 同时进一步对所学的知识进行巩固 3 培养初步编程的能力 为以后的学习奠定基础 二 实验内容 运用所学的 C 语言知识编辑应用程序 班级成绩管理系统以及运动 的时钟 三 系统软件环境 本程序主要运行在 Visual C 6 0 Turbo C C 3 0 四 课程设计题目 1 1 必做题 班级成绩管理系统必做题 班级成绩管理系统 对一个有 N 个学生的班级 每个学生有 M 门课程 该系统实现对班 级成绩的录入 显示 修改 排序 保存 查询等操作的管理 功 能要求 1 本系统采用一个结构体数组 每个数据的结构应当包括 学号 姓名 M 门课程名称 2 本系统显示这样的菜单 请选择系统功能项 a 成绩录入 b 成绩显示 c 成绩保存 d 成绩排序 e 成绩修改 要求先输入密码 f 成绩统计 1 显示每门课程成绩最高的学生的基本信息 2 显示每门课程的平均成绩 柱状图显示 3 显示超过某门课程平均成绩的学生人数 4 显示某门课程每个分数段区间的人数 用饼状图显示 g 退出系统 3 执行一个具体的功能之后 程序将重新显示菜单 4 将学生成绩保存到文件中 五 数据结构设计描述 一 班级成绩管理系统 六 源程序 一 班级成绩管理系统 include include include include include define COURSES 3 定义科目数 define LEN sizeof student 定义结构体大小 枚举返回值情况 enum status 添加显示查找修改删除排序存档读档退出 主函数 菜单函数 OVERFLOW 1 内存 溢出 问题 DONE 0 成功 NOFOUND 1 不存在 OPENFAIL 2 打开 文件 失败 BACK 3 返回 end 定义学生信息结构体 typedefstructStudentInfo 数据域 unsigned intnum 学号 char name 11 姓名 float scores COURSES 各科成绩 指针域 structStudentInfo next 存放下一节点的地址 student end student head NULL 声明链表头结点 student curr NULL 声明指向当前节点的指针 int total 0 声明当前节点个数 intinit 初始化链表 intadd stu 添加新节点 intshow all 显示所有学生信息 intfind stu 查找指定信息节点 intmodify stu 修改指定信息节点 intremove stu 删除指定信息节点 intsort list 对链表排序 intsave to file 将所有信息保存至文件 intread from file 从文件中读取信息 int picture 画分布图 int quit 释放所有节点空间 int entering student input 录入学生信息 void menu void show stu student show int serial 显示指定学生信息 void start 程序开始界面 void change student former student latter student temp 交换两个节点的数据域 void main int h flag1 flag2 char name 20 hyw password 10 hyw char person 20 password1 10 printf t t 欢迎进入学生成绩管理系统 n n printf t t t 用 户 登 录 n n for h 0 h 5 printf t t t t 用户名 gets person flag1 strcmp person name printf t t t t 密码 gets password1 flag2 strcmp password password1 if flag1 0 menu break else printf t t t 用户名或密码错误 n n printf t t t 请注意 您还剩 d 次机会 n n 4 h h if h 5 printf 对不起 您输入的用户名或密码有误 已被强制退出 n void menu int choice 0 init while 1 system cls 清屏 start printf 请选择 scanf d fflush stdin 清空缓冲区 switch choice case 1 add stu break case 2 show all break case 3 find stu break case 4 modify stu break case 5 remove stu break case 6 sort list break case 7 save to file break case 8 read from file break case 9 picture break case 0 quit exit 0 break default break system pause 暂停批文件的处理并显示消息 intinit head student malloc LEN 为头结点申请空间 if head 如果申请空间失败 返回 return OVERFLOW head next NULL 指向下一节点 空 curr head next 当前节点指针指向第一个结点 total 0 当前节点个数初始化为 0 头结点不计算在内 return DONE 功能 头插法添加新节点 并刷新学生人数 intadd stu student add student malloc LEN curr head next 当前节点指针指向第一个节点 printf t 当前已存入 d 个同学 n total printf 请输入第 d 个学生的信息 n total 1 if BACK entering add free add return BACK head next add 头结点指针域指向新建的节点 add next curr 新建节点指针域指向第一个节点 curr add 当前节点指向新建的节点 total 1 更新学生总人数 return DONE 功能 显示所有学生信息 intshow all if 0 total printf t 没有可供显示的学生信息 n return NOFOUND curr head next 当前节点指针指向第一个节点 printf t 4s 12s 12s 序号 学号 姓名 for int m 0 m COURSES m printf 7s 科目 printf n printf t n for inti 1 inext 当前节点指针后移 printf t n return DONE 功能 查找指定学生信息 intfind stu charstu name 11 int flag 1 printf 请输入要查找的学生姓名 scanf s stu name curr head next 指向第一个节点 while curr NULL if strcmp stu name curr name 0 printf t 4s 12s 12s 序号 学号 姓名 for int m 0 mnext flag printf t 没有找到 s 请仔细核对姓名再查找 n stu name return NOFOUND 功能 修改指定学生的所有信息 intmodify stu charstu name 11 int flag 1 curr head next 指向第一个节点 printf 请输入要修改的学生的姓名 scanf s stu name while curr NULL if strcmp stu name curr name 0 printf t 4s 12s 12s 序号 学号 姓名 for int m 0 mnext flag printf t 没有找到 s 请仔细核对姓名 n stu name return NOFOUND 功能 删除指定学生 intremove stu student pre head charstu name 11 curr head next 指向第一个节点 printf 请输入要删除的学生的姓名 scanf s stu name while curr NULL if strcmp stu name curr name 0 pre next curr next free curr total printf t 已成功删除 s n stu name return DONE pre pre next curr curr next printf t 没有找到 s 请仔细核对姓名 n stu name return NOFOUND 功能 对所有学生排序 intsort list student temp student malloc LEN student curr i head next student curr j NULL char choice 0 printf t t1 按学号排序 t2 按姓名排序 n printf t t3 按科目排序 t0 退 出 排 序 n printf 请选择 scanf c fflush stdin switch choice case 1 while curr i next NULL curr j curr i next while curr j NULL if curr i num curr j num change curr i curr j temp curr j curr j next curr i curr i next printf t 排序成功 n break case 2 while curr i next NULL curr j curr i next while curr j NULL if strcmp curr i name curr j name 0 change curr i curr j temp curr j curr j next curr i curr i next printf t 排序成功 n break case 3 while curr i next NULL curr j curr i next while curr j NULL if curr i scores 0 scores 0 change curr i curr j temp curr j curr j next curr i curr i next printf t 排序成功 n break case 0 free temp return BACK default printf t 输入有误 n break free temp return DONE 功能 保存数据到文件 intsave to file curr head next if total 0 printf t 目前还没有任何信息 不用保存 n return BACK FILE fp if fp fopen record dat wb NULL printf t 文件打开失败 n return OPENFAIL while curr NULL 将数据成块写入文件 fwrite char curr LEN 1 fp curr curr next fclose fp printf t 信息已成功保存至文件 record dat 文件中 n return DONE 功能 从文件中读取数据 intread from file char judge y FILE fp if fp fopen record dat r NULL printf 文件不存在或者打开失败 n return OPENFAIL printf t 读取文件会覆盖当前信息 是否确定载入文件 y n scanf c if judge n judge N return BACK quit 释放以前所有信息的空间 init 重新初始化链表 curr head 当前节点指针指向头结点 student add student malloc LEN 申请空间存放读取的信息 while fread char add LEN 1 fp 由于存储的信息是最新的信息在前 所以读取的时 候将其添加在链表尾 add next curr next curr next add curr add add student malloc LEN total fclose fp printf t 文件载入成功 当前已有 d 个学生 n total return DONE 功能 释放内存 int quit curr head next student temp curr while curr NULL temp curr next free curr curr temp curr NULL temp NULL free head 释放头节点 return DONE 功能 录入一个学生的全部信息 int entering student input printf n 请输入学生的学号 输入 0 退出添加 scanf d if 0 input num return BACK printf 请输入学生的姓名 五个汉字以内 scanf s printf 请输入 d 门科目的成绩 用空格隔开 COURSES for inti 0 iscores i return DONE 功能 显示指定学生的所有信息 voidshow stu student show int serial printf t 4d 12d 12s serial show num show name for inti 0 iscores i printf n 功能 根据权限进入不同的界面 void start printf n printf t t t 欢迎使用学生成绩管理系统 n printf t n printf t t1 添 加 学 生 t2 显 示 信 息 n printf t t3 查 找 学 生 t4 修 改 信 息 n printf t t5 删 除 学 生 t6 学 生 排 序 n printf t t7 信 息 存 档 t8 读 取 存 档 n printf t t9 成 绩 统 计 t0 退 出 n printf t n void change student former student latter student temp temp former strcpy former name latter name strcpy latter name temp name former num latter num latter num temp num for inti 0 iscores i latter scores i latter scores i temp scores i voidbing double a doubleb int c initgraph 640 480 doublex y char s A 100 80 红 B 80 60 蓝 C 60 0 黑 x a a b c 6 y a b a b c 6 circle 320 240 160 setfillcolor BLUE fillpie 160 80 480 400 0 y setfillcolor RED fillpie 160 80 480 400 0 x outtextxy 160 40 s getch closegraph voidzhu float a floatb float c initgraph 640 480 setcolor YELLOW line 200 350 600 350 line 200 350 200 50 line 190 60 200 50 line 210 60 200 50 line 590 340 600 350 line 590 360

温馨提示

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

最新文档

评论

0/150

提交评论