小学生成绩管理系统

合集下载

学生成绩管理系统

学生成绩管理系统

课程实验设计void StatisticsAnalysis(STUDENT *s, int n, int m){printf(" 按优秀(90-100 分)、良好(80-89 分)、中等(70-79 分)、及格(60-69 分)、不及格(0 - 59 分)5 个类别,对每门课程分别统计每个类别的人数以及所占的百分比。

\n");int best[SUBN] = { 0 }, good[SUBN] = { 0 }, middle[SUBN] = { 0 }, pass[SUBN] = { 0 }, nopass[SUBN] = { 0 };for (int i = 0; i < n; i++){for (int j = 0; j < m; j++){if (s[i].score[j] >= 90 && s[i].score[j] <= 100){ best[j]++;}elseif (s[i].score[j] >= 80 && s[i].score[j] < 90){ good[j]++;}elseif (s[i].score[j] >= 70 && s[i].score[j] < 80){ middle[j]++;}elseif (s[i].score[j] >= 60 && s[i].score[j] < 70){ pass[j]++;}elseif (s[i].score[j] < 60){ nopass[j]++;}}}for (int k = 0; k < m; k++){printf(" 第%d门课\n 优秀%.2f%%,", k + 1, (best[k] / (n * 1.0))* 100);printf(" 良好%.2f%%,", (good[k] / (n * 1.0)) * 100); printf(" 中等%.2f%%,", (middle[k] / (n * 1.0)) * 100); printf(" 及格%.2f%%,", (pass[k] / (n * 1.0)) * 100); printf(" 不及格%.2f%%,", (nopass[k] / (n * 1.0)) * 100);printf("\n");}getchar();}void PrintScore(STUDENT *s, int n, int m){for (int j = 0; j < n; j++){printf(" 学号:%d\n", s[j].num);printf(" 姓名:"); printf("%s", s[j].name);printf("\n 成绩\n");for (int c = 0; c < m; c++) {printf(" 第%d 门成绩为%.2f\n", c + 1, s[j].score[c]);}printf(" 总成绩:%.2f", s[j].sum);printf("\n");}getchar();}typedef struct student {long int num;char name[NAME];float score[6];float sum;float aver;}STUDENT;void ShowMenu(STUDENT *s,int n,int m){int select;void inputMesg(STUDENT *s,int n,int m){printf(" 请输入学号、姓名、成绩。

学生成绩查询管理系统

学生成绩查询管理系统

目录摘要 (1)关键词 (1)前言 (2)一、系统设计相关技术介绍 (3)1.技术 (3)2.C#语言 (5)二、系统运行环境 (7)1、的调试环境 (7)2、软件要求 (8)三、系统分析 (8)1、系统总体分析 (8)2、系统需要解决的主要问题 (9)3、系统应该具备的基本功能 (9)四、系统模块简介 (10)1、系统功能模块图 (10)2、系统功能模块说明 (10)1)学生管理 (10)2)教师管理 (10)2、使用的各种流程图 (11)1)、系统使用例图 (11)2)、考生在线考试活动图 (12)五、系统数据库的介绍 (13)1、系统数据库设计思路 (13)2、主要的数据库表单(STDINFO) (13)1)学生信息数据表(stdInfo) (13)2)教师表(administrator) (14)3)成绩表(achievement) (14)六、系统功能实现 (14)1系统主界面 (14)2系统后台管理登录页面 (15)3学生界面 (16)4学生信息变更查询 (17)5系统后台管理登录主页面 (18)6学生信息添加管理 (19)七、相关代码模块 (22)结论及体会 (31)参考文献 (32)说明书评语 (33)摘要人类已进入21世纪,科学技术突飞猛进,经济知识和信息产业初见端倪,特别是信息技术和网络技术的讯速发展和广泛应用,对社会的政治,经济,军事,文化等领域产生越来越深刻.学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩查询管理系统应该能够为用户提供充足的信息和快捷的查询手段。可以说它是完全为学生朋友服务的系统,并且适用于各所高校.本论文叙述到的学生成绩管理系统是用IIS+ASP网页编程+SQL数据库实现的.关键词考试查询系统 C# SQL2005Server前言学生成绩管理工作是高校教育工作的一项重要内容。

教务管理工作是指学校管理人员按照一定教育方针,运用先进的管理手段,组织、协调、指挥并指导各用户活动,以便高效率、高质量地完成各项教学任务,完成国家所制定的教育目标。

成绩管理系统(c课程设计)

成绩管理系统(c课程设计)

成绩管理系统(c 课程设计)一、教学目标本课程的教学目标是使学生掌握C语言程序设计的基本原理和方法,能够运用C语言设计简单的应用程序,培养学生的编程思维和解决问题的能力。

具体分为以下三个方面的目标:1.知识目标:使学生掌握C语言的基本语法、数据类型、运算符、控制结构、函数、数组和字符串等基本概念,了解C语言的编译和链接过程。

2.技能目标:培养学生具备使用C语言编写程序的能力,能够阅读和理解简单的C语言程序,学会使用调试工具对程序进行调试和优化。

3.情感态度价值观目标:培养学生对计算机科学的兴趣和热情,增强学生的自信心和自主学习能力,培养学生的团队合作精神和创新意识。

二、教学内容根据教学目标,本课程的教学内容主要包括以下几个部分:1.C语言的基本语法和数据类型:包括变量、常量、数据类型、运算符、表达式等基本概念。

2.控制结构:包括顺序结构、选择结构和循环结构,以及相关的函数调用和参数传递。

3.数组和字符串:包括一维数组、多维数组、字符串的基本操作和应用。

4.函数:包括函数的定义、声明、调用和返回值,以及函数的递归调用和静态局部变量。

5.指针:包括指针的概念、指针的运算、指针与数组、指针与函数的关系等。

6.结构体和文件:包括结构体的定义和应用,文件的打开、读写、关闭等操作。

三、教学方法为了实现教学目标,本课程将采用以下几种教学方法:1.讲授法:教师通过讲解和演示,向学生传授C语言的基本知识和编程技巧。

2.案例分析法:教师通过分析典型的案例,引导学生运用C语言解决实际问题。

3.实验法:学生通过上机实验,动手编写C语言程序,巩固所学知识,提高编程能力。

4.小组讨论法:学生分组讨论和合作完成项目,培养学生的团队合作精神和沟通能力。

四、教学资源为了支持教学内容和教学方法的实施,本课程将采用以下教学资源:1.教材:《C程序设计语言》(K&R)或《C Primer Plus》。

2.参考书:《C语言程序设计教程》(清华大学出版社)等。

学生成绩管理系统

学生成绩管理系统

一、实验题目:学生成绩管理系统二、实验目的:1).加深对数据库基础理论和基本知识的理解,掌握使用数据库进行软件设计的基本方法,提高运用数据库解决实际问题的能力。

2).对于给定的应用要求,能够构造最优的数据库模式,并建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。

