学生成绩信息管理系统

合集下载

学生成绩管理系统数据流程图及数据字典

学生成绩管理系统数据流程图及数据字典

学生成绩管理系统数据流程图及数据字典一、数据流程图学生成绩管理系统是一个用于管理学生的课程成绩的系统。

下面是该系统的数据流程图,展示了数据在系统中的流动和处理过程。

1. 学生信息管理流程:- 输入:学生信息(学生姓名、学号、性别、年级等)- 处理:将学生信息存储到学生信息表中- 输出:无2. 课程信息管理流程:- 输入:课程信息(课程名称、课程编号、学分等)- 处理:将课程信息存储到课程信息表中- 输出:无3. 成绩录入流程:- 输入:学生课程成绩信息(学号、课程编号、成绩)- 处理:将成绩信息存储到成绩表中- 输出:无4. 成绩查询流程:- 输入:学号- 处理:根据学号在学生信息表中查找学生姓名,并在成绩表中查询该学生的所有成绩信息- 输出:学生姓名及其对应的成绩信息5. 成绩统计流程:- 输入:课程编号- 处理:根据课程编号在课程信息表中查找课程名称,并在成绩表中统计该课程的平均成绩、最高成绩和最低成绩- 输出:课程名称及其对应的平均成绩、最高成绩和最低成绩二、数据字典数据字典是对系统中使用的数据元素进行定义和描述的文档。

下面是学生成绩管理系统的数据字典,包含了系统中使用的各个数据元素及其属性。

1. 学生信息表(StudentInfo):- 学号(StudentID):学生的惟一标识符,数据类型为整数- 学生姓名(StudentName):学生的姓名,数据类型为字符串- 性别(Gender):学生的性别,数据类型为字符串- 年级(Grade):学生所在的年级,数据类型为字符串2. 课程信息表(CourseInfo):- 课程编号(CourseID):课程的惟一标识符,数据类型为整数- 课程名称(CourseName):课程的名称,数据类型为字符串- 学分(Credit):课程的学分,数据类型为浮点数3. 成绩表(Score):- 学号(StudentID):学生的惟一标识符,数据类型为整数- 课程编号(CourseID):课程的惟一标识符,数据类型为整数- 成绩(Grade):学生在该课程中的成绩,数据类型为浮点数通过以上的数据流程图和数据字典,学生成绩管理系统可以实现学生信息的录入和管理、课程信息的录入和管理、成绩的录入、查询和统计等功能。

学生成绩管理系统的设计与实现

学生成绩管理系统的设计与实现

学生成绩管理系统的设计与实现一、需求分析本学生成绩管理系统的主要功能为:•管理学生信息,包括姓名、性别、学号等基本信息;•录入学生成绩,包括各门课程的成绩;•统计学生成绩,包括按学生、按课程、按年级等多种方式统计;•生成成绩报告,包括成绩排名、平均成绩等信息;•生成数据分析报告,包括各门课程的分数分布、学生的成绩趋势等信息。

二、系统设计本系统采用MVC模式设计,主要分为Model、View、Controller三部分。

1. ModelModel层主要负责数据存储和处理。

系统中的基本数据结构包括:•学生(Student):包括姓名、性别、学号等基本信息;•课程(Course):包括课程名称、学分等基本信息;•成绩(Score):包括学生、课程、成绩等信息。

在数据库中,学生、课程、成绩三个实体分别对应三个表,其中成绩表还包括学生和课程两个外键。

2. ViewView层主要负责与用户交互,显示数据和处理用户输入。

系统中的主要界面包括:•学生信息管理界面:用于添加、编辑和删除学生信息;•课程信息管理界面:用于添加、编辑和删除课程信息;•成绩录入界面:用于录入学生的成绩信息;•成绩查询界面:用于查询学生的成绩信息;•成绩统计界面:用于按学生、按课程、按年级等多种方式统计成绩信息;•成绩报告界面:用于生成成绩排名、平均成绩等信息;•数据分析界面:用于生成各门课程的分数分布、学生的成绩趋势等信息。

3. ControllerController层主要负责控制系统的流程、协调Model和View两层之间的交互。

Controller接收用户输入、调用Model进行数据处理、更新View显示数据。

三、系统实现本系统采用Python语言进行开发,使用了Flask框架、SQLAlchemy ORM库、Bootstrap前端框架等技术。

具体实现细节如下:1. 数据库设计from flask_sqlalchemy import SQLAlchemydb = SQLAlchemy()# 学生class Student(db.Model):__tablename__ = 'students'id = db.Column(db.Integer, primary_key=True)name = db.Column(db.String(50), nullable=False)gender = db.Column(db.String(10), nullable=False)student_id = db.Column(db.String(20), nullable=False, unique=True)scores = db.relationship('Score', backref='student')# 课程class Course(db.Model):__tablename__ = 'courses'id = db.Column(db.Integer, primary_key=True)name = db.Column(db.String(50), nullable=False)credit = db.Column(db.Float, nullable=False)scores = db.relationship('Score', backref='course')# 成绩class Score(db.Model):__tablename__ = 'scores'id = db.Column(db.Integer, primary_key=True)score = db.Column(db.Float, nullable=False)student_id = db.Column(db.Integer, db.ForeignKey('st udents.id'), nullable=False)course_id = db.Column(db.Integer, db.ForeignKey('cou rses.id'), nullable=False)我们使用了Flask框架自带的SQLite数据库,创建了一个名为students.db的数据库。

数据库课程设计学生成绩管理系统

数据库课程设计学生成绩管理系统
安全性加强
可以进一步加强系统的 安全性设计,如增加用 户权限管理、数据备份 与恢复等功能,确保数 据的完整性和安全性。
THANKS
感谢观看
情况下的容错处理。
性能测试用例
设计针对不同用户数量和不同数据量 的测试用例,以验证系统的性能和稳
定性。
安全测试用例
设计针对系统安全性的测试用例,如 用户权限验证、数据加密传输等。
测试执行与结果分析
测试执行
按照测试计划和测试用例进行测试,记录测试结果和发现的问题 。
问题跟踪与修复
对发现的问题进行跟踪,确保问题得到及时修复,并重新进行测试 验证。
测试方法
采用黑盒测试和白盒测试相结合的方法,包括功能测试、 性能测试、安全测试等。
测试范围
包括系统的所有功能模块,如学生信息管理、课程管理、 成绩录入与查询、报表生成等。
测试资源
包括测试人员、测试环境、测试数据等。
测试用例设计
功能测试用例
针对系统的每个功能模块设计测试用 例,包括正常情况下的操作以及异常
系统功能实现
课程信息管理
实现课程基本信息的录入、修 改、查询和删除功能。
报表生成
根据需求生成各类报表,如学 生成绩单、课程统计表等。
学生信息管理
实现学生基本信息的录入、修 改、查询和删除功能。
成绩录入与查询
实现学生成绩的录入、修改、 查询和删除功能,支持批量导 入成绩数据。
权限管理
实现不同用户角色的权限管理 ,确保系统的安全性和稳定性 。
常见问题与解决方案
数据库连接问题
检查数据库连接配置是否正确,确保数据库服务 正常运行,并尝试重新启动数据库服务或修复连 接问题。
系统性能下降

学生成绩管理系统

学生成绩管理系统

学生成绩管理系统简介学生成绩管理系统是一种用于管理学生的学业成绩和相关信息的软件系统。

它可以帮助学校、教师和学生有效地管理和查询学生的成绩,提供全面的成绩分析和统计功能,促进教学质量的提高。

功能学生成绩管理系统通常具有以下核心功能:1.学生信息管理:包括学生的基本信息、课程注册、班级信息等。

2.成绩录入:教师可以登录系统,录入学生成绩,并进行相应的成绩审核和修改。

3.成绩查询:学生、教师和学校管理者均可通过系统查询学生成绩,可以按照学生、班级、课程等维度进行灵活查询。

4.成绩统计与分析:系统可以对成绩数据进行统计和分析,生成各类成绩报告和分析图表,为教师和学校提供决策依据。

5.成绩排名:系统可以根据学生成绩进行排名,可以按照总分、班级、课程等维度进行排名。

