精华内容
下载资源
问答
  • java学籍管理系统

    2015-01-13 21:31:52
    java 学籍管理系统 课程设计 实现功能 1录入学生基本信息的功能(允许一次开多个窗口同时录入) 2修改学生基本信息的功能 3查询学生基本信息的功能 4删除学生基本信息的功能(允许一次开多个窗口删除)
  • JAVA学籍管理系统

    2011-07-09 17:21:43
    本系统提供录入学生基本信息、修改学生基本信息、查询与打印学生基本信息、删除学生基本信息以及欢迎界面,同时该学籍管理系统是运用的图形界面设计,增强了与使用者的交互能力。
  • 计GUI界面的学籍管理系统,用户可以加入学生基本信息,并可对加入的信息进入修改,查找,和删除。
  • 内含源代码 加入数据库即可运行 项目是一个整项目 稍作修改即可实用
  • java学生学籍管理系统

    2012-12-30 14:42:41
    java语言编写的简易学生学籍管理系统,有登陆界面,有学生姓名,班级,年龄,专业等信息的录入,修改,删除功能。
  • 基于java语言的学籍管理系统,对于初学java的人有很大的帮助,亦可修改作为大作业
  • 学籍管理系统基于java

    2011-06-13 11:26:34
    学籍管理系统基于java,有登陆界面,输入界面,查询,删除修改界面
  • java做的学籍管理系统 本系统有6个类,本系统主要功能:删除,修改,查询,添加。管理员帐号:admin 密码:1234 ManagerWindow.java ,Delete.java, InputStudent.java,Inquest.java, ModifySituation.java,...
  • 学生学籍管理详细设计 学号_ 姓名_ 班级_ 1设计题目 学生学籍管理 二设计内容 设计GUI学生学籍管理界面用户可以加入学生信息并对基本信息进行修改 加查询删除 三设计要求 进行简单的学生信息管理 四总体设计 (1)登陆...
  • Java课设学籍管理系统

    2009-06-29 12:03:21
    完成录入 查询 修改 删除 等功能 对出错处理的不错 如日期的合法性 含报告
  • 学生学籍管理详细设计 学号_ 姓名_ 班级_ 一设计题目 学生学籍管理 二设计内容 设计GUI学生学籍管理界面用户可以加入学生信息并对基本信息进行修改添加查询删除 三设计要求 进行简单的学生信息管理 四总体设计 (1)...
  • 设计实现一个某学校学籍管理系统,主要包括学籍的录入,查询,修改,学籍变动等功能。
  • Java学籍管理系统的简单实现

    千次阅读 2018-04-07 21:19:24
    方法、步骤或设计框架: 实验中需要使用记录结构和非记录结构分别实现学籍管理系统。 记录结构:对于记录结构实现方式,就可以考虑使用Java的class来封装每个学生的学籍信息,然后再通过链表链接每一个学生,从而...

    方法、步骤或设计框架:

    实验中需要使用记录结构和非记录结构分别实现学籍管理系统。

    记录结构:对于记录结构实现方式,就可以考虑使用Java的class来封装每个学生的学籍信息,然后再通过链表链接每一个学生,从而实现对每个学生的记录和学籍信息的获取与修改。

     

    非记录结构:对于非记录结构的实现方式,这里我们考虑使用一个Object数组存储一个学生的信息,然后使用动态数组ArrayList存放各个学生,即可使用ArrayList的get、set等方法进行学生信息的增删改查。

     

    排序的实现:我们只需重写comparator接口的compare方法,即可使用自带的sort实现排序。

     

    数据的导入与导出:这里使用xls文件(excel文件)进行数据的存储。因此我们只需要使用外部的jxl.jar包中的方法即可对excel表格数据进行读入与导出操作。

     

    系统功能设计:为了满足学籍管理系统的正常需求,这里我们设计学生学籍的增删改查、成绩排序、学号排序、数据导入与导出、查看全部信息以及退出系统等十项系统功能。

     

    数据类型与顺序:对于学生学籍信息,我们策划所有数据顺序和对应类型如下:

    学生信息

    数组下标

    类成员变量

    数据类型

    姓名

    0

    name

    String

    年龄

    1

    age

    Int

    性别

    2

    sex

    String

    成绩

    3

    score

    Int

    年级

    4

    grade

    Int

    学号

    5

    sid

    Int

    上面表格中列举信息中,学号用于寻找和识别指定学生。


    记录结构实现

    ManageLinkedList.java

    package StudentManage;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.LinkedList;
    import java.util.Scanner;
    
    import jxl.Sheet;
    import jxl.Workbook;
    import jxl.format.Alignment;
    import jxl.format.Colour;
    import jxl.format.UnderlineStyle;
    import jxl.format.VerticalAlignment;
    import jxl.read.biff.BiffException;
    import jxl.write.Label;
    import jxl.write.WritableCellFormat;
    import jxl.write.WritableFont;
    import jxl.write.WritableSheet;
    import jxl.write.WritableWorkbook;
    import jxl.write.WriteException;
    import jxl.write.biff.RowsExceededException;
    
    public class ManageLinkList {
    	Scanner scanner = new Scanner(System.in);
    	LinkedList<Object> ll = new LinkedList<Object>();
    
    	public ManageLinkList() {
    		super();
    	}
    
    	public void menu() {
    		int option;
    		while (true) {
    			System.out.println("\n***************************************");
    			System.out.println("==============学生学籍管理系统==============");
    			System.out.println("1.新增学生                2.删除学生");
    			System.out.println("3.修改学生                4.查找学生");
    			System.out.println("5.学号排序                6.成绩排序");
    			System.out.println("7.导入数据                8.导出数据");
    			System.out.println("9.查看全部             10.退出系统");
    			System.out.println("输入1-10进行操作:");
    			option = scanner.nextInt();
    			switch (option) {
    			case 1:
    				stuAdd();
    				break;
    			case 2:
    				stuDelete();
    				break;
    			case 3:
    				stuUpdate();
    				break;
    			case 4:
    				stuRetrieve();
    				break;
    			case 5:
    				stuSortwithSid();
    				break;
    			case 6:
    				stuSortwithScore();
    				break;
    			case 7:
    				ExcelInput();
    				break;
    			case 8:
    				ExcelOutput();
    				break;
    			case 9:
    				stuShowAll();
    				break;
    			case 10:
    				stuExit();
    				break;
    			default:
    				break;
    			}
    		}
    	}
    
    	public void stuExit() {
    		System.out.println("确认退出系统?(y/n)");
    		if (scanner.next().equals("y")) {
    			System.out.println("退出系统成功!");
    			scanner.close();
    			System.exit(-1);
    		}
    	}
    
    	public void stuAdd() {
    		String name, sex;
    		int score, age, sid, grade;
    		System.out.println("操作:新增学生");
    		System.out.println("请输入学生信息:");
    		System.out.println("姓名:");
    		name = scanner.next();
    		System.out.println("年龄:");
    		age = scanner.nextInt();
    		System.out.println("性别:");
    		sex = scanner.next();
    		System.out.println("成绩:");
    		score = scanner.nextInt();
    		System.out.println("年级:");
    		grade = scanner.nextInt();
    		System.out.println("学号:");
    		sid = scanner.nextInt();
    		Student student = new Student(name, sex, grade, sid, score, age);
    		ll.add(student);
    		System.out.println("学生信息新增成功!");
    	}
    
    	public void stuDelete() {
    		int sid;
    		boolean ismatched = false;
    		System.out.println("操作:删除学生");
    		System.out.println("请输入学号:");
    		sid = scanner.nextInt();
    		int i = 0;
    		// 匹配学生学号
    		while (i < ll.size()) {
    			Student student = (Student) ll.get(i);
    			if (student.getsid() == sid) {
    				ismatched = true;
    				// 打印学生名字,再次确认学生信息
    				System.out.println("确认删除" + student.getname() + "学籍?(y/n)");
    				if (scanner.next().equals("y")) {
    					ll.remove(student);
    					System.out.println("学生信息删除成功!");
    				} else {
    					System.out.println("删除操作已取消!");
    				}
    				break;
    			}
    			i++;
    		}
    		if (ismatched == false) {
    			System.out.println("该学号不存在!请确认输入是否无误!");
    		}
    	}
    
    	public void stuUpdate() {
    		String sex;
    		int score, age, sid, grade;
    		String massage;
    		boolean ismatched = false;
    		System.out.println("操作:修改学生");
    		System.out.println("请输入学号:");
    		sid = scanner.nextInt();
    
    		int i = 0;
    		// 匹配学生学号
    		while (i < ll.size()) {
    			Student student = (Student) ll.get(i);
    			// 匹配学生学号
    			if (student.getsid() == sid) {
    				ismatched = true;
    				System.out.println("确认修改" + student.getname() + "学籍?(y/n)");
    				if (scanner.next().equals("y")) {
    					System.out.println("请输入学生信息:");
    					System.out.println("年龄:");
    					age = scanner.nextInt();
    					student.setage(age);
    					System.out.println("性别:");
    					sex = scanner.next();
    					student.setsex(sex);
    					System.out.println("成绩:");
    					score = scanner.nextInt();
    					student.setscore(score);
    					System.out.println("年级:");
    					grade = scanner.nextInt();
    					student.setgrade(grade);
    					// 打印修改后的学生学籍信息
    					massage = student.getmassage();
    					System.out.println("学生信息修改成功!");
    					System.out.println(massage);
    				} else {
    					System.out.println("修改操作已取消!");
    				}
    				break;
    			}
    			i++;
    		}
    		if (ismatched == false) {
    			System.out.println("学号不存在!请确认输入是否无误!");
    		}
    	}
    
    	public void stuRetrieve() {
    		int sid;
    		String massage;
    		boolean ismatched = false;
    		System.out.println("操作:查找学生");
    		System.out.println("请输入学号:");
    		sid = scanner.nextInt();
    
    		int i = 0;
    		// 匹配学生学号
    		while (i < ll.size()) {
    			Student student = (Student) ll.get(i);
    			// 匹配学生学号
    			if (student.getsid() == sid) {
    				ismatched = true;
    				System.out.println("确认查询" + student.getname() + "学籍?(y/n)");
    				if (scanner.next().equals("y")) {
    					// 打印修改后的学生学籍信息
    					massage = student.getmassage();
    					System.out.println("学生信息查询结果如下:");
    					System.out.println(massage);
    				} else {
    					System.out.println("查询操作已取消!");
    				}
    				break;
    			}
    			i++;
    		}
    		if (ismatched == false) {
    			System.out.println("学号不存在!请确认输入是否无误!");
    		}
    	}
    
    	public void stuShowAll() {
    		System.out.println("操作:查看全部");
    		String massage;
    		int i = 0;
    		// 匹配学生学号
    		System.out.println("所有学生学籍信息如下:");
    		while (i < ll.size()) {
    			Student student = (Student) ll.get(i);
    			massage = student.getmassage();
    			System.out.println(massage);
    			i++;
    		}
    	}
    
    	Comparator<Object> SidComparator = new Comparator<Object>() {
    		public int compare(Object op1, Object op2) {
    			Student lstu = (Student) op1;
    			Student rstu = (Student) op2;
    			// 按姓名排序
    			if (lstu.getsid() > rstu.getsid())
    				return 1;
    			else if (lstu.getsid() < rstu.getsid())
    				return -1;
    			else {
    				return 0;
    			}
    		}
    	};
    	Comparator<Object> ScoreComparator = new Comparator<Object>() {
    		public int compare(Object op1, Object op2) {
    			Student lstu = (Student) op1;
    			Student rstu = (Student) op2;
    			// 按姓名排序
    			if (lstu.getscore() < rstu.getscore())
    				return 1;
    			else if (lstu.getscore() > rstu.getscore())
    				return -1;
    			else {
    				return 0;
    			}
    		}
    	};
    
    	public void stuSortwithSid() {
    		String massage;
    		System.out.println("操作:学号排序");
    		long startTime = System.nanoTime(); // 获取开始时间
    		Collections.sort(ll, SidComparator);
    		long endTime = System.nanoTime(); // 获取结束时间
    		System.out.println("所有学生学籍信息如下:");
    		int i = 0;
    		// 匹配学生学号
    		while (i < ll.size()) {
    			Student student = (Student) ll.get(i);
    			massage = student.getmassage();
    			System.out.println(massage);
    			i++;
    		}
    		System.out.println("\n记录结构学号排序花费时间: " + (endTime - startTime) + "ns");
    	}
    
    	public void stuSortwithScore() {
    		String massage;
    		System.out.println("操作:成绩排序");
    		long startTime = System.nanoTime(); // 获取开始时间
    		Collections.sort(ll, ScoreComparator);
    		long endTime = System.nanoTime(); // 获取结束时间
    		System.out.println("所有学生学籍信息如下:");
    		int i = 0;
    		while (i < ll.size()) {
    			Student student = (Student) ll.get(i);
    			massage = student.getmassage();
    			System.out.println(massage);
    			i++;
    		}
    		System.out.println("\n记录结构成绩排序花费时间: " + (endTime - startTime) + "ns");
    	}
    
    	public void ExcelInput() {
    		String excelpath;
    		String name, sex;
    		int score, age, sid, grade;
    		System.out.println("操作:导入数据");
    		System.out.println("请输入导入Excel文件路径:");
    
    		excelpath = scanner.next();
    		File file = new File(excelpath);
    		try {
    			// 创建输入流,读取Excel
    			InputStream is = new FileInputStream(file.getAbsolutePath());
    			// jxl提供的Workbook类
    			Workbook wb = Workbook.getWorkbook(is);
    			// Excel的页签数量
    			int sheet_size = wb.getNumberOfSheets();
    			for (int index = 0; index < sheet_size; index++) {
    				// 每个页签创建一个Sheet对象
    				Sheet sheet = wb.getSheet(index);
    				// sheet.getRows()返回该页的总行数
    				for (int i = 1; i < sheet.getRows(); i++) {
    					name = sheet.getCell(0, i).getContents();
    					age = Integer.parseInt(sheet.getCell(1, i).getContents());
    					sex = sheet.getCell(2, i).getContents();
    					score = Integer.parseInt(sheet.getCell(3, i).getContents());
    					grade = Integer.parseInt(sheet.getCell(4, i).getContents());
    					sid = Integer.parseInt(sheet.getCell(5, i).getContents());
    					Student student = new Student(name, sex, grade, sid, score, age);
    					ll.add(student);
    				}
    				System.out.println("学生信息导入成功!");
    			}
    		} catch (FileNotFoundException e) {
    			System.err.println("出现错误:未能找到文件!学生信息导入失败!");
    			e.printStackTrace();
    		} catch (BiffException e) {
    			System.err.println("出现错误:不支持xlsx文件!学生信息导入失败!");
    			e.printStackTrace();
    		} catch (NumberFormatException e) {
    			System.err.println("出现错误:学生数据格式错误!学生信息导入失败!");
    			e.printStackTrace();
    		} catch (IOException e) {
    			System.err.println("出现错误:IO流异常!学生信息导入失败!");
    			e.printStackTrace();
    		}
    	}
    
    	public void ExcelOutput() {
    		String excelpath;
    		System.out.println("操作:导出数据");
    		System.out.println("请输入导出Excel文件路径:");
    		excelpath = scanner.next();
    		try {
    			FileOutputStream fos = new FileOutputStream(excelpath);
    			WritableWorkbook wwb = Workbook.createWorkbook(fos);
    			// 创建工作表
    			WritableSheet ws = wwb.createSheet("学生学籍表", 10);
    			// 设置单元格的文字格式
    			WritableFont wf = new WritableFont(WritableFont.ARIAL, 12, WritableFont.NO_BOLD, false,
    					UnderlineStyle.NO_UNDERLINE, Colour.BLACK);
    			WritableCellFormat wcf = new WritableCellFormat(wf);
    			wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
    
    			wcf.setAlignment(Alignment.LEFT);
    			ws.setColumnView(4, 10);
    			ws.setColumnView(5, 16);
    			ws.setColumnView(0, 14);
    
    			ws.addCell(new Label(0, 0, "姓名", wcf));
    			ws.addCell(new Label(1, 0, "年龄", wcf));
    			ws.addCell(new Label(2, 0, "性别", wcf));
    			ws.addCell(new Label(3, 0, "成绩", wcf));
    			ws.addCell(new Label(4, 0, "年级", wcf));
    			ws.addCell(new Label(5, 0, "学号", wcf));
    
    			// 填充数据的内容
    			// 匹配学生学号
    			System.out.println("所有学生学籍信息如下:");
    			int cnt = 1;
    			while (cnt <= ll.size()) {
    				Student student = (Student) ll.get(cnt - 1);
    				ws.addCell(new Label(0, cnt, student.getname(), wcf));
    				ws.addCell(new Label(1, cnt, String.valueOf(student.getage()), wcf));
    				ws.addCell(new Label(2, cnt, student.getsex(), wcf));
    				ws.addCell(new Label(3, cnt, String.valueOf(student.getscore()), wcf));
    				ws.addCell(new Label(4, cnt, String.valueOf(student.getgrade()), wcf));
    				ws.addCell(new Label(5, cnt, String.valueOf(student.getsid()), wcf));
    				cnt++;
    				if (cnt == 0)
    					wcf = new WritableCellFormat();
    			}
    			wwb.write();
    			wwb.close();
    			System.out.println("学生信息导出成功!");
    		} catch (IOException e) {
    			e.printStackTrace();
    		} catch (RowsExceededException e) {
    			e.printStackTrace();
    		} catch (WriteException e) {
    			e.printStackTrace();
    		}
    	}
    	public static void main(String[] args) {
    		ManageLinkList mll = new ManageLinkList();
    		mll.menu();
    		//ManageArrayList mal = new ManageArrayList();
    		//mal.menu();
    	}
    }

    Student.java

    package StudentManage;
    
    public class Student {
    	private String name;
    	private String sex;
    	private int grade;
    	private int sid;
    	private int score;
    	private int age;
    
    	public Student() {
    		super();
    	}
    
    	public Student(String name, String sex, int grade, int sid, int score, int age) {
    		this.name = name;
    		this.sex = sex;
    		this.grade = grade;
    		this.sid = sid;
    		this.score = score;
    		this.age = age;
    	}
    
    	public String getname() {
    		return name;
    	}
    
    	public String getsex() {
    		return sex;
    	}
    
    	public int getgrade() {
    		return grade;
    	}
    
    	public int getsid() {
    		return sid;
    	}
    
    	public int getscore() {
    		return score;
    	}
    
    	public int getage() {
    		return age;
    	}
    
    	public void setname(String name) {
    		this.name = name;
    	}
    
    	public void setsex(String sex) {
    		this.sex = sex;
    	}
    
    	public void setgrade(int grade) {
    		this.grade = grade;
    	}
    
    	public void setsid(int sid) {
    		this.sid = sid;
    	}
    
    	public void setscore(int score) {
    		this.score = score;
    	}
    
    	public void setage(int age) {
    		this.age = age;
    	}
    
    	public String getmassage() {
    		return "姓名:" + name + "  年龄:" + age + " 性别:" + sex + "  成绩:" + score + " 年级:" + grade + "  学号:" + sid;
    	}
    }

    非记录结构

    package StudentManage;
    
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.Scanner;
    
    import jxl.Sheet;
    import jxl.Workbook;
    import jxl.format.Alignment;
    import jxl.format.Colour;
    import jxl.format.UnderlineStyle;
    import jxl.format.VerticalAlignment;
    import jxl.read.biff.BiffException;
    import jxl.write.Label;
    import jxl.write.WritableCellFormat;
    import jxl.write.WritableFont;
    import jxl.write.WritableSheet;
    import jxl.write.WritableWorkbook;
    import jxl.write.WriteException;
    import jxl.write.biff.RowsExceededException;
    
    public class ManageArrayList {
    	ArrayList<Object> al = new ArrayList<Object>();
    	Scanner scanner = new Scanner(System.in);
    
    	public ManageArrayList() {
    		super();
    	}
    
    	public void menu() {
    		int option;
    		while (true) {
    			System.out.println("\n***************************************");
    			System.out.println("==============学生学籍管理系统==============");
    			System.out.println("1.新增学生                2.删除学生");
    			System.out.println("3.修改学生                4.查找学生");
    			System.out.println("5.学号排序                6.成绩排序");
    			System.out.println("7.导入数据                8.导出数据");
    			System.out.println("9.查看全部             10.退出系统");
    			System.out.println("输入1-10进行操作:");
    			option = scanner.nextInt();
    			switch (option) {
    			case 1:
    				stuArrayAdd();
    				break;
    			case 2:
    				stuArrayDelete();
    				break;
    			case 3:
    				stuArrayUpdate();
    				break;
    			case 4:
    				stuArrayRetrieve();
    				break;
    			case 5:
    				stuArraySortwithSid();
    				break;
    			case 6:
    				stuArraySortwithScore();
    				break;
    			case 7:
    				ArrayExcelInput();
    				break;
    			case 8:
    				ArrayExcelOutput();
    				break;
    			case 9:
    				stuArrayShowAll();
    				break;
    			case 10:
    				stuArrayExit();
    				break;
    			default:
    				break;
    			}
    		}
    	}
    
    	public void stuArrayExit() {
    		System.out.println("确认退出系统?(y/n)");
    		if (scanner.next().equals("y")) {
    			System.out.println("退出系统成功!");
    			scanner.close();
    			System.exit(-1);
    		}
    	}
    
    	public void stuArrayAdd() {
    		String name, sex;
    		int score, age, sid, grade;
    		System.out.println("操作:新增学生");
    		System.out.println("请输入学生信息:");
    		System.out.println("姓名:");
    		name = scanner.next();
    		System.out.println("年龄:");
    		age = scanner.nextInt();
    		System.out.println("性别:");
    		sex = scanner.next();
    		System.out.println("成绩:");
    		score = scanner.nextInt();
    		System.out.println("年级:");
    		grade = scanner.nextInt();
    		System.out.println("学号:");
    		sid = scanner.nextInt();
    		Object[] student = new Object[6];
    		student[0] = name;
    		student[1] = age;
    		student[2] = sex;
    		student[3] = score;
    		student[4] = grade;
    		student[5] = sid;
    		al.add(student);
    		System.out.println("学生信息新增成功!");
    	}
    
    	public void stuArrayDelete() {
    		int sid;
    		boolean ismatched = false;
    		System.out.println("操作:删除学生");
    		System.out.println("请输入学号:");
    		sid = scanner.nextInt();
    		// 匹配学生学号
    		for (int i = 0; i < al.size(); i++) {
    			Object[] student = (Object[]) al.get(i);
    			if ((Long) student[5] == sid) {
    				ismatched = true;
    				// 打印学生名字,再次确认学生信息
    				System.out.println("确认删除" + String.valueOf(student[0]) + "学籍?(y/n)");
    				if (scanner.next().equals("y")) {
    					al.remove(i);
    					System.out.println("学生信息删除成功!");
    				} else {
    					System.out.println("删除操作已取消!");
    				}
    				break;
    			}
    		}
    		if (ismatched == false) {
    			System.out.println("该学号不存在!请确认输入是否无误!");
    		}
    	}
    
    	public void stuArrayUpdate() {
    		String sex;
    		int score, age, sid, grade;
    		String massage;
    		boolean ismatched = false;
    		System.out.println("操作:修改学生");
    		System.out.println("请输入学号:");
    		sid = scanner.nextInt();
    		// 匹配学生学号
    		for (int i = 0; i < al.size(); i++) {
    			Object[] student = (Object[]) al.get(i);
    			if ((int) student[5] == sid) {
    				ismatched = true;
    				System.out.println("确认修改" + String.valueOf(student[0]) + "学籍?(y/n)");
    				if (scanner.next().equals("y")) {
    					System.out.println("请输入学生信息:");
    					System.out.println("年龄:");
    					age = scanner.nextInt();
    					student[1] = age;
    					System.out.println("性别:");
    					sex = scanner.next();
    					student[2] = sex;
    					System.out.println("成绩:");
    					score = scanner.nextInt();
    					student[3] = score;
    					System.out.println("年级:");
    					grade = scanner.nextInt();
    					student[4] = grade;
    					// 打印修改后的学生学籍信息
    					massage = "姓名:" + String.valueOf(student[0]) + "  年龄:" + String.valueOf(student[1]) + " 性别:"
    							+ String.valueOf(student[2]) + "  成绩:" + String.valueOf(student[3]) + " 年级:"
    							+ String.valueOf(student[4]) + "  学号:" + String.valueOf(student[5]);
    					al.set(i, student);
    					System.out.println("学生信息修改成功!");
    					System.out.println(massage);
    				} else {
    					System.out.println("删除操作已取消!");
    				}
    				break;
    			}
    		}
    		if (ismatched == false) {
    			System.out.println("学号不存在!请确认输入是否无误!");
    		}
    	}
    
    	public void stuArrayRetrieve() {
    		int sid;
    		String massage;
    		boolean ismatched = false;
    		System.out.println("操作:查找学生");
    		System.out.println("请输入学号:");
    		sid = scanner.nextInt();
    		for (int i = 0; i < al.size(); i++) {
    			Object[] student = (Object[]) al.get(i);
    			if ((int) student[5] == sid) {
    				ismatched = true;
    				System.out.println("确认查询" + String.valueOf(student[0]) + "学籍?(y/n)");
    				if (scanner.next().equals("y")) {
    					// 打印修改后的学生学籍信息
    					massage = "姓名:" + String.valueOf(student[0]) + "  年龄:" + String.valueOf(student[1]) + " 性别:"
    							+ String.valueOf(student[2]) + "  成绩:" + String.valueOf(student[3]) + " 年级:"
    							+ String.valueOf(student[4]) + "  学号:" + String.valueOf(student[5]);
    					System.out.println("学生信息查询成功!");
    					System.out.println(massage);
    				} else {
    					System.out.println("查询操作已取消!");
    				}
    				break;
    			}
    		}
    		if (ismatched == false) {
    			System.out.println("学号不存在!请确认输入是否无误!");
    		}
    	}
    
    	public void stuArrayShowAll() {
    		System.out.println("操作:查看全部");
    		String massage;
    		System.out.println("所有学生学籍信息如下:");
    		for (int i = 0; i < al.size(); i++) {
    			Object[] student = (Object[]) al.get(i);
    			massage = "姓名:" + String.valueOf(student[0]) + "  年龄:" + String.valueOf(student[1]) + " 性别:"
    					+ String.valueOf(student[2]) + "  成绩:" + String.valueOf(student[3]) + " 年级:"
    					+ String.valueOf(student[4]) + "  学号:" + String.valueOf(student[5]);
    			System.out.println(massage);
    		}
    	}
    
    	Comparator<Object> SidComparator = new Comparator<Object>() {
    		public int compare(Object op1, Object op2) {
    			Object[] st1 = (Object[]) op1;
    			Object[] st2 = (Object[]) op2;
    			// 按姓名排序
    			if ((int) st1[5] < (int) st2[5])
    				return -1;
    			else if ((int) st1[5] > (int) st2[5])
    				return 1;
    			else
    				return 0;
    		}
    	};
    
    	Comparator<Object> ScoreComparator = new Comparator<Object>() {
    		public int compare(Object op1, Object op2) {
    			Object[] st1 = (Object[]) op1;
    			Object[] st2 = (Object[]) op2;
    			if ((int) st1[3] < (int) st2[3])
    				return 1;
    			else if ((int) st1[3] > (int) st2[3])
    				return -1;
    			else
    				return 0;
    		}
    	};
    
    	public void stuArraySortwithSid() {
    		System.out.println("操作:学号排序");
    		long startTime = System.nanoTime(); // 获取开始时间
    		Collections.sort(al, SidComparator);
    		long endTime = System.nanoTime(); // 获取结束时间
    		String massage;
    		System.out.println("所有学生学籍信息如下:");
    		for (int i = 0; i < al.size(); i++) {
    			Object[] student = (Object[]) al.get(i);
    			massage = "姓名:" + String.valueOf(student[0]) + "  年龄:" + String.valueOf(student[1]) + " 性别:"
    					+ String.valueOf(student[2]) + "  成绩:" + String.valueOf(student[3]) + " 年级:"
    					+ String.valueOf(student[4]) + "  学号:" + String.valueOf(student[5]);
    			System.out.println(massage);
    		}
    		System.out.println("\n非记录结构学号排序花费时间: " + (endTime - startTime) + "ns");
    	}
    
    	public void stuArraySortwithScore() {
    		System.out.println("操作: 成绩排序");
    		long startTime = System.nanoTime(); // 获取开始时间
    		Collections.sort(al, ScoreComparator);
    		long endTime = System.nanoTime(); // 获取结束时间
    		String massage;
    		System.out.println("所有学生学籍信息如下:");
    		for (int i = 0; i < al.size(); i++) {
    			Object[] student = (Object[]) al.get(i);
    			massage = "姓名:" + String.valueOf(student[0]) + "  年龄:" + String.valueOf(student[1]) + " 性别:"
    					+ String.valueOf(student[2]) + "  成绩:" + String.valueOf(student[3]) + " 年级:"
    					+ String.valueOf(student[4]) + "  学号:" + String.valueOf(student[5]);
    			System.out.println(massage);
    		}
    		System.out.println("\n非记录结构成绩排序花费时间: " + (endTime - startTime) + "ns");
    	}
    
    	public void ArrayExcelInput() {
    		String excelpath;
    		String name, sex;
    		int score, age, sid, grade;
    		System.out.println("操作:导入数据");
    		System.out.println("请输入导入Excel文件路径:");
    		excelpath = scanner.next();
    		File file = new File(excelpath);
    		try {
    			// 创建输入流,读取Excel
    			InputStream is = new FileInputStream(file.getAbsolutePath());
    			// jxl提供的Workbook类
    			Workbook wb = Workbook.getWorkbook(is);
    			// Excel的页签数量
    			int sheet_size = wb.getNumberOfSheets();
    			for (int index = 0; index < sheet_size; index++) {
    				// 每个页签创建一个Sheet对象
    				Sheet sheet = wb.getSheet(index);
    				// sheet.getRows()返回该页的总行数
    				for (int i = 1; i < sheet.getRows(); i++) {
    					name = sheet.getCell(0, i).getContents();
    					age = Integer.parseInt(sheet.getCell(1, i).getContents());
    					sex = sheet.getCell(2, i).getContents();
    					score = Integer.parseInt(sheet.getCell(3, i).getContents());
    					grade = Integer.parseInt(sheet.getCell(4, i).getContents());
    					sid = Integer.parseInt(sheet.getCell(5, i).getContents());
    					Object[] student = new Object[6];
    					student[0] = name;
    					student[1] = age;
    					student[2] = sex;
    					student[3] = score;
    					student[4] = grade;
    					student[5] = sid;
    					al.add(student);
    				}
    				System.out.println("学生信息导入成功!");
    			}
    		} catch (FileNotFoundException e) {
    			System.err.println("出现错误:未能找到文件!学生信息导入失败!");
    			e.printStackTrace();
    		} catch (BiffException e) {
    			System.err.println("出现错误:不支持xlsx文件!学生信息导入失败!");
    			e.printStackTrace();
    		} catch (NumberFormatException e) {
    			System.err.println("出现错误:学生数据格式错误!学生信息导入失败!");
    			e.printStackTrace();
    		} catch (IOException e) {
    			System.err.println("出现错误:IO流异常!学生信息导入失败!");
    			e.printStackTrace();
    		}
    	}
    
    	public void ArrayExcelOutput() {
    		String excelpath;
    		System.out.println("操作:导出数据");
    		System.out.println("请输入导出Excel文件路径:");
    		excelpath = scanner.next();
    		try {
    			FileOutputStream fos = new FileOutputStream(excelpath);
    			WritableWorkbook wwb = Workbook.createWorkbook(fos);
    			// 创建工作表
    			WritableSheet ws = wwb.createSheet("学生学籍表", 10);
    			// 设置单元格的文字格式
    			WritableFont wf = new WritableFont(WritableFont.ARIAL, 12, WritableFont.NO_BOLD, false,
    					UnderlineStyle.NO_UNDERLINE, Colour.BLACK);
    			WritableCellFormat wcf = new WritableCellFormat(wf);
    			wcf.setVerticalAlignment(VerticalAlignment.CENTRE);
    			wcf.setAlignment(Alignment.LEFT);
    			ws.setColumnView(4, 10);
    			ws.setColumnView(5, 16);
    			ws.setColumnView(0, 14);
    
    			ws.addCell(new Label(0, 0, "姓名", wcf));
    			ws.addCell(new Label(1, 0, "年龄", wcf));
    			ws.addCell(new Label(2, 0, "性别", wcf));
    			ws.addCell(new Label(3, 0, "成绩", wcf));
    			ws.addCell(new Label(4, 0, "年级", wcf));
    			ws.addCell(new Label(5, 0, "学号", wcf));
    			for (int i = 1; i <= al.size(); i++) {
    				Object[] student = (Object[]) al.get(i - 1);
    				ws.addCell(new Label(0, i, String.valueOf(student[0]), wcf));
    				ws.addCell(new Label(1, i, String.valueOf(student[1]), wcf));
    				ws.addCell(new Label(2, i, String.valueOf(student[2]), wcf));
    				ws.addCell(new Label(3, i, String.valueOf(student[3]), wcf));
    				ws.addCell(new Label(4, i, String.valueOf(student[4]), wcf));
    				ws.addCell(new Label(5, i, String.valueOf(student[5]), wcf));
    			}
    			if (al.size() == 0)
    				wcf = new WritableCellFormat();
    			wwb.write();
    			wwb.close();
    			System.out.println("学生信息导出成功!");
    		} catch (IOException e) {
    			e.printStackTrace();
    		} catch (RowsExceededException e) {
    			e.printStackTrace();
    		} catch (WriteException e) {
    			e.printStackTrace();
    		}
    	}
    
    }

    简要对比分析

    可以发现非记录结构进行排序操作时使用时间更短,效率更高。这主要是因为记录结构如链式记录结构在访问结点成员时,花费时间是要比非记录结构要久的多的,效率也很低。不过这种记录结构如果进行的是增删操作,效率就反而会比数组实现的非记录结构要高。这就是在进行结构设计时根据不同需求所进行选择导致的效率差异。在可读性和可写性上,记录结构是要比不用记录结构的实现要好很多。


    展开全文
  • 学籍管理系统java实现

    万次阅读 多人点赞 2016-12-28 13:28:35
    学籍管理系统1.需求分析 1.1系统功能设计 (1)能够查询学生的基本信息,如:学号,姓名年龄,班级和性别 ... 学籍管理系统包括增加信息模块,删除信息模块,修改信息模块,查询信息模块,更新数据模块。系统管理人员

    学籍管理系统

    1.需求分析
    1.1系统功能设计
    (1)能够查询学生的基本信息,如:学号,姓名年龄,班级和性别
    (2)能对表格中的学生信息实现增加,删除,查找,修改等功能
    (3)能将数据保存到mysql数据库中,记录下来
    (4)能把数据通过mysql数据库进行数据更新

    1.2系统模块设计
    学籍管理系统包括增加信息模块,删除信息模块,修改信息模块,查询信息模块,更新数据模块。系统管理人员能够查询学生的学号,姓名,性别,年龄,所获奖项等信息。
    (具体的系统结构设计E-R图请翻阅附录2)

    2.系统实现
    本系统使用Java/JDBC语言编程的方法实现学籍管理。
    用Java实现mysql数据库,该技术主要是使用了导入JDBC.jar,使得Java程序员能够自由调用标准数据库访问类和接口。
    JDBC和Java结合使用,使用户可以容易的使用sql语句实现数据库的大部分操作,而Java的容易移植,适合于多种操作系统的特点配合JDBC使用,可以满足用户需求。

    2.1主要布局文件
    根据“一事一地原则”,进行该程序的布局,书写了相关文档供用户阅读,mysql中的数据也可以导出到“studinfo.txt”文件中,便于用户打印或者查阅。采用的JDBC为5.0.8版本。2.2关键接口段代码及其注解

    package jdbc;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class TestJDBC {
        public static void main(String[] args) {
    
            try {
                Class.forName("com.mysql.jdbc.Driver");
    
                // 建立与数据库的Connection连接
                // 数据库所处于的ip:127.0.0.1 (本机)
                // 数据库的端口号: 3306 (mysql专用端口号)
                // 数据库名称 studinfo
                // 编码方式 UTF-8
                // 账号 root
                // 密码 admin
    
                Connection c = DriverManager
                        .getConnection(
                                "jdbc:mysql://127.0.0.1:3306/studinfo?characterEncoding=UTF-8",
                                "root", "admin");
    
                System.out.println("连接成功,获取连接对象: " + c);
    
            } catch (ClassNotFoundException e) {
               e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }
    
        }
    }
    

    2.3 DAO接口

    package jdbc;
    
    import java.util.List;
    
    import charactor.student;
    
    public interface DAO{
        //增加
        public void add(student stud);
        //修改
        public void update(student stud);
        //删除
        public void delete(int id);
        //获取
        public Hero get(int id);
        //查询
        public List<student> list();
        //分页查询
        public List<student> list(int start, int count);
    }
    
    //详细sql语句和代码实现请查后页附录备注!
    

    2.4 设计方法
    采用单例化的设计模式,在分别设计增删查改功能时,分别独立的调用数据库,以免后期维护软件麻烦,本软件将连接数据库功能独立的拿出来作为一个类,在后期使用的时候只需要调用即可,无需反复实现大段的数据库连接代码,减少代码冗余,利于后期系统的进一步完善,以及便于其他程序员阅读。
    (下面为了老师阅读方便,只做sql-conncet连接的单例展示!)

    package util;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    
    public class DBUtil {
        static String ip = "127.0.0.1";
        static int port = 3306;
        static String database = "student";
        static String encoding = "UTF-8";
        static String loginName = "root";
        static String password = "admin";
        static{
            try {
                Class.forName("com.mysql.jdbc.Driver");
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            }
        }
    
        public static Connection getConnection() throws SQLException {
            String url = String.format("jdbc:mysql://%s:%d/%s?characterEncoding=%s", ip, port, database, encoding);
            return DriverManager.getConnection(url, loginName, password);
        }
    }

    2.5界面展示
    在界面下方通过按钮实现增删修改和导入功能,在下方的填选框中可键入学生id实现查询功能(这里假设id为该系统唯一的主键,触发回车即可)

    3.系统缺陷
    该系统存在很多bug,例如在导入导出数据的时候,新数据和旧数据之间的空行无法消除,新的学号插入时和旧学号可能会引起冲突,导致软件自动关闭,总体来说还有很多进步的地方,望进一步修复。
    其次就是,本次设计的软件的实体只有一个学生,较为单一,所以实现起来不是太麻烦,只是没有很多的余地将上课学的E-R图等设计的实现加入考察,希望寒假可以实现学生,课程,以及老师三表之间的查询,将这个系统进一步完善。

    4.文件系统实现和数据库实现的优劣
    文件系统面向某一应用程序,共享性差,冗余度大,数据独立性差,记
    录内有结构,整体无结构,由应用程序自己控制。
    数据库系统面向现实世界,共享性高,冗余度小,具有较高的物理独立性和一定的逻辑独性,整体结构化,用数据模型描述,由数据库管理系统提供数据的安全性、完整性、并发控制和恢复能力。提高了数据的共享性;降低了数据的冗余度,提高了数据的一致性;采用一定的数据模型实现数据结构化;数据由DBMS统一管理和控制,且更利于非计算机人士的操作和使用,降低了学习成本。并且随着数据库技术的发展和当今软件配合使用,使得用户都意识不到自己的软件在使用数据库功能。

    附录1:代码片段中的sql语句实现增删查改
    (功能的实现较为相同,这里展示第一个update,add,delete功能就不重复展示繁琐的代码了,只列出关键代码以供查阅)

    1.更新的实现
    // update 实现代码片段

    public update(Student stu) {  
            boolean result = false;  
            if (stu == null) {  
                return result;  
            }  
            try {  
                // check  
                if (queryBySno(stu.getSno()) == 0) {  
                    return result;  
                }  
                // 实现update
                String sql = "update student set id=?,name=?,class=?,sex=?";  
                String[] param = { stu.getId(), stu.getName(), stu.getClass(), stu.getSex() };  
                int rowCount = db.executeUpdate(sql, param);  
                if (rowCount == 1) {  
                    result = true;  
                }  
            } catch (SQLException se) {  
                se.printStackTrace();  
            } finally {  
                destroy();  
            }  
            return result;  
        }  

    2.delete实现代码(格式和类的建立都与1相同,更改sql语句即可)

    String sql = "delete from student where id=?”;  
    String[] param = { stu.getId()};  

    3.add实现代码

    String sql = "insert into student(id,name,class,sex) values(?,?,?,?)";  
    String[] param = { stu.getId(), stu.getName(), stu.getClass(), stu.getSex()};              

    4.查询实现(根据id查询)

    private int queryById(String id) throws SQLException {  
            int result = 0;  
            if ("".equals(id) || id == null) {  
                return result;  
            }  
            String checkSql = "select * from student where id=?";  
            String[] checkParam = { id };  
            rs = db.executeQuery(checkSql, checkParam);  
            if (rs.next()) {  
                result = 1;  
            }  
            return result;  
        }  
    
    }  
    
    展开全文
  • 设计基于数据库的学籍管理系统 1录入学基本信息的功能 2修改学生基本信息的功能 3查询学生基本信息的功能 4删除学生基本信息的功能 2)创新要求: 1建立学生基本信息档案后,设计学生成绩输入及查询界面; 2根据各...
  • 10011_学籍管理系统 技术 Spring + SpringMVC + MyBatis 工具 eclipse + tomact + mysql + jdk 功能详情 分为管理员、教师和学生三种权限 管理员 学科管理 班级管理 教师管理 学籍信息管理 课表管理 身体素质管理 ...

    10011_学籍管理系统

    技术
    Spring + SpringMVC + MyBatis
    工具
    eclipse + tomact + mysql + jdk

    功能详情
    分为管理员、教师和学生三种权限
    管理员
    学科管理
    班级管理
    教师管理
    学籍信息管理
    课表管理
    身体素质管理
    教务公告
    教师
    教务公告
    成绩管理
    学生
    教务公告
    学籍信息
    课表查询
    身体素质信息
    成绩查询
    密码修改
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 10011_学籍管理系统 技术 Spring + SpringMVC + MyBatis 工具 eclipse + tomact + mysql + jdk 功能详情 分为管理员、教师和学生三种权限 管理员 学科管理 班级管理 教师管理 学籍信息管理 课表管理 身体素质管理 ...

    10011_学籍管理系统

    技术
    Spring + SpringMVC + MyBatis
    工具
    eclipse + tomact + mysql + jdk

    功能详情
    分为管理员、教师和学生三种权限
    管理员
    学科管理
    班级管理
    教师管理
    学籍信息管理
    课表管理
    身体素质管理
    教务公告
    教师
    教务公告
    成绩管理
    学生
    教务公告
    学籍信息
    课表查询
    身体素质信息
    成绩查询
    密码修改
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 课程设计论文任务书;1;1;1; ;打开 text1.txt 文件查找所修改内容成功修改内容再查询学号为 08090104 的学生信息为如例图 8 ;6;7;8;9;10;11;12;13;14;15;16;17;18;19
  • 由于学员年龄,政治面貌等情况在变动,可以实现信息修改,及时调整学员的基本情况,本系统实现了,添加信息,修改信息,信息查询,删除信息功能。还实现了用不同的登录名可以进入不同的界面,从而实现权限操作,提高...
  • 学生学籍管理详细设计 学号_ 姓名_ 班级_ 设计题目 学生学籍管理 二设计内容 设计GUI学生学籍管理界面用户可以加入学生信息并对基本信息进行修改添加查询删除 三设计要求 进行简单的学生信息管理 四总体设计 (1)登陆...
  • 1.1管理信息系统的概述 1 1.2 课题背景 2 第二章 需求分析 3 2.1 功能需求 3 第三章 相关技术介绍 4 3.1 前台开发工具语言 4 3.2 数据库简介 4 第四章 系统模型构建 5 4.1 系统结构设计 5 4.2 数据库设计 6 4.2.1 ...
  • 基于java的学生学籍信息管理系统

    千次阅读 2020-10-17 12:23:13
    设计出一个学籍管理信息系统,对学生的信息、课程、成绩进行统一管理,便于查询、修改和删除。涉及到的主要内容有:体系结构规划、设计平台的搭建以及系统的设计。主要实现的功能模块有管理系统的功能介绍子系统、...
  • 网上管理系统包括三大模块:管理员模块、教师模块和学生模块。管理员模块包括五个小模块:学生注册、教师注册、删除学生、删除教师、修改密码;教师模块包括五个模块:添加课程、删除课程、登陆成绩、登陆补考成绩和...
  • 3 3 目录 II设计总说明 II 课程设计目的与需求分析 课程设计目的 需求分析 设计思路与主功能设计 2.1 设计...功能设计与介绍 具体功能的介绍和数据测试 登录界面 主功能界面 3.2.1 查询 3.2.2 添加 3.2.3 修改 3.2.4
  • 学籍管理系统

    2011-12-05 17:06:08
    学籍管理系统,功能包括信息录入、信息修改和查询以及信息删除。用java语言编写,内含开发文档
  • 数 据 库 课程设计说明书 题 目: 学生学籍信息管理系统 院 系 专业班级 学 号 学生姓名 指导教师 2010 年 5 月 31 日 学 生 姓 学 号 专业班级 名 设计题 学生学籍信息管理系统 目 数据库 MYSQL 开发语言 JAVA 1主要...
  • “学生学籍信息管理系统”是在面向对象思想和技术的指导下,采用面向对象的编程语言(Java)和面向对象的编程工具(eclispe)开发出来的小型应用程序。它的功能主要是将学生的基本信息经行录入、添加、删除、查找、...

空空如也

空空如也

1 2 3 4
收藏数 71
精华内容 28
关键字:

java学籍管理系统修改

java 订阅