Giter Club home page Giter Club logo

shiyan5's Introduction

计181 于紫萱 2018310753

综合性实验 学生选课系统设计

一、实验目的

1.分析学生选课系统,将本学期所学知识进行系统的梳理和结合,完善学生选课系统,以此为工具更好地理解、运用本学期所学知识

2.使用GUI窗体及其组件设计窗体界面,有文本框、标签、按钮等组件,形成一个简单的选课系统界面

3.完成学生选课过程业务逻辑编程,通过清晰的逻辑,理清各组件之间的关系,完成监听事件的设定

4.基于文件保存并读取数据,将学生所选课程,追加到stu.txt文本中

5.处理异常,学会使用try catch语句,能通过throw语句抛出异常

二、实验要求

1.设计GUI窗体,支持学生注册、课程新加、学生选课、学生退课、打印学生选课列表等操作

2.基于事件模型对业务逻辑编程,实现在界面上支持上述操作

3.针对操作过程中可能会出现的各种异常,做异常处理

4.基于输入/输出编程,支持学生、课程、教师等数据的读写操作

三、实验过程

本次实验需要完成学生选课操作,即录入学生信息,学生选择课程,并将相应内容基于输入/输出存储文件。

先是创建了JFrame及相应组件,创建好一个GUI窗体,通过想要实现的功能,来布局组件,包含姓名、班级、学号的文本框,和TextArea,在选择相应课程后,在TextArea中显示学生的姓名、班级、学号信息,便于学生核对信息,在信息无误之后,点击确定键,则利用File()创建一个stu.txt文件,将TextArea中内容写入txt文件,在GUI窗体中还设置了退出按钮,通过监听器的设置进行退出窗口操作。

本次实验完成度,依旧,不高。构思的设计随着自己能力的不足,逐步压缩精简。但是本次实验在期末考试梳理了这学期所学重点后,逻辑较以往明显清晰,成功的构造了监听接口和监听事件,虽然OutputStream和InputStram在代码中没有真正实现意义,但也尝试着将其加入。

四、核心代码 1.GUI窗体 将一些在后续编程中需要注册监听事件的对象写在方法外,成为成员变量,便于后于方法调用

 class A extends xx implements ActionListener{
 JFrame xxx= new JFrame();
 A(){
 add(xxx);
 ....
 }
 }

2.监听器注册 需要多个监听器对不同组件进行相应的操作,注册监听事件

Button3 Tuichu = new Button3();
b2.addActionListener(Tuichu);

对监听事件进行相应处理,创建类,实现监听接口

class Button3 implements ActionListener{
   public void actionPerformed(ActionEvent e) {
	  System.exit(0);	
   }

}

3.异常处理 在actionPerformed(ActionEvent e)方法内进行相应的异常处理

try{
....
}
catch(Exception){
...
}

4.文件写入 此部分代码未实现(我的代码系统提示需要get的文件不是全局变量)

  String save=txt.append();
		FileWriter f1 = new FileWriter("stu.txt");
		f1.write(save);
		f1.close();
  
  
public void testFileOutputStream() {
    File file = new File("test7.txt");
    FileOutputStream fos = null;
    try {
        fos = new FileOutputStream(file);
        fos.write(new String("...").getBytes());
    }
    catch (Exception e) {
        e.printStackTrace();
    } 
    finally {
   
        if (fos != null) {
            try {
                fos.close();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

五、程序运行

能够实现窗体组件的的布局,能够实现将输入在文本框的信息追加到文本区,将所选课程也追加到文本区,点击确定键,将文本区所呈现的信息写入到一个.txt文件中(此部分目前来讲我还没能实现),点击退出键退出程序。

六、实验及学期总结

通过期末的系统性复习,为本次编程提供充足的理论的基础,对这些语句、方法的使用,有了进一步的理解,在本次代码实现的时候,有了更好的理解。

本次实验为综合性实验,将GUI、监听事件、异常处理、文件输入输出结合在一起,呈现出一个初步的学生选课系统,我在本次实验中,创建了简单的窗体,并设置了监听器,将输入的文字进行追加到文本区,设置了异常处理机制,也编写了输入输出代码,但是此部分没有实现。在本次实验中,虽然最新学到的输入输出流没有实现,但是在之前实验中没有实现的,例如监听器和异常处理机制,有了进步,更了解了接口和继承的区别,对Java语言的框架有了更清晰的逻辑关系。在此次实验和期末考试前,对于这门语言我还是处于一个非常迷糊的状态,通过系统性的学习,有了好转,了解了类与类间的关系,接口与继承的区别和使用方法,如何构造方法,如在不同类中相互调用函数,使程序更加清晰简便、效率更高,学会了创建窗体、监听器、异常处理、文件输入输出等方法的使用,编程素养不断提升。

在本次实验再次翻阅资料的时候,发现在ppt中有许多和考试以及实验相关的知识点,由于自己的付出不够多,脑子不够用,导致我每次实验完成度上都不好,包括最后的考试中情况也很糟糕。但通过理论与实践的相结合,认知和操作上还是呈不断进步的趋势,虽然这门课已经结束,但是仍会保持热情的态度学习计算机语言与相关知识。感谢老师的认真教学,如果可以还是很希望再次上张老师的课的,当然,除重修以外。

shiyan5's People

Contributors

tomato-ing avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.