学生成绩排名系统课程设计

合集下载

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

成绩排名系统课程设计

成绩排名系统课程设计

成绩排名系统课程设计一、课程目标知识目标:1. 学生能理解成绩排名系统的基本概念,掌握其运作原理;2. 学生能运用所学知识,分析并设计简单的成绩排名系统;3. 学生了解成绩排名系统在现实生活中的应用及其重要性。

技能目标:1. 学生能够运用计算机编程语言,实现成绩排名系统的基本功能;2. 学生能够运用数据处理技巧,对成绩数据进行整理和分析;3. 学生能够通过小组合作,共同探讨并解决成绩排名系统设计过程中遇到的问题。

情感态度价值观目标:1. 培养学生对计算机科学和信息技术的兴趣,激发他们主动探索新知识的热情;2. 培养学生具备团队协作精神,学会倾听、尊重他人的意见;3. 培养学生认识到成绩排名系统在实际应用中的价值,增强他们的社会责任感和使命感。

课程性质:本课程为信息技术与学科融合的实践课程,旨在通过实际操作,让学生掌握成绩排名系统的设计与实现。

学生特点:本课程针对初中年级学生,他们对计算机编程有一定的基础,对新鲜事物充满好奇,具备一定的动手能力和团队协作能力。

教学要求:教师在教学过程中应注重理论与实践相结合,引导学生通过自主探究、小组合作等方式,提高学生的实际操作能力和解决问题的能力。

同时,关注学生的情感态度价值观的培养,使他们在掌握知识技能的同时,形成良好的价值观和团队合作精神。

通过具体的学习成果的分解,为后续的教学设计和评估提供依据。

二、教学内容1. 成绩排名系统基本概念:介绍成绩排名系统的定义、功能、应用场景等,使学生了解成绩排名系统在实际生活中的重要性。

教学内容关联教材章节:教材第3章“数据处理与分析”2. 成绩排名系统设计与实现:a. 数据结构:讲解数据表、数组、链表等基本数据结构在成绩排名系统中的应用;b. 算法:介绍排序算法(如冒泡排序、选择排序等)在成绩排名中的运用;c. 编程语言:运用教材所学编程语言(如Python、C++等),实现成绩排名系统的基本功能。

教学内容关联教材章节:教材第4章“算法与程序设计”3. 成绩排名系统实践:a. 数据处理:教授如何收集、整理、清洗成绩数据,为排名提供准确数据;b. 功能实现:指导学生运用所学编程技能,分组完成成绩排名系统的设计与实现;c. 系统测试与优化:教授测试方法,引导学生对成绩排名系统进行测试、调优,确保系统稳定可靠。

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

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

学生成绩管理系统课程设计一、引言学生成绩管理系统是一种用于管理学生学业成绩的系统。

该系统能够方便地记录、查询和统计学生成绩,并提供相应的分析报告和数据可视化功能。

本文档将详细介绍学生成绩管理系统的设计原理、功能要求和实现方法。

二、系统设计1. 功能需求学生成绩管理系统的主要功能如下:•学生信息管理:包括学生基本信息的录入、修改和删除等操作。

•课程信息管理:包括课程的添加、编辑和删除等操作。

•成绩录入与管理:包括学生每门课程的成绩录入、查询和修改等操作。

•成绩统计与分析:包括按学生、按课程、按班级等维度进行成绩统计和分析。

2. 数据库设计学生成绩管理系统的数据库设计如下:学生表字段名类型描述学号字符串学生的唯一标识姓名字符串学生的姓名班级字符串学生所在班级性别字符串学生的性别出生日期日期学生的出生日期入学日期日期学生的入学日期地址字符串学生的家庭地址联系电话字符串学生的联系电话课程表字段名类型描述课程编号字符串课程的唯一标识课程名称字符串课程的名称学分数值课程的学分授课教师字符串课程的授课教师成绩表字段名类型描述学号字符串学生的学号课程编号字符串课程的编号成绩数值学生在该门课程的成绩3. 界面设计学生成绩管理系统的界面设计应尽量简洁明了,便于用户操作和使用。

具体界面设计将在后续开发过程中进行。

三、系统实现学生成绩管理系统的实现方法主要分为以下几个步骤:1.根据需求分析,设计数据库表结构,并创建相应的数据表。

