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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

学生成绩管理系统讲解学习.docx

1、学生成绩管理系统讲解学习1 问题描述学生成绩管理系统学生成绩管理系统 学生信息包括学期、学号、班级、姓名,和语文、数学、英语、计算机四门课成绩。并按班级、学期查询学生成绩,并能录入、修改,求学生平均成绩和总成绩,输出不及格科目,按班级输出成绩单,按班级对学生成绩进行排序。2 系统分析2.1 题目要求学生成绩管理系统设计学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)。主要功能:(1) 能按学期、按班级完成对学生成绩的录入、修改(2) 能按班级统计学生的成绩,求学生的总分及平均分,设计并输出统计报表(3) 能查询学生成绩,不及格科目及学生名单(4) 能按班级输出

2、学生的成绩单(5) 能按班级,按课程,对学生成绩进行排序。要求:使用二进制文件方式存储数据,系统以菜单方式工作2.2算法设计(1)创建主菜单(2)实现学生成绩信息录入(3)实现学生成绩信息修改(4)实现学生成绩信息查询 (a)按学期、班级查询学生的成绩 (b)按学号查询学生的成绩 (c)查询不及格的科目和学生名单(5)实现学生成绩成绩统计 (a)按班级统计学生的总分、平均分 (b)按班级、课程对学生的总分进行排序(6)实现学生成绩信息浏览2.3流程图 2.4关键问题难点:指针p、函数。解决:head=NULL无条件循环 指针p指向新开辟的单元 指针p是否为空 是 否 输入学号p-num 输出

