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

合集下载

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

学生成绩管理系统c语言课程设计报告一、引言学生成绩管理系统是一个为学校或教育机构提供学生学业成绩管理的重要工具。

通过该系统,可以方便地记录和查询学生的各项成绩,帮助教师和学生了解学生的学业表现,及时作出教学和学习的调整和改进。

本文将介绍一个基于C语言的学生成绩管理系统的设计与实现。

二、需求分析1. 学生信息管理:包括学生基本信息的录入、修改和删除。

2. 成绩信息管理:包括成绩的录入、修改和删除。

3. 成绩查询与统计:可以按照学生学号或姓名查询学生的成绩,并能够进行成绩的统计分析,如计算平均分和排名等。

4. 数据存储与备份:能够将学生信息和成绩信息存储在文件中,并能够进行数据的备份和恢复。

三、系统设计1. 学生信息管理模块:设计一个结构体来存储学生的基本信息,包括学号、姓名、性别、年龄等。

通过菜单选择,可以实现学生信息的录入、修改和删除功能。

2. 成绩信息管理模块:设计一个结构体来存储学生的成绩信息,包括科目名称和成绩。

通过菜单选择,可以实现成绩信息的录入、修改和删除功能。

3. 成绩查询与统计模块:通过学号或姓名查询学生的成绩,并能够进行成绩的统计分析,如计算平均分和排名等。

4. 数据存储与备份模块:设计文件操作函数,将学生信息和成绩信息存储在文件中,并能够进行数据的备份和恢复。

四、系统实现1. 使用C语言编写程序代码,通过结构体和数组等数据结构实现学生信息和成绩信息的存储。

2. 利用文件操作函数实现数据的读取和存储,包括学生信息和成绩信息的存储和备份。

3. 设计菜单界面,通过用户选择来实现各个功能模块的调用。

五、系统测试与优化1. 针对各个功能模块进行测试,验证系统的正确性和稳定性。

2. 根据测试结果优化程序代码,提高系统性能和用户体验。

3. 完善系统功能,考虑异常情况的处理,提高系统的容错性和健壮性。

六、总结与展望通过本次课程设计,我们成功实现了一个基于C语言的学生成绩管理系统。

该系统能够方便地记录和查询学生的成绩信息,帮助教师和学生进行教学和学习的分析和改进。

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

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

数据库系统原理及其应用教程课程设计报告题目名称:学生成绩管理系统任课教师:姓名:学号:一.概述1.设计背景学生成绩管理系统是一个教育单位不可缺少的部分,它的内容对于学校的决策者和管理者来说都至关重要,所以学生成绩管理系统应该能够为用户提供充足的信息和快捷的查询手段,但是几年前,各个学校的学生成绩管理基本上都是靠手工进行,随着各个学校的规模增大,有关学生成绩管理工作所涉及的数据量越来越大,有的学校不得不靠增加人力、物力来进行学生成绩管理。

这种管理方式存在着许多缺点,如:效率低、保密性差,另外所用其时间长,产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。

如今学校的学生越来越多,成绩管理的工作量越来越大,手工管理成绩的弊端也越来越明显。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。

作为计算机应用的一部分,使用计算机对学生档案信息进行管理,具有手工管理所无法比拟的优点。

例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高学生档案管理的效率。

所以我想借本次课程设计之际,设计一个简易的学生成绩管理系统。

2. 设计目的1、掌握运用数据库原理进行系统分析和设计的方法;2、掌握关系数据库的设计方法;3、掌握利用SQL Server 2000技术;4、加强C++的编程能力3. 设计内容1.设计一个简易学生成绩管理的数据库系统,包括数据库的建立的需求分析,数据的输入输出。

2.设计用户的操作界面,主要实现数据的查询,添加,修改,删除基本功能。

二.需求分析1.功能分析在成绩管理系统中最主要的是对学生成绩的管理,管理主要包括:对学生成绩的录入,修改,删除,以及按不同的方式对学生成绩进行查询。

