学生管理系统课程设计

合集下载

python学生管理系统课课程设计

python学生管理系统课课程设计

python学生管理系统课课程设计一、教学目标本节课的教学目标是使学生掌握Python编程语言的基本语法和结构,学会使用Python编写简单的程序,培养学生对编程的兴趣和热情,提高学生的逻辑思维能力和问题解决能力。

具体来说,知识目标包括:1.掌握Python的基本数据类型和变量。

2.学会使用Python的基本运算符和表达式。

3.理解Python的流程控制语句,如条件语句和循环语句。

4.了解Python函数的定义和调用。

技能目标包括:1.能够使用Python编写简单的程序,如计算器、学生管理系统等。

2.能够阅读和理解简单的Python代码。

3.能够对代码进行调试和修改,解决问题。

情感态度价值观目标包括:1.培养学生对编程的兴趣和热情,提高学生对计算机科学的认识。

2.培养学生的创新精神和团队合作意识。

3.使学生明白编程是一门实用且有前景的学科,激发学生继续学习的动力。

二、教学内容本节课的教学内容主要包括Python的基本语法和结构,以及使用Python编写简单的程序。

具体包括以下几个部分:1.Python的基本数据类型和变量,如整数、浮点数、字符串等。

2.Python的基本运算符和表达式,如算术运算符、比较运算符、逻辑运算符等。

3.Python的流程控制语句,如if条件语句、for循环语句、while循环语句等。

4.Python函数的定义和调用,如内置函数、自定义函数等。

5.使用Python编写简单的程序,如计算器、学生管理系统等。

三、教学方法本节课采用讲授法、案例分析法和实验法相结合的教学方法。

1.讲授法:教师通过讲解Python的基本语法和结构,引导学生掌握知识要点。

2.案例分析法:教师通过分析典型的案例,让学生了解如何使用Python编写程序,培养学生的问题解决能力。

3.实验法:学生通过上机实验,亲自动手编写Python程序,加深对知识的理解和运用。

四、教学资源本节课的教学资源包括教材、多媒体资料和实验设备。

mysql学生管理系统课程设计

mysql学生管理系统课程设计

mysql学生管理系统课程设计一、课程目标知识目标:1. 学生能掌握MySQL数据库的基本概念和操作,包括数据库的创建、表的设计、数据的插入、更新、删除和查询。

2. 学生能理解学生管理系统的功能需求,掌握其数据库表结构设计及关系。

3. 学生能运用SQL语句实现对学生管理系统的数据管理,如查询学生信息、统计成绩等。

技能目标:1. 学生能运用所学知识,独立设计并实现一个简单的学生管理系统数据库。

2. 学生能通过实践操作,熟练使用MySQL进行数据库的日常管理和维护。

3. 学生能够运用调试工具解决数据库操作过程中遇到的问题。

情感态度价值观目标:1. 学生培养对数据库管理技术的兴趣,激发学习动力,提高自主学习和解决问题的能力。

2. 学生通过团队协作完成项目任务,培养沟通与协作能力,增强集体荣誉感。

3. 学生在学习过程中,树立正确的价值观,尊重数据,保护隐私,遵循道德规范。

本课程针对高年级学生,结合学生已掌握的计算机基础知识,以实用性为导向,通过设计学生管理系统课程,使学生掌握MySQL数据库的操作和应用。

课程目标既注重知识技能的培养,又关注情感态度价值观的引导,旨在提高学生的实际操作能力,培养学生的团队合作精神,为将来从事数据库管理和开发工作打下坚实基础。

二、教学内容1. MySQL数据库基础:- 数据库基本概念:数据库、表、记录、字段、主键、外键等。

- 数据类型和数据完整性:整数、浮点数、日期时间、字符串、约束等。

2. 数据库设计和表结构创建:- 学生管理系统需求分析。

- 设计数据库表结构,包括学生表、成绩表、课程表等。

- 创建表及关系,实现外键约束。

3. 数据库操作:- 插入、更新和删除数据。

- 单表查询和多表查询,包括连接查询、子查询等。

- 排序、分组、聚合函数的使用。

4. 数据库管理:- 数据库的安全性和权限控制。

- 数据库的备份和恢复。

- 事务管理和存储过程。

5. 实践项目:学生管理系统数据库设计与实现。

管理系统课程设计

管理系统课程设计

管理系统课程设计一、教学目标本课程旨在通过学习管理系统的基础理论、概念和方法,使学生掌握管理系统的基本原理,了解管理系统的设计和实施过程,培养学生运用管理系统解决实际问题的能力。