3、p-num是否为 内存 是 否 溢出 输入姓名p-name 停止 for(i=0;isum=s; 菜单 p-average=(float)s/3;主 函 数: int main() 新建函数:infor *init() 输入函数 :infor *creat() 显示函数: struct infor *view(struct infor *head)删除函数: infor *delete(infor *head) 按名字寻找函数: void lookup(infor *head) 保存函数: void save(infor *head) 按总分排序函数: infor *sort(infor *h

4、ead) 计算总分和均分函数: void zong(struct infor *head) 修改函:void change(struct infor *head)按学号排序函数: infor *index(infor *h) 3 系统实现3.1 题目一(源代码) #include#include#include #define N 4struct infor int term; / 定义学期(1或2) int no; /学号 int clas; /定义班级(1或2班) char name9; /姓名 float chinese; /定义四门成绩 float english; float mat

5、h; float computer; struct infor *link;int n=0 ;/*/函数功能:创建链表,录入学生的相关信息,此函数返回一个指向链表头的指针/*struct infor *creat() struct infor *head=NULL,*p=NULL,*q=NULL; char c; fflush(stdin); printf(是否要输入信息(y/n):); scanf(%c,&c); p=q=(struct infor *)malloc(sizeof(struct infor); q=head; while(p!=NULL&c=y) n+; p=(struct

6、infor *)malloc(sizeof(struct infor); printf(请输入要录入学生信息的学期:); fflush(stdin); scanf(%d,&p-term); /学期只能为1或2 while(p-term!=1&p-term!=2) getchar(); printf(输入错误!请重新输入:); /若学期不为1或2,则输入有误 scanf(%d,&p-term); printf(请输入要录入学生成绩信息的班级:); fflush(stdin); /班级只能为1或2 scanf(%d,&p-clas); while(p-clas!=1&p-clas!=2) getc

7、har(); printf(输入错误!请重新输入:); scanf(%d,&p-clas); printf(请输入该班的学生信息!n); /输入学生信息(包括学号、四门成绩) printf(请输入学生学号:); fflush(stdin); scanf(%d,&p-no); printf(请输入学生姓名:); fflush(stdin); scanf(%s,p-name); /输入学生姓名 printf(请输入语文成绩(0-100):); /输入四门成绩 scanf(%f,&p-chinese); printf(请输入数学成绩(0-100):); scanf(%f,&p-math); prin

8、tf(请输入英语成绩(0-100):); scanf(%f,&p-english); printf(请输入计算机成绩(0-100):); scanf(%f,&p-computer); if(n=1) /创建新结点 head=p; else q-link=p; q=p; printf(是否还要输入信息(y/n):); fflush(stdin); scanf(%c,&c); q-link=NULL; /链表结尾 return(head); /链表返回头指针/*/函数功能:实现对学生信息的修改/*void change(struct infor *head) struct infor *p=hea

9、d; char ch,m; char name9; /定义一个数组,存储学生的姓名 int num; if(p=NULL)printf(出错!请先输入学生信息!); while(1) /设置循环控制 printf(ttt请选择要修改的信息!tn); printf(tttn); / 输出要修改的信息 printf(ttt a、学号: n); printf(ttt b、姓名: n); printf(ttt c、班级: n); printf(ttt d、成绩: n); printf(tttn); fflush(stdin); /清盘 scanf(%c,&ch); if(ch=a) printf(你要

10、修改的信息是:学号!n); /按姓名修改学号 printf(请输入你要修改的学生姓名:); scanf(%s,name); if (strcmp(name,p-name)=0) printf(请输入该学生新的学号:); /输入新学号 scanf(%d,&p-no); else printf(无法查找到该学生!n); /找不到信息 else if(ch=b) /按学号修改该班级学生的信息 printf(你要修改的信息是:姓名!n); printf(请输入你要修改的学生的学号:); scanf(%d,&num); if(num=p-no) /输入学号,判断条件 printf(请输入该学生的姓名:)

11、; scanf(%s,p-name); /输入要做修改的学生姓名 else printf(无法查找到该学生!n); /找不到信息 else if(ch=c) printf(你要修改的信息是:班级!n); /按学号修改班级 printf(请输入你要修改的学生的学号:); scanf(%d,&num); if(num=p-no) printf(请输入该学生的班级:); /输入要做修改的班级 scanf(%d,p-clas); else printf(无法查找到该学生!n); /找不到信息 else if(ch=d) printf(你要修改的信息是:成绩!n); /按学号修改成绩 printf(请输

12、入你要修改的学生的学号:); scanf(%d,&num); if(num=p-no) /输入学号 printf(请输入该学生新的语文成绩:); scanf(%f,p-chinese); printf(请输入该学生新的数学成绩:); scanf(%f,p-math); /输入新的四门成绩 printf(请输入该学生新的英语成绩:); scanf(%f,p-english); printf(请输入该学生新的计算机成绩:); scanf(%f,p-computer); else printf(无法查找该学生的信息!n); /找不到信息 else printf(出错!n); p=p-link; pr

13、intf(是否还要继续修改信息(y/n):); /判断,是否还要修改信息,跳出循环 fflush(stdin); if(m=getchar()=n)break; /*/函数功能:按照学号查询学生信息/*void checkno(struct infor *head) /按学号查询学生的成绩 struct infor *p; p=head; int num,i=0; printf(请输入你要查询的学生学号:n); scanf(%d,&num); if(num=p-no) /输入学号,判断条件 printf(-); printf(t学期t学号t班别t姓名t语文t数学t英语t计算机tn); prin

14、tf(-n); printf(%dt,p-term); printf(%dt,p-no); printf(%dt,p-clas); /输出学生的班级 printf(%st,p-name); printf(%1ft,p-chinese); /输出四门成绩 printf(%1ft,p-math); printf(%1ft,p-english); printf(%1ft,p-computer); i=2; if(i=0) printf(没找到该学生的信息!); /找不到信息void checkclass(struct infor *head) int banji,i=0; struct infor

15、*p=head; while(p!=NULL) /按班级查询学生的成绩 printf(请输入你要查询成绩的班级:); scanf(%d,&banji); if(banji=p-clas) printf(请输出%d班所有同学的成绩:,banji); printf(-); printf(t学期t学号t班别t姓名t语文t数学t英语t计算机tn); printf(-n); printf(%dt,p-term); /输出要查询成绩的班级 printf(%dt,p-no); /输出查询成绩的学生学号 printf(%dt,p-clas); /输出要查询成绩的班级 printf(%st,p-name); /

16、输出要查询成绩的学生姓名 printf(%1ft,p-chinese); printf(%1ft,p-math); /输出四门成绩 printf(%1ft,p-english); printf(%1ft,p-computer); printf(n); i=2; p=p-link; if(i=0) printf(没找到学生信息!); /输出错误,找不到信息 void checkterm(struct infor *head) /定义按学期查找信息的函数 int xueqi,i=0; struct infor *p=head; while(p!=NULL) /设置循环控制 /按学期查询学生的成绩

17、printf(请输入你要查询成绩的学期:); scanf(%d,&xueqi); if(xueqi=p-term) printf(请输出第%d学期所有班级的信息:); printf(-); printf(t学期t学号t班别t姓名t语文t数学t英语t计算机tn); printf(-n); printf(%dt,p-term); printf(%dt,p-no); printf(%dt,p-clas); printf(%st,p-name); /输出姓名 printf(%1ft,p-chinese); printf(%1ft,p-math); printf(%1ft,p-english); /输出

18、四门成绩 printf(%1ft,p-computer); printf(n); i=2; p=p-link; if(i=0) printf(没找到学生信息!); /找不到信息 void norich(struct infor *head) /定义一个函数,查找不及格的学生 struct infor *p; p=head; int num,i=0; float toa; printf(请输入要查询成绩的学生学号:); scanf(%d,&num); if(num=p-no) printf(正在查询该学生的成绩,请稍侯n); /查询学生的成绩,输出不及格的科目 while(p!=NULL) if

19、(p-chinesemathenglishcomputer0) printf(%s同学共有%d门成绩不及格!n学号是:%dn,p-name,i,p-no); printf(n); toa=p-chinese+p-math+p-english+p-computer; if(toaname); /输出不及格的学生名单 p=p-link; void search(struct infor *head) /定义一个查询学生信息的函数,调用各子函数,进行查询 char k,ch; struct infor *p=head; while(p!=NULL) /设置循环控制条件 /输出查询方式 printf(

20、ttt 你要选择何种方式查询成绩!n); printf(tn); printf(ttt a、学号: n); printf(ttt b、班级: n); printf(ttt c、学期: n); printf(ttt d、不及格的学生: n); printf(tn); fflush(stdin); scanf(%c,&k); switch(k) case a:checkno(head);break; /调用学号函数 case b:checkclass(head);break; case c:checkterm(head);break; case d:norich(head);break; prin

21、tf(n); printf(是否还要继续查询学生的信息(y/n):); fflush(stdin); if(ch=getchar()=n)break; /跳出循环,返回主菜单 /*/函数功能:对学生成绩进行统计,按班级求总分及平均分/*void zong(struct infor *head) /对该班级的学生成绩求总分、平均分 float toa=0,ave=0; int i=0; struct infor *p=head; while(p!=NULL) toa=p-chinese+p-math+p-english+p-computer; /输出学生的总分和平均分成绩 ave=toa/N; printf(第%d个学生的总分为:%1f!n,i+1,toa); printf(n); printf(第%d个学生的平均分:%1f!n,i+1,ave); printf(n); printf(已经统计了第%d个学生的成绩!n,i+1); /统计完毕 printf(n); i+; p=p-link; /指向下一个结点 void paixu(struct infor *head) /对该班级的学生成绩进行排序 int i=0,j; float a10,t; /把结点信息输入到数组,然后排序 struct infor *p=head; while(p!=NULL) a

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

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