系统中包括学生的基本信息(如:学号,姓名,专业等),学生的各科成绩信息,教师的基本信息(如:教师编号,姓名,性别,所教科目,学历等),学生所学科目科目的基本信息(如:科目编号,名称,出版社等),以便查询。

C语言程序设计学生成绩管理系统实验报告

C语言程序设计学生成绩管理系统实验报告

移通学院C语言程序设计报告书设计名称:学生成绩管理系统专业:指导老师:班级:姓名:学号:座号:时间一、实验目的1.在编辑应用程序过程中,逐步加深对C语言编程的理解;2.加强实践的能力,动手能力,同时进一步对所学的知识进行巩固;3.培养初步编程的能力,为以后的学习奠定基础;二、实验内容运用所学的C语言知识编辑一个应用程序:学习成绩管理系统三.系统软件环境:本程序主要运行在: Visual C++ 6.0Turbo C/C++ 3.0四.课程设计题目:学生成绩管理系统程序说明:有N个学生,每个学生的数据包含学号不重复、姓名、三门课的成绩及平均成绩,试设计一学生成绩管理系统,使之能提供以下功能:1主菜单2各菜单项功能①成绩录入:输入学生的学号、姓名及三门课的成绩;②成绩查询:按学号查询学生记录;③成绩统计:计算学生的平均分;根据学生的平均分高低,对学生的数据进行排序后输出;④退出系统:退出整个系统即主菜单;五.数据结构设计描述:↓int num; /定义学号,变量为整型/char name; /定义姓名,变量为字符型/int score; /定义课程的成绩,变量为整型/float average; /定义平均分,变量为浮点型/七.系统各函数的功能,、相互调用关系1.函数实现功能说明:1menu函数是定义一个菜单函数,其功能在于输出菜单界面供使用者选择;2input函数是定义用于输入学生信息;3select 函数是定义用于查询学生信息;包括学号、姓名及各科成绩;4statistics 函数计算学生的平均分;根据学生的平均分高低,对学生的数据进行排序输出;2.相互调用关系:Main函数调用menu函数;Menu 函数可以调用input 函数、select函数和statistics 函数八.心得体会C语言是一种较为基础和普遍的编程语言,应用相当广泛,这次课程设计的要求与C语言的广泛应用相比较还有很大的差距;我们对于C语言的理解和使用还处在一个初级的阶段,我们要想掌握它,要学习的还很多,同时要懂得创新,许多的编程方法都是人们一步一步总结出来的,我想我们也要努力拓展自己的思维,努力去寻求新的方法,以创造出更为完善的应用程序; 九.程序:include <stdio.h>include <stdlib.h>include <conio.h>define N 3 /学生人数/define M 3 /课程门数/struct student{int num; /学号/char name20; /姓名/int score3; /三门课成绩/float average;}stuN; /学生数/void input; /查询/void select; /统计/void menu;void input{int i,j;printf"\t\t①成绩录入\n\n";fori=0;i<N;i++{printf"请输入学号:";scanf"%d",&stui.num;printf"请输入姓名:";scanf"%s",&;forj=0;j<M;j++{printf"第%d门成绩的分数:",j+1;scanf"%d",&stui.scorej;}printf"\n\n";}printf"\n\n";printf"输入完毕按任意键返回主菜单";}/2.查询/void selectint no{int i;printf"学生%d号: \n",no; printf"学号: %d\n",stuno-1.num; printf"姓名: %s\n",;for i=0;i<M;i++{printf"第%d门课程的成绩为: ",i+1; printf"%d\n",stuno-1.scorei;}printf"\n按任意键返回主菜单";getch;}/3.统计/void statistics{float temp=0;int i=0;/学生成绩平均分/temp=0;printf"\t\t③成绩统计\n\n";forj=0;j<N;j++{fori=0;i<M;i++{temp=temp+stuj.scorei;}stuj.average=temp/N;printf"\n学生%s的成绩平均成绩为:",;printf"%0.2f分",stuj.average;temp=0;}/排序/for j=0;j<N;j++fori=0;i<N-j-1;i++ifstui.average<stui+1.average{ temp=stui.average;stui.average=stui+1.average;stui+1.average=temp;}printf"\n\n学生平均成绩前三名:";fori=0;i<3;i++{printf"\n第%d名:%0.2f分",i+1,stui.average;}printf"\n\n按任意键返回主菜单";getch;}void menu{ int num=0;int n=0;printf"\n\t\t\t学生成绩管理系统\n\n";printf"\n\t\t\t①成绩录入\n\t\t\t②成绩查询\n\t\t\t③成绩统计\n\t\t\t④退出系统\n";printf"\t\t\tchoose:";scanf"%d",&num;switchnum{case 1:system"cls";input;break;case 2:system"cls";printf"\t\t②成绩查询\n\n"; printf"请输入要查询的学生号1~3:";scanf"%d",&n;selectn;break;case 3:system"cls";statistics;break;case 4:exit0;default:;}}void main{while1{system"cls"; /清屏/menu;}}。

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

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

