ImageVerifierCode 换一换
格式:DOCX , 页数:29 ,大小:245KB ,
资源ID:2164531      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/2164531.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(学生成绩管理系统11522.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

学生成绩管理系统11522.docx

1、学生成绩管理系统11522成绩评定教师签名嘉应学院 计算机学院数据结构实验报告课程名称:数据结构开课学期:2016-2017学年第1学期班 级:1401指导老师:钟治初实验题目:学生成绩管理系统学 号:141110043姓 名:苏永达提交时间:2016年10月27日一、 实验要求:(1) 设计一个学生成绩管理系统,模拟高考成绩的管理。功能至少包括数据输入,输出,查找,插入,删除,修改,排序,统计各成绩段的人数,考生成绩的排位,报考志愿的检索等。(2) 所有输入输出数据均使用文本文件进行读写。(3) 所有过渡性数据使用二进制文件进行读写和保存。(4) 设计使用平行志愿进行出档。(5) 设计使用非

2、平行志愿行进出档。(6) 设计志愿时,可以设计12个志愿,如果平行志愿,则前后各6个分别为第一组和第二组平行志愿处理。(7) 设计考生记录的字段时,可以预留补录志愿的字段。或者将未录取考生的数据进行备份,然后将志愿清空后再增加补录志愿。二、功能: (1) 按学号顺序输入学生信息,包括学号、姓名、性别、课程单科成绩(单科成绩包括C语言、高数、大学语文、汇编、中近史),并存入文件中。(2) 从文件读取数据(3) 删除学生信息(4) 查询学生信息(查询可分为精确查询和模糊查询)(5) 修改学生信息(要求修改后,数据依然是按学号顺序排列)(6) 插入学生信息(要求插入后,数据依然是按学号顺序排列)(7

3、) 附加功能,学生可自由发挥,如:排名、求各门课程平均分等。三、实验目的1、掌握和巩固C语言编写的相关知识和技巧,特别是函数、指针、结构体。2、能够采用模块化思想调试程序。3、通过该课程设计的操作与实践,能够根据数据对象的特性,学会数据组织的方法,把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好的程序设计技能,全面提高学生的程序设计、开发能力。四、系统分析4.1 相关基础知识 选择、循环、函数、指针、结构体、链表4.2 总体方案 架构图: 方案描述:菜单:运用switch case选择功能,在每个case中有相对应的调用语句,调用相对应的函数。删除功能:调用删除函数,判断是否保存

4、,如果保存写入文件。插入功能:运用链表插入。修改功能:调用删除函数跟插入函数,先删除再插入,从而实现修改功能。查询功能:调用菜单中的查询函数,用循环实现查询功能。排名功能:调用菜单中的排名函数,通过冒泡排序法实现功能。保存功能:运用写入文件。五、系统设计定义一个student类型的结构体,里面包含学生信息,包括学号、姓名、性别、课程单科成绩(单科成绩包括C语言、高数、大学语文、汇编、中近史)、总分、平均成绩。5.1 新建功能 从键盘输入N个学生基本信息,包括学号、姓名、性别、课程单科成绩(单科成绩包括C语言、高数、大学语文、汇编、中近史),编程根据输入信息计算各学生总分和平均分。创建动态链表,

5、将学生信息存入链表中。在DOS屏幕上打印链表内所有学生信息。新建一个文件,将动态链表中的数据(即输入的学生信息)存入文件中。5.2 打开功能打开一个文件,从文件中读取学生信息,并新建链表,将数据存入动态链表。在DOS屏幕上打印链表内所有学生信息。5.3 修改功能 在DOS屏幕上打印出当前的所有学生信息。输入待修改的学生学号,若不存在,输出“查无此人”;若存在,则输入修改的信息,并存回学生信息链表中,存回后学生信息链表依然是按学号顺序排列。最后在DOS屏幕上打印出新的所有学生信息。5.4 插入功能在DOS屏幕上打印出当前的所有学生信息。输入插入信息的条数,从第一条开始到最后一条,依次输入每条学生

6、信息,包括学号、姓名、性别、课程单科成绩(单科成绩包括C语言、高数、大学语文、汇编、中近史),根据输入信息计算各学生总分和平均分。若输入的学生学号已经存在,则输出“该学号已存在,无法操作!”,否则将学生信息插入到链表中,插入后链表中的数据依然按照学号排列。最后在DOS屏幕上打印出新的所有学生信息。5.5 查询功能查询分为:精确查询、模糊查询精确查询:(1)按姓名查询 输入待查询的姓名; 根据顺序查询的方法,对学生的姓名依次查询,直到查询到与输入的信息相匹配的信息,并在DOS屏幕上显示出来。若需要查询的信息不存在,系统则会提示找不到此人。可重复查询。(2)按学号查询输入待查询的学号; 根据顺序查

7、询的方法,对学生的学号依次查询,直到查询到与输入的信息相匹配的信息,并在DOS屏幕显示出来。若需要查询的信息不存在,系统则会提示找不到此人。可重复查询。模糊查询:(1)按姓氏查询 输入待查询的姓氏; 根据顺序查询的方法,对学生的姓依次查询,当查询到与输入的信息相匹配的信息,则在DOS屏幕显示出来,直到链表结束。若需要查询的信息不存在,系统则会提示找不到相关信息。可重复查询。(2)按性别查询 输入待查询的性别; 根据顺序查询的方法,对学生的性别依次查询,当查询到与输入的信息相匹配的信息,则在DOS屏幕显示出来,直到链表结束。可重复查询。5.6 删除功能 在DOS屏幕上打印出当前的所有学生信息。(

8、1)按姓名删除输入需要删除的学生姓名; 根据顺序查询的方法,对学生的姓名依次查询,当查询到与输入的信息相匹配的信息,则删除该生信息,并在DOS屏幕显示出新的所有学生信息。若需要删除的信息不存在,系统则会提示删除失败。(2)按学号删除输入需要删除的学生学号; 根据顺序查询的方法,对学生的学号依次查询,当查询到与输入的信息相匹配的信息,则删除该生信息,并在DOS屏幕显示出新的所有学生信息。若需要删除的信息不存在,系统则会提示删除失败。5.7排名功能 可根据学生的总分进行排名,并在DOS屏幕上输出排名结果。5.8 关于我们 在DOS屏幕上输出系统相关信息。5.9 软件说明5.10 退出保存 选择0退

9、出系统,保存功能在每段函数结束后实现。5.10运行结果5.10.0 主界面 5.10.1 新建文件(输入一组数据,存入文件中)5.10.2 打开文件(打开文件,读取文件数据存入链表)5.10.3 修改功能5.10.4 插入功能5.10.5 查询功能精确查询-按姓名查询精确查询-按学号查询模糊查询-按姓氏查询模糊查询-按性别查询5.10.6 删除功能按姓名删除按学号删除5.10.7 总分排名功能5.10.9 软件说明5.10.10 退出保存保存功能在每段函数结束后实现。六、心得体会通过这次实验我们更好的掌握和巩固C语言编写的相关知识和技巧,特别是函数、指针、结构体、链表等功能。通过该课程设计的操

10、作与实践,能够根据数据对象的特性,学会数据组织的方法,把现实世界中的实际问题在计算机内部表示出来,并培养基本的、良好的程序设计技能,虽然在设计过程中遇到了不少问题麻烦,在教材数据的帮助下,完成了这次程序设计。 七、源代码#include #include #include /*-*/#define LEN sizeof(struct student)/结构体长度/*-*/#define NEW (struct student *)malloc(LEN)/*-*/FILE *fp;/*文件指针*/*-*/struct student int num; char name20; int score

11、1,score2,score3,score4,score5; char sex; double aver; float sum; struct student *next;char filename100;struct student *creat( ) struct student *h; struct student *p,*q; printf(需要输入几条信息:); int i,n; scanf(%d,&n); printf(n-请按学号顺序依次输入学生信息-n); char c=getchar(); h=NULL; for(i=1;i=n;i+) p=NEW; if (p=NULL)

12、printf(Allocation failuren); exit(0); printf(n); printf(输入姓名: ); gets(p-name); printf(输入学号: ); scanf(%d,&p-num); c=getchar(); printf(输入性别: ); scanf(%c,&p-sex); printf(输入c语言成绩: ); scanf(%d,&p-score1); printf(输入高数成绩: ); scanf(%d,&p-score2); printf(输入大学语文成绩: ); scanf(%d,&p-score3); printf(输入汇编语言成绩: );

13、scanf(%d,&p-score4); printf(输入中近史成绩: ); scanf(%d,&p-score5); c=getchar(); p-sum=p-score1+p-score2+p-score3+p-score4+p-score5; p-aver=(p-score1+p-score2+p-score3+p-score4+p-score5)/5.0; p-next=NULL; if (h=NULL) /* h为空,表示新结点为第一个结点 */ h=p; /* 头指针指向第一个结点 */ else /* h不为空 */ q-next=p; /* 新结点与尾结点相连接 */ q=p;/* 使q指向新的尾结点 */ return h; struct student *paixu (struct student *head) /* 总分排名 */ system(cls); printf(总分排名如下:n); struct student *op; struct student *p; struct student *p1,*p2; p1 = (struct student *) malloc (LEN); p1-

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1