具体目标如下:1.知识目标:学生应了解管理系统的基本概念、类型和功能,掌握管理系统的设计原则和方法,熟悉管理系统的评价和优化。

2.技能目标:学生应能够运用管理系统理论分析和解决实际问题,具备一定的管理系统设计和实施能力。

3.情感态度价值观目标:培养学生对管理系统的认识和兴趣,使学生意识到管理系统在现代社会中的重要性,树立正确的管理系统观念。

二、教学内容本课程的教学内容主要包括管理系统的基本概念、类型和功能,管理系统的设计原则和方法,管理系统的评价和优化。

具体安排如下:1.管理系统的基本概念:介绍管理系统的定义、特点和作用。

2.管理系统的类型:介绍不同类型的管理系统,如线性、非线性、确定性和不确定性管理系统等。

3.管理系统的功能:讲解管理系统的输入、处理、输出和反馈等基本功能。

4.管理系统的设计原则:阐述管理系统设计应遵循的原则,如系统性、模块化、灵活性等。

5.管理系统的设计方法:介绍管理系统设计的方法和步骤,如需求分析、系统设计、编码和测试等。

6.管理系统的评价:讲解管理系统评价的标准和方法,如效率、效益、可靠性等。

7.管理系统的优化:介绍管理系统优化的方法和技巧,如改进算法、参数调整等。

三、教学方法为了提高教学效果,本课程将采用多种教学方法相结合的方式进行教学,包括:1.讲授法:教师通过讲解管理系统的基本概念、原理和方法,使学生掌握相关知识。

2.案例分析法:通过分析实际案例,使学生了解管理系统的应用和实施过程。

3.讨论法:学生就管理系统的相关问题进行讨论,培养学生的思考和表达能力。

4.实验法:安排实验室实践环节,让学生动手设计和管理系统,提高学生的实际操作能力。

四、教学资源为了支持本课程的教学,我们将准备以下教学资源:1.教材:选用权威、实用的管理系统教材,为学生提供系统的学习资料。

学生成绩管理系统课程设计报告

学生成绩管理系统课程设计报告

学生成绩管理系统-课程设计报告学生成绩管理系统-课程设计报告一、引言学生成绩管理系统是一种能够方便高效地管理学生学业成绩的软件系统。

随着教育信息化的发展,学生成绩管理系统已经成为各个学校和教育机构不可或缺的一部分。

本课程设计报告旨在设计和实现一款学生成绩管理系统,以满足学校对学生成绩管理的需求。

二、系统需求分析1.学生信息管理:系统需要能够存储学生的基本信息,包括学号、姓名、性别、年级等。

2.课程管理:系统需要能够管理学校的各门课程信息,包括课程名称、授课教师、学分等。

3.成绩录入:系统需要能够录入学生的成绩信息,包括学生学号、课程名称、成绩等。

4.成绩查询:系统需要提供成绩查询功能,学生和教师能够通过系统查询学生的成绩。

5.成绩统计:系统需要能够对学生的成绩进行统计和分析,包括计算平均成绩、最高分、最低分等。

6.成绩报表:系统需要能够生成成绩报表,以便学校和教师能够查看学生成绩的总体情况。

三、系统设计1.数据库设计:设计一个学生表和一个课程表,学生表包括学生的学号、姓名、性别、年级等信息,课程表包括课程的名称、授课教师、学分等信息。

成绩信息通过学生表和课程表建立关联关系。

2.用户界面设计:设计一个用户友好的界面,包括学生登录界面、教师登录界面和管理员登录界面。

学生能够查询个人成绩和课程信息,教师能够录入学生成绩和查询学生成绩,管理员能够管理学生和课程信息。

3.功能模块设计:将系统划分为学生管理模块、课程管理模块、成绩录入模块、成绩查询模块、成绩统计模块和成绩报表模块。

每个模块实现相应的功能,模块之间通过接口进行数据交互。

四、系统实现本系统采用Java语言和MySQL数据库进行开发。

使用Java技术实现用户界面和功能模块,使用MySQL数据库存储学生、课程和成绩信息。

五、系统测试与调试进行系统测试,包括功能测试、性能测试和稳定性测试。

通过测试发现并修复系统中存在的问题,确保系统能够正常运行。

六、系统部署与维护将系统部署到学校的服务器上,并进行系统维护工作,包括定期备份数据、更新系统版本等。

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

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

学生信息管理系统web课程设计1. 引言学生信息管理系统是一个用于管理学生信息的应用程序。