三、实验内容:设计一个学籍管理系统,系统能够实现基本的增加、删除、修改、查询。

对分数段所占百分率,年龄段人数、政治面貌人数、地区人数进行统计。

四、实验要求:4.1学生注册登记:提供给系统最基本的信息。

4.2学生成绩登记:按学号和所选课程登记学生成绩。

4.3学籍更改登记:简历更改,成绩更改,修复转退学登记,奖惩登记。

4.4.资料统计:1).统计各专业某年级某学期的学习成绩情况,分作90~100分,80~89分,70~79分,60~69分,60分以下五档人数及占总人数的百分率。

2).按学生的年龄大小,地区来源,政治面貌作人数统计。

五、实验过程:5.1.需求分析图5.1.1功能模块图 5.1.2 E-R图5.1.1一级用户教务处1).对学生的基本信息进行增加、删除、修改、查找。

并可以对年龄段,地区来源,政治面貌作人数统计。

2).对学生的成绩进行增加、删除、修改、查看,并可按分数段统计学生成绩,并求出个分数段的百分率。

3).课程的录入及删除。

4).修复转退的登记以及奖惩的登记。

5).对二级用户即学生的密码进行重置。

5.1.2二级用户:学生1).查询个人信息,查询个人成绩,查询个人的异动信息以奖惩信息。

2).修改个人密码。

5.2概念结构设计5.2.1局部视图:实体型:图5.2.15.2.1.1教务处——管理——学生图 5.2.2事物规则:教务处可以管理多个学生信息,一个学生只能有一个教务处管理。

教务处只有一个。

5.2.1.2学生——选课——课程图 5.2.3事务规则:每个学生可以选多门课程,每个课程可以有多名学生,每个课的课程号不同。

学生成绩管理系统

学生成绩管理系统

数据库系统原理课程设计报告学生成绩管理系统姓名:郭艳娜学号:0906012034指导老师:黄楠起止时间:第十一周至第十七周摘要【摘要】本系统依据开发要求主要应用于教育系统,完成对日常的教育工作中学生成绩档案的数字化管理。

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

目前,学校工作繁杂、资料重多,虽然各类管理信息系统已进入高校,但还未普及,而对于学生成绩管理来说,目前还没有一套完整的、统一的系统。

因此,开发一套适和大众的、兼容性好的系统是很有必要的。

本系统在开发过程中,注意使其符合操作的业务流程,并力求系统的全面性、通用性,使得本系统不只适用于一家教育机构。

使用了vf数据库创建。

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

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