2.实现学生信息管理模块,包括学生信息的录入、修改和删除等功能。

3.实现课程信息管理模块,包括课程的添加、编辑和删除等功能。

4.实现成绩录入与管理模块,包括学生成绩的录入、查询和修改等功能。

5.实现成绩统计与分析模块,包括按学生、按课程、按班级等维度进行成绩统计和分析。

6.进行系统测试和调试,确保系统的稳定性和可靠性。

7.部署系统到服务器上,并进行系统的维护和更新。

四、总结学生成绩管理系统是一种便捷高效的管理工具,能够帮助学校或教育机构有效管理学生成绩。

学生成绩排名系统课程设计样本

学生成绩排名系统课程设计样本

《程序设计基本》课程设计------学生成绩排名系统第一章课程设计目和规定高档语言课程设计重要目是培养学生可以提高综合应用语言能力,通过课程设计训练,使学生能及时巩固已学知识,补充未学但有必要内容,掌握应用计算机解决实际问题基本办法,熟悉程序开发全过程,提高综合应用语言能力。

高档语言程序设计重要任务是规定学生遵循软件开发过程基本规范,运用构造程序设计办法按照课程设计题目规定,分析,编写,调试和测试高档语言程序及编写设计报告。

1.1课程设计目1.巩固和掌握高档语言程序设计基本概念;2.掌握基本程序设计办法;3.掌握开发软件所需需求定义能力;4.提高书写程序设计阐明文档能力;5.提高综合运用高档语言能力,强化编程和调试能力。

1.2 课程设计基本规定1.依照所给课程设计题目,分析课程设计题目规定;2.对系统功能模块进行分析,写出详细设计阐明文档;3.编写程序代码,调试所编写程序使其能对的运营;4.设计完毕软件便于完毕和使用;5.设计完毕后提交课程设计报告;第二章课程设计任务内容2.1 考核内容2.1.1 编写C++语言程序●针对编写C++程序,应当重要考查下列内容:●与否符合题目规定,与否完毕了重要功能;●与否存在语法错误、逻辑错误及运营错误;●程序设计与否合理;●程序与否具备良好可读性和可靠性;●与否符合构造化程序设计所倡导基本理念;●顾客界面与否和谐。

2.1.2 课程设计报告●针对提交课程设计报告,应当重要考查下列内容:●程序设计报告内容与否全面,观点与否对的;●设计过程与否符合构造化程序设计办法基本原则;●层次与否清晰,语言与否通顺;●各种图表与否规范;与否具备良好程序设计习惯。

2.2 课题设计一种学生成绩排名系统,实现如下功能:1.具备对成绩管理功能(添加、删除、排序);2.具备对成绩记录功能(最高分、最低分、平均分、及格率);3.具备按学号、姓名或课程名查询成绩功能;备注:成绩记录如下信息:班级、学号、姓名、成绩(百分制)。

课程设计--学生成绩排名系统

课程设计--学生成绩排名系统

课程设计报告设计名称: 姓 名: 专业班级: 系 (院): 设计时间: 设计地点:指导教师评语:C++语言课程设计 学 号: 软件工程计算机工程学院软件工程系计算机工程学院机房成绩:签名:年月日C++课程设计报告1.课程设计目的第 2 页,共 38 页C++课程设计是计算机科学与技术专业重要的实践性教学环节之一,本次设计结合实际应用的要求,使课程设 计既覆盖 C++的知识点,又接近工程实际需要。

目的是通过课程设计的综合训练,培养学生实际分析问题、解决问题 的能力,以及编程和动手能力,最终目标是通过课程设计这种形式,帮助学生系统掌握 C++这门课程的主要内容,养 成良好的编程习惯,更好的完成教学任务。

2.课程设计任务与要求:要求:本次课程设计利用《C++程序设计》课程中所学到的编程知识和编程技巧,完成具有一定难度和工作量的程序设 计题目,帮助学生掌握编程、调试的基本技能,独立完成所布置的任务。

要求:1、对系统进行功能需求分析 2、设计合理的数据结构和系统框架 3、编程简练,程序功能齐全,能正确运行 4、说明书、流程图要清楚 5、课题完成后必须按要求提交课程设计报告 任务:设计一个学生成绩排名系统,该系统的主要功能如下: 1) 具备对成绩的管理功能(添加、删除、排序) 2) 具备对成绩的统计功能(最高分,最低分,平均分,及格率等) 3) 具备按学号、姓名、或课程名查询成绩的功能。