它提供了方便快捷的方式来记录和查看学生的个人信息、成绩、课程等相关数据。

本文将介绍一个基于web 的学生信息管理系统的设计。

2. 系统需求分析2.1 功能需求•学生信息录入:包括学生基本信息(姓名、性别、年龄等)、联系方式、家庭背景等。

•学生成绩录入:包括每门课程的成绩以及总成绩计算。

•学生课程管理:包括选课、退课等操作。

•学生信息查询:可以按照学号、姓名等条件进行学生信息的查询和显示。

•学生成绩查询:可以按照学号、姓名等条件进行学生成绩的查询和显示。

2.2 非功能需求•界面友好:用户界面应该简洁明了,操作方便,用户能够快速上手使用。

•安全性:对于敏感数据(如学生个人隐私),需要进行安全保护,防止未授权访问。

•性能要求:系统需要具备良好的性能,能够快速响应用户请求,并支持大量并发访问。

3. 系统设计3.1 技术选型•前端技术:使用HTML、CSS和JavaScript进行前端开发,借助Bootstrap 等框架提供的组件和样式。

•后端技术:使用Python的Web框架(如Django、Flask)进行后端开发,通过ORM(对象关系映射)技术与数据库进行交互。

•数据库:使用关系型数据库(如MySQL、PostgreSQL)存储学生信息和成绩数据。

3.2 系统架构学生信息管理系统采用MVC(模型-视图-控制器)架构,以实现前后端的解耦和代码的复用。

•模型(Model):负责处理数据逻辑,包括与数据库的交互、数据验证等。

•视图(View):负责展示数据给用户,并接收用户的输入。

•控制器(Controller):负责处理用户请求,调用相应的模型和视图进行处理。

3.3 数据库设计学生信息管理系统需要设计两个主要的数据表:学生表和成绩表。

学生表设计字段类型描述学号字符串主键姓名字符串性别枚举类型年龄整数联系方式字符串家庭背景字符串成绩表设计字段类型描述学号字符串外键课程名称字符串主键成绩浮点数3.4 界面设计学生信息管理系统的界面应该简洁明了,操作方便。

学生管理系统课程设计报告

学生管理系统课程设计报告

学生管理系统课程设计报告一、概述学生管理系统是一个用于实现对学生信息管理的一个系统,该系统包括学生信息的增加、修改、删除、查询、统计等功能。

该系统主要功能为便捷的记录学生的个人信息,包括学生姓名、学号、性别、出生日期、联系方式、住址、班级、专业、成绩等;方便地对学生信息进行管理,以方便教师和学校管理者进行相关决策。

二、需求分析该系统的主要功能需求如下:1、学生信息管理:该系统将记录每个学生的个人信息,包括但不限于姓名、学号、性别、出生日期、联系方式、住址、班级、专业、成绩等。

2、学生信息查询:用户可以通过学生姓名、学号等信息快速检索和查找学生信息。

3、学生信息统计:该系统能够统计每个班级、专业或整个学校的学生人数、男女比例、平均分等数据。

4、用户管理:该系统还将包括对用户的身份验证、用户的添加、修改和删除。

5、安全性:该系统需要确保数据安全,只有经过身份验证的用户方可进行敏感操作。

三、系统设计1、架构设计:该系统的架构设计采用三层结构,即表示层、业务逻辑层和数据访问层。

其中表示层主要负责用户界面的展示和数据的呈现;业务逻辑层则负责系统的业务逻辑设计和实现,包括对用户的身份认证、数据库的访问等;数据访问层负责数据和文件的访问,进行数据库的增删改查等操作。

2、具体模块设计:(1)用户认证模块:在系统运行时,需要对用户进行身份认证,只有认证通过后,才能使用系统。

(2)用户管理模块:该模块负责对用户的添加、删除和修改等操作。

(3)学生信息管理模块:该模块包括学生信息的添加、修改、删除和查询等功能。

同时,还包括对学生信息的导入和导出功能,方便用户存储和备份信息。

(4)学生信息统计模块:该模块主要负责对学生信息进行统计,包括不同年级、班级、专业的学生人数、男女比例和平均分等数据。

(5)系统设置模块:该模块负责系统日志的管理和系统参数的设置,可以方便地对系统进行优化和调试。

(6)界面设计:系统的界面设计需要清晰、实用、方便用户使用。

学生选课管理系统c课程设计

学生选课管理系统c课程设计

学生选课管理系统c 课程设计一、课程目标知识目标:1. 让学生理解学生选课管理系统的基本概念和功能,掌握系统设计的基本原理。

