[Data Structure] Net. Data Structure (ตัวอย่าง)

โจทย์ จงจัดเก็บข้อมูลนิสิตได้แก่ รหัสนิสิต, ชื่อนิสิต, คะแนนสอบกลางภาค, คะแนนสอบปลายภาค, คะแนนควิช, คะแนน Project และ คะแนนเข้าห้องเรียง โดยใช้ ArrayIndexList จาก Library ของ Net. Data Structure

การออกแบบ และสิ่งที่ต้องรู้

  •  ArrayIndexList คือ โครงสร้างข้อมูล List หรือ Queue ซึ่งมีการจัดการข้อมูลแบบ FIFO (First In First Out) ง่ายๆเลย คือ ใครมาก่อนได้ก่อนนั้นเอง ตัวอย่างเช่น การเข้าแถวซื้ออาหาร
  • Class ListTestNet เป็น Main ทำหน้าที่ทดสอบการใช้งาน โดยมีหน้าที่ต่างๆ ได้แก่
    • เพิ่มข้อมูล
    • ดึงข้อมูลออก
    • ตรวจสอบว่า List ว่าง หรือไม่
    • ลบข้อมูล
    • แก้ไขข้อมูล
    • แสดงขนาดของ List
    • ออกจากโปรแกรม
  • Class Student เป็น Data Class ไว้จัดเก็บข้อมูลนิสิต

โปรแกรมที่เขียนออกมา(ดูความอธิบายเพิ่มเติมตาม comment ได้เลย)

  • Class ListTestNet

[java]import javax.swing.*;
import net.datastructures.*;
class ListTestNet
{
public static void main(String[] args)
{
//ประกาศ loop ให้มีชนิดข้อมูลแบบ booloean เพื่อตรวจสถานะการวนloop
boolean loop = true;
//ประกาศ curIdx ให้มีชนิดข้อมูลเป็น Integer
int curIdx = 0;
//สร้าง instance ของ Class ArrayIndexList มีชื่อว่า list
ArrayIndexList list = new ArrayIndexList();
try
{
while(loop)
{
//ขึ้นหน้าจอแสดงตัวเลือกพร้อมทำการรับค่า
int pick = Integer.parseInt(JOptionPane.showInputDialog(null,"Enter your choice:\n1.Add\n2.Get\n3.IsEmpty\n4.Remove" + "\n5.Set update\n6.Size\n7.quit"));

//ถ้าตรวจสอบได้ค่า 1
if(pick == 1)
{
//ทำการใส่ข้อมูลเข้าไป โดยดึงมาจาก method getData
list.add(curIdx,getData());
curIdx++;
//ขึ้นข้อความแสดงการทำงานเสร็จสิ้น
JOptionPane.showMessageDialog(null,"Add data success");
}
else if(pick == 2)
{
if (curIdx > 0)
curIdx--;
//ทำการดึงข้อมูลออกมาแสดง
Student temp = (Student)list.get(curIdx);
//ใช้ method display เพื่อทำการแสดงข้อมูล
display(temp);
}
else if(pick == 3)
{
//ตรวจสอบว่า list ว่างหรือไม่
if (list.isEmpty())
{
//ขึ้นข้อความแสดงการทำงาน
JOptionPane.showMessageDialog(null,"list is empty");
}
}
else if(pick == 4)
{
if (curIdx > 0)
curIdx--;
//System.out.println(curIdx);
//ทำการลบข้อมูล
list.remove(curIdx);
//ขึ้นข้อความแสดงการทำงานเสร็จสิ้น
JOptionPane.showMessageDialog(null,"remove data success");
}
else if(pick == 5)
{
//ให้ตัว update ข้อมูล
list.set(curIdx,getData());
//ขึ้นข้อความแสดงการทำงานเสร็จสิ้น
JOptionPane.showMessageDialog(null,"Now at first node");
}
else if(pick == 6)
{
//ทำหาขนาด
int s = list.size();
//ขึ้นข้อความแสดงการทำงานเสร็จสิ้น
JOptionPane.showMessageDialog(null,"Size: "+s);
}
else if(pick == 7)
{
//ให่ค่า loop มีค่าเป็น false
loop = false;
//ขึ้นข้อความแสดงการทำงานเสร็จสิ้น
JOptionPane.showMessageDialog(null,"quit");
}
}
}
catch (Exception e)
{
JOptionPane.showMessageDialog(null,e.getMessage());
e.printStackTrace();
}
}
public static Student getData(){
//ประกาศตัวแปร id, name เป็น String
String id,name;
//ประกาศตัวแปร midScore, finalScore, quizScore, proScore, attentScore เป็น integer
int midScore, finalScore, quizScore, proScore, attentScore;

//รับข้อมูลเข้ามาผ่านทาง JOptionPane
id = JOptionPane.showInputDialog(null,"Input Id:");
name = JOptionPane.showInputDialog(null,"Input Name:");
midScore = Integer.parseInt(JOptionPane.showInputDialog(null,"Input Midterm Score:"));
finalScore = Integer.parseInt(JOptionPane.showInputDialog(null,"Input Final Score:"));
quizScore = Integer.parseInt(JOptionPane.showInputDialog(null,"Input Quiz Score:"));
proScore = Integer.parseInt(JOptionPane.showInputDialog(null,"Input Project Score:"));
attentScore = Integer.parseInt(JOptionPane.showInputDialog(null,"Input Attentdant Score:"));
//ประกาศตัวแปร Student ชื่อ std
Student std = new Student(id,name,midScore,finalScore,quizScore,proScore,attentScore);
return std;
}

public static void display(Student std)
{
//แสดงข้อมูลที่ได้ออกมา
System.out.println("id: "+std.getId());
System.out.println("name: "+std.getName());
System.out.println("midterm: "+std.getMid());
System.out.println("final: "+std.getFinal());
System.out.println("quiz: "+std.getQuiz());
System.out.println("project: "+std.getPro());
System.out.println("attentdant: "+std.getAttent());
System.out.println("total: "+std.getTotal());
System.out.println("-------------------------------------------");
}
}
[/java]

  • Class Student

[java]class Student
{
//Data Member
private String name, id;
private int midScore, finalScore, quizScore, proScore, attentScore;

public Student(String id ,String name ,int midScore, int finalScore, int quizScore, int proScore, int attentScore)
{
this.name = name;
this.id = id;
this.midScore = midScore;
this.finalScore = finalScore;
this.quizScore = quizScore;
this.proScore = proScore;
this.attentScore = attentScore;
}
//id
public String getId()
{
return id;
}
//name
public String getName()
{
return name;
}
//mid
public int getMid()
{
return midScore;
}
//final
public int getFinal()
{
return finalScore;
}
//quiz
public int getQuiz()
{
return quizScore;
}
//pro
public int getPro()
{
return proScore;
}
//attent
public int getAttent()
{
return attentScore;
}
public int getTotal()
{
return midScore+finalScore+quizScore+proScore+attentScore;
}
}
[/java]

ผลลัพธ์การทำงาน


Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts to your email.