附录一应用程序综合设计汇报——题目: 学生成绩管理系统2023年1月1.需求分析学生成绩管理系统是学生管理系统旳重要构成部分, 对学生旳德、智、体全面评估有很大旳作用, 因此学生成绩管理系统应当可认为顾客提供以便旳查询平台和数据存储功能。

老式是使用人工旳方式对学生旳信息进行存储, 对于个人旳学生成绩来说, 数据旳整顿和分析就显得很麻烦, 不利于查找、更新和维护。

因此, 顾客但愿制作一种学生成绩管理系统, 来提高老师旳工作效率, 同步予以老师便利。

根据与顾客旳交流, 一般对学生成绩管理系统有如下几点旳规定:A.可认为顾客提供以便旳数据查询功能, 满足复杂、多样旳数据查询需求。

一般我们所需要旳数据都不是可以从原始数据库中直接读取旳, 往往需要一定旳加工, 这样才能使老式复杂旳人工操作变得简朴又精确。

B、成绩管理要可以提供学校考试安排旳管理, 学生考试成绩旳管理, 以及学生单科和总成绩旳记录和分析等功能。

这些是一种学生成绩管理系统最重要旳功能构成, 包括数据旳集成、整合和分析。

上述是顾客对系统需求和功能需求旳两点规定, 我根据顾客对功能旳需求, 将整个学生成绩管理系统提成两个大旳模块, 即基本信息设置模块和成绩管理模块(如图1)。

为了能使本系统可以基本独立, 通过度析, 我又添加了学生基本信息添加功能和班级基本信息添加功能, 这样系统就可以实现本系统旳全面界面化。

2.概要设计根据需求分析, 成绩管理系统重要是实现对考试和学生成绩旳管理功能, 我设计旳整个学生成绩管理系统分为两个大旳模块, 分别为基本信息设置模块和成绩管理模块, 这两个模块包括了成绩管理系统旳所有数据存储和功能需求, 为了愈加清晰了分解学生成绩管理系统, 每个大模块又由几种子功能模块构成, 完毕顾客旳需求。

两个大模块旳子模块详细划分如图2所示:基本信息设置是成绩管理系统中某些基本数据旳添加和修改, 为了可以实现本学生成绩管理系统旳独立性, 我在基本信息设置模块中添加了学生和班级信息添加模块, 以便顾客能直接添加新增旳数据, 而不需要通过程序员来完毕。

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

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

学生成绩管理系统设计报告1. 引言学生成绩管理是学校教育管理中的一个重要环节。

为了更好地管理和分析学生成绩数据,提高教育教学质量,设计一个学生成绩管理系统至关重要。

本报告将详细介绍学生成绩管理系统的设计。

2. 系统概述学生成绩管理系统是一种用来管理学生个人信息和成绩数据的软件系统。

它可以帮助教师记录学生成绩,以及生成各种成绩分析报告。

同时,学生和家长也可以通过该系统查看学生成绩和分析报告,以便更好地了解学生的学习进展。

