java学生成绩管理程序课程设计
- 格式:doc
- 大小:2.33 MB
- 文档页数:33
java学生成绩管理系统课程设计一、前言Java是一种广泛使用的编程语言,因其跨平台性和易于学习的特点而备受欢迎。
在计算机科学教育中,Java也是必修课程之一。
本文将介绍一个基于Java语言开发的学生成绩管理系统的设计和实现。
二、需求分析学生成绩管理系统需要实现以下功能:1. 学生信息管理:包括学生姓名、学号、性别、出生日期等信息。
2. 课程信息管理:包括课程名称、课程编号、授课教师等信息。
3. 成绩录入:教师可以录入学生的成绩,包括考试成绩和平时成绩。
4. 成绩查询:学生和教师可以查询自己或其他人的成绩。
5. 统计分析:系统可以对成绩进行统计分析,例如班级平均分、最高分最低分等。
三、系统设计1. 数据库设计本系统采用MySQL数据库存储数据。
其中包括三个表:学生表(student)、课程表(course)和成绩表(score)。
2. 界面设计本系统采用Java Swing框架进行界面设计。
主要界面包括登录界面、主界面和各个功能模块界面。
3. 功能模块设计(1)学生信息管理模块该模块包括学生信息的增加、删除、修改和查询功能。
其中,学号为主键,不可重复。
(2)课程信息管理模块该模块包括课程信息的增加、删除、修改和查询功能。
其中,课程编号为主键,不可重复。
(3)成绩录入模块该模块包括成绩的录入和修改功能。
成绩分为考试成绩和平时成绩,存储在成绩表中。
(4)成绩查询模块该模块包括学生和教师的成绩查询功能。
学生只能查询自己的成绩,教师可以查询所有学生的成绩。
(5)统计分析模块该模块可以对班级或整个系统的成绩进行统计分析。
例如,可以计算班级平均分、最高分最低分等。
四、系统实现1. 数据库连接使用JDBC连接MySQL数据库,并封装了数据库操作类DBUtil。
2. 界面设计及事件处理使用Java Swing框架进行界面设计,并使用事件处理机制实现各个功能模块。
3. 功能实现及测试根据需求分析和系统设计,逐一实现各个功能,并进行测试调试。
学生管理系统JAVA课课程设计一、教学目标本课程的目标是让学生掌握学生管理系统的Java编程知识,能够运用Java语言实现一个简单的学生管理系统。
具体目标如下:1.知识目标:–理解Java语言的基本语法和数据结构。
–掌握Java中的控制结构和面向对象编程思想。
–了解Java中的文件操作和数据库连接。
2.技能目标:–能够使用Java编写简单的程序,实现学生的增删改查功能。
–能够使用Java连接数据库,实现对学生信息的持久化存储。
–能够使用Java的文件操作,读写学生数据。
3.情感态度价值观目标:–培养学生的编程兴趣,提高学生解决问题的能力。
–培养学生团队协作的精神,提高学生的沟通表达能力。
二、教学内容根据课程目标,本课程的教学内容主要包括以下几个部分:1.Java语言基础:包括基本语法、数据类型、变量、运算符等。
2.控制结构:包括条件语句、循环语句等。
3.面向对象编程:包括类、对象、继承、多态等。
4.文件操作:包括文件的读写、文件管理等。
5.数据库连接:包括JDBC的概念、数据库的连接与操作等。
6.学生管理系统的设计与实现:包括系统需求分析、系统设计、功能实现等。
三、教学方法为了达到课程目标,本课程将采用以下几种教学方法:1.讲授法:用于讲解Java语言基础、控制结构、面向对象编程等理论知识。
2.案例分析法:通过分析实际案例,让学生理解并掌握文件操作和数据库连接的方法。
3.实验法:让学生动手编写代码,实现学生管理系统,提高学生的实际操作能力。
4.小组讨论法:分组让学生讨论问题,培养学生的团队协作和沟通能力。
四、教学资源为了支持课程的顺利进行,我们将准备以下教学资源:1.教材:《Java编程思想》等。
2.参考书:《Java核心技术》、《Java Web开发》等。
3.多媒体资料:教学PPT、视频教程等。
4.实验设备:计算机、网络环境、数据库服务器等。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分,以保证评估的客观性和公正性。
Java课程设计课题:学生成绩管理系统一、问题及功能分析1、身份验证,和使用系统的权限设置、判定。
2、实现同学的学号、性别、成绩等信息的录入、编辑3、提供对学号或姓名,进行成绩或所有信息的查询。
4、计算学生平均成绩,显示最高成绩学生信息5、能实现按成绩、学号、姓名排序列出学生信息。
6、能统计学生成绩分数段的分布(60以下、60~70、70~80、80~90、90~100)情况,并输出。
7、用文件保存数据,以便反复使用。
二、概要设计三、详细设计学生成绩管理系统代码设计:import java.util.*;import ng.*;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.out.println(" 3.计算学生平均成绩;");System.out.println(" 4.显示最高成绩学生信息;");System.out.println(" 5.查找学生信息;");System.out.println(" 6.修改学生信息;");System.out.println(" 7.按成绩排序学生信息;");System.out.println(" 8.学生信息库扩容;");System.out.println(" 9.学生成绩分段输出;");System.out.println(" 0.退出;");System.out.println(" 请输入数字选项(0-9): ");select =sc.nextInt();System.out.println();//判断输入,0退出if(select>=0 && select<=9){switch(select){case 1:mis.Inputstu(stu);break;case 2:System.out.println(" 所有学生成绩信息如下:");mis.print(stu);System.out.println("您选择了显示所有学生成绩信息。
目录1设计目的及内容要求 (1)2 系统总体设计 (1)3 系统详细设计 (2)4 运行结果及分析 (18)致谢 (22)参考文献 (22)简单学生成绩管理系统的设计与实现1设计目的及内容要求1、设计目的:巩固和加深学生对高级语言程序设计课程的基本知识的理解和掌握,掌握java语言编程和程序调试的基本技能,利用java语言进行基本的软件设计,提高运用java语言解决实际问题的能力。
2、内容要求实现学生成绩的管理(增、删、改、查询、持久化、成绩排序、成绩统计等功能),在文件中增加、删除、学生信息,根据学号查询、修改学生信息,统计功能求每个人的总分并按从高到低排序,通过这些操作对文件中的信息保存。
2 系统总体设计成功登陆系统以后,出现成绩管理界面,系统初始化,可对学生成绩进行增加、删除、查询、修改、统计,进入相应界面进行成绩管理,退出系统自动保存本次操作内容,保存信息。
简易流程图:3 系统详细设计①创建Student类,设置变量及对应方法Student.java代码:package keshe;import java.io.Serializable;public class Student implements Serializable{private String name;private int num;private int yuwen;private int shuxue;private int java;private int sum=0;public Student(){}public Student(String name, int num, int yuwen, int shuxue, int java) {super(); = name;this.num = num;this.yuwen = yuwen;this.shuxue = shuxue;this.java = java;}public String getName() {return name;}public void setName(String name) { = name;}public int getNum() {return num;}public void setNum(int num) {this.num = num;}public int getYuwen() {return yuwen;}public void setYuwen(int yuwen) {this.yuwen = yuwen;}public int getShuxue() {return shuxue;}public void setShuxue(int shuxue) {this.shuxue = shuxue;}public int getJava() {return java;}public void setJava(int java) {this.java = java;}public int getSum() {return sum;}public void setSum(int sum) {this.sum = sum;}public String toString() {return"Student [name=" + name + ", num=" + num + ", yuwen=" + yuwen+ ", shuxue=" + shuxue + ", java=" + java + ", sum=" + sum+ "]";}}②Student管理类StuC,创建对应方法,实现对Student对象的操作(增、删、改、查询、持久化、成绩排序、成绩统计等功能)供其对象调用。
java 成绩管理课程设计一、课程目标知识目标:1. 学生能理解Java成绩管理系统的基本原理,掌握使用Java语言进行面向对象编程的方法。
2. 学生能掌握Java中的类与对象、继承与多态等核心概念,并能将其应用于成绩管理系统的设计与实现。
3. 学生能熟练运用Java集合框架,如List、Map等,进行成绩数据的存储与管理。
技能目标:1. 学生能独立设计并实现一个简单的Java成绩管理系统,包括成绩的录入、查询、修改和删除等功能。
2. 学生能运用所学的Java编程技能,解决实际成绩管理问题,具备一定的编程实践能力。
3. 学生能通过分析成绩管理需求,进行模块划分,培养良好的编程习惯和团队合作精神。
情感态度价值观目标:1. 学生通过本课程的学习,培养对计算机编程的兴趣和热情,增强学习Java 语言的自信心。
2. 学生在课程实践中,能够积极思考、主动探索,培养解决问题的能力和创新精神。
3. 学生在团队合作中,学会相互尊重、沟通协作,培养团队意识和集体荣誉感。
课程性质:本课程为实践性较强的课程,结合实际成绩管理场景,培养学生运用Java语言解决实际问题的能力。
学生特点:学生已具备一定的Java基础,了解面向对象编程的基本概念,但实际应用能力较弱,需加强实践操作。
教学要求:教师应注重理论与实践相结合,引导学生主动参与课程实践,培养其编程能力和团队合作精神。
通过课程目标的具体分解,确保学生能够掌握相关知识和技能,实现课程预期成果。
二、教学内容1. Java面向对象编程基础:- 类与对象的概念- 继承与多态的特性- 封装、抽象、接口等设计原则2. Java集合框架:- List、Set、Map等集合接口及其实现类- 集合的常用方法及遍历方式3. Java异常处理:- 异常的分类与处理机制- try-catch-finally语句的使用4. 成绩管理系统的设计与实现:- 功能需求分析- 数据模型设计(如学生类、课程类、成绩类等)- 系统模块划分与实现(成绩录入、查询、修改、删除等)5. 编程实践与团队协作:- 编程规范与命名规则- 代码版本控制(如Git)- 团队合作与分工教学内容安排与进度:第一周:Java面向对象编程基础第二周:Java集合框架与异常处理第三周:成绩管理系统的需求分析与设计第四周:成绩管理系统的实现与测试第五周:编程实践与团队协作教材章节关联:《Java面向对象编程》第四章:面向对象设计原则《Java面向对象编程》第五章:集合框架《Java面向对象编程》第十二章:异常处理《Java实践教程》第六章:项目管理与团队协作三、教学方法1. 讲授法:- 对于Java面向对象编程基础、集合框架等理论性较强的内容,采用讲授法进行教学,为学生提供系统的知识结构。
Java学生成绩管理系统课程设计1. 简介Java学生成绩管理系统是一个用于管理学生课程成绩的应用程序。
它可以帮助学校、老师和学生轻松管理和查询学生的成绩信息,包括课程信息、学生信息和成绩信息。
该系统具有用户友好的界面和强大的功能,可以实现学生成绩的录入、修改、查询和统计等操作。
2. 功能需求Java学生成绩管理系统的主要功能如下:2.1 学生信息管理•学生信息的录入、修改和删除•学生信息的查询和显示•学生信息的批量导入和导出2.2 课程信息管理•课程信息的录入、修改和删除•课程信息的查询和显示•课程信息的批量导入和导出2.3 成绩信息管理•成绩信息的录入、修改和删除•成绩信息的查询和显示•成绩信息的批量导入和导出•成绩信息的统计和排名2.4 用户管理•用户的注册、登录和注销•用户密码的找回和修改•用户权限的管理3. 技术实现Java学生成绩管理系统使用Java语言开发,通过MySQL数据库存储数据,使用JDBC进行数据库操作。
系统采用MVC架构,将数据、视图和控制逻辑分离,提高了系统的可维护性和扩展性。
系统的界面采用Swing库进行设计,使用Java的GUI组件创建用户界面,并通过事件处理和监听器实现用户交互。
系统的数据存储和管理使用MySQL数据库,通过JDBC连接数据库,实现对数据的增删改查操作。
通过SQL语句对数据进行查询和统计,实现成绩信息的排名和统计功能。
系统的用户管理功能通过数据库存储用户信息,并提供注册、登录和注销功能。
用户密码的找回和修改通过邮件验证和安全问题验证实现。
4. 系统设计4.1 数据库设计系统的数据库设计包括以下表格:•学生表(Student):存储学生信息,包括学生编号、姓名、年龄、性别等字段。
•课程表(Course):存储课程信息,包括课程编号、课程名称、学分等字段。
•成绩表(Score):存储成绩信息,包括学生编号、课程编号、成绩等字段。
•用户表(User):存储用户信息,包括用户名、密码、邮箱等字段。
java课程设计题目及代码题目:学生成绩管理系统设计一个学生成绩管理系统,能够实现以下功能:1. 添加学生信息:录入学生的姓名、学号、性别等基本信息。
2. 添加学生成绩:录入学生的各门成绩,包括语文、数学、英语等课程。
3. 查找学生成绩:根据学号或姓名查找学生的成绩信息。
4. 修改学生成绩:根据学号或姓名修改学生的成绩信息。
5. 删除学生成绩:根据学号或姓名删除学生的成绩信息。
6. 统计学生成绩:统计全班学生的各门课程的平均分、最高分和最低分。
代码实现如下:```javaimport java.util.ArrayList;import java.util.HashMap;import java.util.Map;import java.util.Scanner;class Student {private String name;private String studentId;private String gender;private Map<String, Integer> scores;public Student(String name, String studentId, String gender) { = name;this.studentId = studentId;this.gender = gender;this.scores = new HashMap<>();}public String getName() {return name;}public String getStudentId() {return studentId;}public String getGender() {return gender;}public Map<String, Integer> getScores() {return scores;}public void addScore(String subject, int score) {scores.put(subject, score);}public void updateScore(String subject, int score) { scores.put(subject, score);}public void removeScore(String subject) {scores.remove(subject);}}class GradeManagementSystem {private ArrayList<Student> students;public GradeManagementSystem() {students = new ArrayList<>();}public void addStudent(String name, String studentId, String gender) {students.add(new Student(name, studentId, gender));}public Student findStudentById(String studentId) {for (Student student : students) {if (student.getStudentId().equals(studentId)) {return student;}}return null;}public Student findStudentByName(String name) {for (Student student : students) {if (student.getName().equals(name)) {return student;}}return null;}public void addScore(String studentId, String subject, int score) {Student student = findStudentById(studentId);if (student != null) {student.addScore(subject, score);}}public void updateScore(String studentId, String subject, int score) {Student student = findStudentById(studentId);if (student != null) {student.updateScore(subject, score);}}public void removeScore(String studentId, String subject) {Student student = findStudentById(studentId);if (student != null) {student.removeScore(subject);}}public void printStudentInfo(Student student) {System.out.println("姓名:" + student.getName());System.out.println("学号:" + student.getStudentId());System.out.println("性别:" + student.getGender());System.out.println("成绩:");for (Map.Entry<String, Integer> entry :student.getScores().entrySet()) {System.out.println(entry.getKey() + ":" +entry.getValue());}}public void printClassStatistics() {int chineseTotal = 0;int mathTotal = 0;int englishTotal = 0;int chineseMax = 0;int mathMax = 0;int englishMax = 0;int chineseMin = Integer.MAX_VALUE;int mathMin = Integer.MAX_VALUE;int englishMin = Integer.MAX_VALUE;for (Student student : students) {Map<String, Integer> scores = student.getScores();if (scores.containsKey("语文")) {int chineseScore = scores.get("语文");chineseTotal += chineseScore;chineseMax = Math.max(chineseMax, chineseScore);chineseMin = Math.min(chineseMin, chineseScore); }if (scores.containsKey("数学")) {int mathScore = scores.get("数学");mathTotal += mathScore;mathMax = Math.max(mathMax, mathScore);mathMin = Math.min(mathMin, mathScore);}if (scores.containsKey("英语")) {int englishScore = scores.get("英语");englishTotal += englishScore;englishMax = Math.max(englishMax, englishScore); englishMin = Math.min(englishMin, englishScore); }}int studentCount = students.size();double chineseAverage = (double) chineseTotal / studentCount;double mathAverage = (double) mathTotal / studentCount; double englishAverage = (double) englishTotal / studentCount;System.out.println("语文最高分:" + chineseMax);System.out.println("数学最高分:" + mathMax);System.out.println("英语最高分:" + englishMax);System.out.println("语文最低分:" + chineseMin);System.out.println("数学最低分:" + mathMin);System.out.println("英语最低分:" + englishMin);System.out.println("语文平均分:" + chineseAverage); System.out.println("数学平均分:" + mathAverage); System.out.println("英语平均分:" + englishAverage); }}public class Main {public static void main(String[] args) {GradeManagementSystem system = new GradeManagementSystem();// 添加学生信息system.addStudent("张三", "001", "男");system.addStudent("李四", "002", "女");system.addStudent("王五", "003", "男");// 添加学生成绩system.addScore("001", "语文", 90);system.addScore("001", "数学", 85);system.addScore("001", "英语", 92);system.addScore("002", "语文", 80);system.addScore("002", "数学", 75);system.addScore("002", "英语", 88);system.addScore("003", "语文", 95);system.addScore("003", "数学", 90);system.addScore("003", "英语", 97);// 查找学生成绩Student student = system.findStudentById("001"); if (student != null) {system.printStudentInfo(student);}// 修改学生成绩system.updateScore("002", "数学", 78);student = system.findStudentById("002");if (student != null) {system.printStudentInfo(student);}// 删除学生成绩system.removeScore("003", "语文");student = system.findStudentById("003");if (student != null) {system.printStudentInfo(student);}// 统计学生成绩system.printClassStatistics();}}```这是一个简单的学生成绩管理系统,通过添加学生信息、添加学生成绩、查找学生成绩、修改学生成绩、删除学生成绩和统计学生成绩等功能,可以对学生的成绩进行管理和操作。
Java学生成绩管理系统课程设计1. 任务背景学生成绩管理是学校教育系统中重要的组成部分之一,用于记录和管理学生的课程成绩。
传统的学生成绩管理方式通常使用纸质或电子表格进行记录,但随着学生数量的增加和信息化的发展,学生成绩管理系统得到了广泛应用。
Java作为一种广泛使用的编程语言,具有平台无关性和易学易用的特点,非常适合用于开发学生成绩管理系统。
本次课程设计旨在通过编写一个Java学生成绩管理系统,展示学生对Java语言的掌握以及对面向对象编程的理解。
2. 系统需求本学生成绩管理系统的主要功能包括:•学生信息管理:录入学生信息、修改学生信息、删除学生信息、查询学生信息等。
•课程信息管理:录入课程信息、修改课程信息、删除课程信息、查询课程信息等。
•成绩管理:录入学生的课程成绩、修改学生的课程成绩、查询学生的课程成绩等。
•统计分析:计算学生的平均成绩、总成绩等统计信息,进行成绩排名和统计分析。
3. 系统设计3.1 类设计本系统采用面向对象的设计思想,主要包括以下几个类:•Student类:用于表示学生信息,包括学生的学号、姓名、性别、年龄等属性。
提供相应的getter和setter方法。
•Course类:用于表示课程信息,包括课程的编号、名称、学分等属性。
提供相应的getter和setter方法。
•Score类:用于表示学生的成绩信息,包括学生的学号、课程编号、成绩等属性。
提供相应的getter和setter方法。
•StudentManager类:用于学生信息的管理,包括录入学生信息、修改学生信息、删除学生信息、查询学生信息等方法。
•CourseManager类:用于课程信息的管理,包括录入课程信息、修改课程信息、删除课程信息、查询课程信息等方法。
•ScoreManager类:用于成绩信息的管理,包括录入学生成绩、修改学生成绩、查询学生成绩等方法。
•Statistics类:用于统计分析学生成绩,包括计算平均成绩、总成绩、排名等方法。
成绩管理系统课程设计java一、课程目标知识目标:1. 让学生理解成绩管理系统的基本概念,掌握Java语言在系统开发中的应用;2. 使学生掌握面向对象编程思想,能够运用类和对象构建简单的成绩管理系统;3. 帮助学生掌握Java中的数据存储和访问,包括文件读写、数据库操作等方法;4. 让学生掌握Java中的异常处理和界面设计,提高系统稳定性和用户体验。
技能目标:1. 培养学生运用Java语言进行成绩管理系统开发的能力;2. 培养学生独立分析和解决实际问题的能力;3. 提高学生的编程实践能力,使其能够熟练使用Java开发工具;4. 培养学生的团队协作能力,能够与他人共同完成项目。
情感态度价值观目标:1. 培养学生对编程的兴趣,激发其主动学习的热情;2. 培养学生严谨、细致的编程习惯,提高其程序质量意识;3. 培养学生面对问题积极思考、勇于克服困难的精神;4. 培养学生具备良好的团队合作精神,尊重他人,共享成果。
本课程针对高年级学生,课程性质为实践性较强的编程课程。
结合学生特点,课程目标注重培养编程实践能力和团队协作精神。
在教学过程中,要求教师关注学生个体差异,提供个性化的指导,确保学生在完成课程学习后,能够具备实际开发成绩管理系统所需的知识和技能。
同时,注重培养学生的情感态度价值观,使其在编程实践中形成积极、健康的人生态度。
通过分解课程目标为具体的学习成果,便于后续教学设计和评估,确保教学效果。
二、教学内容1. Java基础回顾:变量、数据类型、运算符、控制流程(条件语句、循环语句);2. 面向对象编程:类与对象、构造方法、封装、继承、多态;3. 数据存储与访问:文件读写、数据库连接与操作;4. 异常处理:异常的概念、try-catch语句、异常的抛出与捕获;5. Java图形用户界面:Swing组件、事件处理、界面布局;6. 成绩管理系统的设计与实现:需求分析、系统设计、功能模块划分、编码实现;7. 项目实践与团队协作:分组进行项目开发,分工合作,共同完成一个简单的成绩管理系统。
JA V A程序设计——包含多个实例<让你更加容易学习知识、找到自己想要的东西)第一个:学生成绩管理系统目录目录1一、引言21.1 课程设计目的21.2 题目说明21.3 开发工具介绍2二、总体设计22.1系统开发平台22.2 系统流程图42.3功能结构图错误!未定义书签。
2.4数据库设计错误!未定义书签。
三、详细说明43.1 系统实施4四、系统的调试和运行9五、课程设计总结9六、参考文献9附录<源程序代码)10一、引言1.1 课程设计目的1> 复习,巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;2> 课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力;3> 培养学生在工程开发中团队合作精神,创新意识及能力。
1.2 题目说明课题:学生成绩管理功能要求: 1、输入十个同学的学号,姓名,四科成绩(应用数学,大学英语,Java程序设计,计算机应用基础> 。
2、计算出平均成绩,以平均成绩降序输出成绩表。
3、输入学号查询学生信息。
4、输出全组各科平均分。
5、统计各分数段人数6、删除记录7、输出各科最高分和最低分。
8、退出。
界面要示:用字符界面实现,也可用图形界面实现。
1.3开发工具介绍Eclipse是一种可扩展的开放源代码IDE。
2001年11月,IBM公司捐出价值4,000万美元的源代码组建了Eclipse联盟,并由该联盟负责这种工具的后续开发。
集成开发环境(IDE>经常将其应用范围限定在“开发、构建和调试”的周期之中。
为了帮助集成开发环境(IDE>克服目前的局限性,业界厂商合作创建了Eclipse平台。
Eclipse允许在同一IDE中集成来自不同供应商的工具,并实现了工具之间的互操作性,从而显著改变了工程工作流程,使开发者可以专注在实际的嵌入式目标上。
《高级语言程序设计(2)》课程设计任务书题目学生成绩管理程序学生姓名黄涛学号201001030126 专业班级数学1001设计内容与要求【问题描述】本学期我班共有6门课程,期末要对每个学生的成绩进行统计处理。
每个学生都有相同的信息,适合用Java的类来描述。
Student包含的信息有学号、姓名和6科成绩(初等数论、经济学、数值计算、思政原理、Java语言和抽象代数)。
定义一个Student类创建对应方法,实现对Student对象的操作(增、删、改、查询、成绩排序、成绩统计等功能)供其对象调用。
前者可以定义为Student类的成员变量,后者可以定义为Student类的成员函数。
【软件功能】1. 定义Student类。
2. 能进行学生信息和各科成绩信息的录入。
3. 能进行对Student对象的操作(增、删、改、查询、成绩排序、成绩统计等功能)。
5. 利用swing实现良好的GUI界面。
6. 能响应鼠标或者键盘事件。
【基本要求】1. 对Student对象的操作(增、删、改、查询、成绩排序、成绩统计等功能)依靠编写的成员方法实现。
2. 采用用户界面采用图形用户界面,响应鼠标事件。
3. 编写主方法,对所编写的Student类进行全面测试。
需要输入的Student数据通过键盘输入,同时显示在屏幕上。
得到的处理结果数据通过I/O流写入磁盘文件保存,同时显示在屏幕上。
4. 源程序中要有充分的注释,报告中要有详细的流程图和文字材料。
5. 运行的结果以及图形用户界面要进行屏幕拷贝,插入报告中。
【提交成果】1. “《高级语言程序设计(2)》课程设计任务书”和“《高级语言程序设计(2)》课程设计报告”打印件各一份;2. 先将上面两项内容的word文档,通过电子邮件交到指导教师,待许可后,打印装袋。
起止时间2012 年12 月24 日至2012 年12月30 日指导教师签名李元觉2012年12 月22 日系(教研室)主任签名郝华宁2012 年12月22 日学生签名年月日《高级语言程序设计(2)》课程设计报告专业:数学与应用数学班级:数学1001 学号:201001030126姓名:黄涛完成日期:2012.12.30 指导教师:李元觉1、程序设计说明书【设计题目】学生成绩管理程序【问题描述】本学期我班共有6门课程,期末要对每个学生的成绩进行统计处理。
每个学生都有相同的信息,适合用Java的类来描述。
Student包含的信息有学号、姓名和6科成绩(初等数论、经济学、数值计算、思政原理、Java语言和抽象代数)。
定义一个Student类创建对应方法,实现对Student对象的操作(增、删、改、查询、成绩排序、成绩统计等功能)供其对象调用。
前者可以定义为Student类的成员变量,后者可以定义为Student类的成员函数。
【软件功能】1. 定义Student类。
2. 能进行学生信息和各科成绩信息的录入。
3. 能进行对Student对象的操作(增、删、改、查询、成绩排序、成绩统计等功能)。
5. 利用swing实现良好的GUI界面。
6. 能响应鼠标或者键盘事件。
7. 为学成成绩信息建立文件操作信息管理和相应的文件源,可以方便的调用上一保存的数据。
还可以对数据进行其他操作。
【算法思想】1.创建Student类,把学生的信息和成绩通过这个类对应到每个学生。
既把学生的基本情况封装到这个Student类中。
2.创建变长数组列表ArrayList <Student>,将所有的学生信息按每个人为单位放入到这个数组中,利用数组的循环便于对学生成绩的各种操作。
3.创建StuC类,Student管理类StuC创建对应方法,实现对Student对象的操作(增、删、改、查询、成绩排序、成绩统计等功能)供其对象调用。
既把所有的对学生成绩的操作处理方法封装到这个类中。
4.创建文件流对信息的输入输出管理。
保存上次进行操作的信息,为程序建立存贮的数据源,可以方便的调用和修改。
5.为登陆界面插入图片用MyPanel1的类来实现,为教师主界面和学生主界面添加图片背景。
6.把每个学生的信息看成是一个一维数组,通过对每个学生数组的每门课程成绩的访问求出每个人的总成绩。
7.利用每个学生的总成绩利用冒泡排序法对学生的成绩从高到底排序,统计输出时按新排好的成绩由高到低输出统计结果。
【类的设计】1.Student类Student属性:name(姓名)num(学号)Shulun(初等数论成绩)JingJi(经济学成绩)ShuZhi(数值计算方法成绩)SiZheng(思政概论成绩)Java(Java成绩)DaiShu(近世代数成绩)Sum(成绩总和)操作: Student(),getName(),setName(String name),getNum(),setNum(),getShuLun(),setShuLun(),getJingJi(),setJingJi(int JingJi),getShuZhi(),setShuZhi(int ShuZhi),getJava(),setJava(int Java),getDaiShu(),getsum(),setDaiShu(int DaiShu),setsum(int sum),getSiZheng(),setSiZheng(int SiZheng)2.StuC类,Student管理类StuC创建对应方法,实现对Student对象的操作(增、删、改、查询、持久化、成绩排序、成绩统计等功能)供其对象调用。
StuC属性:al(学生类数组ArrayList <Student> al=new ArrayList<Student>();)file(文件)操作:adds(Student s)(将学生s添加到数组al中去),del(int n),sum(),sort()(实现排序功能),toString(),paint(),stor()(输出流),read(),Student find(intn)3.Login类,登陆界面要求输入登陆者输入用户名和密码,分别设教师登陆和学生登陆两个登陆选项。
Login属性:用户名密码退出登陆教师登陆学生登陆操作:TeacherEnter(),StudentEnter(),Close()4.TeacherMainForm类,教师登陆主界面TeacherMainForm属性:增加查询修改删除统计保存退出操作:actionPerformed(ActionEvent e)(按钮事件响应)shutDown()(保存)5.StudentMainForm类,学生登陆进入主界面,窗口通过菜单只能实现学生成绩的查询功能,其他功能权限被限制。
6.AddFI类,学生成绩添加类权限仅限用于教师可见可操作,在此类中教师可以添加学生成绩信息。
7.Delet类,学生成绩删除类权限仅限于教师可见可操作,教师通过此类可以对学生成绩信息做删除处理。
8.XiuGai类,学生成绩修改类权限仅限于教师可见可操作,教师通过此类可对学生的成绩基本情况进行修改。
9.SIDFind类,按学生学号查询学生成绩类权限对教师和学生都可见可操作,学生和教师可以通过学生学号对学生的基本成绩进行查询。
10.Tongji类,统计类是班级学生总体成绩及依据总分大小排名情况的统计,权限仅限于教师。
【用户界面】1.用户登录界面2.教师主界面3.学生主界面【程序技巧】1. 设置登录界面,需要用户名和相符的密码才能进入,设置了访问权限。
2. 为不同的用户设置不同的登陆界面,既保证了权限又方便了用户的需求。
3. 教师主界面采用窗体菜单和按钮结合的组合界面,将主要功能按钮放在窗口上便于操作,并为每个主要功能按钮添加了按钮图片和注释,视窗美观易操作。
4. 介于学生窗口的权限限制,专门为学生创建学生界面,学生界面只有访问权没有管理操作权。
符合生活实际需要。
5. 程序创建Student类,创建ArrayList <Student> 数组列表对学生类中的信息进行存储,Student管理类StuC的创建对学生信息的管理。
6. 采用文件IO流,对数据进行保存。
7. 用类将所有的功能封装成为一个公用类,通过主类对其他类进行调用。
【模块划分及调用关系】1. 模块划分:2. 主要模块之间的调用关系及各自功能: (1)主要模块1>模块一:登录模块2>模块二:教师登陆模块 3>模块三:学生登陆模块4>模块四:学生成绩添加模块 5>模块五:学生成绩查询模块 6>模块六:学生成绩修改模块 7>模块七:学生成绩删除模块 8>模块八:学生成绩统计模块 9>模块九:退出模块 10>模块十:保存模块 (2)模块调用关系如下图程序开始系统登陆 教师登陆学生登陆查询增加删除退出成绩查询统计退出修改 保存 退出登陆 退出程序程序结束登陆模块模块一教师登陆模块模块二学生登陆模块模块三成绩添加模块模块四成绩查询模块模块五成绩修改模块模块六 成绩删除模块模块七 成绩统计模块模块八退出 模块模块九保存 模块模块十【模块流程图】1. 登陆模块流程图2. 教师主界面模块流程图开始输入用户 名密码选择登陆选项教师登陆 学生登陆退出登陆结束开始结束教师主界面查询增加删除修改 统计退出添加学生成绩信息输出查询学生信息输入查询学生学号输入删除这学号确认删除对学生成绩修改统计学生成绩输出统计结果退出退出成绩系统3.学生主界面模块流程图【运行说明】1. 安装运行eclipse 。
2. 在eclipse 中新建黄涛为项目名的java 项目,将程序打包放入src 中,再在项目下创建img 文件件存放需要用到的图片。
3. 运行Login.java 程序,运行程序进入登陆界面;4. 输入用户名和登陆密码,选择登陆用户类型。
开始 结束学生主界面 查询 退出退出 输入学号 输出查询学生信息 退出学生登陆界面5. 进入教师主界面或学生主界面。
6. 进入教师主界面后有对学生成绩添加,查询,修改,删除和统计等操作,对学生成绩的录入与管理。
退出教师登陆界面前必须对本次的所有操作进行一个整体保存,才能保证下一次打开时上次所操作的数据能显示,保存功能在窗口菜单的系统菜单下。
7. 进入学生登陆界面,学生只能对学生成绩进行查看没有对成绩的管理的权限。
8. 本次操作的文件路径为File file = new File("e:/JAVA/1208/mydata.txt");2、程序上机调试报告【语法错误及其排除】1. 关于static关键字修饰类方法的问题,用static修饰方法称为类方法,不用static修饰的称为实例方法。