ruby Todoリスト

TODO_FILE = "todo.txt"

def show_todo_list
  if File.exist?(TODO_FILE)
    File.open(TODO_FILE, "r") do |file|
      puts "TODOリスト:"
      puts file.readlines
    end
  else
    puts "TODOリストは空です。"
  end
end

def add_todo_item(item)
  File.open(TODO_FILE, "a") do |file|
    file.puts(item)
  end
  puts "TODOリストに「#{item}」を追加しました。"
end

def remove_todo_item(item_number)
  if File.exist?(TODO_FILE)
    lines = File.readlines(TODO_FILE)
    if item_number > 0 && item_number <= lines.size
      removed_item = lines.delete_at(item_number - 1).chomp
      File.open(TODO_FILE, "w") do |file|
        file.puts(lines)
      end
      puts "TODOリストから「#{removed_item}」を削除しました。"
    else
      puts "指定された番号のTODOアイテムが見つかりません。"
    end
  else
    puts "TODOリストは空です。"
  end
end

loop do
  puts "\n操作を選択してください:"
  puts "1. TODOリストを表示する"
  puts "2. 新しいTODOアイテムを追加する"
  puts "3. TODOアイテムを削除する"
  puts "4. 終了する"
  print "> "
  choice = gets.chomp.to_i

  case choice
  when 1
    show_todo_list
  when 2
    print "新しいTODOアイテムを入力してください: "
    new_item = gets.chomp
    add_todo_item(new_item)
  when 3
    show_todo_list
    print "削除するTODOアイテムの番号を入力してください: "
    item_number = gets.chomp.to_i
    remove_todo_item(item_number)
  when 4
    puts "プログラムを終了します。"
    break
  else
    puts "無効な選択です。もう一度選択してください。"
  end
end

CSS クラスセレクター

index.html

@charset "utf-8";

body {
  margin: 0;
}

.container {
  width: 400px;
  margin: 32px auto 0;
  border: 8px solid blue;
}

.box-1 {
  width: 100px;
  height: 100px;
  background-color: pink;
}

.box-2 {
  width: 100px;
  height: 50px;
  background-color: skyblue;
}

.box-3 {
  width: 100px;
  height: 100px;
  background-color: orange;
}

style.css

@charset "utf-8";

body {
  margin: 0;
}

.container {
  width: 400px;
  margin: 32px auto 0;
  border: 8px solid blue;
}

.box-1 {
  width: 100px;
  height: 100px;
  background-color: pink;
}

.box-2 {
  width: 100px;
  height: 50px;
  background-color: skyblue;
}

.box-3 {
  width: 100px;
  height: 100px;
  background-color: orange;
}

Java タスク管理

package sample;
import java.util.ArrayList;
import java.util.Scanner;

public class TaskManager {
    private static ArrayList<Task> tasks = new ArrayList<>();
    private static Scanner scanner = new Scanner(System.in);

    public static void main(String[] args) {
        boolean running = true;

        while (running) {
            System.out.println("1. タスクの追加");
            System.out.println("2. タスクの削除");
            System.out.println("3. タスクの表示");
            System.out.println("4. タスクの状態を変更");
            System.out.println("5. 終了");
            System.out.print("操作を選択してください: ");
            int choice = scanner.nextInt();
            scanner.nextLine(); // 改行を読み飛ばす

            switch (choice) {
                case 1:
                    addTask();
                    break;
                case 2:
                    deleteTask();
                    break;
                case 3:
                    displayTasks();
                    break;
                case 4:
                    changeTaskStatus();
                    break;
                case 5:
                    running = false;
                    break;
                default:
                    System.out.println("無効な選択です。");
            }
        }

        scanner.close();
    }

    private static void addTask() {
        System.out.print("タスクの名前を入力してください: ");
        String name = scanner.nextLine();
        System.out.print("タスクの期限を入力してください (例: YYYY-MM-DD): ");
        String deadline = scanner.nextLine();
        System.out.print("タスクの優先度を入力してください (高/中/低): ");
        String priority = scanner.nextLine();
        tasks.add(new Task(name, deadline, priority));
        System.out.println("タスクを追加しました。");
    }

    private static void deleteTask() {
        if (tasks.isEmpty()) {
            System.out.println("削除するタスクはありません。");
            return;
        }

        System.out.println("削除するタスクを選択してください:");
        displayTasks();
        System.out.print("削除するタスクの番号を入力してください: ");
        int index = scanner.nextInt();
        scanner.nextLine(); // 改行を読み飛ばす

        if (index < 1 || index > tasks.size()) {
            System.out.println("無効な番号です。");
        } else {
            Task deletedTask = tasks.remove(index - 1);
            System.out.println(deletedTask.getName() + " を削除しました。");
        }
    }

    private static void displayTasks() {
        if (tasks.isEmpty()) {
            System.out.println("タスクはありません。");
        } else {
            System.out.println("現在のタスク:");
            for (int i = 0; i < tasks.size(); i++) {
                System.out.println((i + 1) + ". " + tasks.get(i));
            }
        }
    }

    private static void changeTaskStatus() {
        if (tasks.isEmpty()) {
            System.out.println("タスクはありません。");
            return;
        }

        System.out.println("状態を変更するタスクを選択してください:");
        displayTasks();
        System.out.print("状態を変更するタスクの番号を入力してください: ");
        int index = scanner.nextInt();
        scanner.nextLine(); // 改行を読み飛ばす

        if (index < 1 || index > tasks.size()) {
            System.out.println("無効な番号です。");
        } else {
            Task task = tasks.get(index - 1);
            System.out.print("新しい状態を入力してください (未完了/進行中/完了): ");
            String newStatus = scanner.nextLine();
            task.setStatus(newStatus);
            System.out.println(task.getName() + " の状態を " + newStatus + " に変更しました。");
        }
    }
}

class Task {
    private String name;
    private String deadline;
    private String priority;
    private String status = "未完了"; // デフォルトの状態は未完了

    public Task(String name, String deadline, String priority) {
        this.name = name;
        this.deadline = deadline;
        this.priority = priority;
    }

    public String getName() {
        return name;
    }

    public String getStatus() {
        return status;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    @Override
    public String toString() {
        return "タスク名: " + name + ", 期限: " + deadline + ", 優先度: " + priority + ", 状態: " + status;
    }
}