3. 系统功能3.1 学生信息管理•添加学生信息•修改学生信息•删除学生信息•查询学生信息3.2 成绩录入与修改•录入学生成绩•修改学生成绩•批量导入学生成绩3.3 成绩分析与统计•统计班级总分、平均分、最高分、最低分等指标•生成学生成绩排名•生成各科目成绩分布图•分析学生成绩趋势3.4 成绩报告生成与导出•生成学生个人成绩报告单•生成班级成绩报告•将成绩报告导出为Excel或PDF格式4. 系统设计4.1 系统架构学生成绩管理系统采用B/S架构,即浏览器-服务器架构。

用户通过浏览器访问系统,而后台服务器处理用户请求并返回相应的结果。

4.2 数据库设计系统使用关系型数据库存储学生信息和成绩数据。

数据库中包含两个主要的表:学生信息表和成绩表。

学生信息表包括学生ID、姓名、性别、年级等字段。

成绩表包括学生ID、科目、成绩等字段。

4.3 前端设计系统的前端界面需要简洁、直观、易用。

学生和家长可以通过登录界面进入系统,查看学生成绩和成绩分析报告。

教师登录后可以进行学生信息管理、成绩录入与修改等操作。

4.4 后台设计系统的后台使用Java语言进行开发。

后台主要负责处理前端发送的请求,并进行相应的处理,包括学生信息管理、成绩录入与修改、成绩分析与统计以及成绩报告生成与导出等功能。

5. 系统实施与测试5.1 环境要求系统实施和测试需要满足以下环境要求: - 操作系统:Windows/Linux/macOS - 浏览器:Chrome/Firefox/Safari - 数据库:MySQL/Oracle/SQL Server5.2 功能测试对系统的每个功能进行单元测试和集成测试,验证其正确性和可靠性。

C语言学生成绩管理系统设计报告

C语言学生成绩管理系统设计报告

C语言学生成绩管理系统设计报告一、背景描述C语言学生成绩管理系统是一款基于C语言编程实现的学生成绩管理系统。

它可以有效的收集、处理、分析学生的成绩数据,为学校及教师提供完善的学生成绩管理服务。

二、系统功能简介1. 记录学生成绩:该系统可以实现学生成绩的录入,以及成绩项目的录入,例如语文成绩、数学成绩等;2. 对学生成绩进行分析和分析统计:该系统可以实现对学生成绩分析和统计,例如学生成绩的最高分、最低分、平均分等;3. 学生成绩查询:可以根据学号或姓名进行查询,也可以按照班级进行查询;4. 成绩排名:可以根据班级列出学生成绩排名;5. 其他功能:可以实现教师及学校管理人员设置登录密码及账号,保证系统的安全稳定。

三、系统架构C语言学生成绩管理系统以学生成绩信息为基本业务,前端模块主要包括:学生成绩录入、学生成绩查询、学生成绩分析统计、学生成绩排名等模块;后端模块主要包括:数据管理模块、数据存储模块和信息安全模块,其信息网络设计如图1所示。

图1四、系统实现1. 数据库设计:学生成绩管理系统的数据库设计要求实现学生成绩信息的收集、处理、分析,因此建立以下4个表:学生信息表、课程信息表、成绩信息表以及评价表;2. 输入输出界面:通过Borland C++ 4.5 软件编写C语言源程序,实现数据库的请求、输入和输出,完成友好、简洁的界面设计;3. 数据处理模块:数据的处理主要する流程为根据输入的条件,从学生成绩数据库提取数据,然后进行数据处理,最后将数据处理的结果传给输出模块进行显示。

4. 信息安全模块:数据安全由操作系统管理,综合利用各种安全机制,如用户权限管理,系统账户安全设置等,确保系统的安全稳定性。

五、结束语。

简单学生成绩管理系统程序设计报告

简单学生成绩管理系统程序设计报告

简单学生成绩管理系统程序设计报告一、概述本文将介绍一个简单的学生成绩管理系统的程序设计报告。

该系统旨在帮助学校管理学生的成绩信息,包括录入学生信息、录入学生成绩、查询学生成绩等功能。