2. 使学生掌握数据库的基本操作,如查询、插入、删除和更新数据。

3. 帮助学生了解软件开发流程,熟悉系统设计、编码、测试等环节。

技能目标:1. 培养学生运用所学知识,独立设计并实现一个简单的学生选课管理系统。

2. 提高学生分析问题和解决问题的能力,学会运用数据库技术解决实际应用问题。

3. 培养学生的团队协作能力,学会在项目中进行有效沟通和分工合作。

情感态度价值观目标:1. 培养学生积极的学习态度,激发学生对计算机科学的兴趣和热情。

2. 培养学生的创新意识和实践能力,鼓励学生勇于尝试,敢于挑战。

3. 增强学生的责任心,让学生明白系统设计的重要性,关注用户需求,为用户带来更好的体验。

本课程针对高年级学生,课程性质为理论与实践相结合。

在教学过程中,注重培养学生的实际操作能力和解决问题的能力。

结合学生特点和教学要求,将课程目标分解为具体的学习成果,以便进行后续的教学设计和评估。

通过本课程的学习,使学生能够掌握学生选课管理系统设计的相关知识和技能,为今后从事软件开发和数据库管理等相关工作打下坚实基础。

二、教学内容1. 学生选课管理系统的基本概念与功能- 系统需求分析- 功能模块划分2. 数据库基础知识- 数据库设计原则- 数据表创建与维护- 数据查询、插入、删除和更新操作3. 系统设计- 系统架构设计- 界面设计- 数据库连接与操作4. 编程实现- 编程语言选择(如Java、Python等)- 系统功能编码- 代码调试与优化5. 系统测试与维护- 测试方法与策略- 常见问题分析与解决- 系统维护与升级6. 项目实践- 团队协作与分工- 项目进度管理- 系统部署与展示教学内容根据课程目标制定,涵盖学生选课管理系统设计的相关知识。

本课程采用教材相关章节,结合实际案例,保证教学内容的科学性和系统性。

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

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

课程设计学生信息管理系统一、课程目标知识目标:1. 理解学生信息管理系统的基本概念、功能及作用;2. 掌握数据库的基本操作,如数据录入、查询、更新和删除;3. 学会运用编程语言(如Python)实现学生信息管理系统的基本功能;4. 了解信息系统的安全性和可靠性,提高信息保护意识。

技能目标:1. 能够运用所学知识设计并实现一个简单的学生信息管理系统;2. 培养分析问题、解决问题的能力,通过编程解决实际问题;3. 提高团队协作和沟通能力,通过项目实践共同完成任务;4. 掌握项目管理和时间规划,合理安排学习进度。

情感态度价值观目标:1. 培养学生对信息技术的兴趣和热情,提高学习积极性;2. 培养学生严谨、认真的工作态度,养成良好的编程习惯;3. 增强学生的信息安全意识,尊重个人隐私,树立正确的道德观念;4. 培养学生的团队精神,学会分享和合作,提高人际交往能力。

本课程针对初中年级学生,结合学科特点和教学要求,以实用性为导向,旨在让学生通过学习学生信息管理系统,掌握信息技术的基本知识和技能,同时培养其情感态度价值观。

课程目标具体、可衡量,便于后续教学设计和评估。

在教学过程中,教师需关注学生的个体差异,充分调动学生的积极性,引导他们主动参与课堂实践,提高课堂效果。

二、教学内容1. 学生信息管理系统概述- 了解信息系统的基本概念、功能及作用;- 掌握学生信息管理系统的基本模块和流程。

2. 数据库基础知识- 学习数据库的基本概念、数据模型;- 掌握SQL语言的基本操作,如插入、查询、更新和删除。

3. 编程语言应用- 学习Python编程基础,掌握基本语法和常用库;- 利用Python实现学生信息管理系统的功能。

4. 系统设计与实现- 分析学生信息管理系统的需求,进行系统设计;- 学习项目管理方法,制定项目计划,分工协作。

5. 系统测试与优化- 学习系统测试的基本方法,对实现的功能进行测试;- 根据测试结果,优化系统性能和用户体验。

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

重庆理工大学课程设计课程程序设计基础C 题目 C语言综合程序设计院系名称商贸信息学院班级计算机应用技术一班学生姓名吴昊学号 20920310119 指导教师卢玲评阅教师时间 2010年6月1 问题描述5.4题目五:学生成绩管理系统设计学生成绩信息包括:学期,学号,班别,姓名,四门课程成绩(语文、数学、英语和计算机)。

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

