文章内容简要概述
本篇文章记录的是作者在编写大学生创新课题项目管理系统的一些感受以及具体的代码实现,希望能够通过本篇文章给大家的编程学习带来一些帮助!
项目简介:
随着教育部对培养大学生创新创业能力的要求进一步提高,信息化时代的到来,互联网+等大学生创新创业实训项目在最近几年进一步的兴起,能够快速,准确的找到与大学生创新创业项目相关的课题,查找本学校对大学生创新创业项目相关授课指导教师,成为当代致力参加大学生创新创业实践项目的学生迫切需求。该系统致力于解决该问题,为大学生创新实践提供便利。
开发背景:
随着互联网时代的到来,IT行业的兴起,实现信息间的交互性显得更加重要,通过技术手段解决用户在查找、登记信息遇到的困难,减少人力、物力的消耗成为各企业发展的刚需。目前已经有部分高校为了提高大学生创新创业能力,将本校大学生创业相关的信息录入大学生创新创业系统,以解决学生寻找指导教师,借鉴前辈经验的困难。
借助该平台,准备参与大学生创新创业实训的学生还能够查找学校提供的大学生创业工作室信息,可以满足团队讨论的需求。
鉴于部分大学生有思维、勇于挑战但是时间观念不强,不注意创新创业项目申报时间的问题,该系统设计了大创比赛信息模块,对即将举办的比赛做到实时更新,满足同学实时掌握大赛具体信息的需求
为了便于广大师生借鉴前辈经验,设计大创作品信息模块,将比赛级别分为国家级、省级、市级三个级别,用户可以根据自身需求,查找不同级别的作品信息。
由此,通过大学生创新课题项目管理系统可以有效实现网络化办公,形成一个指导教师与参赛学生动态交流的网络环境,有效促进师生对创新创业能力培养的热情,全面、准确的为师生提供有关创新比赛的各项信息。有鉴于此,该系统能够有效的为创新教育研究机构,高校创新创业学院等单位使用,提供高效信息管理与信息交互,同时还能够为参赛人员提供真实、有效的依据。
开发环境:
使用eclipse,JDK1.7版本
模块分为四个部分:
指导教师模块
大创作品信息模块
大创比赛信息模块
大创工作室模块
存储数据使用的是txt文件。
具体四个txt文件如下:
**
指导教师.txt
大创作品信息.txt
大创工作室信息.txt
大创比赛信息.txt
代码实现:(用Java编写)
Adviser
public class Adviser {
private String wnumber; //工号
private String wname; //姓名
private String wsex; //性别
private String wrank; //职称
private String wacedemy;//所属学院
public String getWnumber() {
return wnumber;
}
public void setWnumber(String wnumber) {
this.wnumber = wnumber;
}
public String getWname() {
return wname;
}
public void setWname(String wname) {
this.wname = wname;
}
public String getWsex() {
return wsex;
}
public void setWsex(String wsex) {
this.wsex = wsex;
}
public String getWrank() {
return wrank;
}
public void setWrank(String wrank) {
this.wrank = wrank;
}
public String getWacedemy() {
return wacedemy;
}
public void setWacedemy(String wacedemy) {
this.wacedemy = wacedemy;
}
}
TeacherDemo//指导教师类
import java.io.*;
import java.util.ArrayList;
import java.util.Scanner;
public class TeacherDemo {
//文件存放路径
private String path = "d:\\指导教师.txt";
//判断是否退出系统
private static boolean pd=true;
public static void main(String[] args)throws IOException {
while (pd) {
TeacherDemo teacherDemo = new TeacherDemo();
//功能提示信息
teacherDemo.Tips();
//功能选择
teacherDemo.function(teacherDemo);
//循环间隔
System.out.println(" ");
}
}
//功能提示
public void Tips() {
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("@请选择你要使用的功能@");
}
//功能选择
public void function(TeacherDemo teacherDemo) throws IOException {
switch (teacherDemo.ScannerInt()) {
//查询所有指导教师信息
case 1:
teacherDemo.showteacher(teacherDemo.path);
break;
//添加指导教师信息
case 2:
teacherDemo.addTeacher(teacherDemo.path);
break;
//更改指导教师信息
case 3:
teacherDemo.updateteacher(teacherDemo.path);
break;
//删除指导教师信息
case 4:
teacherDemo.deleteteacher(teacherDemo.path);
break;
//退出
case 5:
pd=false;
break;
//输入无效
default: {
System.out.println("请重新输入");
//再次输入
function(teacherDemo);
break;
}
}
}
//输入功能
public int ScannerInt() {
Scanner scanner = new Scanner(System.in);
int y = scanner.nextInt();
return y;
}
//输入指导教师信息
public String scannerString() {
Scanner scanner = new Scanner(System.in);
String x = scanner.next().toString();
return x;
}
/*
读数据 利用ArrayList动态数组
*/
//显示所有指导教师信息
void showteacher(String path) throws IOException {
//读数据到集合中
ArrayList<Adviser> teacherArrList = new ArrayList<Adviser>();
//0是判断
readData("0", path, teacherArrList);
if (teacherArrList.size() == 0) {
System.out.println("无可查询信息");
return;
}
print(teacherArrList);
}
//输出信息
static void print(ArrayList<Adviser> teacherArrList) {
for (int i = 0; i < teacherArrList.size(); i++) {
Adviser adviser = teacherArrList.get(i);
System.out.println(adviser.getWnumber()+" "+adviser.getWname()+" "+adviser.getWsex()+" "+adviser.getWrank()+" "+adviser.getWacedemy());
}
}
//保存对象信息
public static Adviser teacher(String[] str){
Adviser teacher = new Adviser();
teacher.setWnumber(str[0]);
teacher.setWname(str[1]);
teacher.setWsex(str[2]);
teacher.setWrank(str[3]);
teacher.setWacedemy(str[4]);
return teacher;
}
//将文件读入集合
static void readData(String onlyteacher, String path, ArrayList< Adviser> teacherArrList) throws IOException {
//利用处理流提高性能
Scanner scanner = new Scanner(new FileInputStream(path), "GBK").useDelimiter("\\A");
String fileContent = scanner.hasNext() ? scanner.next() : "";
String[] lines = fileContent.split("\\r\\n");
for (String line : lines) {
String[] str = line.split("\\s+");
if (str.length < 5) {
continue;
}
Adviser tea = new Adviser();
tea.setWnumber(str[0]);
tea.setWname(str[1]);
tea.setWsex(str[2]);
tea.setWrank(str[3]);
tea.setWacedemy(str[4]);
teacherArrList.add(tea);
}
}
//将集合写入文件
public void writeData(String path, ArrayList< Adviser> teacherArrList) throws IOException {
BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(path));
for (int i = 0; i < teacherArrList.size(); i++) {
//获取对象
Adviser teacher = teacherArrList.get(i);
//使用StringBuilder提高效率
StringBuilder stringBuilder = new StringBuilder();
//获取并保存数据
stringBuilder.append(teacher.getWnumber()).append(" ").append(teacher.getWname()).append(" ").append(teacher.getWsex()).append(" ").append(teacher.getWrank()).append(" ").append(teacher.getWacedemy());
//写入
bufferedWriter.write(stringBuilder.toString());
//换行
bufferedWriter.newLine();
//强制刷新
bufferedWriter.flush();
}
}
//增添指导教师信息
public void addTeacher(String path) throws IOException {
ArrayList< Adviser> teacherArrList = new ArrayList< Adviser>();
readData("0", path, teacherArrList);
boolean flag = false;
String wnumber;
while (true) {
System.out.println("请输入需要添加的工号");
wnumber = scannerString();
//判断指导教师是否已经存在
for (int i = 0; i < teacherArrList.size(); i++) {
Adviser t = teacherArrList.get(i);
if (t.getWnumber().equals(wnumber)) {
flag = true;
break;
}
}
if (flag) {
System.out.println("指导教师信息已存在,请重新操作");
break;
} else
break;
}
System.out.println("请输入需要添加的工号");
wnumber = scannerString();
System.out.println("请输入需要添加的指导教师姓名");
String wname = scannerString();
System.out.println("请输入需要添加的指导教师性别");
String wsex = scannerString();
System.out.println("请输入需要添加的指导教师职称");
String wrank= scannerString();
System.out.println("请输入需要添加的指导教师所属学院");
String wacedemy= scannerString();
Adviser teacher = new Adviser();
teacher.setWnumber(wnumber);
teacher.setWname(wname);
teacher.setWsex(wsex);
teacher.setWrank(wrank);
teacher.setWacedemy(wacedemy);
teacherArrList.add(teacher);
writeData(path, teacherArrList);
System.out.println("添加成功");
}
//删除教师信息
private void deleteteacher(String path) throws IOException {
ArrayList< Adviser> teacherArrList = new ArrayList< Adviser>();
readData("0", path, teacherArrList);
System.out.println("请输入要删除的指导教师信息(工号/姓名)");
String wnumber_name = scannerString();
Boolean flag = false;
int x = 0;
for (int i = 1; i < teacherArrList.size(); i++) {
if (wnumber_name.equals(teacherArrList.get(i).getWnumber()) || wnumber_name.equals(teacherArrList.get(i).getWname())) {
flag = true;
x = i;
break;
}
}
if (flag) {
teacherArrList.remove(x)