【关键词】成绩管理系统 Microsoft visualfox6.0 数据库Summary【Summary】The system development requirements based on the educational system is mainly used to complete the education of students on the daily performance management of digital files. College faculty and staff development of the system can reduce the work pressure, more systematically the Senate, the teaching service and information management, while reducing the use of labor, speed up the query speed, strengthen management, and the state departments of information the pace, make the management more standardized.Currently, the school complex work, data and more weight, although various management information system has entered the university, but not yet universal, and for management of student achievement, the current does not have a complete, unified system. Therefore, the development of an appropriate and popular, a good system compatibility is necessary.The system in the development process, attention to meet the operational business processes, and seek systematic comprehensive, universal, makes the system not only applies to an educational institution.Use of ASP technology and use of Adobe Dreamweaver CS4 as a design tool, the background of the database created using Microsoft Access 2003. In the development of the choice of methods, choose the life-cycle method and prototype method are combined, follow the system of investigation andresearch, system analysis, system design and system implementation of the four major phases of design, and in the specific design, take the evolutionary prototype, with the user and the deepening understanding of the system, part or parts of a re-analysis, design, implementation.In this thesis, from system analysis, system design, system implementation and use of such aspects are introduced.【Key】performance management system Microsoft visualfox6.0database目录学生成绩管理系统 (1)摘要 (2)Summary (2)【Summary】 (2)第一章文献综述与理论基础 (5)1 数据库的基本概念 (5)1.1.1 数据库系统的类型 (5)1.1.2 数据库系统的结构 (5)第二章概述 (6)2.1 设计目的 (6)2.2 设计方法 (6)2.3 设计思想 (6)第三章需求分析 (7)3.1 背景概述 (7)3.2 可行性分析 (7)3.3 系统分析 (7)3.4 系统功能分析: (8)第四章总体设计 (8)4.1 数据库设计 (8)4.1.1 数据库的选择 (8)4.1.2 数据库的逻辑设计 (8)4.2 模块设计 (10)第五章详细设计 (13)5.1 登录页面 (13)5.2 主页面 (14)5.3管理员功能界面 (14)5.4结束语 (14)致谢 (15)【参考文献】 (15)第一章 文献综述与理论基础1 数据库的基本概念什么是数据库系统?简单地说,数据库系统是一种计算机化的数据保存系统,它以特有的数据存储方式将相关的数据内容整合在一起。

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

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

Java课程设计课题:学生成绩管理系统一、问题及功能分析1、身份验证,和使用系统的权限设置、判定。

2、实现同学的学号、性别、成绩等信息的录入、编辑3、提供对学号或姓名,进行成绩或所有信息的查询.4、计算学生平均成绩,显示最高成绩学生信息5、能实现按成绩、学号、姓名排序列出学生信息.6、能统计学生成绩分数段的分布(60以下、60~70、70~80、80~90、90~100)情况,并输出。

7、用文件保存数据,以便反复使用.二、概要设计import java。

lang.*;import java.io。

*;class Mytest{public static void main(String[]args)throws IOException{{int select;select = 1;Student stu[]= new Student[10];StudentMis mis=new StudentMis();Scanner sc = new Scanner(System.in);System。

out.println();System.out。

println(”—---—-—-————————-——-——-——-—---—--———-——");System.out。

println(”* *");System。

out.println(”欢迎进入学生成绩管理系统");System。

out。

println(”**”);System。

out.println(”-————--——-—-—---——-——--———-—-—----——--—");while(true){System。

out.println( );System。

out.println(" 请选择您的操作:");System.out.println(” 1.录入学生成绩信息;”);System.out.println(" 2.显示学生成绩信息;”);System。

学生成绩管理系统

学生成绩管理系统

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

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

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

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

关键字:成绩管理系统建模目录摘要 (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 需求说明学生成绩管理系统提供了强大的学生成绩管理管理功能,方便系统管理员对学生成绩等信息的添加、修改,打印等操作,同时一样的方面学生对自己各科成绩查询,学习的交流。

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

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

学生成绩管理系统

学生成绩管理系统

学生成绩管理系统:V1.0编写一个菜单驱动的学生成绩管理程序。

实现如下管理功能:某班有最多不超过30人参加某门课程的考试,有一维数组作函数参数编程实现如下学生成绩管理系统。

具体要求如下:1)录入每个学生的学号和考试成绩2)计算课程的总分和平均分;3)按成绩由高到低排出名次;4)按学号由小到大排出成绩表;5)按学号查询学生排名及考试成绩;6)按优秀(90-100分)、良好、中等、及格、不及格5个类别,统计每个类别的人数以及所占的百分比;7)输出每个学生的学号、考试成绩以及课程总分和平均分。

目的:熟悉一维数组作函数参数,排序、查找、统计分析等常用算法以及模块化程序设计思想,增量测试方法。

输出菜单形式如下:Management for Students' scores1. 录入学生学号及成绩(append reord)2. 计算课程的总分和平均分(caculate total and average)3. 按成绩由高到低排出名次(sort in descending order by score)4. 按学号由小到大排出成绩表(sort in ascending order by number)5. 按学号查询学生排名及考试成绩(search by number)6. 统计分析(statistic analysis)7. 输出每个学生记录(list record)0. 退出(exit)Please Input your choice:然后根据用户输入的选项执行相应的操作学生成绩管理系统:V2.0在V1.0的基础上用一维数组和函数指针作函数参数实现菜单驱动的学生成绩管理系统。

功能如下:1. 录入学生学号及成绩2. 计算课程的总分和平均分3. 按成绩由高到低排出名次4. 按学号由小到大排出成绩表5. 按学号查询学生排名及考试成绩6. 统计分析7. 输出每个学生记录8.按成绩由低到高排出名次0. 退出输出菜单形式如下:Management for Students' scores1. append reord2. caculate total and average3. sort in descending order by score4. sort in ascending order by number5. search by number6. statistic analysis7. list record8. sort in ascending order by score0. 退出(exit)Please Input your choice:目的:在V1.0的基础上,通过增加任务,熟悉函数指针做函数参数、模块化程序设计以及增量测试方法。

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

《程序设计基础课程设计》(j1620201)课程设计报告设计题目小学生成绩管理系统学生姓名学生班级学生学号指导教师成绩评定完成时间2016-05-31一、目的与要求通过本课程设计的实践,全面总结C++课程学习中的的数据类型、程序结构、数组、函数、指针、结构体、链表等基本概念,掌握其使用方法。

掌握面向对象程序设计中有关类、对象、继承、重载、多态性、输入输出流类体系、文件操作的基本概念,初步学会用类与对象这种面向对象的程序设计方法编写应用程序。

培养使用面向对象的程序设计方法编写计算机程序的能力。

通过设计一个《小学生成绩统计管理》,进一步熟悉C++中类的概念、类的封装、继承的实现方式。

了解系统开发的需求分析、类层次设计、模块分解、编码测试、模块组装与整体调试的全过程,加深对C++的理解与Visual C++环境的使用;逐步熟悉程序设计的方法,并养成良好的编程习惯。

程序设计是一门实践性很强的课程,必须十分重视实践环节。

许多实际的知识不是靠听课和看书学到的,而是通过长时间的实践积累的。

二、设计内容学生成绩管理系统1.基本功能:a)成绩的输入(学号、姓名、语文、英语、数学);b)成绩统计(各科平均成绩、各科成绩“优秀”、“良好”、“中等”、“及格”、“不及格”的人数及其所占比例);c)总成绩统计(学生的总成绩、平均成绩及成绩排名)d)成绩的统计结果显示。