6.数据导入导出:系统可以支持将学生成绩数据导入导出到Excel、CSV等格式,方便学校的数据管理。

优势学生成绩管理系统的应用带来诸多优势:1.提高工作效率:通过系统自动化处理和统计成绩数据,节省了大量的人力和时间成本。

2.提供准确的数据:系统可以准确地计算和记录学生成绩,避免了人工计算和录入带来的错误。

3.提供个性化服务:学生成绩管理系统可以根据学生的不同需求提供个性化的信息查询和分析功能,满足学生个性化的学习需求。

4.提供全面的分析和决策支持:系统可以生成各类成绩报告和分析图表,帮助教师和学校进行成绩分析和决策。

5.提高教学质量:通过系统对学生成绩进行全方位的管理和分析,有助于教师了解学生的学习状况,及时调整教学方法,提高教学质量。

使用场景学生成绩管理系统适用于各类学校、教育机构以及在线教育平台的学生成绩管理需求。

以下是几个典型的使用场景:1.学校管理者可以通过系统了解学校整体的学生成绩情况,进行综合分析和决策。

2.教师可以通过系统录入学生成绩、排名、查询历史成绩等,方便管理学生成绩和进行个性化教学。

3.学生可以通过系统查询自己的成绩、查看排名等,及时了解自己的学习状况。

UML学生成绩管理系统

UML学生成绩管理系统
•精选ppt
管理员删除学生成绩信息序列图
图3-3 管理员删除学生信息序列图
•精选ppt
管理员查询学生信息序列图
•精选ppt 图3-4 管理员查询信息序列图
教师录入学生成绩信息序列图
•精选ppt 图3-5 教师录入学生成绩信息序列
教师修改学生成绩信息序列图
•精选ppt 图3-6 教师修改学生成绩信息序列
•精选ppt
图1-2 管理员接口模块框图
(三)教师接口模块
■ 管理员接口是 系统提供给教 师管理学生成 绩的接口 。教 师接口模块包 括如下图所示 几个几个方面:
•精选ppt
图1-3 教师接口模块框图
二、系统建模
➢ 用例图 ➢ 类图 ➢ 序列图 ➢ 协作图 ➢ 活动图 ➢ 状态图
•精选ppt
1.用例图
•精选ppt
学生成绩管理系统
•精选ppt
第四组
➢ 需求分析
➢ 系统总体功能需求 ➢ 管理员接口模块 ➢ 教师接口模块
➢ 系统建模
➢ 总结
•精选ppt
目录
一、需求分析
学生成绩管理系统是专门针对学校所开发 的一种以管理为基础的信息管理系统 , 它 涵盖成绩管理服务的所有环节 ,将原始的 人工统计方法转换为先进的电脑管理模式。 ■ 系统管理员登录系统后 ,通过身份验证 , 能够对学生的基本信息进行管理 ,包括如 下: 添加学生信息、查询学生信息、修改 学生信息、删除学生信息。
用户拥有不同级别的权限 , 以及实现不同的管理操作 。当 用户登录到系统中后用例结束。 ■ 参与者: 管理员 、教师和学生 ■ 前提条件: 用户身份验证。 ■ 事后条件: 登录到系统中。 ■ 主事件流: 进入系统 , 实现管理操作。 ■ 其他事件流: 当用户忘记密码而不能登录到系统中时 , 可 以进行密码寻回操作。

学生成绩信息管理系统

学生成绩信息管理系统

题目:学生成绩信息管理系统用c语言实现学生管理系统,每个学生的信息包括:学号、姓名、性别、平时成绩、期末成绩。

系统能够完成学生信息的查询、更新、插入、删除、排序功能。

1、系统以菜单方式工作;2、学生信息录入功能(学生信息用文件保存)--输入;3、学生信息按条件查询功能—算法;●按学号查询●按姓名查询●按性别查询●按平时成绩查询●按期末成绩查询4、学生信息的删除与修改。

流程图:图1 函数功能模块图输入输出的要求(1)等候用户输入时,给出足够的提示信息,如:选择1,输入学生信息、选择2,查询学生信息。

(2)对输入值的类型,大小范围,字符串长度等,进行检查,对不合法的输入值给出出错信息。

(3)对删除数据给出方式,让用户进行确认删除。

1.概要设计1.抽象数据类型定义struct Student//创建结构体{………………………………};2.系统功能模块划分与设计(系统功能模块图)录入学生信息模块:输入1,判断学生信息是否存在,不存在输入1,继续上次输入,判断学生信息是否存在,运行结束。

输入2,判断学生信息是否存在,不存在输入2,清除数据重新输入,运行结束。

查询学生信息模块:查询学生信息,请输入选择查询方式。

输入1,按姓名查找学生信息输入2,按学号查找学生信息输入3,按性别查找学生信息输入4,按平时成绩查找学生信息输入5,按期末成绩查找学生信息运行结束删除学生信息模块:首先使用查询功能查询出需要修改/删除的记录,然后进行修改/删除操作无学生信息!请选项删除方式。

输入1,按照姓名删除输入2,按照学号删除运行结束修改,输出,排序学生信息输入4,修改学生信息,请输入需要修改的学生信息输入5,按姓名,成绩,平时成绩,期末成绩输出学生成绩。

输入6,将学生信息进行排序。

运行结束2.详细设计1、数据类型的定义struct Student//创建结构体{char num[20]; //学号char name[20]; //姓名char sex[5]; //性别int score; //平时成绩int QiMoscore; //期末成绩struct Student *next; //动态链表连接下一个结构体};2、主要模块的算法描述菜单模块通过while语句给出信息提示;清屏;绘制菜单(包含输入,查询,删除,修改,输出,排序);提示菜单选择并读入到变量;根据读入变量的值调用不同的模块函数;信息录入模块打开文件While(){ 清屏;按照提示输入各种信息;While显示各种信息;通过选择1.确认并继续 2.填写 3.修改 4.确认并返回选择四种功能;}}信息查询While(){ 通过菜单式的选择是学号查询还是姓名printf("\n----------请选择查询方式----------");printf("\n 1.按姓名查询");printf("\n 2.按学号查询");printf("\n 3.按性别查询");printf("\n 4.按平时成绩查询");printf("\n 2.按期末成绩查询");printf("\n 3.返回主菜单");printf("\n****************************\n");}如果选择学号进入学号模块通过输入学号If(学号存在继续){输出学生信息}Else 输出无此学生如果选择姓名进入姓名模块If(根据比较姓名判断学生是否存在){输出学生信息}Else 输出无此学生删除模块while( 继续删除 ){提示并读入待删除的学生的学生号;显示要删除的信息}删除成功信息修改模块输入要修改学生信息的学号:If (判断是否有此学生){ 菜单形式显示要修改的项目printf("\n1.姓名 2.学号 3.性别 4.平时成绩 5. 期末成绩 \n");printf("\n输入0可返回主页面 \n");}打开文件模块struct Student *read(){struct Student *p0, *p1, *head; FILE *fp;if ( ){return NULL;}if ( ){return 0;}do{if ( ){return NULL;}if ( ){return 0;}} while ( );}排序模块int paixu(struct Student *head)while(){while(){if(){}}}}}3.使用说明及编程体会使用说明该程序可以实现学生管理系统的信息排序、查询、更新、插入和删除。

学生成绩管理系统

学生成绩管理系统
3 可以开发移动端应用:方便用户随时随 地进行学生成绩的管理和查询
4 可以引入更多的教学和管理功能:如在 线学习、教学评估等,更好地服务于教 育教学
-
THANK YOU
ENGLISH
可爱/简约/卡通
学生成绩管理系统
-
1
系统功能2系统流程来自3系统要求4
系统实现
5
系统未来发展
学生成绩管理系统
1
学生成绩管理系统是一个用于管理学生成绩的 计算机程序,通常用于学校或教育机构
2
这个系统可以记录每个学生的个人信息和成绩,
包括学生姓名、学号、班级、各科成绩等
3
以下是一个简单的学生成绩管理系统的示例
系统功能
系统流程
系统流程
2.1 学生信息流程
打开系统:进入学生信息管理界面
系统流程
选择添加学生信息:输入学生姓名、学 号、班级等信息
选择编辑学生信息:输入要修改的学生 学号,修改相关信息
选择删除学生信息:输入要删除的学生 学号,删除该学生信息
退出系统
系统流程
2.2 成绩管理流程
打开系统:进入成绩管理界面 选择添加成绩:输入学生学号及各科成 绩 选择编辑成绩:输入要修改的学生学号 及要修改的科目和成绩 选择删除成绩:输入要删除的学生学号 及科目,删除该科目成绩 退出系统

