본문 바로가기
Dart/Dart 100제

Dart 100제 86 ~ 90 (실용문제)

by Maccrey Coding 2024. 8. 26.
반응형

 

86. 간단한 계산기 만들기: 간단한 사칙연산을 수행하는 계산기를 작성하세요.

문제
Dart를 사용하여 간단한 덧셈, 뺄셈, 곱셈, 나눗셈을 수행하는 계산기를 구현하세요. 사용자로부터 두 개의 숫자와 연산자를 입력받아 결과를 출력하세요.

풀이
Dart에서는 간단한 사용자 입력과 조건문을 활용하여 계산기를 구현할 수 있습니다.

import 'dart:io';

void main() {
  print("첫 번째 숫자를 입력하세요:");
  double num1 = double.parse(stdin.readLineSync()!);

  print("연산자를 입력하세요 (+, -, *, /):");
  String operator = stdin.readLineSync()!;

  print("두 번째 숫자를 입력하세요:");
  double num2 = double.parse(stdin.readLineSync()!);

  double result;

  switch (operator) {
    case '+':
      result = num1 + num2;
      break;
    case '-':
      result = num1 - num2;
      break;
    case '*':
      result = num1 * num2;
      break;
    case '/':
      if (num2 != 0) {
        result = num1 / num2;
      } else {
        print("0으로 나눌 수 없습니다.");
        return;
      }
      break;
    default:
      print("유효하지 않은 연산자입니다.");
      return;
  }

  print("결과: $num1 $operator $num2 = $result");
}

설명

  • stdin.readLineSync()를 사용해 사용자 입력을 받고, double.parse()로 숫자로 변환합니다.
  • switch 문을 사용하여 입력된 연산자에 따라 사칙연산을 수행합니다.
  • 결과를 출력하고, 나눗셈에서 0으로 나누는 경우 오류를 처리합니다.

87. To-do 리스트 만들기: 할 일(To-do) 리스트를 구현하고 추가, 삭제, 조회 기능을 제공하세요.

문제
할 일(To-do) 리스트를 구현하여 사용자가 할 일을 추가, 삭제, 조회할 수 있는 프로그램을 작성하세요.

풀이
Dart의 리스트(List)를 사용하여 할 일을 관리할 수 있습니다.

import 'dart:io';

void main() {
  List<String> todoList = [];

  while (true) {
    print("\n원하는 작업을 선택하세요: 1. 추가 2. 삭제 3. 조회 4. 종료");
    String choice = stdin.readLineSync()!;

    if (choice == '1') {
      print("추가할 할 일을 입력하세요:");
      String task = stdin.readLineSync()!;
      todoList.add(task);
      print("할 일이 추가되었습니다.");
    } else if (choice == '2') {
      print("삭제할 할 일의 번호를 입력하세요:");
      int index = int.parse(stdin.readLineSync()!) - 1;
      if (index >= 0 && index < todoList.length) {
        todoList.removeAt(index);
        print("할 일이 삭제되었습니다.");
      } else {
        print("유효하지 않은 번호입니다.");
      }
    } else if (choice == '3') {
      print("\n현재 할 일 목록:");
      for (int i = 0; i < todoList.length; i++) {
        print("${i + 1}. ${todoList[i]}");
      }
    } else if (choice == '4') {
      print("프로그램을 종료합니다.");
      break;
    } else {
      print("유효하지 않은 선택입니다. 다시 시도하세요.");
    }
  }
}

설명

  • List<String>을 사용하여 할 일 목록을 저장합니다.
  • while 루프를 통해 사용자가 선택한 작업에 따라 할 일을 추가, 삭제, 조회합니다.
  • 사용자가 프로그램을 종료할 때까지 루프가 계속됩니다.

88. 사용자 입력 받아 처리하기: 사용자 입력을 받아서 특정 작업을 수행하는 프로그램을 작성하세요.

문제
사용자로부터 이름과 나이를 입력받아, 사용자의 나이에 따라 맞춤형 메시지를 출력하는 프로그램을 작성하세요.

풀이
Dart의 입력 기능을 사용하여 사용자 정보를 받아 처리할 수 있습니다.

import 'dart:io';

void main() {
  print("이름을 입력하세요:");
  String name = stdin.readLineSync()!;

  print("나이를 입력하세요:");
  int age = int.parse(stdin.readLineSync()!);

  if (age < 18) {
    print("안녕하세요, $name! 당신은 미성년자입니다.");
  } else if (age >= 18 && age < 60) {
    print("안녕하세요, $name! 당신은 성인입니다.");
  } else {
    print("안녕하세요, $name! 당신은 노년층에 속합니다.");
  }
}