要求:使用二进制文件方式存储数据,系统以菜单方式工作2 系统分析2.1 题目要求本系统可以对学生的成绩信息进行简单的管理操作:主菜单包括9个选项:1.学生成绩浏览如果未导入学生成绩,系统会提示导入成绩,成绩导入后,可以用本功能浏览成绩。

2.学生成绩录入当学生成绩未导入是会自动提示对学生成绩的录入,可以按学期,按班级完成对学生成绩的录入。

3.学生成绩修改当需要修改学生成绩时,本功能可以修改学生的成绩,可以按学期,按班级完成对学生成绩的修改。

4.按班级统计学生成绩的总分和平均分可以对计算学生的成绩的总分和平均分,并按班级统计出来。

5.学生成绩查询完成对学生成绩的查询,本功能是按照学号查询。

6. 学生成绩保存可以将学生成绩存入磁盘文件,并从磁盘里读出学生成绩,信息保存在e:\\wh.dat。

7.学生成绩未存盘时导入当磁盘文件不存在会提示导入学生的成绩。

8.按班级输出学生成绩可以按班级输出学生的成绩单,其中包括学生的四门课的成绩不及格科目和学生的名单。

9.学生成绩排序能按班级,按课程,对学生成绩进行排序。

按班级排序时可以对某个班级学生的成绩排序,按课程排序时是对某一门课的排序。

2.2算法设计模块一:学生成绩浏览模块该模块实现对学生成绩的浏览功能,但前提是学生的信息已经保存,实现算法如下:①输出学生信息的标题②检索信息数组③用循环实现对学生信息的对应输出模块二:学生成绩录入模块该模块实现对学生成绩的录入功能,通过菜单的选择,调用两个子函数实现成绩的录入。

①输出按不同方式录入学生成绩的选择菜单,一是按学期录入,二是按班级录入②调用按学期录入的函数③选择学期用循环完成对学生信息的录入④保存学生信息,并回到录入函数⑤调用按班级录入的函数⑥选择班级用循环完成对学生信息的录入⑦保存学生信息,并回到录入函数模块三:学生成绩修改模块该模块实现对学生成绩的修改功能,通过菜单的选择,调用两个子函数实现对学生的成绩的修改。

①输出按不同方式修改学生成绩的选择菜单,一是按学期修改,二是按班级修改②调用按学期修改的函数③选择学期用循环完成对学生成绩的修改,修改的科目包括语文,数学,英语,计算机④保存学生成绩信息,并回到修改函数⑤调用按班级修改的函数⑥选择班级用循环完成对学生成绩的修改,修改的科目包括语文,数学,英语,计算机⑦保存学生成绩信息,并回到修改函数模块四:按班级统计学生成绩的总分和平均分模块该模块可以计算学生成绩的总分和平均分①输出选择的班级②通过检索数组选出某个班③通过循环输出这个班的每个学生的总分和平均分模块五:学生成绩查询模块该模块能通过学生的学号查询学生的成绩①输入要查询的学生的学号②通过检索数组选出对应的学生③调用输出函数输出学生相关的信息模块六:学生成绩保存模块该模块可以保存学生信息的导入,修改,录入①定义文件的保存位置②通过数组写入要保存的文件③关闭磁盘文件模块七:学生成绩为存盘时导入模块该模块可以在学生成绩为存盘是完成对学生成绩的导入并存盘①输出是否创建的提示②选择是否创建③提示已经导入,并关闭磁盘文件模块八:按班级输出学生成绩模块该模块可以从多个班级里选择某班学生的成绩并输出①输入要选择的班级②检索数组选出该班③输出该班学生的相关信息模块九:学生成绩排序模块该模块可以对学生的成绩按不同的方式排序①输出排序方式的菜单②调用按班级排序的函数③输出菜单后用冒泡法对总分进行比较,按从大到小的顺序输出④保存并回到排序函数⑤调用按课程对学生排序的函数⑥通过冒泡法分别对语文,数学,英语,计算机的成绩进行对比,按从大到小输出⑦保存并回到排序的函数模块十:退出模块退出系统2.3流程图在对学生成绩的录入,修改,求平均分和总分,输出学生的成绩时都要求按不同的方式完成,比如录入,修改,输出成绩扥等。

这里我写一个菜单,用一个主函数,分别调用两个子函数。

在成绩修改时注意输出的数据的对应,最后哟啊保存修改的数据,这里最容易被忽略,如果不保存的话,就白费心机啦。

注意自己定义的头文件的数据类型和源文件里面的数据类型要符合,这个函数有点大,随意这种细节一般容易出错。