系统实现
系统实现
系统实现
为了实现学生成绩管理系统的各项功能,以下步骤需要被完成 确定系统的需求和功能:制定详细的需求说明书 设计系统的数据库结构和数据模型:包括学生信息、成绩信息等 开发系统的各项功能模块:包括学生信息管理、成绩管理、查询和统计等 进行系统的测试和调试:确保系统的稳定性和正确性 进行系统的用户培训和文档编写:确保用户能够正确使用系统

管理信息系统课程设计 学生成绩管理系统

管理信息系统课程设计 学生成绩管理系统

管理信息系统课程设计学生成绩管理系统一、引言在当今教育领域,学生成绩管理是学校教学管理的重要组成部分。

随着学校规模的不断扩大,学生人数的日益增加,传统的手工成绩管理方式已经无法满足高效、准确、便捷的管理需求。

因此,开发一个功能齐全、操作简便的学生成绩管理系统具有重要的现实意义。

二、系统需求分析(一)功能需求1、学生信息管理能够录入、修改、查询和删除学生的基本信息,如学号、姓名、班级等。

2、课程信息管理对学校开设的课程进行管理,包括课程名称、课程代码、学分、授课教师等信息的录入、修改和查询。

3、成绩录入与修改教师能够方便地录入学生的考试成绩,并支持成绩的修改和调整。

4、成绩查询与统计学生和教师可以按照不同的条件查询成绩,如学号、课程名称等。

同时,系统能够提供成绩统计功能,如平均分、最高分、最低分等。

5、权限管理为不同的用户设置不同的权限,如学生只能查询自己的成绩,教师可以录入和修改所授课程的成绩,管理员拥有系统的最高权限。

(二)性能需求1、响应时间系统在进行数据录入、查询和统计等操作时,响应时间应控制在合理范围内,确保用户的操作能够及时得到反馈。

2、稳定性系统应具备良好的稳定性,能够在长时间运行的情况下不出现故障或数据丢失。

3、安全性保证系统数据的安全性,防止非法用户的入侵和数据的篡改。

(三)数据需求1、学生信息包括学号、姓名、性别、出生日期、班级等。

2、课程信息课程代码、课程名称、学分、授课教师等。

3、成绩信息学号、课程代码、成绩等。

三、系统设计(一)总体设计1、系统架构采用 B/S(浏览器/服务器)架构,用户通过浏览器访问系统,服务器端负责数据的处理和存储。

2、模块划分系统主要分为学生信息管理模块、课程信息管理模块、成绩管理模块、查询统计模块和权限管理模块。

(二)数据库设计1、数据库概念模型根据系统需求,设计出学生、课程、成绩等实体以及它们之间的关系。

2、数据库表结构创建学生表(Student)、课程表(Course)、成绩表(Score)等,并定义相应的字段和数据类型。

学生成绩管理系统设计与实现

学生成绩管理系统设计与实现

学生成绩管理系统设计与实现摘要:学生成绩管理系统是典型的信息管理系统(MIS)。

文章系统的开发主要有前台登录查询界面以及数据库的建立2个方面。

对于前台登录界面要做到界面美观,功能完备,用户容易操作;对于数据库方面要做到数据完整性和一致性。

关键词:控件;窗体;数据库;学生成绩学生成绩管理系统主要是为用户提供方便和快捷的查询方法,但传统的人工方式管理学生的成绩依旧存在于很多学校,这些传统的方式存在着效率低、易出错等许多缺点,而且随着时间的增加会产生越来越多的文件从而导致经常会有查询的数据与实际上的数据对不上的情况,所以本文设计学生成绩管理系统,利用计算机程序设计的学生成绩管理系统,大大提升学校师生管理查询成绩的效率,并且可以做到不易出错和长期保存。

1 系统总体设计设计之前先调查学校师生对于成绩管理系统的需求,特别是对于功能方面的需求。

根据调查内容主要有学生需要查询每学期的课程安排信息,并且需要通过网络进行选择公选课和专业课,然后将所选择的内容保存到数据库,此外学生还可以查询以前每学期所上的课程成绩,而且能打印成绩,并且档案信息可以按照系部姓名和年级进行统计。

另外还应该具有汇总成绩、排列名次以及打印补考通知单等功能.根据调查结果,本学生成绩管理系统主要包括以下功能:(1)密码管理功能.(2)权限设置功能。

(3)学籍管理动能.(4)成绩管理功能。

(5)课程管理功能。

(6)退出系统功能。

2 数据库设计2.1 数据库需求分析本系统主要包括登录管理、学籍管理、课程管理、成绩管理等功能。

在每个功能中都需要设计表单和报表以及子段,然后通过输入必要的数据来操作该数据库,将所有有用的数据信息都存储到数据库中。

2.2 所需数据表及字段本系统得数据表有学院院系表、师生情况表、专业情况表、课程表、成绩表、其他基本情况表。

学院院系表主要用来记录学校的各个院系的信息情况,主要包括:院系的代码和院系的名称。

师生情况表主要用来记录教师和学生的信息,主要包括:教师工号或者学生学号、教师或学生姓名、所处权限和密码。

学生成绩管理系统数据库设计

学生成绩管理系统数据库设计

学生成绩管理系统数据库设计一、引言学生成绩管理系统是现代教育系统中必不可少的一部分。

数据库作为该系统的核心组成部分,用于存储和管理学生的个人信息和学业成绩数据。

本文将介绍学生成绩管理系统数据库设计的方案,包括数据库的结构、关系和各个表的字段及其类型。

二、数据库结构学生成绩管理系统数据库包含多个表,每个表对应一个实体或关系。

以下是数据库的主要结构:1. 学生表(Student)该表存储学生的个人信息,如学生ID、姓名、年龄、性别、班级等。

表结构如下:- 学生ID(StudentID):主键,用于唯一标识学生。

- 姓名(Name):学生的姓名。

- 年龄(Age):学生的年龄。

- 性别(Gender):学生的性别。

- 班级(Class):学生所在的班级。

2. 课程表(Course)该表存储所有开设的课程信息,如课程ID、课程名称、学分等。

表结构如下:- 课程ID(CourseID):主键,用于唯一标识课程。

- 课程名称(CourseName):课程的名称。

- 学分(Credit):课程的学分。

3. 成绩表(Grade)该表存储学生的成绩信息,包括学生ID、课程ID、成绩等。

表结构如下:- 学生ID(StudentID):外键,与学生表中的学生ID相关联。

- 课程ID(CourseID):外键,与课程表中的课程ID相关联。

- 成绩(Score):学生在某一门课程中的成绩。

三、关系说明学生成绩管理系统数据库中的表之间存在以下关系:1. 学生与课程的多对多关系一个学生可以选择多门课程,而一门课程也可以被多个学生选择。

这种关系可以通过成绩表来连接学生表和课程表。

2. 学生与成绩的一对多关系一个学生可以有多门课程的成绩,而一门课程只对应一个学生的成绩。

这种关系可以通过成绩表中的学生ID字段来建立。

3. 课程与成绩的一对多关系一门课程可以有多个学生的成绩,而一个学生只对应一门课程的成绩。

这种关系可以通过成绩表中的课程ID字段来建立。

学生成绩管理系统数据流程图及数据字典

学生成绩管理系统数据流程图及数据字典

学生成绩管理系统数据流程图及数据字典一、数据流程图数据流程图是用来描述学生成绩管理系统中数据的流动和处理过程的图形化工具。

它能够清晰地展示出各个数据流的来源、去向以及数据的处理过程,有助于我们理解系统的结构和功能。

