C语言课设第二题报告_第1页
C语言课设第二题报告_第2页
C语言课设第二题报告_第3页
C语言课设第二题报告_第4页
C语言课设第二题报告_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

长江大学工程技术学院 C语言课程设计实习报告 学生成绩管理系统学生成绩管理系统 学生姓名 学生姓名 学号 学号 序号 序号 专业班级 专业班级 指导老师 指导老师 报告日期 报告日期 学生成绩管理系统学生成绩管理系统 1 问题的提出 首先 因为我做的题目有两个文本文档 所以刚开始时我不知所措 当别的同学做一个文档的程序时 我还在考虑我应该做几个 应该怎么做 其次 在做程序的过程中有很多处细节没有注意 导致最后程序的执 行出现问题 再次 由于平时对基础掌握的不够牢固 导致编写程序时出现瓶颈 2 功能要求 在主函数中读入原始数据文件的内容 保存在对应的结构体数组中 然后显示菜单 利用菜单调用各个函数 分别完成如下功能 1 对学生成绩信息实现查询和显示功能 按学生的姓名查询的详细信 1 息按照学生性别查询学生的信息 显示全部物品信息 将满足查询 2 条件的整条记录显示在屏幕上 2 计算每位同学的总成绩 并重写在另一个文本文件中 3 对学生成绩信息实现排序功能 按姓名排序按总成绩排序 将排 1 2 序后的结果显示在屏幕上 要求实现两种排序方式 4 实现学生成绩信息的添加功能 在录入新的学生信息前 先判断该生 的学号是否存在 如果存在 则可进行数据的录入 如果不存在 则 提示不能进行添加操作 5 实现删除功能 先输入学生的学号 若系统中有次学生信息 则删除 该生信息 若无此生信息 则提示系统无此学生信息 6 实现修改功能 现输入要修改的学生学号 如果该生存在 则根据需 要 修改学生的相关信息 若不存在 则提示系统中无此生信息 7 计算每个学生的加权平均数 英语的学分为 5 数学的学分为 4 C 语言的学分为 4 5 物理的学分为 3 加权平均数的小位数保留两位 8 退出功能 课程设计题目功能课程设计题目功能 1 系统功能模块框图设计 2 数据结构说明 include 函数名 printf scanf puts 等的使用 include 比较两个字符串 等功能的使用 include 分配 size 字节的存储区 功能的使用 define N 20 将 N 的值定义为 8 struct stu 定义一个结构体 里面包含xh xm xb csny yy sx C wl zcj并定义一个结构体数组变量 stu 10 char xh 10 学生学号 char xm 10 学生姓名 char xb 10 学生性别 char csny 10 学生出生年月 float yy 学生英语成绩 float sx 学生数学成绩 主菜单 信息查询 计算总成绩 姓名排序和 总成绩排序 添加功能 删除功能 修改功能 计算加权平均数 退出 float C 学生 C 语言成绩 float wl 学生物理成绩 float zcj 学生总成绩 stu 10 结构体数组变量 void main 定义主函数 readfile 执行函数 readfile menu 执行函数 menu 3 详细设计 1 实现学生信息的查询功能 定义函数 cjcx 其功能是从键盘上输入数据与结构体中的数据进行比较判断 判断后 输 出相同学生的所有信息 最后在主函数中调用 并将查询后的结果显示在屏幕上 2 实现计算每位同学的总成绩功能 定义函数 zcj 其功能就是以写的方式新建一个文本文件 以 for 循环计算每位同学的 总 成绩 并写入新建的文本中 3 实现物品信息的排序功能 定义函数 px 其功能就是按程序要求的学生姓名对学生进行排序和学生总成绩对学生 进行排序 并将排序后的结果显示在屏幕上 4 实现学生信息的添加功能 定义函数 tj 其功能就是将满足条件的学生信息加入该文件中 如果该生的学号已 存在 则提示不能进行添加操作 5 实现学生信息的删除功能 定义函数 sc 其功能就是先查询出要删除的学生学号 然后判断该生是否存在 若 存在则进行操作 删除该生的信息 不存在则提示无此生信息 6 实现学生信息的修改功能 定义函数 xg 其功能就是先查询出要修改的学生学号 然后选择要修改的信息 并 输入新的字段信息 完成其修改能 7 实现计算每个学生的加权平均数功能 定义函数 jqpjs 其功能就是按照题目的要求按学分计算加权平均数 然后依次计算 每个学生的加权平均数 并输出 系统流程图系统流程图 输入错误 重新操作 结束 zcj cx px readfile xg sc tj 执行查询功能 执行计算总成绩功能 执行排序功能 执行修改功能 执行删除功能 执行添加功能 开始 main 1 0 0 1 0 1 0 1 0 1 0 1 jqpjs 执行计算加权平均数功 能 tu 执行退出功能 cx 学生姓名和性别 flay 输出学生信息 输入有误 不存在该生信息 1 0 函数函数 cx 的流程图的流程图 px 姓名 总成绩 i 0 i N 1 i t stu k stu i 排序结果 函数函数 px 的流程图的流程图 zcj 函数函数 zcj 的流程图的流程图 以 W 的方式在新 建的文本中写入 for i 0 i N 1 i 0 在新建的文本中写入学生成绩 关闭文件 程序执行结束 tj flog 0 if strcmp a stu i xh 0 输入学号有误 请再次输入 请输入要添加的性别 输出添加过后的程序 请输入要添加的学生姓名 请输入要添加的出生年月 请输入要添加的成绩 函数函数 tj 的流程图的流程图 sc flog 0 输入有误 if strcmp a stu i x m 0 删除该生信息 输出删除后的函数 程序结束 结构体后面 成员往前面覆盖 函数函数 sc 的流程图的流程图 xg flog 0 没有该生信息 if strcmp a stu i xh 0 输入修改后的学生姓名 输入修改后的学生成绩 输入修改后的学生出生年月 输入修改后的学生性别 输入修改后的程序 函数函数 xg 的流程图的流程图 jqpjs double aver 15 i 0 i N i 分别计算每个 学生的加权平均数 输出计算后的程序 函数函数 jqpjs 的流程图的流程图 调试与测试调试与测试 图 图 1 程序主菜单 程序主菜单 图 图 2 输入 输入 1 后执行查询功能 并查询后的结果后执行查询功能 并查询后的结果 图 图 3 输入 输入 2 执行计算总成绩功能执行计算总成绩功能 图 图 4 输入 输入 3 后执排序功能 有姓名和总成绩排序后执排序功能 有姓名和总成绩排序 图 图 5 输入 输入 4 执行添加功能执行添加功能 图 图 6 输入 输入 5 删除功能 并删除后的结果删除功能 并删除后的结果 图 图 7 输入 输入 6 执行修改功能执行修改功能 图 图 8 输入 输入 7 执行计算加权平均数功能执行计算加权平均数功能 课程设计总结课程设计总结 感觉短短几天课程设计就结束了 刚开始对这样一个陌生的事物产生了 浓厚的兴趣 但在做课程设计的过程中复杂的程序内容往往令我不知所措 再 加上其他学校的同学早已经回家 导致我一度产生了抵触情绪 但我很快清醒 过来 通过在做程序的过程中不断看其他同学写的程序 再向别人请教 甚至 请其他班会做的同学手把手教我 我渐渐的恢复了信心 在接下来的课程中我 虽然遇到许多困难 但还是坚持了下来 在本次课程设计的过程中我还是遇到了许多问题 首先 最令人头痛的 是一些小失误 这些问题往往导致整条程序出现问题 但这些问题的找出却又 十分的烦琐 所以在以后的编程中一定不要粗心大意 其次 在打开编程环境 的过程中往往会出现与文本对应不上的事情发生 导致程序打不开 或是打开 错误 再次 在执行函数循环的过程中往往会出现函数循环错误 还有 在对 各个函数执行先后的问题上 我出现过一点错误 在这次课设里 在跟老师和同学的交流中学到了许多东西 对 C 语言后 续的课程也有了浓厚的兴趣 同时对自己能在计算机编程领域的道路上走下去 游了更足的信心 通过本次课设 我清楚的知道了 printf scanf puts 等函数名的使用方 法 知道了关于程序设计开发的整体思维方法的理解 巩固了 for 循环 while 循环等循环的使用技巧 总之 在以前课程的学习中一些不懂和不清楚的地方 在这次的课程设计中我重新来了一次回顾 有了一次更清楚的了解 附录 调试与测试 include include include define N 20 struct stu char xh 10 char xm 10 char xb 10 char csny 10 float yy float sx float C float wl float zcj stu 10 void one 调用的打开文本函数 int i FILE fp fopen D jyz61101 txt txt r if fp NULL printf can not open file for i 0 i N i fscanf fp s s s s f f f f stu i xh stu i xm stu i xb stu i csny void readfile int i FILE fp fopen D jyz61101 txt txt r if fp NULL printf can not open file for i 0 i N i fscanf fp s s s s f f f f stu i xh stu i xm stu i xb stu i csny printf 学号 姓名 性别 出生年月 英语 数学 C 语言 物理 总成绩 for i 0 i N i printf s 8s 5s 1s 9 1f 9 1f 9 1f 9 1f n stu i xh stu i xm stu i xb stu i csny stu i yy stu i sx stu i C stu i wl fclose fp void cjcx 学生成绩查询 int i flag 1 char a 10 char b 10 printf 请输入要查询的姓名和性别 scanf s s a b printf n for i 0 i N i if strcmp a stu i xm 0 printf s 8s 5s 1s 9 1f 9 1f 9 1f 9 1f n stu i xh stu i xm stu i xb stu i csny stu i yy stu i sx stu i C stu i wl flag 0 break if flag printf 对不起 您的输入有误 不存在您输入的学生信息 n void zcj 学生总成绩 int i char str 学号 姓名 性别 出生年月 英语 数学 C 语言 物理 总成绩 FILE fo fopen D jyz1 txt txt w if fo NULL printf can not open file one printf 学号 姓名 性别 出生年月 英语 数学 C 语言 物理 总成绩 n for i 0 i N i stu i zcj stu i sx stu i yy stu i C stu i wl printf s 8s 5s 1s 9 1f 9 1f 9 1f 9 1f 9 1f n stu i xh stu i xm stu i xb stu i csny stu i yy stu i sx stu i C stu i wl stu i zcj fputs str fo for i 0 i N i stu i zcj stu i sx stu i yy stu i C stu i wl fprintf fo n s 8s 5s 1s 9 1f 9 1f 9 1f 9 1f 9 1f n stu i xh stu i xm stu i xb stu i csny stu i yy stu i sx stu i C stu i wl stu i zcj fclose fo void px 排序功能 int i j k 按学生姓名排序 struct stu t printf 按学生姓名排序 n printf n for i 0 i N 1 i k i for j i 1 j0 k j t stu k stu k stu i stu i t printf 学号 姓名 性别 出生年月 英语 数学 C 语言 物理 总成绩 for i 0 i N i stu i zcj stu i yy stu i sx stu i C stu i wl printf s 8s 5s 1s 9 1f 9 1f 9 1f 9 1f 9 1f n stu i xh stu i xm stu i xb stu i csny stu i yy stu i sx stu i C stu i wl st u i zcj printf n n 按总成绩排序 printf 按学生总成绩排序 n printf n for i 0 i N 1 i k i for j i 1 j N j if stu k zcj stu j zcj k j t stu k stu k stu i stu i t printf 学号 姓名 性别 出生年月 英语 数学 C 语言 物理 总成绩 for i 0 i N i stu i zcj stu i yy stu i sx stu i C stu i wl printf s 8s 5s 1s 9 1f 9 1f 9 1f 9 1f 9 1f n stu i xh stu i xm stu i xb stu i csny stu i yy stu i sx stu i C stu i wl st u i zcj void tj 添加学生功能 int i int flag 1 char a 10 printf 请输入您要添加的学生学号 scanf s a printf n for i 0 i N i if strcmp a stu i xh 0 printf 您输入的学号已存在 请再次输入 break if flag printf 请输入学生学号 scanf s stu 10 xh printf 请输入学生姓名 scanf s stu 10 xm printf 请输入学生性别 scanf s stu 10 xb printf 请输入学生出生年月 scanf s stu 10 csny printf 请输入学生英语成绩 scanf f printf 请输入学生数学成绩 scanf f printf 请输入学生 C 语言成绩 scanf f printf 请输入学生物理成绩 scanf f printf 学号 姓名 性别 出生年月 英语 数学 C 语言 物理 总成绩 stu 10 zcj stu 10 yy stu 10 sx stu 10 C stu 10 wl printf s 7s 5s 1s 8 1f 8 1f 9 1f 8 1f 8 1f n stu 10 xh stu 10 xm stu 10 xb stu 10 csny stu 10 yy stu 10 sx stu 10 C stu 10 wl stu 10 zcj void sc 删除学生信息 int i j char a 10 int flag 0 FILE fp fopen D jyz61101 txt txt r if fp NULL printf can not open file for i 0 i 10 i fscanf fp s s s s f f f f stu i xh stu i xm stu i xb stu i csny printf 输入要删除信息的学生的姓名 scanf s a for i 0 i N i if strcmp a stu i xm 0 for j i j N j stu j stu j 1 printf 学号 姓名 性别 出生年月 英语 数学 C 语言 物理 总成绩 n for i 0 i N i stu i zcj stu i yy stu i sx stu i C stu i wl printf s 8s 5s 1s 9 1f 9 1f 9 1f 9 1f 9 1f n stu i xh stu i xm stu i xb stu i csny stu i yy stu i sx stu i C stu i wl stu i zcj flag 1 break if flag printf 输入错误 n void xg 修改学生信息 int i char a 10 int flag 1 FILE fp fopen D jyz61101 txt txt a if fp NULL printf can not open file for i 0 i N i fscanf fp s s s s f f f f stu i xh stu i xm stu i xb stu i csny printf 输入要修改信息的学生的学号 scanf s a for i 0 i N i if strcmp a stu i xh 0 printf 姓名 scanf s stu i xm printf 性别 scanf s stu i xb printf 出身年月如 1991 年 1 月 scanf s stu i csny printf 英语 scanf f printf 数学 scanf f printf c 语言 scanf f printf 物理 scanf f stu i zcj stu i yy stu i sx stu i C stu i wl printf 学号 姓名 性别 出生年月

温馨提示

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

评论

0/150

提交评论