4)学生成绩应该保存在文件中。

C++课程设计报告第 3 页,共 38 页3.课程设计说明书⑴概要设计模块说明: 在我设计的程序中一共包括了九个模块,分别是:浏览模块、添加模块、删除模块、查询模块、编辑模块、排序模块、读入文件模块、统计模块、退出系统模块。

这九个功能中各个都是独立分开作为子函数的,也就是说为了实 现这九个功能我写了九个函数,在主函数中通过 switch 语句,把九个函数联系了起来,同时,为了实现多次使用这 九个函数,就在 switch 语句外加了 for 循环。

学生成绩排名系统课程设计

学生成绩排名系统课程设计
图3-1 模板设计图
其中:
1.增加学生成绩记录模块可以完成学生成绩的输入,输入信息包括班级、学号、姓名、课程名、成绩。
2.删除学生成绩记录模块可以完成学生成绩的删除。
3.查询学生成绩记录模块可以完成学生成绩的查询,可以通过输入姓名、学号
或者是课程 名来查询学生成绩。
4.统计学生成绩记录模块可以完成对学生成绩的统计,可以在已有的学生成绩
主要完成在单链表中查找满足相关条件的学生记录。用户可以按照学生的学号、姓名或课程名在单链表中进行查找。未找到输出提示信息,如图3-4所示:
图3-4 查询学生成绩记录流程图
4.统计学生成绩记录(void Manage::( ))
主要完成对最高分、最低分、平均分、及格率的统计,如图3-5所示:
图3-5 统计5.学生成绩排序模块可以完成对学生成绩的排序,按照成绩的高低来进行排
序。
3.2 函数模块、功能分析、参数说明
1.增加学生成绩记录模块(void Manage::add( ))
对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下:
主要完成将数据存入单链表中的工作。在这次增加学生成绩记录中,记录可以从二进制形式存储的数据文件中读入,也可以从键盘逐个读入学生记录。如图3-2所示:
图4-2 增加学生成绩记录
3.返回主菜单,进行查询学生成绩记录操作,如图4-3所示:
图4-3 查询学生成绩记录
4.返回主菜单,选择相应的操作,对学生成绩进行排序,如图4-4所示:
图4-4 学生成绩排序
5.返回主菜单,进行对学生成绩统计操作,输出最高分、最低分、平均分和及格率,如图4-5所示:
图4-5 统计学生成绩
图3-2 增加学生成绩记录流程图.

学生成绩排名系统课程设计报告书

学生成绩排名系统课程设计报告书

《程序设计基础》课程设计------学生成绩排名系统第一章课程设计的目的和要求高级语言课程设计的主要目的是培养学生能够提高综合应用语言的能力,通过课程设计的训练,使学生能及时巩固已学的知识,补充未学的但有必要的容,掌握应用计算机解决实际问题的基本方法,熟悉程序开发的全过程,提高综合应用语言的能力。

高级语言程序设计的主要任务是要求学生遵循软件开发过程的基本规,运用结构程序设计的方法按照课程设计的题目要求,分析,编写,调试和测试高级语言程序及编写设计报告。

1.1课程设计的目的1.巩固和掌握高级语言程序设计基本概念;2.掌握基本的程序设计方法;3.掌握开发软件所需的需求定义能力;4.提高书写程序设计说明文档的能力;5.提高综合运用高级语言的能力,强化编程和调试能力。

1.2 课程设计的基本要求1.根据所给的课程设计题目,分析课程设计题目的要求;2.对系统功能模块进行分析,写出详细的设计说明文档;3.编写程序代码,调试所编写程序使其能正确运行;4.设计完成的软件便于完成和使用;5.设计完成后提交课程设计报告;第二章课程设计任务容2.1 考核容2.1.1 编写的C++语言程序●针对编写的C++程序,应该主要考查下列容:●是否符合题目要求,是否完成了主要功能;●是否存在语法错误、逻辑错误及运行错误;●程序设计是否合理;●程序是否具有良好的可读性和可靠性;●是否符合结构化程序设计所倡导的基本理念;●用户界面是否友好。