以下是学生成绩管理系统的数据流程图:1. 学生成绩录入流程图:[学生信息] --> [成绩录入] --> [成绩信息]学生信息数据流向成绩录入模块,成绩录入模块将录入的成绩信息存储到成绩信息数据库中。

2. 学生成绩查询流程图:[学生信息] --> [成绩查询] --> [成绩信息]学生信息数据流向成绩查询模块,成绩查询模块根据学生信息从成绩信息数据库中检索相应的成绩信息并返回给用户。

3. 学生成绩统计流程图:[成绩信息] --> [成绩统计] --> [统计结果]成绩信息数据流向成绩统计模块,成绩统计模块根据成绩信息进行相应的统计计算,并将统计结果返回给用户。

4. 学生成绩报表生成流程图:[成绩信息] --> [报表生成] --> [成绩报表]成绩信息数据流向报表生成模块,报表生成模块根据成绩信息生成相应的成绩报表,并将报表返回给用户。

5. 学生成绩修改流程图:[学生信息] --> [成绩修改] --> [成绩信息]学生信息数据流向成绩修改模块,成绩修改模块根据学生信息从成绩信息数据库中找到对应的成绩信息并进行修改。

二、数据字典数据字典是学生成绩管理系统中各个数据流、数据存储和处理过程的详细说明,包括数据的定义、属性、类型以及数据流的来源和去向等信息。

下面是学生成绩管理系统的数据字典:1. 学生信息:- 学号(属性):字符串类型,用于惟一标识学生的学号。

- 姓名(属性):字符串类型,表示学生的姓名。

- 年级(属性):字符串类型,表示学生所属的年级。

- 班级(属性):字符串类型,表示学生所属的班级。

2. 成绩信息:- 学号(属性):字符串类型,用于惟一标识学生的学号。

学生成绩管理系统

学生成绩管理系统

一个简单的学生成绩管理系统本程序有以下功能:1.录入学生的信息及成绩2.查找学生的信息3.修改学生的信息4.添加学生的信息(程序编译无误,可以运行,自己写的,难免有疏漏,欢迎批评指正。

)程序源码如下:#include<stdio.h>#define MAXSIZE 100typedef struct student{int number;char name[20];char sex[2];int score[3];int total;float average;}STUDENT;STUDENT stu[MAXSIZE];void InputStu(STUDENT stu[],int n);void OutputStu(STUDENT stu[],int n);void SerachStu(STUDENT stu[],int n);void UpdateStu(STUDENT stu[],int n);void AppendStu(STUDENT stu[],int *pn);int main(){int n;int index;printf("请输入学生记录个数:\n");scanf("%d",&n);InputStu(stu,n);do{printf("\n***********************学生信息管理主菜单***********************\n");printf("\t1:显示学生信息\n");printf("\t2:查找学生信息\n");printf("\t3:修改学生信息\n");printf("\t4:添加学生信息\n");printf("\t5:退出\n");printf("\t :请选择1~5\n");scanf("%d",&index);printf("\n******************************************************************\n ");switch (index){case 1:OutputStu(stu,n);break;case 2:SerachStu(stu,n);break;case 3:UpdateStu(stu,n);break;case 4:AppendStu(stu,&n);break;case 5:return 0;default:printf("输入有误,请重新输入\n");}}while(1);}void InputStu(STUDENT stu[],int n){int i=0,j=0;for(i=0;i<n;i++){stu[i].total=0;printf("number:");scanf("%d",&stu[i].number);printf("name:");scanf("%s",stu[i].name);printf("sex:");scanf("%s",stu[i].sex);printf("分别输入英语、电路、高数成绩\n");for(j=0;j<3;j++){scanf("%d",&stu[i].score[j]);stu[i].total+=stu[i].score[j];}stu[i].average=stu[i].total/3.0;}}void OutputStu(STUDENT stu[],int n){int i=1;STUDENT *p=stu;printf("\n序号\t学号\t姓名\t性别\t英语\t电路\t高数\t总分\t平均分\n");for(p;p<stu+n;p++){printf("%d\t",i++);printf("%d\t",p->number);printf("%s\t",p->name);printf("%s\t",p->sex);printf("%d\t",p->score[0]);printf("%d\t",p->score[1]);printf("%d\t",p->score[2]);printf("%d\t",p->total);printf("%f\n",p->average);}}void SerachStu(STUDENT stu[],int n){int x,i;printf("请输入要查找学生的学号:\n");scanf("%d",&x);for(i=0;i<n;i++){if(stu[i].number==x)break;}if(i<n){printf("%d\t%s\t%s\t",stu[i].number,stu[i].name,stu[i].sex);}elseprintf("不存在学号为%d的学生,查找失败\n",x);return ;}void UpdateStu(STUDENT stu[],int n){STUDENT *p;int x1,x2;printf("请输入要修改学生的学号:\n");scanf("%d",&x1);for(p=stu;p<stu+n;p++){if(p->number==x1)break;}if(p<stu+n){printf("%d\t%s\t%d\n",p->number,p->name,p->score[2]);printf("请输入新的数学成绩\n");scanf("%d",&x2);p->score[2]=x2;p->total=p->score[0]+p->score[1]+p->score[2];p->average=p->total/3.0;}else{printf("不存在学号为%d的学生,修改失败\n",x1);}return ;}void AppendStu(STUDENT stu[],int *pn){int i;if(*pn==100){printf("空间已满,不能添加!\n");return ;}else{i=*pn;printf("请依次输入\n");printf("学号姓名性别英语电路高数\n");scanf("%d%s%s%d%d%d",&stu[i].number,stu[i].name,stu[i].sex,&stu[i].score[0],&stu[i].sco re[1],&stu[i].score[2]);stu[i].total=stu[i].score[0]+stu[i].score[1]+stu[i].score[2];stu[i].average=stu[i].total/3.0;*pn=*pn+1;}return ;}。

学生成绩管理信息系统

学生成绩管理信息系统

第一部分系统的需求分析1.1现状分析随着计算机应用的普及和迅雷般的飞速发展,信息化必然成为世界发展的潮流和趋势。

信息化正在以前所未有的速度影响着人类的方方面面,同时对传统教育的改革也起到了推动作用。

作为培养一代又一代面向21世纪,面向社会人才的摇篮一一学校,必然受到全球信息化影响。

在学校众多管理工作中,学生的成绩管理原来越重要。

然而传统的工作方式如手工修改和查询成绩是一项非常繁重而枯燥的工作,经常耗费很大财力和人力。

数据量大时,将不可避免的出现失误。

因此,学生成绩管理工作的信息化是十分必要的。

学生成绩管理系统是利用现代的信息技术,实现学生信息资源的共享,实现学生信息与社会其他信息的有机联系,促进学生成绩管理工作的科学化、现代化,提高学生管理工作的效率。

1.2系统需求分析通过调查,要求系统具有以下功能:1)任课教师可以录入所教课程的成绩2)成绩的上传和下载3)教务处即系导员能够统计成绩4)成绩的发布和查询5)用户权限的限定第二部分系统的可行性分析可行性研究的目的使用最小的代价在尽可能段的时间确定问题是否能解决。

也就是说可行性研究的目的不是解决问题而是确定问题是否值得去研究解决,研究在当前,开发新系统是否具备必要的资源和其他条件。

一般说来,可行性分析包括技术可行性、经济可行性、社会可行性等方面。

2.1技术可行性分析该系统选择微软公司的Visual Basic 6.0作为系统开发工具,主要是因为它是一个快速可视化程序开发工具软件且功能强大,主要表现为:所见即所得的界面设计,尤其是数据窗口能方便而间接操纵数据库的智能化对象,基于对象的设计方法,极短的软件开发周期,较易的代码维护,同时还有众多的Active控制,提高了软件的使用效率。

连接采用SQL Server数据库,SQL Server是一种关系数据库工具,关系数据库已开发的最通用的数据库之一。

该数据库能汇集各种信息以供查询、存储和检索。

它是一种使用广泛的数据库管理系统,具有许多优点:易用性、适合分布组织科伸缩性、用于决策支持的数据库功能等。

