欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    学生成绩管理系统数据结构课程设计.docx

    • 资源ID:16797060       资源大小:381.85KB        全文页数:30页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    学生成绩管理系统数据结构课程设计.docx

    1、学生成绩管理系统数据结构课程设计 课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 学生成绩管理系统已知技术参数和设计要求:现有学生成绩信息文件1(cj1.txt),内容如下姓名 学号 语文 数学 英语 张明明 01 67 78 82李成友 02 78 91 88张辉灿 03 68 82 56王露 04 56 45 77陈东明 05 67 38 47. . . . 学生成绩信息文件2(cj2.txt),内容如下:姓名 学号 语文 数学 英语 陈果 31 57 68 82李华明 32 88 90 68张明东 33 48 42 56李明国 34 50 45 87陈道亮 35

    2、47 58 77. . . . 试编写一管理系统, 其基本功能要求:实现对两个文件数据进行合并,生成新文件cj3.txt抽取出三科成绩中有补考的学生并保存在一个新文件cj4.txt对合并后的文件3.txt中的数据按总分降序排序(至少采用两种排序方法实现)输入一个学生姓名后,能查找到此学生的信息并输出结果(至少采用两种查找方法实现)要求使用结构体,链或数组等实现上述要求.采用多种方法且算法正确者,可适当加分.要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)数据结构课程设计说明书一、需求分析 1、问题描述 现如今,学校人数的暴涨,对学生基本信息的录入,保存量越来越

    3、大,为了简化对工作人员的操作,故设计一个程序来完成对学生基本信息的录入,保存,编辑等简单操作。2、基本任务(1)对学生信息表cj1和cj2进行合并;(2)把合并的信息生成cj3;(3)把cj3中有补考的学生信息生成cj4;(4)对合并后的文件3.txt中的数据按总分降序排序;(5)输入一个学生姓名后,能查找到此学生的信息并输出结果。二、概要设计为了完成需求分析的基本任务,主要从以下3个方面进行设计:1、 主界面设计为了实现学生成绩管理系统的各项功能,设计了一个含有多个菜单项的主控菜单模块以链接系统的各项功能,以方便用户使用系统。系统主控菜单运行界面如图1所示:图1 学生成绩管理系统主菜单2、数

    4、据结构设计系统采用链表的顺序存储结构。一个字符数组存储学生姓名。四个整型数存储学生学号语文成绩数学成绩英语成绩。和一个结构体数组。3、 系统功能设计(1)从c盘下读取cj1.txt和cj2.txt中的学生成绩信息。程序会给出提示,因为如果在c盘下不存在这两个文件那么程序将不能继续会自动退出。(2)程序给出选择是否将从c盘读取的学生信息保存到c盘下cj3.txt中,如果您选择是,那么程序将执行。如果在c盘存在一个名为cj3.txt的文件,那么程序将用读取的信息将其覆盖。如果不存在,则系统会自动生成一个名为cj3.txt的文件将数据放入其中。(3)程序会给出选择是否将cj3.txt中有补考的学生信

    5、息生成一个cj4.txt的文件。如果您选择是。那么程序将会执行。对于在c盘是否有名为cj4.txt的文件的处理和上面一样。(4)程序会给出按总分大小排序的选项。程序设计了两种排序方法直接插入法排序和冒泡排序。 (5)最后程序设计了一个循环,实现根据学生姓名查找学生成绩信息。如果你所输入的学生姓名不存在,程序将会输出“查无此人”的提示符并提示是否继续查找。你可根据需要选择。如果选择否,程序退出。三、模块设计【主程序模块】:void main() fp=fopen(c:cj1.txt,rt);/从文本文件cj1.txt中读取数据传向cj3.txtfp=fopen(c:cj2.txt,rt); /从

    6、文本文件cj2.txt中读取数据接到cj3.txt的后面fp=fopen(c:cj3.txt,rt);/从合成后的cj3.txt读取数据,生成链表fp=fopen(c:cj4.txt,wt);/把三科成绩中有补考的学生信息放入cj4.txtfor(i=1;i10;i+)/直接插入法排序for(i=0;inext=NULL; fp=fopen(c:cj3.txt,rt);/从合成后的cj3.txt读取数据,生成链表 for(i=0;iname,7,fp); for(i=0;ino=x; for(i=0;iyw=x; for(i=0;isx=x; for(i=0;iyy=x; s-next=p-n

    7、ext; p-next=s; ch=fgetc(fp); fclose(fp);(4)把有补考的同学存入cj4.txt中。在链表中扫面,如果有一科成绩不及格怎存放到cj4.txt。实现方法和前面相似。主要代码:fp=fopen(c:cj4.txt,wt);/把三科成绩中有补考的学生信息放入cj4.txt fputs(姓 名 学号 语文 数学 英语,fp); fclose(fp); fp=fopen(c:cj4.txt,a); s=p-next; while(s!=NULL) if(s-ywsxyyname,fp); for(i=0;ino/10+48; fputc(ch,fp); ch=s-n

    8、o-(s-no/10)*10+48; fputc(ch,fp); for(i=0;iyw/10+48; fputc(ch,fp); ch=s-yw-(s-yw/10)*10+48; fputc(ch,fp); for(i=0;isx/10+48; fputc(ch,fp); ch=s-sx-(s-sx/10)*10+48; fputc(ch,fp); for(i=0;iyy/10+48; fputc(ch,fp); ch=s-yy-(s-yy/10)*10+48; fputc(ch,fp); s=s-next; else s=s-next; fclose(fp);(5)用一个结构体数组存放学生

    9、信息,然后用直接插入法和冒泡法进行总分降序排列,先用直接插入法排好序后打乱,再用冒泡法排序,这两个过程比较简单,就不多作介绍。(6)最后是查找,分别在数组和链表中查找,这个过程也比较简单,但要注意的是在输入要查找的人的姓名时如果人名为两个字则要在中间加两个空格。这样才能成功查找到。五、调试分析(1)编译,调试过后,运行程序。 (2)输入选择,进行两表的合成和生成cj4.txt。(3)合成成功后,选择对总分进行直接插入法排序。(4)打乱排序,再用冒泡法排序。(5)输入姓名进行查找六、用户手册1、本程序的特点是我们不在需要从键盘上输入数据,而是直接从已有文件中读取数据,这在数据量很大时或者需要反复

    10、使用同一个数据时有很大的优势。2、要程序运行的关键是在c盘下存在cj1.txt和cj2.txt两个文件,用户在使用是需得注意。3、本人在写程序时重心主要放在对数据的处理上,所以在界面设计方面还做得不好,请多多包涵。4、程序操作很简单,只要按提示操作即可完成要求的内容。七、参考文献1、数据结构教程(第三版) 李春葆 尹为民 等编著 清华大学出版社2、C语言程序设计(第三版) 何钦铭 颜 晖 主编 高等教育出版社3、数据结构教程上机实验指导 李春葆 编著 清华大学出版社八、程序设计总结通过两个星期的折腾,总算把课程设计给完成了,这是一个坚苦而又漫长的过程。是啊,读了那么多年的书,课程设计可是第一次

    11、。看着劳动成果,很欣慰!虽然这不是我一个人做的,是大家的共同努力得来的。 “也许完成不了!”两个星期前我们这样说,“完成他没问题!”一个星期前我们这样说,现在我们可以说:“哈哈,完成啦”!刚开始,可以说是没有头绪,于是就去图书馆找资料,找到了一些关于画图方面的,可是这点小进展远远不够,这只是一个小小的开始。下一步是上网查,找到了些与我们题目相似的,那时我们每个人都很高兴,可是那还不是我们要的,于是又上网查到了些有关的函数等等,终于在我们大家的努力下,完成了这个程序。虽然对着电脑做程序,有点累有点热,可是当看到劳动成果时,真是别有一番滋味在心头啊!世上无难事,只怕有心人,的确如此。做完这个程序最

    12、大的收获就是感受到了集体的力量,当然个人的智慧也是很重要的哦!做完这个课程设计,我们的自信一下子提高了,我们也会写程序了;尽管对于有些人这种程序会很简单,可对我们C语言初学者来说,已经很不容易了。这次体验为以后的学习计算机的我们增强了信心。享受劳动成果的滋味实在很美妙啊!九、程序源代码附录#include#includevoid main() typedef struct LNode char name6; int no; int yw; int sx; int yy; struct LNode *next; LinkList; struct NameNo int no; int yw; in

    13、t sx; int total; char name6; st10; FILE *fp,*fp1; char ch,sname6; int x,i,j; NameNo tmp; LinkList *p,*s; printf(n); printf(-); printf(学生成绩管理系统); printf(-); printf(nn); printf(在您的C盘根目录下是否有cj1.txt和cj2.txt文件?如果有请输入,); printf(否则输入;如果没有,那么程序将终止!or 0?); scanf(%d,&i); if(i=0) return; printf(nn); printf(对cj

    14、1.txt和cj2.txt进行合成请按); scanf(%d,&i); if(i!=1) return; printf(正在把cj1.txt和cj2.txt中的数据进行合并n); printf(.n.n.n.n.n.n); if(fp=fopen(c:cj1.txt,rt)=NULL) /从文本文件cj1.txt中读取数据传向cj3.txt printf(无cj1.txt文本文件,程序结束。n); return; fp1=fopen(c:cj3.txt,wt); ch=fgetc(fp); while(ch!=EOF) fputc(ch,fp1); ch=fgetc(fp); fclose(f

    15、p1); fclose(fp); if(fp=fopen(c:cj2.txt,rt)=NULL) /从文本文件cj2.txt中读取数据接到cj3.txt的后面 printf(无cj12.txt文本文件,程序结束。n); return; fp1=fopen(c:cj3.txt,a); for(i=0;inext=NULL; fp=fopen(c:cj3.txt,rt);/从合成后的cj3.txt读取数据,生成链表 for(i=0;iname,7,fp); for(i=0;ino=x; for(i=0;iyw=x; for(i=0;isx=x; for(i=0;iyy=x; s-next=p-ne

    16、xt; p-next=s; ch=fgetc(fp); fclose(fp); printf(对cj3.txt中有不及格的学生信息生成cj4.txt请按); scanf(%d,&i); if(i!=1) return; printf(正在生成cj4.txtn); printf(.n.n.n.n.n.n); if(i=1) fp=fopen(c:cj4.txt,wt);/把三科成绩中有补考的学生信息放入cj4.txt fputs(姓 名 学号 语文 数学 英语,fp); fclose(fp); fp=fopen(c:cj4.txt,a); s=p-next; while(s!=NULL) if(

    17、s-ywsxyyname,fp); for(i=0;ino/10+48; fputc(ch,fp); ch=s-no-(s-no/10)*10+48; fputc(ch,fp); for(i=0;iyw/10+48; fputc(ch,fp); ch=s-yw-(s-yw/10)*10+48; fputc(ch,fp); for(i=0;isx/10+48; fputc(ch,fp); ch=s-sx-(s-sx/10)*10+48; fputc(ch,fp); for(i=0;iyy/10+48; fputc(ch,fp); ch=s-yy-(s-yy/10)*10+48; fputc(ch

    18、,fp); s=s-next; else s=s-next; fclose(fp); printf(生成成功!现在你可以在C盘根目录下看到一个cj4.txt文件); printf(nn); s=p-next;/将学生信息从链表复制到数组中 for(i=0;ino; sti.yw=s-yw; sti.sx=s-sx; sti.total=s-yw+s-sx+s-yy; for(j=0;jnamej; s=s-next; printf(用直接插入法排序请按:); scanf(%d,&i); printf(nn); if(i=1) for(i=1;i=0&tmp.totalstj.total) stj+1=stj; j-; stj+1=tmp; printf( 直接插入法排序后总分从大到小排序为n); printf(nn); printf(姓 名 学号 语文 数学 英语 总分n); for(i=0;i10;i+) if(sti.no10) printf(%s ,sti.name); printf(%d,0); printf(%d ,sti.no); printf(%d ,sti.yw);


    注意事项

    本文(学生成绩管理系统数据结构课程设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开