2.1.2 课程设计报告●针对提交的课程设计报告,应该主要考查下列容:●程序设计的报告容是否全面,观点是否正确;●设计过程是否符合结构化程序设计方法的基本原则;●层次是否清楚,语言是否通顺;●各种图表是否规;是否具有良好的程序设计习惯。

2.2 课题10、学生信息管理系统设计实现以下功能:1) 系统以菜单方式工作;2) 学生信息录入功能(学生信息用文件保存);3) 学生信息浏览功能;4) 查询、排序功能(至少两种查询依据和两种排序依据);5) 学生信息删除、修改功能。

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

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

学生成绩管理系统课程设计报告一、课程设计题目基本要求本次课程设计的题目是学生成绩管理系统,要求实现以下功能: 1. 学生成绩录入:学生成绩管理系统应允许用户输入学生的学号、姓名、三门课的成绩以及平均成绩。

2. 学生成绩查询:学生成绩管理系统应允许用户按学号、姓名、以及单科成绩查询学生的成绩记录。

3. 学生成绩统计:学生成绩管理系统应允许用户按学号、姓名、以及平均成绩进行统计,并输出统计结果。

4. 学生成绩排序:学生成绩管理系统应允许用户按三科平均成绩、单科成绩、学号进行排序,并输出排序结果。

5. 退出系统:学生成绩管理系统应提供退出系统的选项,用户选择退出后,应退出系统。

二、设计要求1. 使用结构体数组实现学生成绩管理系统的数据结构。

2. 使用函数、指针、算法、流程结构及文件等综合应用实现学生成绩管理系统的各项功能。

3. 实现学生成绩管理系统的界面设计,包括菜单、表格、单选框、复选框、下拉框等控件的使用。

4. 使用数据库技术实现学生成绩管理系统的数据存储功能。

5. 实现学生成绩管理系统的测试流程,包括测试用例的设计和测试。

三、数据结构设计描述1. 数据字典数据字典是学生成绩管理系统的数据结构描述,包括以下数据流条目和数据存储条目:数据流条目:- 全部记录:最新更新后所有关于学生成绩的记录。

- 学生成绩记录:存放学生所有可供查询的信息。

数据存储条目:- 学生成绩记录:存放学生所有可供查询的信息,以索引文件的形式组织。

2. 数据结构学生成绩管理系统的数据结构包括以下结构体:- struct student:定义学生结构体,包括学号、姓名、三门课的成绩以及平均成绩。

- struct record:定义成绩记录结构体,包括学号、姓名、三门课的成绩以及平均成绩。

- struct database:定义数据库结构体,包括学生成绩记录数组,以及查询、统计、排序等函数。

四、系统功能描述1. 菜单设计学生成绩管理系统应提供以下菜单:- 成绩录入- 成绩查询- 成绩统计- 成绩排序- 退出系统2. 功能实现学生成绩管理系统的各项功能应分别实现如下:- 成绩录入:实现学生成绩的录入功能。

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

《程序设计基础》课程设计------学生成绩排名系统第一章课程设计的目的和要求高级语言课程设计的主要目的是培养学生能够提高综合应用语言的能力,通过课程设计的训练,使学生能及时巩固已学的知识,补充未学的但有必要的内容,掌握应用计算机解决实际问题的基本方法,熟悉程序开发的全过程,提高综合应用语言的能力。

高级语言程序设计的主要任务是要求学生遵循软件开发过程的基本规范,运用结构程序设计的方法按照课程设计的题目要求,分析,编写,调试和测试高级语言程序及编写设计报告。

1.1课程设计的目的1.巩固和掌握高级语言程序设计基本概念;2.掌握基本的程序设计方法;3.掌握开发软件所需的需求定义能力;4.提高书写程序设计说明文档的能力;5.提高综合运用高级语言的能力,强化编程和调试能力。

1.2 课程设计的基本要求1.根据所给的课程设计题目,分析课程设计题目的要求;2.对系统功能模块进行分析,写出详细的设计说明文档;3.编写程序代码,调试所编写程序使其能正确运行;4.设计完成的软件便于完成和使用;5.设计完成后提交课程设计报告;第二章课程设计任务内容2.1 考核内容2.1.1 编写的C++语言程序●针对编写的C++程序,应该主要考查下列内容:●是否符合题目要求,是否完成了主要功能;●是否存在语法错误、逻辑错误及运行错误;●程序设计是否合理;●程序是否具有良好的可读性和可靠性;●是否符合结构化程序设计所倡导的基本理念;●用户界面是否友好。