学生成绩管理系统

学生成绩管理系统

摘要学生成绩管理系统是为了实现学校对学生成绩管理的系统化、规范化和自动化,从而提高学校管理效率而设计的。

它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成学生成绩管理提供了强有力的工具和管理手段。

学生成绩管理系统应该是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了学生成绩管理的要求。

本文中只是运用结构化方法学对这一系统的简单分析与建模,没有具体的实现过程,通过这阶段的学习与思考,能够对软件开发过程进行简单分析和判断。

关键字:成绩管理系统建模目录摘要 (1)目录 (1)1绪论 (1)1.1 设计任务 (1)1.1.1 需求说明 (1)1.1.2系统设计目标 (1)1.2 设计内容 (2)2 需求分析 (2)2.1 系统功能需求 (2)2.2 系统的性能需求 (2)2.3 系统数据要求 (3)2.4 系统业务流程分析 (3)2.4.1 班级管理业务流程图: (4)2.4.2学籍管理业务流程图: (4)2.4.3成绩管理业务流程图: (5)2.4.4课程管理业务流程图: (5)2.5数据模型的实体——联系图表示 (5)2.6 功能模型的数据流图表示 (7)2.7本章小结 (7)3 概要设计 (8)3.1 系统功能设计 (8)3.2系统模块具体划分 (9)4 详细设计 (11)5体会 (14)6参考文献 (15)1绪论1.1 设计任务1.1.1 需求说明学生成绩管理系统提供了强大的学生成绩管理管理功能,方便系统管理员对学生成绩等信息的添加、修改,打印等操作,同时一样的方面学生对自己各科成绩查询,学习的交流。

学生信息管理系统在管理学生中占有重要的地位,它关系着学生信息的基本信息,其中包括学生信息,班级信息、课程信息等。

对于学校来讲,学生信息管理系统是不可缺少的组成部分,它有效地管理学生档案,对学校学生的变动和统计起着重要的管理作用。

大学生成绩管理信息系统

大学生成绩管理信息系统

一、成绩管理信息系统规划学生成绩是高校人才培养计划的重要组成部分,是实现人才培养目标、培养学生科研能力与创新思维、检验学生综合素质与实践能力的重要手段与综合性实践教学环节。

而笔者所在学院多采用半手工管理学生成绩的方式,所以有必要开发学生成绩管理系统来对学生成绩档案进行数字化管理。

既可减轻学院教职员工工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,又可加快成绩查询速度、加强成绩管理,跟上国家各部门关于信息化的步伐,使各项管理更加规范化。

正是针对上述问题,本论文对学生成绩管理系统的开发过程进行了较为详细的论述。

本系统是以大学生成绩管理信息系统为开发内容的管理信息系统,讲述了除系统实施外的全部内容,报告分包括在内的部分。

1、系统名称:大学生成绩管理信息系统2、系统开发背景:当今社会计算机的应用已深入到社会生活的各个方面,而其在拥有众多21世纪国家和社会顶梁柱的大学更是不可缺少的。

而随着计算机技术的发展的计算机人才的大量涌现计算机在信息管理方面的优势逐渐凸现出来,并开始大量应用于各层次的信息管理服务与实践中。

与此同时,大量管理信息系统软件不断涌现,且不断升级与改进。

大学生成绩管理是一项繁杂、琐碎的事务,同时其管理又与学生学籍管理、学生基本信息管理、教务系统等联系密切,它涉及到对学生的奖惩以及找工作,对教师的教学评估的重要事宜,因此大学生成绩管理的水平的重要性可见一斑。

应用大学生成绩管理信息系统来进行管理必定会大大提高管理的速度、实效、安全性、准确性、完整性、保密性。

本系统主要针对当前一些大学对学生信息管理不到位、混乱等不足进行开发并引以为鉴,当然由于开发人员专业知识和计算机技术有限,设计中可能存在欠缺,望请老师及相关读者给予指正。

本系统的业务主要包括任课教师登记汇总初始成绩、学生反馈、组织补考、成绩修改、教务系统进行统计分析修正后的成绩、学生查询。

3、项目背景开发软件的名称:学生信息管理系统项目的任务提出者:西安外事学院开发者:×××用户:西安外事学院学生信息管理员实现软件的单位:人力(电商)一班兼容系统:Windows XP SP2/SP3开发工具:+ Microsoft SQL Server 2000开发时间:6个月4、相关术语Macromedia Dreamweaver 8:网页设计工具Microsoft SQL Server:数据库工具5、选题说明:当今学生成绩管理的繁琐给具有强烈时间观念的行政人员带来了诸多不便,教学办公室缺少一种完善的学籍管理软件,为了对学生成绩的管理方便,开发人员完成了全面的调查与分析,同时与目标用户进行了多次深入沟通,主要用于大中专院校学生日常管理工作,以规范的学生档案为基础,实现了学生考勤,学籍变更、学生奖惩、考试成绩、教师考勤等电算化管理,实现学校人力资源的优化和学生成绩管理的科学管理而设计的,通过试用本系统,可以更加有效的管理学生成绩信息,系统目标。

学生成绩管理信息系统

学生成绩管理信息系统

摘要随着信息系统的普及,学生成绩管理系统依据开发要求主要应用于教育系统,完成对日常的教育工作中学生成绩档案的数字化管理。

开发本系统可使学院教职员工减轻工作压力,比较系统地对教务、教学上的各项服务和信息进行管理,同时,可以减少劳动力的使用,加快查询速度、加强管理,以及国家各部门关于信息化的步伐,使各项管理更加规范化。

本系统在开发过程中,采用Visual Basic作为开发工具,Access作为后台数据库,注意使其符合操作的业务流程,并力求系统的全面性、通用性,使得本系统不只适用于一家教育机构。

在开发方法的选择上,选择了生命周期法与原型法相结合的方法,遵循系统调查研究、系统分析、系统设计和系统实施四个主要阶段进行设计,而在具体的设计上,采取了演化式原型法,随着用户的使用及对系统了解的不断加深,对某一部分或几部分进行重新分析、设计、实施。

本论文主要从系统分析、系统设计、系统实施与使用等几个方面进行介绍。

关键词:学生成绩管理信息系统;Visual Basic 6.0;Access 2000Student achievement management systemStudent:LIANG Ren-ren Teacher:QIN Li-taoAbstract:With the development of information systems , Student achievement management system is mainly applied to education system which manage as the daily teaching education al administration and computeration of teachers and students.Developing grade Management System cannot only ruduce thep resure of the staff and system atically manage the service and information,but also decrease the use of lab our force,accelerate there quiring speed,improve management,speed the pace of concernad national department automated information retrieval to standardize the managements.In developing procedure, ,we use VB and database Access 2000 technology to exploit this system. It can give you a short-cut to build up a prototype of system application. The prototype could be modified and developed till users are satisfied with it. This system can achieve fundamentally adding、modification and deleting functions in student score and student information facts. The system also includes extra function: security 、updating、expanding 、safeguard etc.Keywords:Student achievement management system;Visual Basic 6.0;Access 2000目次摘要 (I)ABSTRACT (II)绪论 (1)1 系统分析 (2)1.1系统需求分析 (2)1.2系统可行性分析 (2)1.2.1经济上可行性 (2)1.2.2技术上可行性 (2)1.2.3运行上可行性 (3)2 系统设计原理分析 (3)2.1基础数据的处理问题 (3)2.2开发工具设计分析 (3)3 系统设计 (4)3.1系统结构体系设计 (4)3.1.1 功能模块 (5)3.1.2身份认证 (6)3.2数据库结构设计 (7)3.2.1数据结构 (7)3.2.2表结构 (8)3.3系统性能要求设计 (11)3.3.1安全可靠性 (11)3.3.2操作灵活性 (11)3.3.3可维护性 (11)4 系统测试实施 (11)4.1软件测试 (11)4.1.1测试软件 (11)4.1.2测试环境 (12)4.1.3测试内容 (12)4.1.4 测试过程 (12)4.1.5 测试结果 (13)4.1.6数据测试结果图 (13)结论 (15)谢辞 (17)参考文献 (18)绪论随着社会的发展和经济时代的到来,管理信息系统在各行各业都越来越重要,特别是教育事业。