以下是本文的内容结构:1.概述2.系统需求分析1.功能需求2.数据需求3.系统设计1.数据库设计2.后端设计3.前端设计4.系统实现5.遇到的问题与解决方法6.总结与展望二、系统需求分析1. 功能需求该系统应具备以下功能:•录入学生信息:包括学生姓名、学号、班级等基本信息•录入学生成绩:包括考试科目、考试成绩等信息•查询学生成绩:可以按学生姓名、学号等条件查询学生成绩•修改学生成绩:可以修改学生的考试成绩•删除学生成绩:可以删除某个学生的成绩信息2. 数据需求该系统需要存储以下数据:•学生信息:包括学生姓名、学号、班级等基本信息•学生成绩:包括学号、科目、成绩等信息三、系统设计1. 数据库设计根据系统的需求,我们设计了以下数据库表:•学生表(students):包括学号(id)、姓名(name)、班级(class)等字段•成绩表(scores):包括学号(id)、科目(subject)、成绩(score)等字段2. 后端设计后端部分主要负责与数据库进行交互,实现系统的各种功能。

我们使用Python语言开发后端程序,使用Flask框架进行搭建。

后端程序主要包括以下模块:•学生管理模块:负责学生信息的增删改查操作•成绩管理模块:负责成绩信息的增删改查操作•数据库连接模块:负责与数据库进行连接和数据交互的操作3. 前端设计前端部分主要负责与用户进行交互,提供友好的界面供用户使用系统的各种功能。

我们使用HTML、CSS和JavaScript语言开发前端界面。

前端界面主要包括以下模块:•学生信息录入界面:提供表单供用户输入学生的基本信息•成绩信息录入界面:提供表单供用户输入学生成绩信息•成绩查询界面:提供表单供用户查询学生成绩•成绩修改界面:提供表单供用户修改学生成绩•成绩删除界面:提供表单供用户删除学生成绩四、系统实现我们根据系统设计的需求,实现了一个简单的学生成绩管理系统。

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

学生成绩管理系统一、实验目的1、复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;2、课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。

提高学生适应实际,实践编程的能力;3、培养学生在项目开发中创新意识及能力。

二、实验任务1、理解并掌握图形界面的设计。

2、理解整体算法的思路,即actionPerformed()的算法。

3、输入学生姓名、成绩,完成信息的录入,并将数据存储到文件中。

4、输入学生姓名,从文件中查询该姓名的学生的成绩,找到一个成绩后可以选择是否继续查询。

5、输入学生姓名和新的成绩,修改文件中该姓名的学生的所有成绩为新的成绩。

6、输入学生姓名,删除文件中该姓名的学生的所有成绩。

7、输入学生姓名和成绩,删除文件中该姓名的学生的单次成绩。

8、进一步学习JAVA的编程思想。

9、理解并掌握文件的操作。

三、实验要求1、理解并掌握图形界面的设计。

2、理解整体算法的思路,即actionPerformed()的算法。

3、进一步学习JAVA的编程思想。

4、理解并掌握文件的操作。

四、思路分析1、为使程序美观,使用了多个JPanel和不同的LayoutManager(比如FlowLayout、BorderLayout)进行布局设计,同时限定了窗体的大小;2、为避免数据错误,每次操作前检查姓名和成绩是否为空、成绩是否为整数;3、增删改操作时,使用布尔型变量标记操作是否完成,并弹出相应提示;4、修改和删除操作,先将文件中的内容暂存到内存中,再重新写入符合条件的信息;5、查询操作,每次查询到结果时更新成绩,并询问是否需要继续查询;6、删除操作,分为删除指定姓名所有成绩和删除指定姓名单次成绩两种状况。

