学籍管理系统C语言实训报告

上传人:pu****.1 文档编号:561280411 上传时间:2023-09-05 格式:DOC 页数:40 大小:1.10MB
返回 下载 相关 举报
学籍管理系统C语言实训报告_第1页
第1页 / 共40页
学籍管理系统C语言实训报告_第2页
第2页 / 共40页
学籍管理系统C语言实训报告_第3页
第3页 / 共40页
学籍管理系统C语言实训报告_第4页
第4页 / 共40页
学籍管理系统C语言实训报告_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《学籍管理系统C语言实训报告》由会员分享,可在线阅读,更多相关《学籍管理系统C语言实训报告(40页珍藏版)》请在金锄头文库上搜索。

1、精选优质文档-倾情为你奉上北京联合大学实训报告课程名称: C语言程序设计课设 项目名称: 学籍管理系统 学 院: 信息学院 专 业: 通信工程 姓 名: 王晴 张孟欣 高源 李芳洁 郭亚勇 学 号:05 34 19 25 15 指导教师: 李红豫 成 绩: 2011年2月18日专心-专注-专业目录 第一部分 实训题目与要求1 问题提出学籍管理系统可广泛应用于全日制大、中小学及其他各类学校,对学生的成绩、升级、学籍变动进行综合管理和快速查询。可以节省在学籍管理花费的人力和物力,避免纸质文档易损坏,不易查找等缺点。同时可以随时随地的掌握学生信息,更简捷直白的对学生信息进行统计与管理。有助于提高学校

2、的整体教育管理水平。2 功能要求1) 能够输入学生学籍信息2) 能够游览学生学籍信息3) 能够将学生的学习成绩按照学号排序4) 能够计算学生平均分并排序5) 能够统计学生成绩的分数段6) 能够生成并打印需要补考的学生名单及退学名单7) 删除退学学生的学籍并生成新名册8) 对学生的学籍可以随时输入、输出、查找、修改3 任务分工郭亚勇:编写主程序、“求平均分并排序”模块的代码编写及主流程图绘制王 晴:编写主模块图,“分数段排序”、“显示数据”、“删除退学学生学籍并生成新名 册”模块的代码编写及相关流程图绘制。高 源:“成绩录入”模块与“按照学号排序”模块的代码编写及相关流程图绘制李芳洁:“生成并打

3、印补考通知单” 模块的代码编写及相关流程图的绘制、实训报告的编写张孟欣:“生成并打印退学通知单”模块的代码编写及相关流程图的绘制、实训报告的编写第二部分 设计实训题目功能1 总体设计模块设计:定义各函数的主要功能:1 mycreat()录入数据 2 myprint1()显示主菜单3 myprint2()统计成绩4 myprint3()处理学籍 5 mydisplay()创新功能 6 mynumsort()按学号排序7 mysort()计算平均分并排序 8 myfenduan()统计分数段9 myretake()生成并打印补考通知单 10 myselect()生成并打印退学通知单 11 myne

4、wcreat()生成并打印新名册2 算法设计1 分析主模块算法:输出主菜单后键盘输入1-4并回车,进入相应应用;若输入非法选项则会提示“非法选项”并提示是否继续。2 分析录入成绩模块算法:创建一个文件yuan.dat,并把从键盘输入的数据(学号、姓名、成绩)存放在该文件中;每写入一组记录,文件记录数增1。建立录入成绩模块的流程图如下图所示。3 分析按学号排序模块的算法:4 分析计算平均分并排序的算法5 分析统计分数段的算法6 分析生成并打印补考通知单的算法7 分析生成并打印退学通知单的算法8 生成并打印新名册9 分析创新功能中的显示数据的算法3 数据结构struct studentchar n

5、ame10; /*学生姓名*/int grade5; /*学生分数*/double ave; /*学生平均分*/char num10; /*学生学号*/;4 程序代码设计简介函数:Mydisplay()int n=0,j=0,k=0,m=0,ww; 首先定义整型变量 n j k m ww。struct student tempN=0; 定义结构体 tempNFILE*fp=NULL; 定义指针变量fpfp=fopen(d:yuan.dat,r); 此处为打开yuan.dat文件并读取其中数据 包括 学号、姓名、以及其五门功课的成绩。if(fp=NULL)printf(打开文件失败!n);ret

6、urn;system(cls);while(feof(fp)=0)ww=fscanf(fp,%23s%15s,tempn.num,tempn.name);if(ww=-1) break;for(j=0;j5;j+)fscanf(fp,%d,&tempn.gradej);n+;此处的n记录了一共有多少位同学。for(k=0;kn;k+)进行循环操作,分别显示出每一位同学的信息printf(%23s %15s ,tempk.num,tempk.name);for(m=0;m5;m+)printf(%d ,tempk.gradem);printf(n);if(n=0)printf(n 文件中无记录!

7、n);判断n是否为0,显示文件记录else printf(n 文件中共有%d个记录!,n);fclose(fp); 关闭文件注:完整程序请参见附录A。5 测试与调试测试数据类型测试数据预期结果实测结果合法数据在主菜单中输入1进入录入同学学籍菜单进入录入同学学籍菜单在创建同学学籍输入信息在yuan.dat文件存入同学信息yuan.dat文件有同学信息非法数据在主菜单中输入“a”输出“a为非法选项”输出“a为非法选项”在每次完成一项是弹出“是否继续(Y/N)?”输入1没有反应没有反应测试数据类型测试数据预期结果实测结果合法数据在主菜单下输入1进入mycreate()进入创建学籍界面在mycreat