学生成绩管理系统(详细操作过程)精讲

学生成绩管理系统(详细操作过程)精讲

学生成绩管理系统我将把我的实现步骤完整的写出来,我是在VC 6.0版本下用MFC实现的。

我创建的基于单文档的应用程序,过程不介绍,大家都会。

下面的是我系统菜单:思路:刚进入系统时,只有“登录”菜单可用,其他三个菜单项都是灰色不可用的。

当用户点“进入系统”菜单项时,用户输入用户名、密码和用户类型,系统将根据相应的用户权限使相应的菜单可用,并且“进入系统”菜单项变为不可用。

如:如果用户类型是学生,那么只有学生权限菜单可用,而“教师权限”和“管理员权限”都不可用,同时“进入系统”变为不可用.“学生权限”下只有“查询成绩",因为学生只可以查询自己相应的成绩;“教师权限"下有“查询学生成绩”和“增改删学生成绩”两个菜单项,因为教师除了可以查询学生成绩还可以增加、修改和删除学生成绩;“管理员权限”下有“管理学生"和“管理教师"两个菜单项。

整体设计:因为我们要设置系统菜单的状态,所以必须在CMainFrame中添加相应的函数和代码,具体步骤如下:【步骤1】由于系统要使用ODBC类操作数据库,所以需要在stdafx。

h中加入代码:#include 〈afxdb。

h〉【步骤2】在CMainFrame中的OnCreat()中添加代码如下,实现菜单的初始化工作,当用户没进入系统之前,只有“登陆”菜单下的“进入系统”菜单项可用,而“退出系统"和其他3个权限菜单都不可用,即都是灰色的。

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct){//使“退出系统”和其他3个权限菜单都不可用,即都是灰色的GetMenu()-〉GetSubMenu(0)—> EnableMenuItem(1,MF_BYPOSITION | MF_DISABLED |MF_GRAYED);GetMenu()—> EnableMenuItem(1,MF_BYPOSITION |MF_DISABLED |MF_GRAYED);GetMenu()—> EnableMenuItem(2,MF_BYPOSITION |MF_DISABLED |MF_GRAYED);GetMenu()-〉EnableMenuItem(3,MF_BYPOSITION |MF_DISABLED | MF_GRAYED);}【步骤3】在CMainFrame中添加自己定义的函数void SetMenuSta(int type),此函数在登陆对话框的OnOK()中被调用,即当用户进入系统后使“进入系统”菜单项不可用,并根据用户类型使相应菜单可用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西安文理学院信息工程学院软件编程课程设计报告设计题目:学生成绩管理系统课程设计学生学号: 020*******专业班级:物联网工程一班学生姓名:张旺阳学生成绩:指导教师(职称):课题工作时间: 2015-11-25 至 2015-12-9 信息工程学院软件编程课程设计任务书指导教师:日期:2015年11月25日成绩评定表学生姓名:张旺阳学号: 020******* 专业/班级:物联网工程一班目录1. 概述 (1)1.1课题背景 (1)1.2系统功能 (3)1.3设计要求 (4)2. 概要设计 (5)2.1系统功能模块 (5)2.2各模块流程图 (6)3. 详细设计 (8)3.1 程序中使用的数据结构 (8)3.2 函数列表 (10)4. 设计结果与分析 (12)5. 总结与体会 (15)参考文献 (X)附录主要程序代码 (X)1.1课题背景随着计算机的普及,计算机在生活中得到越来越多的应用,其中在计算机上运行的各种软件在解决生活中的实际问题中起到重大的作用,而目前在编写应用程序时,c++以其高效及灵活性成为大多数程序设计者的首选,其次对于普通用户者,利用c++语言设计出适用的小型软件对解决生活中的繁琐问题有很大的作用。

在学校或班级,教师经常会对某次考试中的所有学生的成绩进行统计和管理,由于学生数目经常繁多,所以在处理统计学生总成绩和平均成绩时工作会相对繁琐,所以针对这种情况,同时我分析了成绩管理所需要的功能,在利用C++语言及VC++6.0程序运行平台之下,设计一种小型的学生成绩管理系统。

1.2系统功能1.录入2.修改3.求总分4.求平均分5.查询6.排序1.3设计要求学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)。

主要功能:(1)能按学期、按班级完成对学生成绩的录入、修改(2)能按班级统计学生的成绩,求学生的总分及平均分,设计并输出统计报表(3)能查询学生成绩,不及格科目及学生名单(4)能按班级输出学生的成绩单(5)能按班级,按课程,对学生成绩进行排序。

要求:使用二进制文件方式存储数据,系统以菜单方式工作第二章概要设计2.1系统功能模块(1)创建主菜单(2)实现学生成绩信息录入(3)实现学生成绩信息查询(4)实现学生成绩信息修改(一)修改某个学生的成绩(a)按学期查询学生的成绩(b)按班级查询学生的成绩(c)按学号查询学生的成绩(二)查询不及格的科目和学生名单(5)实现学生成绩统计(a)按班级统计学生的总分。

(b)按班级统计学生的平均分。

(6)实现学生成绩信息输出(7)保存学生的成绩信息于文件2.2系统功能流程图第三章详细设计3.1主要数据结构typedef struct studentMark{int term;int classes;char name[10];int number;char sex[7];float chinese;float math;float english;float computer;struct studentMark *next;} MARK;这是定义一个结构体,主要包括学期,班级,姓名,学号,性别,语文成绩,数学成绩,英语成绩,计算机成绩,以及包括一个结构体指针。

另外还用了typedef这个关键字。

因此,在程序的后面也可以用MARK来定义结构体变量或结构体指针变量。

int term; 定义学期,学期只能是第一学期或者第二学期。

例如int 1;则表示第一学期。

int classes; 定义班级,班级只能是一班或者二班。

例如 int 2;则是表示定义为二班。

char name[10]; 定义姓名,在数组中存放字符串。

例如char name[]=“yang”;则该学生的姓名为yang int number; 定义学号,例如int 1;则该学生学号为1号。

char sex[7]; 定义姓别,其性别最大长度为7.例如 char sex[]=“man”;说明该学生为男生。

同样可以这样定义女生。

float chinese; 定义语文成绩。

float math; 定义数学成绩。

float english; 定义英语成绩。

float computer; 定义计算机成绩。

struct studentMark *next; 定义一个结构体指针。

3.1.1 主函数int main();主函数,程序的入口。

void m(MARK *head);主菜单的函数原型,在函数m(head)中主要有选择创建学生成绩信息,查询学生成绩信息,修改学生成绩信息,统计学生成绩信息,输出学生成绩信息,存储学生成绩信息于文件,以及退出体统等选项可供用户选择。

MARK *creat(void );创建函数的函数原型,在函数creat()中用户可以输入初始的学生信息:其中包括学生的学期、班级、姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息。

3.1.2 查询函数void searchMark(MARK *head);查询菜单的函数原型,在函数searchMark(head)中用户可以自由选择是查询某一个学生的成绩还是查询不及格学生的成绩。

而这通过调用函数searchMarkStusentone(head)和函数searchMarkFail(head)完成操作。

void searchMarkStusentone(MARK *head);查询某个学生成绩的函数原型,在函数searchMarkStusentone(head)中用户可以按学号或班级或者是按学期来查找某个学生的成绩。

通过函数searchnumber(head)和函数 searchclasses(head)以及函数searchterm(head)完成操作。

void searchnumber(MARK *head) 按学号查找学生的函数原型,;void searchclasses(MARK *head); 按班级查找学生的函数原型,void searchterm(MARK *head); 按学期查找学生的函数原型,void searchMarkFail(MARK *head);查询没有及格的学生的函数原型,通过这个函数可以查找学生不及格科目及学生名单。

3.1.3 修改函数MARK *changeMark(MARK *head);修改学生成绩信息的函数原型,可以修改学生的学期、班级、姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息。