2.扩展功能:a)学生数据的添加、修改、与删除b)学生数据的读取与存储3.设计要求a)采用面向对象的思想和方法完成设计,最好能够基于windows图形界面。

b)至少设计四个类;学生类(描述学生基本信息);成绩类:班级类;课程类(描述课程信息:课程编号,科目名称(数学,英语等);学生成绩及课程信息用文件保存,每个类一个文件,程序执行时从文件读入。

三、过程与结果主要内容如下:1.关键类的设计,继承层次关系,代码:首先,创建了一个student类.在student类的共有部分声明程序所需函数;然后就是student类的函数实现部分,其中定义student类的带参数及不带参数构造函数;再是常用函数的调用,并定义系统菜单函数及其界面;最后就是主函数文件。

Student类的声明如下:主要功能函数的设计:1. 关于计算总成绩和平均成绩以及评定成绩等级的函数,而用于成绩统计中优秀、良好、中等、及格、不及格的计算,不过为便于表达,此程序采用字母A,B,C,D,E来分别表达上述等级;代码如下:2.此函数为查找函数的实现过程,通过while switch和if语句以及制表格和setw的使用将输入的数据以表格的形式打印出来,等级一栏宽度略小;3.此函数为删除函数的实现部分,巧妙运用字母i,定义i的值0为数据不存在,1为数据存在的情况,删除时考虑数据存在与否的问题;4.排序函数中分四种情况排序,分别按学号,总分,平均分来排序,排序结果也能有升序或降序操作,通过while else语句以及制表格和case的使用将输入的数据排序出来;因函数体过于庞大,在后面代码清单罗列出来时会标示出来。

数据输入设计:数据输入以输出方式打开文件,通过this指针和地址引用把写入的数据加在文件末尾;程序测试结果:1运行程序.会出现如下画面,按照提示进行选择.2.首先选择1,然后按Enter键.按照提示对学生情况进行输入.如图:3.按任意键程序自动保存第一个同学的数据,并返回菜单,按照刚才的步骤继续输入第二个、第三个同学等等的数据;4.选择4, 然后按Enter键.对数据进行进行有目的性的排序.如图:5.譬如选择2按总分排序,按Enter键,再在接下来的提示框中选择降序排序类型,再按一次Enter键,排序结果如图:符合设计要求,但各科成绩“优秀”、“良好”、“中等”、“及格”、“不及格”的人数及其所占比例因个人能力有限未能设计出来;6.按任意键又返回菜单,继续接下来的操作;四、设计总结这次课程设计基本上涵盖了大学一年级学习到的C++ 语言知识点,课程设计题目要求不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力。

这次课设使我了解我编程思想和编程技巧,也认识了软件生命周期的各个环境,包括构思、设计、编写、调试、发布、文档化、维护和修订。

C++程序编译是一种要求特别精细的工作,小到一个分号(或点)都能影响整个程序的运行,这就要求我们编写程序时要特别细心,即使是一个符号,还是一个字母都不能乱用。

在这次的编写过程中,我就因为错把case序列语句里的变量中的p写成q使整个程序瘫痪。

它让我记住了学习需要认真、仔细、负责的态度对待。

这次课程设计虽说很辛苦,而且设计出来的程序不全具备课程所需的,不过扩展功能学生数据的添加、修改、与删除的函数嵌进去,而且排序功能关联升序和降序功能,正所谓鱼与熊掌不可得兼。

这次课程设计,在整个程序中,我们通过使用while循环,switch语句,冒泡排序法,表格设计中的setw()以及类的定义及使用来完成程序设计,使我提高了对C++中语句的使用能力和组合能力,进一步加强了我对使用C++编程的能力。

还让我掌握了高级程序设计语言的基本思想、基本概念、基本方法和基本技能,while语句,this指针,case作为程序的入口,一般结合switch使用等等。

一个星期以来的课程设计,感谢帮助我的同学和师长,通过和他们的交流,互相交流经验,我这次设计的程序中各大主函数体得以设计出来,感谢他们在我编程过程中为我做的提醒和指点,这真的很重要。

这次课程设计不仅让我修补了以前学习的漏洞,也让我知道一个道理:编程需要兴趣和实际动手。

这应该可以借鉴在同学或者师长们的编程经验上。

创新思维至关重要,相对于我这略感冗余却实现不了更多功能的程序来说,有必要写出精简的代码,也有助于开发出高效的程序。

虽说我编写的程序离专业人员设计的还有好大一段距离,但它已经是我目前的极限。

我相信,通过我的努力,在不久的将来,我会编出一组真正实用的程序的。

五、附件程序源代码清单:#include<iostream>#include<string>#include<fstream>#include<iomanip>using namespace std;class student{private:string number;string name;double chinese;double English;double math;double sum;double ave;char grade;student *head;student *curnode;student *next;public:student();//不带参数的构造函数student(string ,string ,double ,double ,double ,double =0.0,double =0.0,char =NULL); //带数据域参数的构造函数,用来动态建立节点void sum_score();//总分函数void ave_score();//平均分函数void grade_score();//成绩等级void cin_app();//修改用void app_score(string ,string ,double ,double ,double); //动态的建立节点void del_score(); //删除全部节点void displist(); //输出节点中的全部数据void lookup(int ,string ); //查找函数void del_score(int ,string ); //删除函数void compositor(int ,int ); //排序函数void rework(int ,string ); //修改函数};///////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////// ////////////////////student类的实现void err_char();//输入错误字符检测函数void score_err();//成绩范围检测函数,当输入成绩不在0到100之间时提示重新输入student::student():next(NULL)//不带参数的构造函数{head=curnode=this;}//带参数的构造函数student::student(string Number,string Name,double Chinese,double ENglish,double Math,double Sum,double Ave,char Grade):next(NULL){number=Number;name=Name;chinese=Chinese;English=ENglish;math=Math;sum=Sum;ave=Ave;grade=Grade;}void student::sum_score()///////////////////////计算总成绩{sum=chinese+English+math;}void student::ave_score()/////////////////////计算平均成绩{ave=(chinese+English+math)/3.0;}void student::grade_score()///////////////////计算成绩等级{int i;i=ave;switch(i/10){case 10: grade='A'; break;case 9: grade='A'; break;case 8: grade='B'; break;case 7: grade='C'; break;case 6: grade='D'; break;default: grade='E';}}void student::app_score(string Number,string Name,double Chinese,double ENglish,double Math)//动态建立节点{curnode->next=new student(Number,Name,Chinese,ENglish,Math);curnode=curnode->next;}void student::del_score()//////////////////////删除表中的全部数据{student *p;curnode=head->next;while(curnode!=NULL){p=curnode->next;delete curnode;curnode=p;}head->next=NULL;curnode=head;cout<<"┏━━━━━━━━━━━━━━━━━━━┓"<<endl;cout<<"┃ !表中内容全部清空,现已是一个空表! ┃"<<endl;cout<<"┗━━━━━━━━━━━━━━━━━━━┛"<<endl;cout<<" ";system("pause");}void student::displist()////////////////////////输出表中的全部数据{if(head->next==NULL){cout<<"┏━━━━━━━━━┓"<<endl;cout<<"┃ !这是一个空表! ┃"<<endl;cout<<"┗━━━━━━━━━┛"<<endl;cout<<" ";system("pause");return;}student *pw=curnode;curnode=head->next;cout<<"┏━━━━━┳━━━━━┳━━━┳━━━┳━━━┳━━━━┳━━━━┳━━┓"<<endl;cout<<"┃学号┃姓名┃语文┃英语┃数学┃总分┃平均分┃等级┃"<<endl;cout<<"┣━━━━━╋━━━━━╋━━━╋━━━╋━━━╋━━━━╋━━━━╋━━┫"<<endl;while(curnode!=NULL){cout<<"┃"<<left<<setw(10)<<curnode->number;cout<<"┃"<<left<<setw(10)<<curnode->name;cout<<"┃"<<left<<setw(6)<<curnode->chinese;cout<<"┃"<<left<<setw(6)<<curnode->English;cout<<"┃"<<left<<setw(6)<<curnode->math;curnode->sum_score();cout<<"┃"<<left<<setw(8)<<curnode->sum;curnode->ave_score();cout<<"┃"<<left<<setw(8)<<curnode->ave;curnode->grade_score();cout<<"┃"<<left<<setw(4)<<curnode->grade<<"┃"<<endl;if(curnode->next!=NULL)cout<<"┣━━━━━╋━━━━━╋━━━╋━━━╋━━━╋━━━━╋━━━━╋━━┫"<<endl;elsecout<<"┗━━━━━┻━━━━━┻━━━┻━━━┻━━━┻━━━━┻━━━━┻━━┛"<<endl;curnode=curnode->next;}curnode=pw;cout<<"┏━━━━━━━━━┓"<<endl;cout<<"┃!表中内容输出完毕!┃"<<endl;cout<<"┗━━━━━━━━━┛"<<endl;cout<<" ";system("pause");}////////////////////////////////////////输入数据void student::cin_app(){student *p=curnode;bool b=0;string Number;string Name;double Chinese;double ENglish;double Math;while(1){cout<<" 学号:";cin>>Number;curnode=head->next;while(curnode!=NULL){b=(Number==curnode->number);curnode=curnode->next;}if(!b)break;else{cout<<"┏━━━━━━━━━━━━━━┓"<<endl;cout<<"┃出现了相同的学号,请重新输入┃"<<endl;cout<<"┗━━━━━━━━━━━━━━┛"<<endl;}}curnode=p;cout<<" 姓名:";cin>>Name;while(1){cout<<" 语文:";cin>>Chinese;while(cin.fail()){err_char();cout<<" 语文:";cin>>Chinese;}if(Chinese>=0&&Chinese<=100)break;elsescore_err();}while(1){cout<<" 英语:";cin>>ENglish;while(cin.fail()){err_char();cout<<" 英语:";cin>>ENglish;}if(ENglish>=0&&ENglish<=100)break;elsescore_err();}while(1){cout<<" 数学:";cin>>Math;while(cin.fail()){err_char();cout<<" 数学:";cin>>Math;}if(Math>=0&&Math<=100)break;elsescore_err();}this->app_score(Number,Name,Chinese,ENglish,Math);cout<<"┏━━━━━━━━┓"<<endl;cout<<"┃!已添加一条记录!┃"<<endl;cout<<"┗━━━━━━━━┛"<<endl;cout<<" ";system("pause");}//////////////////////////////////////////查找函数的实现void student::lookup(int n,string str){student *p=curnode;bool b;//定义i=1,当找到数据时把i置为0.用于输出没有找到数据int i=1;if(!(curnode=head->next)){cout<<"┏━━━━━━━┓"<<endl;cout<<"┃!这是一个空表!┃"<<endl;cout<<"┗━━━━━━━┛"<<endl;curnode=p;cout<<" ";system("pause");return;}cout<<"┏━━━━━┳━━━━━┳━━━┳━━━┳━━━┳━━━━┳━━━━┳━━┓"<<endl;cout<<"┃学号┃姓名┃语文┃英语┃数学┃总分┃平均分┃等级┃"<<endl;cout<<"┣━━━━━╋━━━━━╋━━━╋━━━╋━━━╋━━━━╋━━━━╋━━┫"<<endl;while(curnode!=NULL){switch(n){case 1: b=curnode->number==str;break;case 2: b=curnode->name==str;break;default: return;}if(b){i=0;cout<<"┃"<<left<<setw(10)<<curnode->number;cout<<"┃"<<left<<setw(10)<<curnode->name;cout<<"┃"<<left<<setw(6)<<curnode->chinese;cout<<"┃"<<left<<setw(6)<<curnode->English;cout<<"┃"<<left<<setw(6)<<curnode->math;curnode->sum_score();cout<<"┃"<<left<<setw(8)<<curnode->sum;curnode->ave_score();cout<<"┃"<<left<<setw(8)<<curnode->ave;curnode->grade_score();cout<<"┃"<<left<<setw(4)<<curnode->grade<<"┃"<<endl;cout<<"┣━━━━━╋━━━━━╋━━━╋━━━╋━━━╋━━━━╋━━━━╋━━┫"<<endl;}curnode=curnode->next;}//当i=1是代表没有找到数据if(i){cout<<"┣━━━━━┻━━━━━┻━━━┻━━━┻━━━┻━━━━┻━━━━┻━━┫"<<endl;cout<<"┃没有匹配的数据┃"<<endl;cout<<"┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛"<<endl;}elsecout<<"┗━━━━━┻━━━━━┻━━━┻━━━┻━━━┻━━━━┻━━━━┻━━┛"<<endl;curnode=p;cout<<" 以上是本次查找的结果!"<<endl;cout<<" ";system("pause");}//////////////////////////////////////////删除函数的实现void student::del_score(int n,string str){student *p=curnode,*pw=head;bool b;//定义i=1,当找到数据时把i置为0.用于输出没有找到数据int i=1;if(!(curnode=head->next)){cout<<"┏━━━━━━━┓"<<endl;cout<<"┃!这是一个空表!┃"<<endl;cout<<"┗━━━━━━━┛"<<endl;curnode=p;cout<<" ";system("pause");return;}while(curnode!=NULL){switch(n){case 1: b=curnode->number==str;break;case 2: b=curnode->name==str;break;default: return;}if(b){i=0;pw->next=curnode->next;delete curnode;curnode=pw->next;}else{pw=curnode;curnode=curnode->next;}}//当i=1是代表没有找到数据if(i){cout<<"┏━━━━━━━┓"<<endl;cout<<"┃没有匹配的数据┃"<<endl;cout<<"┗━━━━━━━┛"<<endl;}else{cout<<"┏━━━━━━━┓"<<endl;cout<<"┃数据删除成功┃"<<endl;cout<<"┗━━━━━━━┛"<<endl;}curnode=head;while(curnode->next){curnode=curnode->next;}cout<<" ";system("pause");}//////////////////////////////////////排序函数的实现void student::compositor(int n,int m){if(head->next==NULL){cout<<"┏━━━━━━━━━━━┓"<<endl;cout<<"┃!这是一个空表不能排序!┃"<<endl;cout<<"┗━━━━━━━━━━━┛"<<endl;cout<<" ";system("pause");return;}if(head->next->next==NULL){cout<<"┏━━━━━━━━━━━┓"<<endl;cout<<"┃!只有一条记录不用排序!┃"<<endl;cout<<"┗━━━━━━━━━━━┛"<<endl;cout<<" ";system("pause");return;}student *s,*p,*q,*r;r=head;s=head->next;q=s;p=q->next;while(s!=NULL){while(p!=NULL){switch(n){case 1:{if(m==1){while(s->number<p->number){q->next=p->next;r->next=p;p->next=s;s=p;p=q->next;if(p==NULL)break;}}else{while(s->number>p->number){q->next=p->next;r->next=p;p->next=s;s=p;p=q->next;if(p==NULL)break;}}break;}case 2:{if(m==1){while(s->sum<p->sum){q->next=p->next;r->next=p;p->next=s;s=p;p=q->next;if(p==NULL)break;}}else{while(s->sum>p->sum){q->next=p->next;r->next=p;p->next=s;s=p;p=q->next;if(p==NULL)break;}}break;}case 3:{if(m==1){while(s->ave<p->ave){q->next=p->next;r->next=p;p->next=s;s=p;p=q->next;if(p==NULL)break;}}else{while(s->ave>p->ave){q->next=p->next;r->next=p;p->next=s;s=p;p=q->next;if(p==NULL)break;}}break;}default: return;}if(p==NULL){break;}q=p;p=p->next;}r=s;s=s->next;q=s;p=q->next;if(p==NULL){break;}}cout<<"┏━━━━━━━━━━━━━━━━━━┓"<<endl;cout<<"┃!成功完成排序操作,即将输出排序结果!┃"<<endl;cout<<"┗━━━━━━━━━━━━━━━━━━┛"<<endl;cout<<" ";system("pause");displist();}////////////////////////////////////////修改函数的实现void student::rework(int n,string str){student *p=curnode;bool b;int i=1;if(!(curnode=head->next)){cout<<"┏━━━━━━━━━━━━━━━━┓"<<endl;cout<<"┃!这是一个空表没有需要修改的数据!┃"<<endl;cout<<"┗━━━━━━━━━━━━━━━━┛"<<endl;curnode=p;cout<<" ";system("pause");return;}while(curnode!=NULL){switch(n){case 1: b=curnode->number==str;break;case 2: b=curnode->name==str;break;default: return;}if(b){i=0;string Number;string Name;double Chinese;double ENglish;double Math;cout<<"┏━━━━━━━━━━━━━━━━┓"<<endl;cout<<"┃!请在原数据后面输入要修改的数据!┃"<<endl;cout<<"┗━━━━━━━━━━━━━━━━┛"<<endl;cout<<" 学号:"<<curnode->number<<" ";cin>>Number;curnode->number=Number;cout<<" 姓名:"<<curnode->name<<" ";cin>>Name;curnode->name=Name;while(1){cout<<" 语文:"<<curnode->chinese<<" ";cin>>Chinese;while(cin.fail()){err_char();cout<<" 语文:"<<curnode->chinese<<" ";cin>>Chinese;}if(Chinese>=0&&Chinese<=100)break;elsescore_err();}curnode->chinese=chinese;while(1){cout<<" 英语:"<<curnode->English<<" ";cin>>ENglish;while(cin.fail()){err_char();cout<<" 英语:"<<curnode->English<<" ";cin>>ENglish;}if(ENglish>=0&&ENglish<=100)break;elsescore_err();}curnode->English=ENglish;while(1){cout<<" 数学:"<<curnode->math<<" ";cin>>Math;while(cin.fail()){err_char();cout<<" 数学:"<<curnode->math<<" ";cin>>Math;}if(Math>=0&&Math<=100)break;elsescore_err();}curnode->math=Math;}curnode=curnode->next;}if(i){cout<<"┏━━━━━━━━━━━┓"<<endl;cout<<"┃!找不到需要修改的数据!┃"<<endl;cout<<"┗━━━━━━━━━━━┛"<<endl;}else{cout<<"┏━━━━━━━━━┓"<<endl;cout<<"┃!数据修改全部完成!┃"<<endl;cout<<"┗━━━━━━━━━┛"<<endl;}cout<<" ";system("pause");curnode=p;}///////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////// ///////////////常用函数调用void name_of_number();//选择姓名还是学号void menu()//系统菜单函数的定义{cout<<"┏━━━━━━━━━━━━━━━━━┓"<<endl;cout<<"┃欢迎使用小学生成绩管理系统┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃主菜单┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃(请按提示操作)┃"<<endl;cout<<"┃┃"<<endl;cout<<"┣━━━━━━━━━━━━━━━━━┫"<<endl;cout<<"┃┃"<<endl;cout<<"┃ 1 录入成绩 2 删除成绩┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃ 3 修改成绩 4 成绩排序┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃ 5 查看成绩 6 查找信息┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃ 7 删除全部成绩┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃其他键退出┃"<<endl;cout<<"┃┃"<<endl;cout<<"┗━━━━━━━━━━━━━━━━━┛"<<endl;cout<<" 选择1-7数字进行操作"<<endl;cout<<" 你的选择是:";}//查找函数的调用void fun_lookup(student &a){int n;string str;name_of_number();cout<<" 你的选择是:";cin>>n;while(cin.fail()){err_char();cout<<" 你的选择是:";cin>>n;}if(n!=1&&n!=2)n=1;cout<<" 请输入查找关键字:";cin>>str;a.lookup(n,str);}//修改函数void fun_rework(student &a){int n;string str;name_of_number();cout<<" 你的选择是:";cin>>n;while(cin.fail()){err_char();cout<<" 你的选择是:";cin>>n;}if(n!=1&&n!=2)n=1;cout<<" 请输入修改关键字:";cin>>str;a.rework(n,str);}//删除函数的调用void fun_del(student &a){int n;string str;name_of_number();cout<<" 你的选择是:";cin>>n;while(cin.fail()){err_char();cout<<" 你的选择是:";cin>>n;}if(n!=1&&n!=2)n=1;cout<<" 请输入删除关键字:";cin>>str;a.del_score(n,str);}//排序函数的调用void fun_compositor(student &a){int n,m;cout<<"┏━━━━━━━━━━━━━━━━━┓"<<endl;cout<<"┃请输入按什么排序┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃ 1 按学号排序 2 按总分排序┃"<<endl;cout<<"┃ 3 按平均分排┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃输入其它数字则按学号排序┃"<<endl;cout<<"┃输入其它不是数字重新输入┃"<<endl;cout<<"┗━━━━━━━━━━━━━━━━━┛"<<endl;cout<<" 你的选择是:";cin>>n;while(cin.fail()){err_char();cout<<" 你的选择是:";cin>>n;}if(n!=1&&n!=2&&n!=3){n=1;}cout<<"┏━━━━━━━━━━━━━━━━━┓"<<endl;cout<<"┃请选择排序类型┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃ 1 按降序排序 2 按升序排序┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃输入其它数字则按降序排序┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃输入其它不是数字重新输入┃"<<endl;cout<<"┗━━━━━━━━━━━━━━━━━┛"<<endl;cout<<" 你的选择是:";cin>>m;while(cin.fail()){err_char();cout<<" 你的选择是:";cin>>m;}if(n!=1&&n!=2){m=1;}//输出排序后的结果positor(n,m);}//成绩范围检测函数void score_err(){cout<<"┏━━━━━━━━━━━━━━━┓"<<endl;cout<<"┃输入的成绩应该在0--100之间┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃请返回重新输入┃"<<endl;cout<<"┗━━━━━━━━━━━━━━━┛"<<endl;}//退出程序函数void fun_exit(){cout<<"┏━━━━━━━━━━┓"<<endl;cout<<"┃程序即将退出┃"<<endl;cout<<"┗━━━━━━━━━━┛"<<endl;cout<<" ";system("pause");exit(1);}//输入错误字符检测函数void err_char(){cout<<"┏━━━━━━━━━━━━━┓"<<endl;cout<<"┃输入了非法字符,请重新输入┃"<<endl;cout<<"┗━━━━━━━━━━━━━┛"<<endl;cin.clear ();cin.sync ();}//选择姓名还是学号void name_of_number(){cout<<"┏━━━━━━━━━━┓"<<endl;cout<<"┃请输入关键字类型┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃ 1 学号 2 姓名┃"<<endl;cout<<"┃┃"<<endl;cout<<"┃其它数字默认学号┃"<<endl;cout<<"┃输入非数字重新输入┃"<<endl;cout<<"┗━━━━━━━━━━┛"<<endl;}///////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////// /////////////主函数文件void fun_lookup(student &a);//查找函数的调用定义void fun_del(student &a);//删除函数的调用定义void fun_compositor(student &a);//排序函数的调用定义void fun_rework(student &a);//修改函数的调用定义void fun_exit();//退出程序函数的定义void main(){student a;while(1){int i;system("cls"); //清屏功能menu();cin>>i;if(cin.fail()) //输入非法字符时退出fun_exit();switch (i){case 1: a.cin_app();break; //增加记录case 2: fun_del(a);break; //删除记录case 3: fun_rework(a);break; //修改记录case 4: fun_compositor(a);break; //记录排序case 5: a.displist();break; //查看记录case 6: fun_lookup(a);break; //查找记录case 7: a.del_score();break; //清空链表default: fun_exit(); //其它键退出}}}。

相关文档
最新文档