学生成绩管理系统(共25页).docx





《学生成绩管理系统(共25页).docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统(共25页).docx(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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 输出 p-
3、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 *hea
4、d) 计算总分和均分函数: 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 math;float
5、 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 infor *)malloc(si
6、zeof(struct infor); printf(请输入要录入学生信息的学期:);fflush(stdin); scanf(%d,&p-term); /学期只能为1或2while(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)getchar();printf(输入错误!请重新输入:
7、); 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); printf(请输入英语成绩(0-100):); scan
8、f(%f,&p-english); printf(请输入计算机成绩(0-100):); scanf(%f,&p-computer); if(n=1) /创建新结点 head=p; elseq-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=head;char ch,m;char name9; /定义一
9、个数组,存储学生的姓名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(你要修改的信息是:学号!n); /按姓名修改学号 printf(请输入你要修改的
10、学生姓名:); 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(请输入该学生的姓名:); scanf(%s,p-name); /输入要做修改的学生姓名 else
11、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(请输入你要修改的学生的学号:); scanf(%d,&num); if(num=
12、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; printf(是否还要继续修改信息(y/n):); /判断,是否还要修改信息,跳出
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 成绩管理系统 25

限制150内