文档详情

学生成绩管理系统.docx

发布:2018-12-23约1.65万字共25页下载文档
文本预览下载声明
1 问题描述 学生成绩管理系统 学生成绩管理系统 学生信息包括学期、学号、班级、姓名,和语文、数学、英语、计算机四门课成绩。并按班级、学期查询学生成绩,并能录入、修改,求学生平均成绩和总成绩,输出不及格科目,按班级输出成绩单,按班级对学生成绩进行排序。 2 系统分析 2.1 题目要求 学生成绩管理系统设计 学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)。 主要功能: (1) 能按学期、按班级完成对学生成绩的录入、修改 (2) 能按班级统计学生的成绩,求学生的总分及平均分,设计并输出统计报表 (3) 能查询学生成绩,不及格科目及学生名单 (4) 能按班级输出学生的成绩单 (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-num是否为@ 内存 是 否 溢出 输入姓名p-name 停止 for(i=0;i3;i++) 输入 输入成绩 返回 p-sum=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 *head) 计算总分和均分函数: void zong(struct infor *head) 修改函:void change(struct infor *head) 按学号排序函数: infor *index(infor *h) 3 系统实现 3.1 题目一 (源代码) #includestdio.h #includestdlib.h #include string.h #define N 4 struct infor { int term; // 定义学期(1或2) int no; //学号 int clas; //定义班级(1或2班) char name[9]; //姓名 float chinese; //定义四门成绩 float english; float math; 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!=NULLc==y) { n++; p=(struct infor *)malloc(sizeof(struct infor)); printf(请输入要录入学生信息的学期:)
显示全部
相似文档