在输入一个函数数据的时候,应该清空键盘区,很容易出错。

总之来说,编译的时候会有很多错,但是经过改正过后,发现很多都是不必要的或是细节问题。

3 系统实现3.1 题目一#include <stdio.h>#include <windows.h>#include <string.h>#include <stdlib.h>#include "student.h"int number;void view (struct student people[]){int i;printf("\t\t\t\t学生成绩管理系统\n");printf("\t\t\n");printf("\t\t\n");printf("学期\t学号\t班别\t姓名\t语文\t数学\t英语\t计算机\n");printf("********************************************************* *******\n");for(i=0;i<=number-1;i++){printf("%s\t",people[i].sem);printf("%s\t",people[i].num);printf("%d\t",people[i].clas);printf("%s\t",people[i].name);printf("%4d\t",people[i].chinese);printf("%4d\t",people[i].math);printf("%4d\t",people[i].english);printf("%4d\t",people[i].computer);printf("\n");printf("--------------------------------------------------------------------------------\n");}}//******************************************************************* *************************//按班级统计学生总分和平均分//******************************************************************* *************************void grade(struct student people[]){int clas;int aver=0;int sum=0;scanf("%d",&clas);for (int i=0;i<number;i++){if(people[i].clas==clas) //查找班级{sum=people[i].chinese+people[i].math+people[i].english+people[i]. computer;aver=sum/4;printf("第%d个学生总分为:%d\n",i+1,sum);printf("第%d个学生的平均分为:%d\n",i+1,aver);}}//******************************************************************* *************************//输出某一个学生的信息//******************************************************************* *************************void prnt(struct student people[],int i){printf("------------------------------------------------------------------------------\n");printf("姓名\t语文\t数学\t英语\t计算机\t不及格科目\t学生名单\n");printf("------------------------------------------------------------------------------\n");for(i=0;i<number;i++){printf("%s\t",people[i].name);printf("%.1f\t",people[i].chinese);printf("%.1f\t",people[i].math);printf("%.1f\t",people[i].english);printf("%.1f\t",people[i].computer);while(1) //输出不及格的学生的成绩{if(people[i].chinese<60)printf("语文,");if(people[i].math<60)printf("数学,");if(people[i].english<60)printf("英语,");if(people[i].computer<60)printf("计算机\t");break;printf("%s",people[i].name); //输出学生的名单}printf("\n");printf("--------------------------------------------------------------------------------\n");}//******************************************************************* *************************// 按照学号查询学生信息//******************************************************************* *************************void search(struct student people[]){char num[20];int i;printf("\n请输入你要查询的学生学号:");fflush(stdin);gets(num);for(i=0;i<number;i++){if (strcmp(people[i].num,num)==0){prnt(people,i);}}}//******************************************************************* *************************// 按班级输出学生的成绩单//******************************************************************* *************************void search_clas(struct student people[]){int clas;printf("请输入班级:");fflush(stdin);scanf("%d",&clas);for (int i=0;i<number;i++){if(people[i].clas==clas){prnt(people,i); //调用prnt 函数输出成绩单}}}//******************************************************************* *************************// 将信息存入磁盘文件//******************************************************************* *************************void save(struct student people[]){FILE *fp;int i;fp=fopen("e:\\wh.dat","wb+");for(i=0;i<number;i++){fwrite(&people[i],sizeof(student),1,fp);}fclose(fp); //关闭磁盘文件}//***********************************************// 按学期修改学生成绩//***********************************************void xiugai_sem(struct student people[]){int chinese,math,english,computer; //定义新的成绩变量char sem[20];printf("输入学期:");fflush(stdin);scanf("%s",sem);for (int i=0;i<number;i++){if(strcmp(people[i].sem,sem)==0){prnt(people,i);}printf("修改语文,数学,英语,计算机的成绩:");scanf("%f%f%f%f",&chinese,&math,&english,&computer);people[i].chinese=chinese;people[i].math=math;people[i].english=english;people[i].computer=computer; //把新的成绩赋给people[i]}save(people);}//***********************************************// 按班级修改学生成绩//***********************************************void xiugai_clas(struct student people[]){int chinese,math,english,computer;int clas;printf("输入班级:");fflush(stdin);scanf("%d",&clas);for (int i=0;i<number;i++){if(people[i].clas==clas){prnt(people,i);}printf("修改语文,数学,英语,计算机的成绩:");scanf("%f%f%f%f",&chinese,&math,&english,&computer);people[i].chinese=chinese;people[i].math=math;people[i].english=english;people[i].computer=computer;}save(people);}void xiugai(struct student people[]) //修改学生成绩{int xuan;while(1){printf("************ 1 按学期修改学生成绩\n");printf("************ 2 按班级修改成绩\n");printf("************ 0 返回上一级目录\n");printf("请选择:\n");scanf("%d",&xuan);switch(xuan){case 1:xiugai_sem(people);break;case 2:xiugai_clas(people);break;}if(xuan==0)break;}}//*********************************************// 按学期录入学生成绩//*********************************************void luru_sem(struct student people[]){struct student temp;printf("请输入学生人数\n");scanf("%d",&number);printf("学期\n"); //选择要输入学生的学期fflush(stdin);scanf("%s",temp.sem);for(int i=0;i<number;i++){printf("请输入学生信息:\n");printf("学号:");fflush(stdin);gets(temp.num);printf("班别:");fflush(stdin);scanf("%d",&temp.clas);printf("姓名:");fflush(stdin);gets();printf("学生成绩:");fflush(stdin);scanf("%d",&temp.chinese);fflush(stdin);scanf("%d",&temp.math);fflush(stdin);scanf("%d",&temp.english);fflush(stdin);scanf("%d",&puter);printf("\n");people[i]=temp;}save(people);}//***********************************************// 按班级录入学生成绩//***********************************************void luru_clas(struct student people[]){struct student temp;printf("请输入学生人数:");scanf("%d",&number);printf("班级:"); //输入要录入的学生的班级fflush(stdin);scanf("%d",&temp.clas);int i;for(i=0;i<number;i++){printf("请输入学生信息:\n");printf("学期:");scanf("%s",temp.sem);printf("学号:");fflush(stdin);gets(temp.num);printf("姓名:");fflush(stdin);gets();printf("学生成绩:");fflush(stdin);scanf("%d",&temp.chinese);fflush(stdin);scanf("%d",&temp.math);fflush(stdin);scanf("%d",&temp.english);fflush(stdin);scanf("%d",&puter);printf("\n");people[i]=temp;}save(people); //保存}void luru(struct student people[]) //录入学生成绩{int xuan;while(1){printf("************ 1 按学期录入学生成绩\n");printf("************ 2 按班级录入学生成绩\n");printf("************ 0 返回上一级目录\n");scanf("%d",&xuan);switch(xuan){printf("请选择:\n");case 1:luru_sem(people);break;case 2:luru_clas(people);break;}if(xuan==0)break;}}//*****************************************// 导入磁盘文件信息//*****************************************void load(struct student people[]){FILE *fp;if((fp=fopen("e:\\wh.dat","rb+"))==NULL){printf("磁盘并不存在,是否创建?(y/n)");if(getchar()=='y'){luru(people);return ;}else exit(0);}int i=0;printf("\n正在导入数据,请等待......\n");while(!feof(fp)){fread(&people[i],sizeof(student),1,fp);i++;}fclose(fp); //关闭磁盘文件number=--i;printf("\n导入成功!\n");}//*****************************************// 按班级对学生成绩排序//*****************************************void paixu_clas(struct student people[]){struct student arry[1024],temp; //新定义一个数组arry[] int clas,j=0;printf("请输入班级:");fflush(stdin);scanf("%d",&clas);for (int i=0;i<number;i++){if(people[i].clas==clas){arry[j]=people[i];j++;}printf("\t\n");printf("学期\t学号\t班别\t姓名\t语文\t数学\t英语\t计算机\t总分\n");printf("********************************************************* **************\n");for (int m=0;m<j-1;m++){for (int n=0;n<j-1-m;n++)if(arry[n].chinese+arry[n].computer+arry[n].math+arry[n].english< arry[n+1].chinese+arry[n+1].computer+arry[n+1].math+arry[n+1].english ){temp=arry[n];arry[n]=arry[n+1];arry[n+1]=temp;}}for (i=0;i<j;i++){printf("%s\t",arry[i].sem);printf("%s\t",arry[i].num);printf("%d\t",arry[i].clas);printf("%s\t",arry[i].name);printf("%4d\t",arry[i].chinese);printf("%4d\t",arry[i].math);printf("%4d\t",arry[i].english);printf("%4d\t",arry[i].computer);printf("%4d\t",arry[i].computer+arry[i].chinese+arry[i].math+arry [i].english);printf("\n");printf("--------------------------------------------------------------------------------\n");}}//*****************************************// 按课程对学生成绩排序//*****************************************void paixu_ke(struct student people[]){struct student temp;for (int i=0;i<number-1;i++)for (int j=0;j<number-1-i;j++){if (people[j].chinese<people[j+1].chinese){temp=people[j];people[j]=people[j+1];people[j+1]=temp;}}printf("\t\t\n");printf("学期\t学号\t班别\t姓名\t语文\n");printf("**************************************\n");for(i=0;i<number;i++){printf("%s\t",people[i].sem);printf("%s\t",people[i].num);printf("%d\t",people[i].clas);printf("%s\t",people[i].name);printf("%4d\t\n",people[i].chinese);}for (i=0;i<number-1;i++)for (int j=0;j<number-1-i;j++){if (people[j].chinese<people[j+1].chinese){temp=people[j];people[j]=people[j+1];people[j+1]=temp;}}printf("\t\t\n");printf("学期\t学号\t班别\t姓名\t数学\n");printf("***************************************\n");for(i=0;i<number;i++){printf("%s\t",people[i].sem);printf("%s\t",people[i].num);printf("%d\t",people[i].clas);printf("%s\t",people[i].name);printf("%4d\t\n",people[i].math);}for (i=0;i<number-1;i++)for (int j=0;j<number-1-i;j++){if (people[j].math<people[j+1].math){temp=people[j];people[j]=people[j+1];people[j+1]=temp;}}printf("学期\t学号\t班别\t姓名\t英语\n");printf("*****************************************\n");for(i=0;i<number;i++){printf("%s\t",people[i].sem);printf("%s\t",people[i].num);printf("%d\t",people[i].clas);printf("%s\t",people[i].name);printf("%4d\t\n",people[i].english);}for (i=0;i<number-1;i++)for (int j=0;j<number-1-i;j++){if (people[j].english<people[j+1].english){temp=people[j];people[j]=people[j+1];people[j+1]=temp;}}printf("学期\t学号\t班别\t姓名\t计算机\n");printf("*****************************************\n");for(i=0;i<number;i++){printf("%s\t",people[i].sem);printf("%s\t",people[i].num);printf("%d\t",people[i].clas);printf("%s\t",people[i].name);printf("%4d\t\n",people[i].computer);}for (i=0;i<number-1;i++)for (int j=0;j<number-1-i;j++){if (people[j].computer<people[j+1].computer){temp=people[j];people[j]=people[j+1];people[j+1]=temp;}}}void paixu(struct student people[]) //对学生成绩排序{int xuan;while(1){printf("************ 1 按班级对学生成绩排序\n");printf("************ 2 按课程对学生成绩排序\n");printf("************ 0 返回上一级目录\n");printf("请选择:\n");scanf("%d",&xuan);switch(xuan){case 1:paixu_clas(people);break;case 2:paixu_ke(people);break;}if(xuan==0)break;}}//***********************************// 主函数//***********************************void main(){int sel;system ("cls");system ("color F9");struct student people[1024];load(people);for(;;){{printf("\t\t\n");printf("\n");printf("\t\t 学生成绩管理系统\n");printf("\t\t\n");printf("\t\t\n");printf("\t\t***********************************\n");printf("\t\t\t1 学生成绩浏览\n");printf("\t\t\t2 学生成绩录入\n");printf("\t\t\t3 学生成绩修改\n");printf("\t\t\t4 按班级统计学生成绩的总分和平均分\n"); printf("\t\t\t5 学生成绩查询\n");printf("\t\t\t6 学生成绩保存\n");printf("\t\t\t7 学生成绩未存盘时导入\n");printf("\t\t\t8 按班级输出学生成绩\n");printf("\t\t\t9 学生成绩排序\n");printf("\t\t\n");printf("\t\t\t0 谢谢使用再见!\n");printf("\t\t\n");}printf("请选择:\n");scanf("%d",&sel);switch(sel){case 1:view(people);break;case 2:luru(people);break;case 3:xiugai(people);break;case 4:grade(people);break;case 5:search(people);break;case 6:save(people);break;case 7:load(people);break;case 8:search_clas(people);break;case 9:paixu(people);break;case 0:printf("谢谢使用再见!\n");break;}if(sel==0)break;}}4系统测试4.1 如何设计测试数据我是按顺序编写每个函数的每个功能的,每写完一个就输入数据运行测试,输入数据时数据类型要准确,以避免错误,有些函数往往要重新写好几遍,应为有时不确定是否正确,就要输入数据进行测试,看是否正确,有很多的函数都要调用其他的函数,所以函数的关联很大,输入数据时就要考虑清楚。

相关文档
最新文档