学生管理系统

public class MainActivity extend Activity implements OnClickListener{

  private EditText etName;

  private EditText etSex;

  private EditText etAge;

  private LinearLayout llStudentList;

  private List<Student> studentList;

  private String filePath;

 

  @Override

  protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    init();

  }

  private void init(){

    etName = (EditText) findViewById(R.id.et_name);

    etSex = (EditText) findViewById(R.id.et_sex);

    etAge = (EditText) findViewById(R.id.et_age);

    llStudentList = (LinearLayout) findViewById(R.id.ll_student_list); 

    findViewById(R.id.btn_save).setOnClickListener(this);

    findViewById(R.id.btn_restore).setOnClickListener(this)

    findViewById(R.id.btn_add_student).setOnClickListener(this);

    studentList = new ArrayList<Student>();

    filePath = Environment.getExternalStorageDirectory().getPath() + "/student.xml";

    

@Override
public void onClick(View v) {
  switch (v.getId()) {
  case R.id.btn_save:
  if(studentList.size() > 0) {
  if(saveStudent2Local()) {
    Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show();
  } else {
    Toast.makeText(this, "保存失败", 0).show();
  }
  } else {
    Toast.makeText(this, "当前没有数据", 0).show();
}
  break;
  case R.id.btn_restore:
  if(restoreStudentFromLocal()) {
    Toast.makeText(this, "恢复成功", 0).show();
  } else {
    Toast.makeText(this, "恢复失败", 0).show();
  }
  break;
  case R.id.btn_add_student:
  addStudent();
  break;
  default:
  break;
}
}

private boolean restoreStudentFromLocal() {
  try {
    XmlPullParser parser = Xml.newPullParser();
    parser.setInput(new FileInputStream(filePath), "utf-8");

    int eventType = parser.getEventType();

    studentList.clear();

  Student student = null;
  String nodeName = null;
  while(eventType != XmlPullParser.END_DOCUMENT) {
    nodeName = parser.getName();
  switch (eventType) {
    case XmlPullParser.START_TAG:
  if("student".equals(nodeName)) {
    student = new Student();
  } else if("name".equals(nodeName)) {
    student.setName(parser.nextText());
  } else if("sex".equals(nodeName)) {
    student.setSex(parser.nextText());
  } else if("age".equals(nodeName)) {
    student.setAge(Integer.valueOf(parser.nextText()));
}
  break;
  case XmlPullParser.END_TAG:
  if("student".equals(nodeName)) {
    studentList.add(student);
}
  break;
  default:
  break;
}
  eventType = parser.next();
}
  refreshStudentList();

  return true;
  } catch (Exception e) {
    e.printStackTrace();
  }
  return false;
}

private void refreshStudentList() {
    llStudentList.removeAllViews();
    TextView childView;
  for (Student student : studentList) {
    childView = new TextView(this);
    childView.setTextSize(23);
    childView.setTextColor(Color.BLACK);
    childView.setText("  " + student.getName() + "  " + student.getSex() + "  " + student.getAge());
    llStudentList.addView(childView);
  }
}

  private boolean saveStudent2Local() {
    try {
    XmlSerializer serializer = Xml.newSerializer();
    serializer.setOutput(new FileOutputStream(filePath), "utf-8");

    serializer.startDocument("utf-8", true);
     serializer.startTag(null, "infos");
  for (Student stu : studentList) {
  serializer.startTag(null, "student");

  

    serializer.startTag(null, "name");
    serializer.text(stu.getName());
    serializer.endTag(null, "name");

    serializer.startTag(null, "sex");
    serializer.text(stu.getSex());
    serializer.endTag(null, "sex");

    serializer.startTag(null, "age");
    serializer.text(String.valueOf(stu.getAge()));
    serializer.endTag(null, "age");

    serializer.endTag(null, "student");
  }
    serializer.endTag(null, "infos");
    serializer.endDocument();
    return true;
  } catch (Exception e) {
  e.printStackTrace();
  }
  return false;
  }

private void addStudent() {
    String name = etName.getText().toString();
    String sex = etSex.getText().toString();
    String age = etAge.getText().toString();

/**
* TextUtils.isEmpty(name) 判断name是否为空
*/
  if(!TextUtils.isEmpty(name) 
  && !TextUtils.isEmpty(sex) 
  && !TextUtils.isEmpty(age)) {
  studentList.add(new Student(name, sex, Integer.valueOf(age)));
  TextView childView = new TextView(this);
  childView.setTextSize(23);
  childView.setTextColor(Color.BLACK);
  childView.setText("  " + name + "  " + sex + "  " + age);
  llStudentList.addView(childView);
  } else {
  Toast.makeText(this, "请正确输入", 0).show();
  }

  } 

}

学生信息管理系统 源码和报告 要求一个简单的界面系统,可实现对界面内显示的功能进行使用,并且用完后可重新返回界面。 主要功能一共有9项:0返回。1.编辑学生信息。2.显示学生信息。3.查询学生信息。4.更新学生信息5.添加学生信息。6.删除学生信息。7.计算学生成绩。8显示学生名次。 输入学生信息:输入信息包括学生姓名,性别,学生ID,以及学生考试的两门课的成绩。 显示学生信息:显示用户所输入所有的学生信息。 查询学生信息:查 询已入录的信息,要求有按姓名查找和按ID查找两种方式。 更新学生信息: 添加学生信息:入录新的学生信息。 删除学生信心:删除指定学生的信息。 计算学生成绩:计算学生两门课的成绩,计算总分和平均成绩。 显示学生名次:对学生的总成绩进行排名,并且按照成绩从高到低的输出。 返回:返回上一层界面要求一个简单的界面系统,可实现对界面内显示的功能进行使用,并且用完后可重新返回界面。 主要功能一共有9项:0返回。1.编辑学生信息。2.显示学生信息。3.查询学生信息。4.更新学生信息5.添加学生信息。6.删除学生信息。7.计算学生成绩。8显示学生名次。 输入学生信息:输入信息包括学生姓名,性别,学生ID,以及学生考试的两门课的成绩。 显示学生信息:显示用户所输入所有的学生信息。 查询学生信息:查 询已入录的信息,要求有按姓名查找和按ID查找两种方式。 更新学生信息: 添加学生信息:入录新的学生信息。 删除学生信心:删除指定学生的信息。 计算学生成绩:计算学生两门课的成绩,计算总分和平均成绩。 显示学生名次:对学生的总成绩进行排名,并且按照成绩从高到低的输出。 返回:返回上一层界面
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值