30/09/2018, 16:38

Nhập n sinh viên in ra sinh viên có tổng điểm 15

1 class sinh viên nhập n sinh viên thì em phải dùm cách nào ? class và các hàm dựng liên quan em đã song hết rồi nhưng không biết làm cách nào để nhập n sinh viên rồi xuất n sinh viên ^^!

*grab popcorn* viết 18:54 ngày 30/09/2018
class danhsach {....};
danhsanh sinhvien[100];
// nhập n sv :> còn xuất thì thay cin = cout th :>
for(i=0;i<100;i++)
cin>>sinhvien[i].name;
cin>>sinhvien[i].diemso;
Huy Vũ viết 18:52 ngày 30/09/2018

quên mất cách post code mới đau

Huy Vũ viết 18:41 ngày 30/09/2018

Đây là file Candidate.h

#pragma once
#include <string>
using namespace std;

class Candidate
{
private:
    int ma;
    string ten;
    int ngay;
    int thang;
    int nam;
    float toan;
    float van;
    float anh;
public:
    void nhap();
    void xuat();
    float tong();


    Candidate();
    ~Candidate();
};
Huy Vũ viết 18:43 ngày 30/09/2018

Đây là file Candidate.cpp

#include "Candidate.h"
#include<iostream>

using namespace std;


Candidate::Candidate()
{
}

void Candidate::nhap()
{
	cout << "Nhap ma : ";
	cin >> ma;
	cout << "\nNhap ten :";
	fflush(stdin);
	getline(cin, ten);
	cout << "nhap ngay thang nam sinh " << endl;
	do{
		cout << "Nhap nam : ";
		cin >> nam;
	} while (nam < 1900 || nam>2015);
	do{
		cout << "\nNhap thang : ";
		cin >> thang;
	} while (thang < 1 || thang >12);
	if (thang == 1 || thang == 3 || thang == 5 || thang == 7 || thang == 8 || thang == 10 || thang == 12)
	{
		do{
			cout << "Nhap ngay : ";
			cin >> ngay;
		} while (ngay < 1 || ngay>31);
	}
	else if (thang == 2)
	{
		if (nam % 4 == 0)
			do{
			cout << "nhap ngay : ";
			cin >> ngay;
			} while (ngay < 1 || ngay>29);
		else
			do{

			} while (ngay < 1 || ngay>28);
	}
	else
	{
		do{
			cout << "nhap ngay : ";
			cin >> ngay;
		} while (ngay < 1 || ngay>30);
	}
	do{
		cout << "Nhap diem toan: ";
		cin >> toan;
	} while (toan < 0 || toan>10);
	do{
		cout << "Nhap diem van: ";
		cin >> van;
	} while (van < 0 || van>10);
	do{
		cout << "Nhap diem anh: ";
		cin >> anh;
	} while (anh<0||anh>10);
}

void Candidate::xuat()
{
	cout << "thong tin cua candidate"<<endl;
	cout << "ma so : "  << ma << endl;
	cout << "ho ten : "<< ten <<endl;
	cout << "ngay thang nam sinh :"<<ngay <<"/"<<thang<<"/"<<nam<< endl;
	cout << "diem toan : "<<toan <<endl;
	cout << "diem van : " << van << endl;
	cout << "diem anh : " << anh << endl;
}
float Candidate::tong()
{
	return (toan + van + anh);
}
Candidate::~Candidate()
{
}
Huy Vũ viết 18:55 ngày 30/09/2018

file main.cpp

#include"Candidate.h"
#include<iostream>

using namespace std;

void main()
{
	int n;
	Candidate danhsach[100];

	cout << "Nhap So sinh vien : ";
	cin >> n;

	for (int i = 0; i < n; i++)
	{
		danhsach[i].nhap();
	}
	cout << "danh sach sinh vien diem >15 la "<<endl;
	for (int i = 0;i < n; i++)
	{
		float t = danhsach[i].tong();
		if (t > 15)
		{
			danhsach[i].xuat();
		}
	}
	system("pause");
}
Huy Vũ viết 18:41 ngày 30/09/2018

mình muốn hỏi cái bạn nói ấy vecto là gì? nếu chưa biết trước số lượng ấy. VD như bài của mình cấp phát như thế nếu có 101 sinh viên thì mình nghĩ chắc nó sảy ra lỗ ngay. nên muốn tìm 1 cách để có thể viết mà khi nào người dùng nhập nó mới cấp phát ^^.

Huy Vũ viết 18:39 ngày 30/09/2018

bài này mình đã chạy được rồi bạn. nhưng mình muốn viết 1 cái hàm main mà ở đó mình không dùm mảng đã khởi tạo giá trị sẵn
VD: trong bài mình có đoạn

Candidate danhsach[100];

mình muốn khi người dùng nhập số lượng vào cái biến n sẽ thay thế cho 100 á.

Huy Vũ viết 18:43 ngày 30/09/2018

tức là cấp phát động phải không bạn??? nó nhìn có vẻ gần giống với con trỏ ha.

Tuấn Nguyễn viết 18:49 ngày 30/09/2018

Em coi sinhvien là 1 kiểu dữ liệu mới do người dùng định nghĩa. Ta khai báo 1 mảng sinh viên và sử dụng như bình thường.

Moc Thanh viết 18:42 ngày 30/09/2018

không cấp phát bộ nhớ à bạn

HK boy viết 18:41 ngày 30/09/2018

không cấp phát bộ nhớ à bạn

Bạn nhìn kĩ xem,

Candidate danhsach[100];

là mảng tĩnh hay mảng động mà phải cấp phát bộ nhớ?

Bài liên quan
0