2.1.2 课程设计报告●针对提交的课程设计报告,应该主要考查下列内容:●程序设计的报告内容是否全面,观点是否正确;●设计过程是否符合结构化程序设计方法的基本原则;●层次是否清楚,语言是否通顺;●各种图表是否规范;是否具有良好的程序设计习惯。

2.2 课题10、学生信息管理系统设计实现以下功能:1) 系统以菜单方式工作;2) 学生信息录入功能(学生信息用文件保存);3) 学生信息浏览功能;4) 查询、排序功能(至少两种查询依据和两种排序依据);5) 学生信息删除、修改功能。

备注:学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。

详细设计说明3.1 模板设计图该系统可以按功能进行模块划分,其模块如图3-1所示:图3-1 模板设计图其中:1.学生成绩录入2..增加学生成绩记录模块可以完成学生成绩的输入,输入信息包括班级、学号、姓名、课程名、成绩。

3 .删除学生成绩记录模块可以完成学生成绩的删除。

4.查询学生成绩记录模块可以完成学生成绩的查询,可以通过输入姓名、学号或者是课程名来查询学生成绩。

5.学生成绩排序模块可以完成对学生成绩的排序,按照成绩的高低来进行排序。

3.2 函数模块、功能分析、参数说明1.增加学生成绩记录模块(void Manage::add( ))对应于总体设计时的系统功能模块图,各个功能模块的处理逻辑如下: 主要完成将数据存入单链表中的工作。

在这次增加学生成绩记录中,记录可以从二进制形式存储的数据文件中读入,也可以从键盘逐个读入学生记录。

如图3-2所示:图3-2 增加学生成绩记录流程图.2.删除学生成绩记录模块(void Manage::del( ))要删除某个学生的信息,就要从磁盘文件中将所有同学信息读出来,然后除要删除的学生外,其它的所有记录再重新存入原来的磁盘文件中,如图3-3所示:NY图3-3 删除学生成绩记录流程图开始 读入信息输入要删除学生的学号是否找到 删除成功结束3..查询学生成绩记录模块(void Manage::search( ))主要完成在单链表中查找满足相关条件的学生记录。

用户可以按照学生的学号、姓名或课程名在单链表中进行查找。

未找到输出提示信息,如图3-4所示:图3-4 查询学生成绩记录流程图4.学生成绩排序模块主要完成按照成绩的高低来进行排序,如图3-6所示:图3-6 学生成绩排序流程图3.3 函数流程图系统首先进入欢迎界面并提示用户输入不同的阿拉伯数字会进行不同的操作。

在用户做出选择后,根据用户输入的阿拉伯数字,程序将调用相应的功能模块,实现用户要进行的操作。

完成一次用户的操作后,再回到欢迎界面,等待用户再做出选择,再调用相应的功能模块……,知道用户在欢迎界面选择了退出,该系统结束,终止执行,如图3-7所示:图3-7 函数流程图第四章编码与调试4.1 软件与测试打开软件后,界面会出现你所需要的功能,根据你要进行的操作来选择。

4.2 运行结果及截图1.此图为程序运行成功后,出现的界面,此为主菜单界面,可依据界面执行。

如图4-1所示:2.首先录入学生成绩记录,输入学生的班级、学号、姓名、课程名、成绩,如图4-2所示:图4-2 录入学生成绩记录3返回主菜单,选择相应的操作,对学生成绩进行排序和相应的查询,如图4-3所示:图4-3 学生成绩排序4.返回主菜单,进行查询学生成绩记录操作,如图4-4所示:图4-4 学生成绩排序5.返回主菜单,进行对学生成员进行增加。

如图4-5所示:图4-5 查询学生成绩6.返回主菜单,进行删除学生成绩记录操作,按照学号来删除学生信息,如图4-6所示:图4-6 删除学生成绩记录第五章课程设计心得与体会本次课程设计,使我对《数据结构》这门课程有了更深入的理解。

《数据结构》是一门实践性较强的课程,为了学好这门课程,必须在掌握理论知识的同时,加强上机实践。