3.1.4 统计函数void conuntMark(MARK *head);统计学生成绩的函数原型,在函数conuntMark(head)中用户可以统计学生的总成绩以及平均成绩,通过调用函数totalMark(head)和函数aveMark(head)完成操作。

3.1.5 输出函数void totalMark(MARK *head); 统计学生总成绩的函数原型,void aveMark(MARK *head); 统计学生平均成绩的函数原型,void printClassMark(MARK *head);输出学生成绩信息的函数原型,通过此函数可以输出学生的学期、班级、姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息到屏幕上。

void saveFileMark(MARK *head);存储学生成绩信息于文件的函数原型,通过此函数可以输出学生的学期、班级、姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息与文件中。

第四章设计结果及分析4.1程序设计结果4.1.1源程序如下:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#define MAR (struct studentMark *)malloc(sizeof(struct studentMark))typedef struct studentMark{int term;int classes;char name[10];int number;char sex[7];float chinese;float math;float english;float computer;struct studentMark *next;} MARK;void m(MARK *head);MARK *creat(void );void searchMark(MARK *head);void searchMarkStusentone(MARK *head);void searchnumber(MARK *head);void searchclasses(MARK *head);void searchterm(MARK *head);void searchMarkFail(MARK *head);MARK *changeMark(MARK *head);void conuntMark(MARK *head);void totalMark(MARK *head);void aveMark(MARK *head);void printClassMark(MARK *head);void saveFileMark(MARK *head);int main(void){MARK *head=NULL;printf("**********************************************\n");printf(" ## 欢迎进入学生成绩信息管理系统##\n");printf("**********************************************\n");printf("\n");head=creat();m(head);return(0);}void m(MARK *head ){int choose;while(1){printf("************************************\n");printf(" 学生成绩信息管理\n");printf("************************************\n");printf(" 1创建成绩信息\n");printf(" 2查询成绩信息\n");printf(" 3修改成绩信息\n");printf(" 4统计成绩信息\n");printf(" 5按班级输出学生信息\n");printf(" 6保存成绩信息于文件\n");printf(" 7退出系统\n");printf("************************************\n");fflush(stdin);printf("请选择:");scanf("%d",&choose);if(1==choose)head=creat();else if(2==choose)searchMark(head);else if(3==choose)head=changeMark(head);else if(4==choose)conuntMark(head);else if(5==choose)printClassMark(head);else if(6==choose)saveFileMark(head);elseprintf("退出系统");break;}}//创建一个学生成绩信息系统MARK *creat(){MARK *head=NULL,*p1=NULL,*p2=NULL;char ch;fflush(stdin);printf("请问是否输入信息?(y 或n)\n");scanf("%c",&ch);head=p1=p2=MAR;while(p1!=NULL && ch=='y'){p1=MAR;printf("请输入要录入学生信息的学期(学期只能为 1 或 2 ):");fflush(stdin);scanf("%d",&p1->term);while(p1->term!=1 && p1->term!=2){getchar();printf("输入错误!请重新输入:");scanf("%d",&p1->term);}printf("请输入要录入学生成绩信息的班级:");fflush(stdin);scanf("%d",&p1->classes);while(p1->classes!=1 && p1->classes!=2){getchar();printf("输入错误!请重新输入:");scanf("%d",&p1->classes);}printf("请输入该班的学生信息!\n");printf("请输入学生学号:");fflush(stdin);scanf("%d",&p1->number);printf("请输入学生姓名:");fflush(stdin);scanf("%s",p1->name);printf("请输入学生姓别:");fflush(stdin);scanf("%s",p1->sex);fflush(stdin);printf("请输入语文成绩(0-100):");scanf("%f",&p1->chinese);fflush(stdin);printf("请输入数学成绩(0-100):");scanf("%f",&p1->math);fflush(stdin);printf("请输入英语成绩(0-100):");scanf("%f",&p1->english);fflush(stdin);printf("请输入计算机成绩(0-100):");scanf("%f",&p1->computer);p2->next=p1;p2=p1;printf("是否还要输入信息(y/n):");fflush(stdin);scanf("%c",&ch);}p2->next = NULL; //链表结尾return(head);}//查找学生成绩信息void searchMark(MARK *head){int choose1;while(1){printf("************************************\n");printf(" 查询学生成绩信息\n");printf(" 1查询某个学生成绩\n");printf(" 2查询不及格学生成绩\n");printf(" 3返回主菜单\n");printf("*************************************\n");fflush(stdin);printf("请选择:");scanf("%d",&choose1);if(1==choose1)searchMarkStusentone(head);else if(2==choose1)searchMarkFail(head);elseprintf("返回主菜单");break;}}//修改学生成绩信息(按学期或按学号修改)MARK *changeMark(MARK *head){int choose2;MARK *p=head->next;char name[10];char ch;int number;printf("************************************\n");printf(" 你所需要修改的\n");printf(" 1修改学号\n");printf(" 2修改姓名\n");printf(" 3修改班级\n");printf(" 4修改性别\n");printf(" 5修改成绩\n");printf("*************************************\n");fflush(stdin);printf("请选择:");scanf("%d",&choose2);while(1){while(p!=NULL){if(1==choose2){printf("你要修改的信息是:学号!\n"); //按姓名修改学号fflush(stdin);printf("请输入你要修改的学生姓名:");scanf("%s",name);if (strcmp(name,p->name)==0){fflush(stdin);printf("请输入该学生新的学号:"); //输入新学号scanf("%d",&p->number);printf("修改学生的学号后:\n");printf("%s学生的新学号是%d\n",p->name,p->number);break;}}else if(2==choose2){printf("你要修改的信息是:姓名!\n");fflush(stdin);printf("请输入你要修改的学生的学号:");scanf("%d",&number);if(number==p->number)//输入学号,判断条件{fflush(stdin);printf("请输入该学生的姓名:");scanf("%s",p->name);//输入要做修改的学生姓名printf("修改学生的姓名后:\n");printf("%s是该学生的新姓名\n",p->name);break;}}else if(3==choose2){printf("你要修改的信息是:班级!\n"); //按学号修改班级fflush(stdin);printf("请输入你要修改的学生的学号:");scanf("%d",&number);if(number==p->number){fflush(stdin);printf("请输入该学生的班级:"); //输入要做修改的班级scanf("%d",&p->classes);printf("修改班级后\n");printf("该学生的新班级为:%d\n",p->classes);break;}}else if(4==choose2){printf("你要修改的信息是:性别!\n"); //按学号修改性别fflush(stdin);printf("请输入你要修改的学生的学号:");scanf("%d",&number);if(number==p->number){fflush(stdin);printf("请输入该学生的性别:"); //输入要做修改的性别scanf("%s",p->sex);printf("修改该学生的性别后\n");printf("该学生的新性别为:%s\n",p->sex);break;}}else if(5==choose2){printf("你要修改的信息是:成绩!\n");//按学号修改成绩fflush(stdin);printf("请输入你要修改的学生的学号:");scanf("%d",&number);if(number==p->number)//输入学号{fflush(stdin);printf("请输入该学生新的语文成绩:\n");scanf("%f",&p->chinese);fflush(stdin);printf("请输入该学生新的数学成绩:\n");scanf("%f",&p->math);//输入新的四门成绩fflush(stdin);printf("请输入该学生新的英语成绩:\n");scanf("%f",&p->english);fflush(stdin);printf("请输入该学生新的计算机成绩:\n");scanf("%f",&p->computer);printf("修改后的成绩\n");printf("该学生新的语文成绩:%f\n",p->chinese);printf("该学生新的数学成绩:%f\n",p->math);printf("请该学生新的英语成绩:%f\n",p->english);printf("该学生新的计算机成绩:%f\n",p->computer);break;}}elsep=p->next;}printf("是否还要继续修改信息(y/n):\n"); //判断,是否还要修改信息,跳出循环fflush(stdin);if((ch=getchar())=='n')break;}return(head);//统计学生成绩总分和平均分void conuntMark(MARK *head){MARK *p=head->next;int classes;char ch1,ch2;fflush(stdin);printf("请输入要统计成绩的班级(1或2):");scanf("%d",&classes);printf("正在统计该班级学生的总分,请稍侯!!!\n");while(1){totalMark(p);printf("是否还要继续统计其他学生的成绩(y/n):");fflush(stdin);if((ch1=getchar())=='n')break;}printf("是否统计该班级学生平均分?(y/n):");fflush(stdin);if((ch2=getchar()!='n')){printf("正在统计该班学生平均分进行统计,请稍侯!!!\n");aveMark(p);//调用平均分函数printf("\n");}//按班级输出学生信息void printClassMark(MARK *head){MARK *p;p=head->next;printf("***********************************************************************\n");printf("学期\t学号\t班别\t姓名\t性别\t语文\t\t数学\t\t英语\t\t计算机\t\t\n");printf("***********************************************************************\n");while(p!=NULL){printf("%d\t",p->term);printf("%d\t",p->number);printf("%d\t",p->classes);printf("%s\t",p->name);printf("%s\t",p->sex);printf("%f\t",p->chinese);printf("%1f\t",p->math);printf("%1f\t",p->english);printf("%1f\t",p->computer);p=p->next;printf("\n");printf("**************************************************************************\n");}}//保存学生成绩信息于文件void saveFileMark(MARK *head){char *fileName;FILE *stu;MARK *p=head->next;if(p==NULL){printf("没有任何信息,请先存入信息!\n");printf("请按任意键返回主菜单!\n");getchar();}else{fileName=(char *)malloc(sizeof(char));fflush(stdin);printf("请输入你要保存的文件名!\n");gets(fileName);fileName=strcat(fileName,".txt");stu=fopen(fileName,"wb+");while(p!=NULL){fprintf(stu,"%d %d",p->term ,p->classes );fprintf(stu,"%s %d",p->name,p->number);fprintf(stu,"%s",p->sex );fprintf(stu,"%f %f %f %f",p->chinese ,p->math ,p->english ,p->comp uter );p=p->next ;}fclose(stu);printf("已经保存文件在%s中!\n",fileName);printf("请按任意键返回主菜单!\n");getchar();}}//查找某个学生的成绩void searchMarkStusentone(MARK *head){char ch1,ch2;MARK *p=head->next;if(p==NULL){printf("没有任何信息,请先存入信息!\n");printf("请按任意键返回主菜单!\n");getchar();}elsewhile(1){printf(" 你要选择何种方式查询成绩!\n");printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");printf(" a、学号: \n");printf(" b、班级: \n");printf(" c、学期: \n");printf("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");fflush(stdin);scanf("%c",&ch1);switch(ch1){case 'a':searchnumber(head);break;case 'b':searchclasses(head);break;case 'c':searchterm(head);break;}printf("\n");printf("是否还要继续查询学生的信息(y/n):");fflush(stdin);if((ch2=getchar())=='n')break;}}//查询不及格学生void searchMarkFail(MARK *head){MARK *p=head->next ;char name[10];int number,flag=0;int choose5;do{fflush(stdin);printf("请输入!(1按姓名查询 2按学号查询 3 返回)\n");scanf("%d",&choose5);switch(choose5){case 1 :fflush(stdin);printf("请输入要查找的名字\n");gets(name);while(p!=NULL){if(!strcmp(name,p->name)){printf("姓名学号\n");printf("%s %d\n",p->name ,p->number );if(p->chinese <60)printf("%s 的语文成绩不及格\n",p->name );if(p->math <60)printf("%s 的数学成绩不及格\n",p->name );if(p->english <60)printf("%s 的英语成绩不及格\n",p->name );if(p->computer <60)printf("%s 的计算机成绩不及格\n",p->name );flag++;}printf("\n");p=p->next;}if(flag==0)printf("没有你要找的信息!\n");break;case 2 :fflush(stdin);printf("请输入你想要查找的学号:\n");scanf("%d",&number);while(p!=NULL){if(number==p->number){printf("姓名学号\n");printf("%s %d\n",p->name ,p->number );if(p->chinese <60)printf("%s 的语文成绩不及格\n",p->name );if(p->math <60)printf("%s 的数学成绩不及格\n",p->name );if(p->english <60)printf("%s 的英语成绩不及格\n",p->name );if(p->computer <60)printf("%s 的计算机成绩不及格\n",p->name );flag++;}printf("\n");p=p->next;}if(flag==0)printf("没有你要找的信息!\n");break;case 3:printf("请按任意键返回!\n");getchar();break;default:printf("你输入的有误!!请重新选择\n");break;}}while(choose5!=1 && choose5!=2 && choose5!=3);printf("按任意键返回!\n");getchar();}//按学号查询void searchnumber(MARK *head){MARK *p=head->next;int number,i=0;printf("请输入你要查询的学生学号:\n");scanf("%d",&number);while(p!=NULL){if(number==p->number){printf("-------------------------------------------------------------------------\n");printf("\t学期\t学号\t班别\t姓名\t性别\t语文\t数学\t英语\t计算机\t\n");printf("-------------------------------------------------------------------------\n");printf("%d\t",p->term);printf("%d\t",p->number);printf("%d\t",p->classes);printf("%s\t",p->name);printf("%s\t",p->sex);printf("%1f\t",p->chinese);printf("%1f\t",p->math);printf("%1f\t",p->english);printf("%1f\t",p->computer);i=2;}p=p->next;}if(i==0)printf("没找到该学生的信息!");}//按班级查询成绩void searchclasses(MARK *head){int classes,i=0;MARK *p=head->next;printf("请输入你要查询成绩的班级:");scanf("%d",&classes);printf("请输出%d班所有同学的成绩:\n",classes);printf("------------------------------------------------------------------------\n");printf("\t学期\t学号\t班别\t姓名\t性别\t语文\t数学\t英语\t计算机\t\n");printf("-------------------------------------------------------------------------\n");while(p!=NULL) {if(classes==p->classes){printf("%d\t",p->term);printf("%d\t",p->number);printf("%d\t",p->classes);printf("%s\t",p->name);printf("%s\t",p->sex);printf("%1f\t",p->chinese);printf("%1f\t",p->math);printf("%1f\t",p->english);printf("%1f\t",p->computer);printf("\n");printf("\n");i=2;}p=p->next;}if(i==0)printf("没找到学生信息!\n");}//按学期查询void searchterm(MARK *head){int term,i=0;MARK *p=head->next;printf("请输入你要查询成绩的学期:");scanf("%d",&term);printf("请输出第%d学期所有班级的信息:\n");printf("------------------------------------------------------------------------\n");printf("\t学期\t学号\t班别\t姓名\t性别\t语文\t数学\t英语\t计算机\t\n");printf("-------------------------------------------------------------------------\n");while(p!=NULL) {if(term==p->term){printf("%d\t",p->term);printf("%d\t",p->number);printf("%d\t",p->classes);printf("%s\t",p->name);printf("%s\t",p->sex);printf("%1f\t",p->chinese);printf("%1f\t",p->math);printf("%1f\t",p->english);printf("%1f\t",p->computer);printf("\n");printf("\n");i=2;}p=p->next;}if(i==0)printf("没找到学生信息!\n"); }//学生总分void totalMark(MARK *head){float total=0;int i=0;MARK *p=head->next;while(p!=NULL){total=p->chinese+p->math+p->english+p->computer;printf("第%d个学生的总分为:%1f!\n",i+1,total);printf("\n");printf("已经统计了第%d个学生的总成绩!\n",i+1);printf("\n");printf("\n");i++;p=p->next;}}//学生平均分void aveMark(MARK *head){float total=0,ave=0;int i=0;MARK *p=head->next;while(p!=NULL){total=p->chinese+p->math+p->english+p->computer;ave=total/4;printf("第%d个学生的平均分:%1f!\n",i+1,ave);printf("\n");printf("已经统计了第%d个学生的平均成绩!\n",i+1);printf("\n");printf("\n");i++;p=p->next;}}4.1.2运行结果如下:(a)创建学生成绩信息(b)查找学生成绩信息第五章总结与体会5.1个人总结心得在做这学生成绩管理系统时,自我感觉还好,在大的方面能够较为准确的把握,只是在一些小的细节不能做的很好,这一点是值得思考的地方。

相关文档
最新文档