- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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(请输入要录入学生信息的学期:)
文档评论(0)