学生成绩管理系统设计与概述.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
学生成绩管理系统设计与概述

学生成绩管理系统设计与概述   摘 要:?W生成绩管理系统是学校用于管理学生成绩的一个很重要的工具,设计学生管理系统是对C语言多方面知识的综合训练。本文将运用C语言的知识建立一个简易的学生管理系统,旨在提高C语言编程能力以及通过编程解决实际问题的能力。该系统主要采用了结构体来建立和存储学生的学号、成绩等个人信息,并用链表与指针的知识,结合冒泡排序的思想方法,设计函数,使其具有新建、排序、查询、插入与删除等多个功能。同时,该系统操作简便,只需用户输入学生的相关信息,并输入所选操作的序号即可进行相关操作。   关键词:学生成绩管理;C语言;程序设计;C-Free   一、设计目的   1.巩固和加深对c语言知识的理解和掌握   2.提高利用c语言进行编程和运行的能力   3.学会利用编程解决实际问题   二、功能模块介绍   本学生成绩管理系统主要包括以下几点功能:   1.新建数据2.添加数据3.删除数据4.排序5.查询6.退出   其中新建数据用于用户输入学生的个人信息(学号和名字)及成绩(数学和程序设计两科成绩);添加数据和删除数据便于用户对数据的增删;而排序(包括数学成绩、程序设计成绩以及总分成绩)可以通过不同的排序依据使用户更方便了解学生各科总体水平以及高分和低分;查询则包括按学号查询、姓名查询、成绩查询,其中成绩查询还有统计的功能,即输入指定分数,程序运行后显示该科目中考试成绩大于等于指定分数的学生并统计满足条件的人数。   三、数据结构描述   本系统采用结构体的形式和链表的数据结构建立学生的个人信息档案,主要内容如下:   struct student   {   char num[20];   char name[20];   int math_score;   int program_score;   int sum_score;   struct student *next;   }stu[N];   其中学号和姓名为字符串类型,方便输入;成绩为整形,数学成绩和程序设计成绩由用户输入,总分由系统根据用户所输计算;N为符号常量和全局变量,用户可随时改变学生人数。采用结构体的形式,适应了学生数据类型多样性的特点,链表类型的数据结构可以方便的插入或删除数据,较为灵活方便。   四、函数程序介绍   程序按照系统功能分为七大模块,分别是:主函数,新建数据函数,添加数据函数,删除数据函数,排序函数,查询函数以及输出函数。   主函数:在主函数中对各函数进行声明,显示系统主界面,根据用户的不同选择调用不同的函数。同时对主函数采用do while的循环,使系统执行完一次操作后自动跳出主菜单,方便用户使用。   新建函数:用malloc函数创建链表空间,提示用户输入学生数据,读入链表。   添加数据函数:提示用户输入添加的数据,根据学号从小到大排序的原则,用strcmp函数对添加的学号和已有的学号比较,定位后用链表指针插入。完成后提示添加数据成功。该函数有两个参数,head为已创建的链表的头指针,stud是用户要插入的数据的指针。   删除数据函数:与添加数据类似,让用户输入想要删除的数据的学号,用strcmp函数对想删除的学号和已有的学号比较,相等时通过改变指针方向同时用free函数释放所删除数据的空间实现删除功能。完成后提示删除数据成功。该函数有两个参数,head为已创建的链表的头指针,num是用户想要删除的数据的学号,用num与已有数据的学号进行比对、定位。   排序函数:结合了冒泡排序和链表,将学生的成绩降序排列,最后用输出函数输出。该函数的参数是已有链表的头指针,将链表排序后,仍返回头指针,用输出函数输出。   查询函数:按学号和姓名查询时,用strcmp函数对字符串进行比较,相等时输入该学号或姓名所对应的学生的全部信息;按成绩查询函数,在前两个的基础上,添加了统计功能。因此定义一个计算个数的变量,在循环结束后输出。该函数的参数是已有链表的头指针,根据用户的查询要求,找到符合要求的数据后,返回头指针,用输出函数输出。   输出函数:所有子函数的返回值都由输出函数输出。输出函数有两个,一个是用循环输出链表所有数据,用于新建数据和排序结果的输出;一个只输出链表中一个成员的数据,用于添加、删除数据以及查询函数的返回值的输出。其他函数通过返回头指针,传到该函数的参数head中,并输出链表中的信息。   五、系统调试的重点与难点   该系统主要运用了结构体、函数、动态链表与指针的知识,都属于C语言中较难的知识,也是运用C语言编程的必备知识,同时对于冒泡排序的思想与系统的整体设计也要有一个清晰的结构框架,这些都是这个系统的核心部分。   以下是在调试中遇到的

文档评论(0)

317960162 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档