五、程序代码【studentmanager.java】import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.io.*;public class studentmanager extends JFrame {/*** 当前容器*/Container currentContainer = this;/*** 存储的文件名*/String fileName = new String("data.txt");/*** 显示标题文本*/JLabel titleLabel = new JLabel("学生成绩管理系统");/*** 标题面板*/JPanel titlePanel = new JPanel();/*** 显示姓名文本*/JLabel nameLabel = new JLabel("姓名");/*** 显示成绩文本*/JLabel scoreLabel = new JLabel("成绩");/*** 姓名文本框*/JTextField nameTextField = new JTextField(15);/*** 成绩文本框*/JTextField scoreTextField = new JTextField(15);/*** 输入面板*/JPanel inputPanel = new JPanel();/*** 添加按钮*/JButton insertBtn = new JButton("录入");/*** 查询按钮*/JButton searchBtn = new JButton("查询");/*** 修改按钮*/JButton modifyBtn = new JButton("修改");/*** 删除按钮*/JButton deleteBtn = new JButton("删除");/*** 管理面板*/JPanel managePanel = new JPanel();/*** 按钮监听器*/ButtonActionListener btnAction = new ButtonActionListener();/*** 构造器:初始化窗体*/public studentmanager(){this.setSize(280,200);this.setLocation(300, 300);this.setResizable(false);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setTitle("学生成绩管理系统");/** 将窗体划分为上中下三个块*/this.setLayout(new BorderLayout()); this.add(titlePanel, "North");this.add(inputPanel,"Center");this.add(managePanel,"South");/** 第一块用来放标题面板 = =*/titlePanel.setLayout(newFlowLayout(FlowLayout.CENTER,0,10));titlePanel.add(titleLabel);titleLabel.setFont(new Font("黑体",Font.PLAIN,16));/** 第二块放输入面板*/inputPanel.setLayout(newFlowLayout(FlowLayout.CENTER,20,10));inputPanel.add(nameLabel);inputPanel.add(nameTextField);inputPanel.add(scoreLabel);inputPanel.add(scoreTextField);/** 第三块是管理面板*/managePanel.setLayout(newFlowLayout(FlowLayout.CENTER,5,10));managePanel.add(insertBtn);managePanel.add(searchBtn);managePanel.add(modifyBtn);managePanel.add(deleteBtn);/** 为按钮注册按钮监听器*/insertBtn.addActionListener(btnAction); searchBtn.addActionListener(btnAction); modifyBtn.addActionListener(btnAction);deleteBtn.addActionListener(btnAction);/** 显示窗体*/this.setVisible(true);}/*** 按钮监听类*/class ButtonActionListener implements ActionListener{public void actionPerformed(ActionEvent e) {/** 检查是否输入了姓名*/String name =nameTextField.getText().trim();if(name.length()==0){JOptionPane.showMessageDialog(currentContainer, "输入的姓名为空!","操作失败",JOptionPane.ERROR_MESSAGE);return;}/** 是否要求查询*/if(e.getSource()==searchBtn){search(name); // 执行查询方法,进行查询操作return;}int score = 0;/** 是否要求删除*/if(e.getSource()==deleteBtn){try{score =Integer.parseInt(scoreTextField.getText().trim());int choose = JOptionPane.showConfirmDialog(currentContainer, "确定要删除该同学的这次成绩吗?","确认删除",JOptionPane.YES_NO_CANCEL_OPTION);if(choose == JOptionPane.YES_OPTION){boolean flag = delete(name,score); // 当确定时删除名字为name的同学成绩为score的成绩一次if(flag){ nameTextField.setText(""); // 清空姓名框scoreTextField.setText(""); // 清空成绩框JOptionPane.showMessageDialog(currentContainer, "已删除该同学的这次成绩!","删除成功!",JOptionPane.PLAIN_MESSAGE);}else{JOptionPane.showMessageDialog(currentContainer, "该同学并没有这个成绩!","删除失败!",JOptionPane.PLAIN_MESSAGE);}}}catch(NumberFormatExceptione1){// 当catch到NumberFormatException时说明parseInt失败:没有输入成绩,此时应删除所有成绩int choose = JOptionPane.showConfirmDialog(currentContainer, "确定要删除该同学的所有成绩吗?","确认删除",JOptionPane.YES_NO_CANCEL_OPTION);if(choose == JOptionPane.YES_OPTION){boolean flag = delete(name); // 当确定时删除名字为name的同学的所有成绩if(flag){ nameTextField.setText(""); // 清空姓名框scoreTextField.setText(""); // 清空成绩框JOptionPane.showMessageDialog(currentContainer, "已删除该同学的所有成绩!","删除成功!",JOptionPane.PLAIN_MESSAGE);}else{JOptionPane.showMessageDialog(currentContainer, "该同学没有成绩!","删除失败!",JOptionPane.PLAIN_MESSAGE);}}}return;}/** 检查是否输入了成绩*/try{score =Integer.parseInt(scoreTextField.getText().trim());}catch(Exception e1){JOptionPane.showMessageDialog(currentContainer, "输入的成绩不是数字!","操作失败",JOptionPane.ERROR_MESSAGE);return;}/** 是否要求录入*/if(e.getSource()==insertBtn){boolean flag = insert(name,score); // 执行方法,进行录入操作if(flag){JOptionPane.showMessageDialog(currentContainer,"录入成功!"); scoreTextField.setText(""); // 清空成绩框}else{JOptionPane.showMessageDialog(currentContainer,"录入过程中出现了异常,请联络技术人员!","录入失败",JOptionPane.ERROR_MESSAGE);}return;}/** 是否要求修改*/if(e.getSource()==modifyBtn){int choose =JOptionPane.showConfirmDialog(currentContainer, "确定要将该同学的所有成绩都修改为" + score+ "吗?","确认修改",JOptionPane.YES_NO_CANCEL_OPTION);if(choose ==JOptionPane.YES_OPTION){boolean flag =modify(name,score); // 当确定时修改所有名字为name的同学的成绩为scoreif(flag){JOptionPane.showMessageDialog(currentContainer, "已将该同学的所有成绩都修改为" + score+ "!","修改成功!",JOptionPane.PLAIN_MESSAGE);}else{JOptionPane.showMessageDialog(currentContainer, "没有该姓名的同学的成绩记录!","修改失败!",JOptionPane.ERROR_MESSAGE);}}return;}}}/*** 查询指定姓名的同学的成绩* @param name 要查询的姓名*/public void search(String name){try {/** 读入文件,读取每条学生信息,满足条件则显示并弹出提示确认是否继续查询*/BufferedReader in = new BufferedReader(new FileReader(fileName));String line;int choose = JOptionPane.NO_OPTION;while((line = in.readLine())!=null){String[] info = line.split(":");if(info[0].equals(name)){scoreTextField.setText(info[1]); // 更新成绩信息choose =JOptionPane.showConfirmDialog(null, "继续查询该同学的成绩?","查找完毕!",JOptionPane.YES_NO_OPTION);if(choose==JOptionPane.NO_OPTION){// 选择否则不再查询,确定则继续in.close();return;}}}in.close();if(choose==JOptionPane.YES_OPTION){// 当继续查找时找不到记录JOptionPane.showMessageDialog(currentContainer,"找不到该同学的更多成绩!","查找完毕",JOptionPane.PLAIN_MESSAGE);}else{// 第一次查询就找不到记录scoreTextField.setText("");JOptionPane.showMessageDialog(currentContainer,"找不到该同学的成绩!","查找完毕",JOptionPane.PLAIN_MESSAGE);}} catch (FileNotFoundException e) {// 文件不存在,说明没有成绩数据JOptionPane.showMessageDialog(currentContainer,"成绩数据为空!","查找失败",JOptionPane.ERROR_MESSAGE);} catch (IOException e) {JOptionPane.showMessageDialog(currentContainer,"成绩数据为空!","查找失败",JOptionPane.ERROR_MESSAGE);}}/*** 插入新记录* @param name 姓名* @param score 成绩*/public boolean insert(String name, int score){try {/** 写入文件*/Writer out = newFileWriter(fileName,true);out.write(name + ":" + score + "\r\n"); out.close();return true;} catch (IOException e) {e.printStackTrace();return false;}}/*** 修改记录内容* <ul>将姓名为name的所有成绩修改为score。

相关文档
最新文档