一个人的力量是有限的,要想把课程设计做的更好,就要学会参考一定的资料,吸取别人的经验,让自己和别人的思想有机的结合起来,得出属于你自己的灵感。

在本课程设计中,我明白了理论与实际应用相结合的重要性,并提高了自己组织数据及编写大型程序的能力。

培养了基本的、良好的程序设计技能以及合作能力。

这次课程设计同样提高了我的综合运用所学知识的能力。

程序的编写需要有耐心,有些事情看起来很复杂,但问题需要一点一点去解决,分析问题,把问题一个一个划分,划分成小块以后就逐个去解决。

再总体解决大的问题。

这样做起来不仅有条理也使问题得到了轻松的解决。

在这段时间里,一直修改着相应的程序,并且尝试着调试各种运行结果。

终于,在自己的努力下,课程设计还算是有点起色。

经过这次的编程,我学会了很多东西。

比如说,如何在网上查找一些有用的东西,如何设计自己的目标,如何规划好自己的学习时间,如何让自己的思想应用到程序的编程过程中去,如何合理运用各种资源来提高自己的编程甚至是学习的能力。

另外,还有几点,我深有感触,就是我还问了别人怎样在Word文档中截图、怎样扩大或缩小图片等等。

总之,收获真的是挺大的。

通过这段时间的课程设计,我认识到数据结构是一门比较难的课程。

需要多花时间上机练习。

这次的程序训练培养了我实际分析问题、编程和动手能力,使我掌握了程序设计的基本技能,提高了我适应实际,实践编程的能力。

这次的课程设计我对于专业课的学习有了更加深刻的认识,以为现在学的知识用不上就加以怠慢,等到想用的时候却发现自己的学习原来是那么的不扎实。

以后努力学好每门专业课,让自己拥有更多的知识,才能解决更多的问题!总的来说,这次课程设计让我获益匪浅,对数据结构也有了进一步的理解和认识。

不管怎么说,这次C++课程设计不仅给了我提高编程的能力的机会,而且让我的综合素质得到了一个全面的发展。

我相信,这样的日子一定能成为我以后生活中一段美好的回忆。

