U E D R , A S I H C RSS

C++스터디_2005여름/학�계산프로그램/허아�


학�계산프로그램/허아�

솔�히 부�럽습니다. C� 모르는�, C++로 �렇게 어려운 것�-_- ;;
정� 힘들게 풀었습니다. 물론 답� 맞는지� 모르겠구요.
OOP� 잘 모르는�,, -.- ;;
제 소스가 C++� 특징� OOP를 사용하지 않� ��기 소스�고 보창오빠는 �하�군요 ㅠㅠ( �처ㅡㅡ++++++ )
여튼 했으니 올립니다 !
// 파ì�¼ìœë ¥í•˜ë ¤ë‹¤ê°€, 표준ìœë ¥ 했습니다.

소스

calculate.h

~cpp 
#include <fstream>
#include "const.h"
#include "student.h"

class Calculate
{
private:
	Student a;
	
public:	
	
	void input();//파�입력, 학�으로 전환
	void Calculate_grade();
	//void output();//파ì�¼ìœë ¥
};

student.h

~cpp 
#ifndef STUDENT_H_
#define STUDENT_H_

#include "const.h"

class Student
{
private:
	char name[STUDENT_NUM][10];
	double credit_average[STUDENT_NUM];
	//장학� 명단� �어내기 위한 변수
	//char sort_grade_name[STUDENT_NUM][10];
	//double sort_grade[STUDENT_NUM];
	
public:
	Student();
	void name_find(); // �름� 파��서 받아서 저장.
	void average();   // �균� 계산하여 저장. 
	void sort();      // 학��균� 높� 순으로 저장.
	void scholarship();//장학금, 학고 í•™ìƒ� ìœë ¥,
	
	double grade[STUDENT_NUM][SUBJECT_NUM];	
};

#endif

const.h

~cpp 
#define SUBJECT_NUM 4
#define STUDENT_NUM 120
#define SCHOLARSHIP_NUM 12

calculate.cpp

~cpp 
#include <iostream>
using namespace std;

#include <fstream>
#include "calculate.h"
#include "student.h"

void Calculate::input()
{
	char temp[20];
	char grade_input[SUBJECT_NUM][3];
	double credit[9] = {4.5, 4.0, 3.5, 3.0, 2.5, 2.0, 1.5, 1.0, 0}; //학�
	char grade_data[9][3] = {"A+", "A", "B+", "B", "C+", "C", "D+", "D", "F"};
	
	fstream fin("input.txt");
	
	for(int student_num = 0; student_num < 120; student_num++)
	{
		fin.getline(temp, 20, ':');
		for(int i = 0; i < SUBJECT_NUM; i++)
		{
			fin.get();
			fin >> grade_input[i];
			for(int j = 0; j < 9; j++)
			{
				if(strcmp(grade_input[i], grade_data[j]) == 0)
					a.grade[student_num][i] = credit[j];
			}
		}
	}
}
/*
void Calculate::output()
{
	fstream fout("output.txt");
}
*/
void Calculate::Calculate_grade()
{
	a.name_find();
	a.average();
	a.sort();
	a.scholarship();
}

student.cpp

~cpp 
#include <iostream>
using namespace std;

#include <fstream>
#include "student.h"
#include "calculate.h"
#include "const.h"

Student::Student()
{
	for(int j = 0; j < STUDENT_NUM; j++)
	{
		credit_average[j] = 0.0;
		for(int i = 0; i < SUBJECT_NUM; i++)
			grade[j][i] = 0;
	}
}

void Student::name_find()
{
	char temp[20];
	fstream fin("input.txt");
	for(int i = 0; i < STUDENT_NUM; i++)
	{
		fin.getline(name[i], 10, ':');
		fin.getline(temp, 20, 'n');
	}
}

void Student::average()
{
	
	double sum = 0;
	for (int j = 0; j < STUDENT_NUM; j++)
	{
		for(int i = 0; i < SUBJECT_NUM; i++)
			sum += grade[j][i];
		credit_average[j] = (double)(sum/SUBJECT_NUM);
		sum = 0;
	}
}

void Student::scholarship()
{
	//fstream fout("output.txt");
	cout << "학고 명단" << endl;
	for(int i = 0; i < STUDENT_NUM; i++)
	{
		if(credit_average[i] <= 1.5)
			cout << name[i] << endl;
	}
	cout << "장학� 명단" << endl;
	for(i = 0; i < SCHOLARSHIP_NUM; i++)
	{
		cout << name[i];
		cout << endl;
	}
	
}

void Student::sort()
{
	char temp[10];
	double temp_grade;
	for(int i = 0; i < STUDENT_NUM; i++){
		for(int j = i; j < STUDENT_NUM; j++){
			if(credit_average[i] <= credit_average[j])
			{
				temp_grade = credit_average[i];
				credit_average[i] = credit_average[j];
				credit_average[j] = temp_grade;
				strcpy(temp, name[j]);
				strcpy(name[j], name[i]);
				strcpy(name[i], temp);
			}
		}
	}		
}

source.cpp

~cpp 
#include <iostream>
#include <fstream>
#include "calculate.h"
#include "student.h"

using namespace std;

void main()
{
	Calculate a;	
	
	a.input();
	a.Calculate_grade();
}

나�게 할�

오옷.. 근래 본 메�함수중� 가장 심플한 함수였어~ 왠지 Hellow world!! � �보단 못할듯.ㅎ
C++� 탈�쓴 C...나잖아..;;�;; 후훗..ㅎ
괜찮아 괜찮아~! �� 모�떠~ 막 가눈고야~~>ㅃ<;;
�.. �기를 안좋� 곳으로 �어들�다닛..나�아�.훗..
ì¹¼í�˜ë ˆì�´íЏ(귀차니즘으로 ì˜�ì–´ ìƒ�ëžµ)함수와 스튜ë�˜íЏ 함수 양쪽ì—�서 둘다 파ì�¼ ìž…ìœë ¥ 하는게 있는것 ê°™ì�€ë�°..
아예 한쪽ì�€ 죽어ë�¼ ìž…ìœë ¥ 계산만 하고 한쪽ì�€ ìž�료보관만 하는계 좀ë�” ê¹”ë�”í–ˆì�„ì§€ë�„~
후후후.. 실� 나� 모르겠.. (C++� 배운�� 있어야.훗.) �..하나만 잘하면 �지..ㅎㅎ 아��만� C만 하면 조케따~>�<;;
��~ 그럼 힘내서 오늘� ��게 놀�고~'ㅇ')/ 곧 개강�니까.훗..ㅎ 좋�하루!- 조현태
----
허아� C++스터디_2005여름 C++스터디_2005여름/학�계산프로그램
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:22:46
Processing time 0.0088 sec