8、e输入信息放入文件中文件中有此记录非法数据在主菜单输入a输出“a为非法选项”非法字符在编辑菜单输入b输出“b为非法选项”非法字符第三部分 实训总结1 个人总结王晴个人总结一周的实训结束了,对于这次C语言实训,我对此非常重视,因为通过实训不仅仅是对所学知识的验证,也是对团队合作,处理好同学关系的锻炼,为毕业后更好的融入社会做准备。通过实训前的商量,我们小组决定选择:学籍管理系统。老师说这个系统比较难,不过,我们并没有抱怨什么,既然选择了就应该迎头而上,只有去面对才能有解决的办法。在工作开始初期,我们首先在一起商量,分配了工作,每个人都明确了自己的工作目标,我觉得这一点是非常重要的,因为一个大的程

9、序,光靠一个人的精力很难完成,而一个团队恰恰解决了这个问题。不过团队之间的分工必须要明确,用什么样的函数名,定义什么样的函数,这些都是需要统一的,要不然到了最后整合的时候还是一团散沙。 编辑程序时,本以为自己掌握的知识已经足以应对了,然而真正运用到程序之中时,就感到理论与实践的偏差。刚打好的程序,编译之后总会出现很多错误,有些是由于自己马虎格式或者输入法的错误,有些则是用错了函数,这都导致运行结果不符合要求,常常一整篇程序,就因为一个小小的错误而得不到实现,在不断的找寻错误解决错误的过程中,锻炼了我的耐心和毅力,更让我不懈坚持着。在这里我要感谢我的指导老师,那天早晨还差5分钟上课,我就由于编程

10、问题去询问了您,您耐心的对我讲解,查询我编程的错误,将近半个小时的时间,你没有说让我自己回去自己看看这种话,我觉得您真的是一位好老师!尽管这一周的实训结束了,但C语言的学习才刚刚开始,通过这次实训,让我更加深刻的了解C语言,熟悉了自己所学的只是,让自己更加熟练的运用C语言来编程。李芳洁个人总结结束一个学期的c语言学习之后,我们开始了为期一周的c语言实训课。尝试着以小组为单位,编辑一个比较复杂的程序。开始之初,我们按照所编程序进行了详细的分工,这样一来就将程序化整为零,在一定程度上降低了了难度。在这一周的学习过程中,我对c语言编程有了更深一步的认识。C语言这门课程仅仅靠听课是远远不够的,上机训练

11、不容忽视。通过实际编程,我看到了自己在c语言知识上的不足与漏洞。不仅学到了以前不懂的知识,而且对学过知识点有了深一步的理解。对于c语言的学习方法也有了一定的改进。学习C语言知识要有系统的,不能零零散散。应增加动手实践,不能只学理论知识。只有动手能力得到了提高,编写C语言程序和分析C语言问题的能力才能有所提高。在这次实训中,我还感受到了团队的力量每个人为了同一个目标而奋斗,力量凝聚在一起的感觉。当程序出现错误时,大家在一起讨论,一起想办法。通过一次次的调试,一次次的改错,直到程序运行成功,出现令大家满意的结果感觉大家的力量都凝聚到了一起。可以说这次的成功与大家每个人的努力都密不可分。当然与我们的

12、指导老师李红豫老师也密不可分,她的悉心指导是我们的程序成功的桥梁。在我看来,作为一名信息学院的学生,学习c语言是一项必不可少的任务。这次实训将我们学习c语言的能力提高了一个层次,在今后的学习生涯中我们会继续学习并熟悉这门课程。张孟欣的个人总结这一周的实训过的很快,通过这一次实训,我了解到了C语言编程的实用性。本次实训我的分工是编写“生成并打印退学通知单”模块。在编写过程中,我发现制定流程图的思路顺序与运行时的顺序不一定是一样的。在这部分的编写过程中我的问题主要在调用文件及循环嵌套部分,在看书与同组同学的帮助下得到了解决。“生成并打印退学通知单”部分需要满足的功能是,筛选每个同学的不及格科目,如

13、果不及格的科目大于3科就要求退学,并且打印出各个不及格科目的名称、成绩以及该同学的姓名、学号。由于不细心,在一开始编写的时候没有将判断某同学每科成绩的if语句与判断某同学共有几门课程不及格的if语句嵌套在一起,导致在运行时将未满足退学条件的同学的相关信息也一同显示了出来。经过调试后,发现了这个漏洞,改正后可以正常实现应有功能。其中在编写统计同学不及格科目数量的时候没有将其以数组的形式储存,而是直接用“s=s+1;”这个语句,导致最后的运行结果所有含有不及格科目的同学都被要求退学,通过改正,将该语句改成“si=si+1;”后,可正常运行。通过这次编程,清楚认识到了自己的不足,犯了一些很幼稚的错误。只是课上的学习还是不够的,真正地掌握知识还需要实践。不断地摸索创新,才成将知识存入囊中。这次实训不但让我认识到了自己对于C语

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号