附录一参考文献[1]谭浩强著《C++程序设计》,清华大学出版社[2]严蔚敏、吴伟民编著《数据结构(C语言版)》,清华大学出版社[3]王杰《数据结构经典算法实现与习题解答》,人民邮电大学出版社附录二程序清单#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <string.h>#define LEN sizeof(Student)#define NULL 0typedef struct student{int num; /*学号*/char name[20]; /*姓名*/char sex[2]; /*性别*/int score[4]; /*成绩*/int sum; /*总成绩*/struct student *next;}Student;int n; /*声明一个全局变量*/Student *cin(void); /*声明学生信息函数*/Student *sort_all(Student *head); /*声明排序函数*/Student *sort_1(Student *head,int choose); /*声明按学号排序函数*/ void sort_2(Student *head); /*声明按总分排序函数*/void print(Student *head); /*声明显示函数*/void find(Student *head); /*声明查询函数*/Student *add_new(Student *head);Student *cin()/*声明学生信息函数*/{int flag;Student *head,*p1,*p2;n=0;head=(Student *)malloc(LEN);/*分配LEN大小的内存空间给head,head为首地址*/p2=head;printf("\n请输入第%d名学生的学号,学号为0表示结束输入:",n+1); scanf("%d",&flag);while(getchar()!='\n');for(;flag;) /*输入每个学生的信息*/{n++;p1=(Student *)malloc(LEN);p1->num=flag;/*把flag复制给p1里面的num*/printf("请输入第%d名学生的姓名:",n); /*输入姓名*/scanf("%s",p1->name);printf("请输入第%d学生的性别:",n); /*输入性别*/scanf("%s",p1->sex);printf("请输入第%d名学生的语文成绩:",n); /*输入语文成绩*/ scanf("%d",&p1->score[0]);printf("请输入第%d名学生的数学成绩:",n); /*输入数学成绩*/scanf("%d",&p1->score[1]);printf("请输入第%d名学生的英语成绩:",n); /*输入英语成绩*/scanf("%d",&p1->score[2]);printf("请输入第%d名学生的C语言成绩:",n); /*输入C语言成绩*/scanf("%d",&p1->score[3]);p1->sum=p1->score[0]+p1->score[1]+p1->score[2]+p1->score[3];/*求和*/p2->next=p1;/*将后一个节点指向当前节点*/p2=p1;/*让p2成为当前节点*/printf("\n请输入第%d名学生的学号,没有此学生则输入0表示结束:",n+1);scanf("%d",&flag);}p2->next=NULL;/*结束标志*/printf("\n\n");return head;}Student *sort_all(Student *head) /*定义排序函数*/{int choose;for(;;){printf("\n\t\t& & & & & 学生成绩统计排序 & & & & &\n");printf("\t\t&\t1.按学生学号排序\t &\n");printf("\t\t&\t2.按学生总分排序\t &\n");printf("\t\t&\t7.单科高分及均分\t &\n");printf("\t\t&\t8.显示当前学生成绩\t &\n");printf("\t\t&\t0.返回上一级菜单\t &\n");printf("请输入你要执行的操作:");scanf("%d",&choose);while(getchar()!='\n');switch(choose){case 1:case 2:case 3:case 4:case 5:case 6:head=sort_1(head,choose);break;case 7:print(head);sort_2(head);break;case 8:print(head);break;case 0:return head;default: printf("\n\n您的输入错误!请重新输入:\n\n");break;}}}Student *sort_1(Student *head,int choose) /*定义按学号排序函数*/{Student *p1,*p2=head->next,*pm,*px;Student mid;if (!p2)return head;for(p1=p2;p1->next!=NULL;p1=p1->next){pm=p1;for(p2=p1->next;p2!=NULL;p2=p2->next)switch(choose){case 1:if (pm->num>p2->num) pm=p2;break;case 2:if (pm->sum<p2->sum) pm=p2;break;case 3:if (pm->score[0]<p2->score[0]) pm=p2;break; case 4:if (pm->score[1]<p2->score[1]) pm=p2;break; case 5:if (pm->score[2]<p2->score[2]) pm=p2;break;}if (pm!=p1){mid=*pm;*pm=*p1;*p1=mid;px=pm->next;pm->next=p1->next;p1->next=px;}}printf("\n排序后的成绩表为:\n");print(head);return head;}void sort_2(Student *head) /*定义按总分排序函数*/{Student *p=head->next;int count;int max_1,max_2,max_3,max_4,min_1,min_2,min_3,min_4;int max_sum,min_sum;int sum_1=0,sum_2=0,sum_3=0,sum_4=0;double aver_1,aver_2,aver_3,aver_4,aver_sum,percent;if (!p)return;max_1=min_1=p->score[0];max_2=min_2=p->score[1];max_3=min_3=p->score[2];max_4=min_4=p->score[3];max_sum=min_sum=p->sum;for(;p;p=p->next){if (max_1<p->score[0]) max_1=p->score[0];else if (min_1>p->score[0]) min_1=p->score[0];if (max_2<p->score[1]) max_2=p->score[1];else if (min_2>p->score[1]) min_2=p->score[1];if (max_3<p->score[2]) max_3=p->score[2];else if (min_3>p->score[2]) min_3=p->score[2];if (max_4<p->score[3]) max_4=p->score[3];else if (min_4>p->score[3]) min_4=p->score[3];if (max_sum<p->sum) max_sum=p->sum;else if (min_sum>p->sum) min_sum=p->sum;sum_1+=p->score[0];sum_2+=p->score[1];sum_3+=p->score[2];sum_4+=p->score[3];}aver_1=1.0*sum_1/n;aver_2=1.0*sum_2/n;aver_3=1.0*sum_3/n;aver_4=1.0*sum_4/n;for (p= head; p; p = p->next)for(int i=0;i<4;i++){if(p->score[i]>=60)count++;}percent=(float)count/(float)n/4;aver_sum=aver_1+aver_2+aver_3+aver_4;printf("总共%d名学生,具体数据为:\n",n);printf("总分最高分为%d,最低分位%d,平均分为%.2f,percent=%.2f\n,count=%d",max_sum,min_sum,aver_sum,percent,count);}void find(Student *head) /*定义查询函数*/{Student *p;int choose,fnum;char tem[20];if (n==0) {printf("\n当前系统没有任何学生数据!\n ");return;}for(;;){printf("\n请输入您要查询学生的方式:\n\n");printf("1、按学号查询;2、按姓名查询;0、我不查询了。

相关文档
最新文档