学生成绩管理系统
- 格式:doc
- 大小:397.50 KB
- 文档页数:29
学生成绩管理系统我将把我的实现步骤完整的写出来,我是在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()中被调用,即当用户进入系统后使“进入系统”菜单项不可用,并根据用户类型使相应菜单可用。
学生成绩管理系统学生成绩管理系统是现代教育管理中一种重要的工具,它通过科技手段实现对学生学业情况的全面监测和评估。
学生成绩管理系统能够及时记录学生成绩,对学生学习情况进行分析和反馈,为学校和家长提供有关学生学业发展的重要信息。
本文将从学生成绩管理系统的定义、功能和优势三个方面进行探讨,以期了解学生成绩管理系统对教育管理的积极影响。
学生成绩管理系统是一种基于互联网的教学管理工具,它通过网络互联和数据存储技术,对学生的学习情况进行有效管理和分析。
学生成绩管理系统的核心功能包括学生成绩记录、统计、分析和反馈。
学生成绩记录是指将学生的考试成绩、作业成绩等数据录入系统中进行保存和管理,以便于学校和教师随时查阅。
学生成绩统计是指根据学生成绩数据进行统计和分析,得出班级、年级、学校甚至全市、全国范围内学生学习情况的综合指标。
学生成绩分析是指通过对学生成绩数据进行深入分析,探究学生学习特点、强项和薄弱点,为教学设计和评估提供依据。
学生成绩反馈是指将学生成绩情况及时反馈给学生、家长和教师,帮助他们了解学生的学业发展状况,并及时进行调整和指导。
学生成绩管理系统的功能非常丰富,可以满足各个教育管理环节的需求。
首先,学生成绩管理系统可以有效提高教务管理效率。
传统的成绩管理方式往往需要耗费大量人力物力进行成绩记录和统计工作,而学生成绩管理系统能够自动完成这些任务,大大减轻了教务人员的工作负担。
其次,学生成绩管理系统可以为教学设计和评估提供科学依据。
通过对学生成绩数据进行深入分析和比较,教师可以了解学生的学习水平和特点,为针对性教学提供支持。
再次,学生成绩管理系统可以促进学生、家长和教师之间的沟通和合作。
通过及时的成绩反馈和学业信息共享,学生和家长可以了解学生在学校的学业状况,及时与教师进行沟通和交流,共同关注学生的学习发展。
最后,学生成绩管理系统还可以提供学生综合素质评价的参考依据。
学生成绩管理系统不仅仅可以记录和统计学生的考试成绩,还可以记录学生的课堂表现、作业完成情况、课外活动等能力表现,为学生的个性化发展提供指导。
学生成绩管理系统的设计与实现一、需求分析本学生成绩管理系统的主要功能为:•管理学生信息,包括姓名、性别、学号等基本信息;•录入学生成绩,包括各门课程的成绩;•统计学生成绩,包括按学生、按课程、按年级等多种方式统计;•生成成绩报告,包括成绩排名、平均成绩等信息;•生成数据分析报告,包括各门课程的分数分布、学生的成绩趋势等信息。
二、系统设计本系统采用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的数据库。
附录一应用程序综合设计汇报——题目: 学生成绩管理系统2023年1月1.需求分析学生成绩管理系统是学生管理系统旳重要构成部分, 对学生旳德、智、体全面评估有很大旳作用, 因此学生成绩管理系统应当可认为顾客提供以便旳查询平台和数据存储功能。
老式是使用人工旳方式对学生旳信息进行存储, 对于个人旳学生成绩来说, 数据旳整顿和分析就显得很麻烦, 不利于查找、更新和维护。
因此, 顾客但愿制作一种学生成绩管理系统, 来提高老师旳工作效率, 同步予以老师便利。
根据与顾客旳交流, 一般对学生成绩管理系统有如下几点旳规定:A.可认为顾客提供以便旳数据查询功能, 满足复杂、多样旳数据查询需求。
一般我们所需要旳数据都不是可以从原始数据库中直接读取旳, 往往需要一定旳加工, 这样才能使老式复杂旳人工操作变得简朴又精确。
B、成绩管理要可以提供学校考试安排旳管理, 学生考试成绩旳管理, 以及学生单科和总成绩旳记录和分析等功能。
这些是一种学生成绩管理系统最重要旳功能构成, 包括数据旳集成、整合和分析。
上述是顾客对系统需求和功能需求旳两点规定, 我根据顾客对功能旳需求, 将整个学生成绩管理系统提成两个大旳模块, 即基本信息设置模块和成绩管理模块(如图1)。
为了能使本系统可以基本独立, 通过度析, 我又添加了学生基本信息添加功能和班级基本信息添加功能, 这样系统就可以实现本系统旳全面界面化。
2.概要设计根据需求分析, 成绩管理系统重要是实现对考试和学生成绩旳管理功能, 我设计旳整个学生成绩管理系统分为两个大旳模块, 分别为基本信息设置模块和成绩管理模块, 这两个模块包括了成绩管理系统旳所有数据存储和功能需求, 为了愈加清晰了分解学生成绩管理系统, 每个大模块又由几种子功能模块构成, 完毕顾客旳需求。
两个大模块旳子模块详细划分如图2所示:基本信息设置是成绩管理系统中某些基本数据旳添加和修改, 为了可以实现本学生成绩管理系统旳独立性, 我在基本信息设置模块中添加了学生和班级信息添加模块, 以便顾客能直接添加新增旳数据, 而不需要通过程序员来完毕。
学生成绩管理系统设计与实现一、本文概述本文旨在深入探讨学生成绩管理系统的设计与实现过程。
随着信息技术的快速发展和普及,教育领域对于信息化、智能化的需求日益增强。
学生成绩管理系统作为学校教育管理信息化的重要组成部分,其设计与实现对于提高教育管理水平、优化教育资源分配、促进教育教学改革具有重要意义。
本文将首先介绍学生成绩管理系统的基本概念、功能和作用,随后详细阐述系统的设计原则、设计思路和设计方法,包括系统架构、数据库设计、用户界面设计等方面。
在此基础上,本文将进一步探讨学生成绩管理系统的实现过程,包括系统开发的编程语言、开发环境、关键技术等,以及系统测试、部署和维护的策略和方法。
本文将总结学生成绩管理系统的设计与实现过程中的经验教训,展望未来的发展方向和应用前景。
通过本文的阐述,希望能够为读者提供一个全面、深入的学生成绩管理系统设计与实现的理论指导和实践参考。
二、系统需求分析在设计和实现学生成绩管理系统之前,对系统需求进行深入分析是至关重要的。
系统需求分析阶段的目标是明确系统的功能需求、性能需求、安全需求以及用户需求,为后续的系统设计和实现提供明确的指导。
我们需要明确系统的功能需求。
学生成绩管理系统应能够实现对学生成绩的基本管理,包括成绩的录入、查询、修改、删除等操作。
同时,系统还应提供成绩统计和报表生成功能,以便于教师和管理人员对学生成绩进行分析和评估。
系统还应支持成绩的导入和导出功能,以便于与其他系统进行数据交换。
我们需要考虑系统的性能需求。
学生成绩管理系统应具备良好的性能和稳定性,能够处理大量数据的存储和访问。
同时,系统还应具备良好的响应速度,确保用户在进行成绩管理操作时能够获得流畅的体验。
系统的安全需求也是不可忽视的。
学生成绩管理系统应采取有效的安全措施,保护数据的机密性和完整性。
例如,系统应设置用户权限管理功能,对不同用户设置不同的访问权限,以防止未经授权的访问和数据泄露。
同时,系统还应采用加密技术,对敏感数据进行加密存储和传输,确保数据的安全性。
学生成绩管理系统学生成绩管理系统是一个用于管理、记录和分析学生学习成绩的工具。
它可以帮助学校、教师和家长更好地了解学生的学习情况,提供个性化的教学指导和辅导。
本文将介绍学生成绩管理系统的功能、优势以及在实际应用中的作用。
一、功能介绍1. 学生信息管理:学生成绩管理系统可以存储和管理学生的个人信息,包括姓名、班级、学号、家庭联系方式等。
教师和学校可以通过系统快速查找和更新学生信息。
2. 成绩录入与查询:学生的各科成绩可以通过系统进行录入和查询。
教师可以根据学科、班级或学生姓名进行成绩查询,及时了解学生的学习情况。
3. 成绩分析与报告:学生成绩管理系统可以根据学生的成绩数据生成详细的成绩分析报告。
通过分析学生在不同科目、不同时间段的表现,教师可以更好地评估学生的学习水平和进步空间,及时调整教学内容和方法。
4. 学习计划和目标设定:学生成绩管理系统可以帮助学校和教师制定学生个性化的学习计划和目标。
根据学生的历史成绩和评估结果,系统可以推荐适合学生的学习资源和教材,提供针对性的学习建议。
5. 家校互动平台:学生成绩管理系统还提供了家校互动的功能,家长可以通过系统查看学生的成绩和评语,与教师进行实时沟通。
教师可以向家长发布通知、作业、考试安排等信息,促进学校和家庭的紧密合作。
二、系统优势1. 提高工作效率:学生成绩管理系统可以自动化完成学生信息管理、成绩录入和查询等繁琐的工作,节省教师和学校的时间和精力。
2. 数据准确性:通过使用学生成绩管理系统,可以避免人为录入错误和纰漏,确保学生成绩数据的准确性和完整性。
3. 个性化分析:学生成绩管理系统提供了丰富的成绩分析功能,可以根据学生的特点和需求进行个性化评估和辅导,促进学生全面发展。
4. 促进教学改进:通过对学生成绩进行全面分析,教师可以及时发现学生的薄弱环节和问题,采取有针对性的教学改进措施,提高教学效果。
5. 加强家校联系:学生成绩管理系统提供了家校互动平台,方便教师和家长之间及时沟通,共同关注学生的学习情况和发展。
学生成绩管理系统分析学生成绩管理系统是一种用于帮助学校或教育机构管理学生成绩的计算机软件系统。
它能够实现学生成绩的录入、计算、分析和报告等功能,有效提升学校教务管理的效率,并为教师、学生及家长提供更好的数据支持,帮助他们更好地了解学生表现和发挥潜力。
本文将对学生成绩管理系统进行详细分析,包括系统的基本功能、优势和意义,以及如何实施和使用该系统。
一、学生成绩管理系统的基本功能学生成绩管理系统主要包含以下基本功能:1.学生成绩录入:教师可以使用该系统将学生的分数和成绩相关信息录入系统数据库中,确保数据的准确性和完整性。
2.学生成绩查询:学校教务管理人员、教师、学生及家长都可以通过该系统查看学生成绩,包括单科成绩、总评成绩、排名和学生课程表等。
3.成绩统计与分析:系统可以对学生成绩进行统计和分析,包括成绩分布、班级平均成绩、学科排名等,帮助学校更好地了解学生的学习情况。
4.成绩报告和成绩单生成:系统可以根据学生的成绩数据自动生成成绩报告和成绩单,并且可以通过电子邮件或系统内部消息的方式发送给学生或家长。
5.异常成绩监测和预警:系统可以根据设定的规则和学生成绩数据,实时监测学生的成绩情况,对于低于预期的成绩进行预警,及时进行干预和教育。
二、学生成绩管理系统的优势和意义学生成绩管理系统的实施和使用可以为学校、教师、学生及家长带来诸多优势和意义:1.提高工作效率:学生成绩管理系统自动化了学生成绩的录入、计算和统计等工作,减少了繁琐的手工操作,提高了工作效率。
2.减少人为错误:由于系统自动计算和存储学生成绩数据,减少了手动录入错误和数据丢失的可能性,确保了成绩数据的准确性。
3.提供数据支持:学生成绩管理系统可以生成各种报表和统计数据,为学校领导、教师和家长提供更好的数据支持,用于评估学生的学习情况和制定教学计划。
4.促进家校合作:学生家长可以通过系统查询和监测学生成绩,及时了解孩子的学习情况,并与教师共同讨论和制定适合孩子的学习计划,促进家校合作。
学生成绩管理系统简介学生成绩管理系统是一种用于管理学生的学业成绩和相关信息的软件系统。
它可以帮助学校、教师和学生有效地管理和查询学生的成绩,提供全面的成绩分析和统计功能,促进教学质量的提高。
功能学生成绩管理系统通常具有以下核心功能:1.学生信息管理:包括学生的基本信息、课程注册、班级信息等。
2.成绩录入:教师可以登录系统,录入学生成绩,并进行相应的成绩审核和修改。
3.成绩查询:学生、教师和学校管理者均可通过系统查询学生成绩,可以按照学生、班级、课程等维度进行灵活查询。
4.成绩统计与分析:系统可以对成绩数据进行统计和分析,生成各类成绩报告和分析图表,为教师和学校提供决策依据。
5.成绩排名:系统可以根据学生成绩进行排名,可以按照总分、班级、课程等维度进行排名。
6.数据导入导出:系统可以支持将学生成绩数据导入导出到Excel、CSV等格式,方便学校的数据管理。
优势学生成绩管理系统的应用带来诸多优势:1.提高工作效率:通过系统自动化处理和统计成绩数据,节省了大量的人力和时间成本。
2.提供准确的数据:系统可以准确地计算和记录学生成绩,避免了人工计算和录入带来的错误。
3.提供个性化服务:学生成绩管理系统可以根据学生的不同需求提供个性化的信息查询和分析功能,满足学生个性化的学习需求。
4.提供全面的分析和决策支持:系统可以生成各类成绩报告和分析图表,帮助教师和学校进行成绩分析和决策。
5.提高教学质量:通过系统对学生成绩进行全方位的管理和分析,有助于教师了解学生的学习状况,及时调整教学方法,提高教学质量。
使用场景学生成绩管理系统适用于各类学校、教育机构以及在线教育平台的学生成绩管理需求。
以下是几个典型的使用场景:1.学校管理者可以通过系统了解学校整体的学生成绩情况,进行综合分析和决策。
2.教师可以通过系统录入学生成绩、排名、查询历史成绩等,方便管理学生成绩和进行个性化教学。
3.学生可以通过系统查询自己的成绩、查看排名等,及时了解自己的学习状况。
沈阳工程学院课程设计(程序设计基础)设计题目:学生成绩管理系统系别信息工程系班级通本091学生姓名李国一学号 20号指导教师王素芬、张楠职称副教授、讲师起止日期:2010年7月5日起——至2010年7月12日止沈阳工程学院课程设计任务书课程设计题目:学生成绩管理系统系别信息工程系班级通本091学生姓名李国一学号 2009412120 指导教师王素芬、张楠职称副教授、讲师课程设计进行地点:实训F 任务下达时间: 2010年 7月 5日起止日期:2010年7月5日起——至2010年7月12日止教研室主任姜柳 2010年7月5日批准一、课程设计的原始资料及依据随着各个高校的扩招,大学生的人数也越来越多,每次的考试成绩统计工作也变得越来越繁重,而且经常产生差错。
如果仍用手工操作或使用相当烦琐的软件,既浪费了人力,又浪费了物力,效率无法提高。
为此我们开发一个简单的学生成绩管理系统,开发此学生成绩管理系统软件,供教学人员和管理者进行学生信息管理、班级课程管理和成绩管理,方便操作者对班级、学生资料、考试成绩进行输入、添加、查询及修改等操作,使学院教务管理人员的效率得到大幅度的提高。
查阅有关资料,进一步理解程序设计模块化的思想,并利用此思想编写一个简单的学生成绩管理系统。
通过本设计可以加深理解利用程序设计思想开发一个系统的整个流程,提高分析问题、解决问题和实际动手的能力。
二、课程设计主要内容及要求1. 认真阅读资料,掌握程序设计模块化的思想。
2. 要求在设计的过程中,建立清晰的层次结构。
3. 画出主要的功能结构图和主要模块的流程图。
4.信息维护此模块包括子模块有:增加学生信息、删除学生信息。
5.信息查询查询时可实现按姓名查询。
6.排序能对学生成绩从高到底排序(使用表格的形式显示排序后的输出结果)。
7.插入学生相关信息。
8. 要求操作简单,用户界面友好。
9. 运行程序,检查结果是否和理论值一致。
10.环境使用Turbo C环境。
三、对课程设计说明书撰写内容、格式、字数的要求1.课程设计说明书是体现和总结课程设计成果的载体,主要内容包括:设计题目、设计目的、设备器材、设计原理及内容、设计步骤、遇到的问题及解决方法、设计总结、参考文献等。
一般不应少于3000字。
2.在适当位置配合相应的实验原理图、功能模块图、算法流程图等图表进行说明。
应做到文理通顺,内容正确完整,书写工整,装订整齐。
3.设计总结部分主要写本人完成工作简介以及自己的设计体会,包括通过课程设计学到了什么,哪里遇到了困难,解决的办法以及今后的目标。
4.课程设计说明书手写或打印均可。
手写要用学校统一的课程设计用纸,用黑或蓝黑墨水工整书写;打印时采用A4纸,页边距均为20mm,正文采用宋体小四号字,行间距18磅。
文中大标题采用黑体小三号字,一级节标题采用黑体四号字,二级节标题采用黑体小四号字,表题与图题采用宋体五号字。
5.课程设计说明书装订顺序为:封面、任务书、成绩评定表、目录、正文、参考文献。
四、设计完成后应提交成果的种类、数量、质量等方面的要求1.完成“任务书”中指定的功能,运行结果正确。
2.课程设计说明书。
[1] 谭浩强.程序设计基础.北京:清华大学出版社,2004[2] 郭翠英.程序设计案例经典.中国水利电力出版社,2004[3] 谭浩强著.《C语言程序设计》(第三版)清华大学出版社[4] 张翔《C语言函数大全》电子工业出版社沈阳工程学院程序设计基础课程设计成绩评定表摘要现代科学技术的飞速发展,改变了世界,也改变了人类的生活。
作为新世纪的大学生,应当站在展的前列,掌握现代科学知识,调整自己的知识结构和能力结构,以适应社会发展要求。
新需要具有丰富的现代科学知识,能够独立解决面临的任务,充满活力同,有创新意识的新型人才。
C语言是在国内外广泛使用的一种计算机语言。
C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好,既具有高级语言的优点,又具有低级语言的许多特点,因此特别适合于编写系统软件。
程序设计是一门实践很强的课程,既要掌握概念,又要动手编程,还要上机调试。
学生成绩管理系统就是通过我们组员每一个人的努力的成果,我们用到在课堂上所学到的知识以及课下参考其它资料而编写的程序。
本次课程设计可以实现在对学生成绩管理时相应的功能。
操作简便而实用。
学生成绩管理系统可以现实对成绩相应的操作,例如,学生成绩录入,删除,查找,排序,求和等相关功能。
此次C语言课程设计是对我们所掌握C语言知识的一次检测。
我们组做的是学生成绩管理系统,程序功能齐全,操作简单,使我们对C语言知识有了质的飞跃,提高了我们的编程技术,增加了我们对计算机的兴趣,程序成功的运行,给予了我们莫大的信心,通过对程序的完善更让我们受益匪浅,锻炼了我们的实践能力,给我对进入社会提供了莫大的动力。
关键词学生成绩管理,结构体,主函数,查询功能目录摘要 (I)第一章系统介绍 (1)1.1设计背景 (1)1.2设计题目 (1)1.3设计目的 (1)4.设备器材 (1)5.设计原理及内容 (1)第二章系统分析与设计 (2)2.1系统功能分析 (2)2.2模块功能设计 (4)第三章功能实现 (8)3.1 输入函数源代码 (8)3.2运行界面 (1)结论 (5)致谢 (6)参考文献 (7)第一章系统介绍1.1设计背景设计随着计算机技术的飞速发展,改变了世界,也改变了人类的生活。
作为现代科学技术的飞速发展,改变了世界,也改变了人类的生活。
新世纪的大学生,应当站在时代发展的前列,掌握现代科学技术知识,调整自己的知识结构和能力结构,以适应社会发展的要求。
C语言成了在国内外使用的一种计算机语言。
C语言功能丰富、表达能力强、使用灵活方便、应用面广、目标程序效率高、可移植性好、既具有高级语言的优点,又具有低级语言的许多特点,因此特别适合于编写系统软件。
现在大多数的高校都把C语言作为第一门计算机语言进行教学,这是可行的,学生是能够学习好的。
人工的工资管理显得十分的落后而且效率低下,尤其在查询和计算方面,效率低且误差大。
为了适应现代化的环境,许多的管理事务都由电脑来管理,从而提高了管理的速率和效率。
1.2设计题目学生成绩管理1.3设计目的随着各个高校的扩招,大学生的人数也越来越多,每次的考试成绩统计工作也变得越来越繁重,而且经常产生差错。
如果仍用手工操作或使用相当烦琐的软件,既浪费了人力,又浪费了物力,效率无法提高。
为此我们开发一个简单的学生成绩管理系统,开发此学生成绩管理系统软件,供教学人员和管理者进行学生信息管理、班级课程管理和成绩管理,方便操作者对班级、学生资料、考试成绩进行输入、添加、查询及修改等操作,使学院教务管理人员的效率得到大幅度的提高,同时也是为了把我们所学的知识应用于实践,给我们以展现自我的平台。
我们小组用现学的C语言知识编了简单的学生成绩管理系统。
通过这次的设计对我们的学习有了很大的帮助,使我们对计算机有了更近一步的接触,同时与对C语言有了更深的了解,不但对现学的知识进行了充分的利用,同时也巩固以前的知识,是我们收益匪浅。
4.设备器材计算机一台U盘一个5.设计原理及内容主要用了函数调用、用结构体变量变量类型同时还使用了文件的格式,有对信息的输入、查询、修改、排序、及统计等。
主要包括六个函数分别负责数据的输入输出、数据查询、数据修改、数据排序、及数据统计等。
利用for()循环及结构体来控制数据的输入输出,涉及到文件的打开、关闭、读写;在数据查询、修改、排序中也利用到文件知识;在统计中主要利用的是for()循环控制统计不及格率,利用if()语句控制统计各个分数段的人数,统计出不及格人数,60-70分数段的人数,70-80分数段的人数,80-90分数段的人数,90-100分数段的人数及100分的人数。
第二章系统分析与设计2.1系统功能分析1.函数整体功能及结构图本程序主要完成的是学生成绩的管理功能,除了主函数以外有六个附属函数,整个程序分为六大功能,分别为学生信息输入;学生信息查询;学生成绩排序;信息修改、信息统计以及退出。
分别由函数实现,结构图如图2.1所示:图2.1基本功能模块2.main()主函数主函数主要负责程序运行界面、调用五个附属函数以及退出界面,通过printf()输出欢迎语”Welcome to use this System”和主菜单,运用switch()实现五个函数的调用以及退出。
3.inputmess()函数的主要功能此函数主要是负责输入学生的学号、姓名、各科成绩以及总分、平均分并以表格的形式显示于界面,此部分for()循环起了非常大的作用,控制学生人数、各科分数的输入输出,运用fp文件指针进行文件的读和写。
4.search()函数的主要功能此函数主要负责对输入的学生信息进行查询,通过学生的学号和姓名进行信息查询,主要用for()循环和switch()进行控制,for()循环主要是在读取文件时应用,switch()主要是控制通过学号或是通过姓名进行查找。
5.paixu()函数的主要功能此函数主要负责对输入的学生信息进行排序,通过学生的成绩高低进行排序,主要用for()循环控制文件读取,分数输入。
6.xiugai()函数的主要功能此函数主要负责输入信息的插入与删除,通过学生的学号以及姓名进行插入与删除,此函数又分为Insert()函数和Delete()函数,在xiugai()函数中由switch()语句进行调用,for()循环控制文件读取及分数的输入和学生信息的删除。
7.tongji()函数的主要功能此函数主要负责统计班级不及格率、每科成绩不同分数段的学生人数,for()循环控制文件读取,输出平均分累加不及格人数,运用for()循环控制科目和人数,if()控制每个分数段人数,输出各个分数段人数。
2.2模块功能设计1.main()函数流程图图2.2主函数流程图图2.3 查询函数流程图第三章功能实现3.1 函数源代码#include <stdio.h>#include <dos.h>#include <string.h>#include <stdlib.h>#include <alloc.h>#define SIZE 8struct student{char name[20];char num[15];int score[5];float ave;struct student *next;}stu[SIZE],temp,s;void Inputmess(){int i,j,sum,length,flag=1,a;FILE *fp;while(flag==1){printf("Define a range>class number:");scanf("%d",&a);printf("Input the total number of the class(<a):"); scanf("%d",&length);if(length<a)flag=0;}for(i=0;i<length;i++){printf("\ninput the student's message:");printf("\ninput thr name:");scanf("%s",stu[i].name);printf("\ninput the NO.:");scanf("%s",stu[i].num);printf("\ninput the score:\n");sum=0;for(j=0;j<3;j++){printf("score %d:",j+1);scanf("%d",&stu[i].score[j]);sum+=stu[i].score[j];}stu[i].ave=sum/3.0;}fp=fopen("stu1","w");for(i=0;i<length;i++)if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)printf("File write error\n");fclose(fp);fp=fopen("stu1","r");printf("\n name\t NO. score1 score2 score3 sum ave\n");for(i=0;i<length;i++){fread(&stu[i],sizeof(struct student),1,fp);printf("%3s%5s%7d%7d%7d%7d%10.2f\n",stu[i].name,stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],sum=stu[i].score[0]+stu[i].score[1]+stu[i].score [2],stu[i].ave);}}void search(){ FILE *fp, *fp1;char n[15],name[20];int i,j,k,t,m,flag=1;if((fp=fopen("stu1","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\noriginal data:\n");for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;i++){printf("\n%-15s%11s",stu[i].name,stu[i].num);for(t=0;t<3;t++)printf("%7d",stu[i].score[t]);printf("%10.2f",stu[i].ave);}k=i;printf("\nPlease select the menu(1.number ):");scanf("%d",&m);switch(m){case 1:printf("\nSearch number:");scanf("%s",n);for(flag=1,i=0;i<k;i++){if(strcmp(n,stu[i].num)==0){j=i;flag=0;break;}}break;case 2:printf("\nSearch name:");scanf("%s",name);for(flag=1,i=0;i<k;i++){if(strcmp(name,stu[i].name)==0){j=i;flag=0;break;}}}if(!flag){printf("\nYou can find:\n");fp1=fopen("stu2","w");printf(" name NO. score1 score2 score3ave\n");fwrite(&stu[j],sizeof(struct student),1,fp1);printf("%-15s%11s%7d%7d%7d%10.2f",stu[j].name,stu[j].num,stu[j].score[0],stu[j] .score[1],stu[j].score[2],stu[j].ave);}else printf("\nNot found!");fclose(fp);fclose(fp1);}xiugai(){ int a;printf("\nplease select the menu(1.CHARU 2.SHANCHU ):");scanf("%d",&a);switch(a){case 1:Insert(); break;case 2:Delete(); break;}}Insert(){ FILE *fp;int i,j,t,n;printf("\nNO.:");scanf("%s",s.num);printf("name:");scanf("%s",);printf("score1,score2,score3:");scanf("%d,%d,%d",&s.score[0],&s.score[1],&s.score[2]);s.ave=(s.score[0]+s.score[1]+s.score[2])/3.0;if((fp=fopen("stu1","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\noriginal data:\n");for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;i++){printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;j<3;j++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);n=i;for(t=0;stu[t].ave>s.ave&&t<n;t++);printf("\nnow:\n");fp=fopen("stu1","w");for(i=0;i<t;i++){fwrite(&stu[i],sizeof(struct student),1,fp);printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;j<3;j++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fwrite(&s,sizeof(struct student),1,fp);printf("\n%-15s%11s%7d%7d%7d%10.2f",,s.num,s.score[0],s.score[1], s.score[2],s.ave);for(i=t;i<n;i++){fwrite(&stu[i],sizeof(struct student),1,fp);printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;j<3;j++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);}Delete(){ FILE *fp;int i,j,t,n,flag;char number[15];if((fp=fopen("stu1","rb"))==NULL){printf("Can not open the file.");exit(0);}printf("\noriginal data:");for(j=0;j<3;j++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);n=i;printf("\nInput number deleted:");scanf("%s",number);for(flag=1,i=0;flag&&i<n;i++){if(strcmp(number,stu[i].num)==0){for(t=i;t<n-1;t++){strcpy(stu[t].num,stu[t+1].num);strcpy(stu[t].name,stu[t+1].name);for(j=0;j<3;j++)stu[t].score[j]=stu[t+1].score[j];stu[t].ave=stu[t+1].ave;}flag=0;}}if(!flag)n=n-1;elseprintf("\n Not found!");printf("\nNow,the content of file:\n");fp=fopen("stu1","wb");for(i=0;i<n;i++)fwrite(&stu[i],sizeof(struct student),1,fp);fclose(fp);fp=fopen("stu1","r");for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;i++)printf("%-15s%11s%7d%7d%7d%10.2f\n",stu[i].name,stu[i].num,stu[i].score[0], stu[i].score[1],stu[i].score[2],stu[i].ave);fclose(fp);}paixu(){FILE *fp;int i,j,n;if((fp=fopen("stu1","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\nfile'stu1':");for(j=0;j<3;j++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);n=i;for(i=0;i<n;i++)for(j=i+1;j<n;j++)if(stu[i].ave<stu[j].ave){temp=stu[i];stu[i]=stu[j];stu[j]=temp;}printf("\nnow:");fp=fopen("stu1","w");for(i=0;i<n;i++){fwrite(&stu[i],sizeof(struct student),1,fp);printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;j<3;j++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);}tongji(){ FILE *fp;int i,j,k,labe1,b;int a5=0;int a6=0;int a7=0;int a8=0;int a9=0; int a10=0; float t;if((fp=fopen("stu1","r"))==NULL){printf("Can not open the file.");exit(0);}printf("\nfile'stu1':");for(i=0;fread(&stu[i],sizeof(struct student),1,fp)!=0;i++){printf("\n%-15s%11s",stu[i].name,stu[i].num);for(j=0;j<3;j++)printf("%7d",stu[i].score[j]);printf("%10.2f",stu[i].ave);}fclose(fp);k=i;for(i=0;i<k;i++){labe1=0;if(stu[i].ave<60){labe1++;t=labe1/(float)k*100;}}printf("\nbujigelv:");printf("%f%",t);printf("\n");for(j=0;j<3;j++){a5=0;a6=0;a7=0;a8=0;a9=0;a10=0;k=i;printf("kemu is %d:\n",j);for(i=0;i<k;i++){b=stu[i].score[j]/10;if(b<6)a5++;elseif(b>=6&&b<7)a6++;elseif(b>=7&&b<8)a7++;elseif(b>=8&&b<9)a8++;if(b>=9&&b<10)a9++;elseif(b==10)a10++;}printf(" bujige is %d\n",a5);printf(" 60--69 is %d\n",a6);printf(" 70--79 is %d\n",a7);printf(" 80--89 is %d\n",a8);printf(" 90--99 is %d\n",a9);printf(" 100 is %d\n",a10);}}main(){int a;printf("****************************************\n"); printf(" Welcome to use this System\n");printf("****************************************\n");while(1){printf("\nselect the Menu:\n");printf("1.inputmess 2.search 3.paixu 4.xiugai 5.tongji 6.exit\n"); scanf("%d",&a);switch(a){case 1: Inputmess();break;case 2: search(); break;case 3: paixu(); break;case 4: xiugai(); break;case 5: tongji();break;case 6: exit(0);}}}3.2运行界面3.1主界面3.2输入班级人数3.3输入需要录入的人数3.4 数据输入3.5 数据查询(通过学号或者姓名查询)3.6 通过姓名查询3.7 数据排序(排序依据:平均分)3.8 数据修改:插入与删除3.9 数据插入3.10数据删除(通过学号删除)3.11 删除数据运行结果3.12运行情况数据统计3.13运行情况统计结果3.14退出程序时间是短暂的,收获是丰厚的。