설명

  • 사용자의 이름과 나이를 입력받아 적절한 메시지를 출력합니다.
  • if-else 문을 사용하여 나이에 따라 다른 메시지를 출력합니다.

89. 미니 블로그 구현하기: 미니 블로그를 구현하여 게시글을 추가, 수정, 삭제할 수 있는 기능을 작성하세요.

문제
간단한 미니 블로그 시스템을 구현하여 게시글을 추가, 수정, 삭제할 수 있는 프로그램을 작성하세요.

풀이
Dart의 리스트와 맵(Map)을 활용하여 게시글을 관리할 수 있습니다.

import 'dart:io';

void main() {
  List<Map<String, String>> blogPosts = [];

  while (true) {
    print("\n원하는 작업을 선택하세요: 1. 게시글 추가 2. 게시글 수정 3. 게시글 삭제 4. 게시글 조회 5. 종료");
    String choice = stdin.readLineSync()!;

    if (choice == '1') {
      print("게시글 제목을 입력하세요:");
      String title = stdin.readLineSync()!;
      print("게시글 내용을 입력하세요:");
      String content = stdin.readLineSync()!;

      blogPosts.add({'title': title, 'content': content});
      print("게시글이 추가되었습니다.");
    } else if (choice == '2') {
      print("수정할 게시글 번호를 입력하세요:");
      int index = int.parse(stdin.readLineSync()!) - 1;

      if (index >= 0 && index < blogPosts.length) {
        print("새로운 제목을 입력하세요:");
        String newTitle = stdin.readLineSync()!;
        print("새로운 내용을 입력하세요:");
        String newContent = stdin.readLineSync()!;

        blogPosts[index]['title'] = newTitle;
        blogPosts[index]['content'] = newContent;

        print("게시글이 수정되었습니다.");
      } else {
        print("유효하지 않은 번호입니다.");
      }
    } else if (choice == '3') {
      print("삭제할 게시글 번호를 입력하세요:");
      int index = int.parse(stdin.readLineSync()!) - 1;

      if (index >= 0 && index < blogPosts.length) {
        blogPosts.removeAt(index);
        print("게시글이 삭제되었습니다.");
      } else {
        print("유효하지 않은 번호입니다.");
      }
    } else if (choice == '4') {
      print("\n현재 게시글 목록:");
      for (int i = 0; i < blogPosts.length; i++) {
        print("${i + 1}. ${blogPosts[i]['title']}: ${blogPosts[i]['content']}");
      }
    } else if (choice == '5') {
      print("프로그램을 종료합니다.");
      break;
    } else {
      print("유효하지 않은 선택입니다. 다시 시도하세요.");
    }
  }
}

설명

  • List<Map<String, String>>를 사용하여 게시글의 제목과 내용을 관리합니다.
  • 게시글 추가, 수정, 삭제, 조회 기능을 구현하여 간단한 블로그 시스템을 제공합니다.
  • 사용자가 종료를 선택할 때까지 루프가 계속됩니다.

90. 로그인 시스템 구현하기: 사용자 이름과 비밀번호를 사용하여 로그인 시스템을 구현하세요.

문제
사용자 이름과 비밀번호를 입력받아 로그인할 수 있는 간단한 로그인 시스템을 구현하세요.

풀이
Dart의 조건문을 사용하여 사용자 이름과 비밀번호를 확인하는 로그인 시스템을 구현할 수 있습니다.

import 'dart:io';

void main() {
  String correctUsername = "user";
  String correctPassword = "password123";

  print("사용자 이름을 입력하세요:");
  String username = stdin.readLineSync()!;

  print("비밀번호를 입력하세요:");
  String password = stdin.readLineSync()!;

  if (username == correctUsername && password == correctPassword) {
    print("로그인 성공! 환영합니다, $username.");
  } else {
    print("로그인 실패: 사용자 이름 또는 비밀번호가 잘못되었습니다.");
  }
}

설명

  • 미리 정의된 사용자 이름과 비밀번호를 기준으로 입력값을 확인하여 로그인 성공 여부를 결정합니다.
  • if-else 문을 사용하여 로그인 성공 또는 실패 메시지를 출력합니다.

공감과 댓글은 저에게 큰 힘이 됩니다.

Starting Google Play App Distribution! "Tester Share" for Recruiting 20 Testers for a Closed Test.

 

Tester Share [테스터쉐어] - Google Play 앱

Tester Share로 Google Play 앱 등록을 단순화하세요.

play.google.com

반응형