[C++]Viết chương trình nhập họ và tên một học sinh và in ra màn hình

Ở bài viết này, bạn sẽ hiểu được cách sử dụng lệnh nhập, xuất cơ bản thông trong bài tập ngôn ngữ lập trình C/C++ qua bài toán viết chương trình nhập họ tên một học sinh dưới đây.

1.Bài toán viết chương trình họ tên c++

Bài 2: Viết chương trình nhập vào thông tin của một học sinh gồm: Mã học sinh, Họ tên, Ngày sinh, Lớp, Số buổi ăn bán trú. In ra màn hình các thông tin: Mã học sinh, Họ tên, Ngày sinh, Lớp, Số buổi ăn bán trú, Số tiền ăn bán trú (biết đơn giá là 25000đ/ 1 buổi ăn bán trú). Thông tin in ra theo 2 cách: các thông tin in hết trong một dòng hoặc mỗi thông tin in trên một dòng.

Xem thêm:

2.Phân tích bài toán viết chương trình nhập họ và tên c++

A. Input: – maHs, tenHS, ngaySinh, lop, soBuoiAn.
B. Output: – sotienbantru.
C. Process:
Bước 1: Khai báo biến chương trình:
char maHS[10], ngaySinh[10], lop[10];
char tenHS[25];
int soBuoiAn;
float soTienBT;
Bước 2: Nhập dữ liệu:
mahs, tenHS, ngaySinh, lop, soBuoiAn.
Bước 3: Thực hiện tính toán:
soTienBanTru = soBuoiAn * 25000.
Bước 4: In kết quả lên màn hình.

2.1 Nhập thông tin học sinh

fflush(stdin) trong c++

Hàm fflush(stdin) được sử dụng để xóa bộ nhớ đệm dữ liệu thừa từ bộ đệm nhập chuẩn (stdin). Tuy nhiên, việc sử dụng fflush(stdin) không được khuyến nghị trong C++. Một cách phổ biến để làm điều này là sử dụng hàm cin.ignore() trong C++ để bỏ qua các ký tự thừa trong bộ nhớ đệm.

Khi nhập xâu thì kết thúc bằng một ký tự xuống dòng ‘\n’. Nhưng compiler vẫn nhận đây là một xâu cho tới bộ nhớ tạm thời và truyền nó vào biến xâu tiếp theo của chương trình.
fflush(stdin); với mục đích xóa đi bộ nhớ tạm thời của chương trình để không tồn tại những giá trị rác như bên trên. Nhưng về bản chất thì nên dùng cin.ignore(100,'\n').

gets() trong c++

gets được sử dụng để nhận đầu vào từ người dùng cho các mảng ký tự maHS, tenHS, ngaySinh, và lop. Tuy nhiên, gets là một hàm không an toàn và đã bị loại bỏ từ phiên bản C++11 trở đi.

Lý do là gets không kiểm tra kích thước của mảng và có thể dẫn đến lỗi tràn bộ nhớ (buffer overflow) nếu đầu vào vượt quá kích thước của mảng được cấp phát. Điều này có thể dẫn đến những lỗi nghiêm trọng như tràn bộ nhớ và tấn công từ xa. Thay vào đó ta nên sử dụng cin.getline().

fflush(stdin); // Xóa bộ đệm dữ liệu thừa
cout << "nhap ma hoc sinh: ";
gets(maHS);
cout << "nhap ten hoc sinh: ";
gets(tenHS);
cout << "nhap ngay sinh: ";
gets(ngaySinh);
cout << "nhap lop: ";
gets(lop);
cout << "nhap so buoi an: ";
cin >> soBuoiAn;

sử dụng cin.getline() để nhập họ tên đầy đủ:

cout << "nhap ma hoc sinh: ";
cin.getline(maHS, 10);

cout << "nhap ten hoc sinh: ";
cin.getline(tenHS, 25);

cout << "nhap ngay sinh: ";
cin.getline(ngaySinh, 10);

cout << "nhap lop: ";
cin.getline(lop, 10);

2.2 Đoạn mã chương trình in ra màn hình họ và tên

soTienBT = soBuoiAn * 25000;
cout << "-----------------------------" << endl;
cout << "Ma hoc sinh: " << maHS << endl;
cout << "Ho va ten: " << tenHS << endl;
cout << "Ngay sinh: " << ngaySinh << endl;
cout << "Lop: " << lop << endl;
cout << "So buoi an: " << soBuoiAn << endl;
cout << "So tien ban tru: " << soTienBT;

3.Code viết chương trình nhập họ và tên c

#include<bits/stdc++.h>

using namespace std;
int main() {
  char maHS[10], ngaySinh[10], lop[10];
  char tenHS[25];
  int soBuoiAn;
  float soTienBT;
  fflush(stdin); //Xoa bo du lieu thua
  cout << "nhap ma hoc sinh: ";
  gets(maHS);
  cout << "nhap ten hoc sinh: ";
  gets(tenHS);
  cout << "nhap ngay sinh: ";
  gets(ngaySinh);
  cout << "nhap lop: ";
  gets(lop);
  cout << "nhap so buoi an: ";
  cin >> soBuoiAn;
  soTienBT = soBuoiAn * 25000;
  cout << "-----------------------------" << endl;
  cout << "Ma hoc sinh:" << maHS << endl;
  cout << "Ho va ten: " << tenHS << endl;
  cout << "Ngay sinh: " << ngaySinh << endl;
  cout << "Lop: " << lop << endl;
  cout << "So buoi an: " << soBuoiAn << endl;
  cout << "So tien ban tru " << soTienBT << ;
}

Bài tiếp theo: Bài 3: (TH-CSLT-03): Viết chương trình nhập vào một số nguyên dương N có 

2 chữ số từ bàn phím, xuất ra màn hình tổng các chữ số của N được nhập từ bàn phím c++

Ví dụ: Nhập N = 48, kết quả in ra màn hình là 4+8=12

4.Kết quả chương trình in ra màn hình họ tên lớp

kết quả

Tải tài liệu thực hành ngôn ngữ lập trình C/C++ kèm lời giải:

Ok, vậy là mình đã thực hiện xong. Hy vọng qua bài toán nhập thông tin học sinh c++, bạn đã nắm vững được kiến thức cơ bản về nhập xuất trong C/C++ thông qua bài tập viết chương trình nhập vào họ tên đầy đủ và in ra màn hình. Cảm ơn bạn đã tham khảo bài viết trên TTnguyen.

Nguyễn Tiến Trường

Mình viết về những điều nhỏ nhặt trong cuộc sống, Viết về câu chuyện những ngày không có em