분류 | 게시판 |
베스트 |
|
유머 |
|
이야기 |
|
이슈 |
|
생활 |
|
취미 |
|
학술 |
|
방송연예 |
|
방송프로그램 |
|
디지털 |
|
스포츠 |
|
야구팀 |
|
게임1 |
|
게임2 |
|
기타 |
|
운영 |
|
임시게시판 |
|
동적으로 배열을 생성하여 성적은 내림차순으로 이름은 오름차순으로 정렬한다
출력형태 --------------------------------
처리할 학생수=10
학생(1)-----
이름=홍길동
성적=86
등급=B+
-----------
학생(2)-----
이름=홍길동
성적=90
등급=A0
----------
...
성적순 리스트
==============
이름 성적 등급
-------------
이름순 리스트
==============
이름 성적 등급
소스코드-------------------------------------------
#include <iostream>
#include <string>
using namespace std;
struct S
{
string name;
string grade;
int score;
};
class Student
{
int m;
S *stu,temp;
public:
void inputStudent();
void score_sort();
void name_sort();
char *inputGrade(int score);
void outputStudent();
};
int main()
{
Student s;
s.inputStudent();
s.outputStudent();
cout << endl;
return 0;
}
void Student::inputStudent()
{
cout << "인원 수를 입력하시오: "; cin >> m;
stu = new S[m];
for(int i=0; i<m; i++)
{
cout << "학생 (" << i+1 << ")-----" << endl;
cout << "이름 = "; cin >> stu[i].name;
cout << "점수 = "; cin >> stu[i].score;
stu[i].grade = inputGrade(stu[i].score);
cout << "등급 = " << stu[i].grade << endl;
cout << "---------------" << endl;
}
}
void Student::score_sort()
{
for(int i=m-1; i>0; i--)
{
for(int j=0; j<i; j++)
{
if(stu[j].score < stu[j+1].score)
{
temp = stu[j];
stu[j] = stu[j+1];
stu[j+1] = temp;
}
else if(stu[j].score == stu[j+1].score)
{
if(stu[j].name > stu[j+1].name)
{
temp = stu[j];
stu[j] = stu[j+1];
stu[j+1] = temp;
}
}
}
}
}
void Student::name_sort()
{
for(int i=m-1; i>0; i--)
{
for(int j=0; j<i; j++)
{
if(stu[j].name > stu[j+1].name)
{
temp = stu[j];
stu[j] = stu[j+1];
stu[j+1] = temp;
}
else if(stu[j].name == stu[j+1].name)
{
if(stu[j].score < stu[j+1].score)
{
temp = stu[j];
stu[j] = stu[j+1];
stu[j+1] = temp;
}
}
}
}
}
char * Student::inputGrade(int score)
{
if(score >= 95)
return "A+";
else if(score >= 90)
return "A0";
else if(score >= 85)
return "B+";
else if(score >= 80)
return "B0";
else if(score >= 75)
return "C+";
else if(score >= 70)
return "C0";
else if(score >= 65)
return "D+";
else if(score >= 60)
return "D0";
else
return "F";
}
void Student::outputStudent()
{
cout << endl << endl;
cout << "성적순 리스트" << endl;
cout << "=============" << endl;
cout << "이름 성적 등급" << endl;
score_sort();
for(int i=0; i<m; i++)
{
cout << stu[i].name << " " << stu[i].score << " " << stu[i].grade << endl;
}
cout << endl << endl;
cout << "이름순 리스트" << endl;
cout << "=============" << endl;
cout << "이름 성적 등급" << endl;
name_sort();
for(int i=0; i<m; i++)
{
cout << stu[i].name << " " << stu[i].score << " " << stu[i].grade << endl;
}
delete[] stu;
}
C++ 기초문장인데 이 프로그램을 템플레이트를 사용해서 다시 작성하라고 하는데 혹시 어떻게 해야할지 어디어디 바꾸는지 알수있을까요?
죄송합니다. 댓글 작성은 회원만 가능합니다.
번호 | 제 목 | 이름 | 날짜 | 조회 | 추천 | |||||
---|---|---|---|---|---|---|---|---|---|---|
13 | 안드로이드 인텐트 전달하는거 질문좀 드려도될까요? [3] | 후끼후끼 | 20/11/26 22:54 | 82 | 0 | |||||
12 | 자바 스윙에서 JPanel에는 Grapics를 추가할 수 없나요? [2] | 후끼후끼 | 20/06/19 09:52 | 91 | 0 | |||||
11 | 우리나라에 외국인 직접투자는외채에포함 안되고 간접투자는포함된다 맞나요? | 후끼후끼 | 14/12/01 22:36 | 14 | 0 | |||||
10 | 데이터베이스전문가와 보안분야... 진로너무 고민입니다ㅠㅠ [2] | 후끼후끼 | 14/11/04 21:44 | 17 | 0 | |||||
9 | gtx750그래픽 카드 살려는데 제 메인보드랑 호환되는지좀 봐주세요 ㅠㅠ [5] | 후끼후끼 | 14/11/04 02:34 | 63 | 0 | |||||
8 | 예스맨같은 성격변화로 인생이 바뀌거나 단점을 장점으로 극복한영화 있나요? [5] | 후끼후끼 | 14/10/31 18:18 | 29 | 1 | |||||
▶ | 간단한 기초 C++ 문장인데 템플레이트 사용 혹시 알수있을까요 [1] | 후끼후끼 | 14/10/14 00:48 | 24 | 0 | |||||
6 | 컴퓨터언어쪽 간단한 영어문장인데 해석좀 할수있을까요 [3] | 후끼후끼 | 14/10/09 20:18 | 26 | 0 | |||||
5 | 컴퓨터언어쪽 간단한 영어문장인데 해석좀 할수있을까요 [2] | 후끼후끼 | 14/10/09 20:18 | 18 | 0 | |||||
4 | 직장다니시는 분들께 질문좀드릴께요! [1] | 후끼후끼 | 14/06/12 01:17 | 14 | 0 | |||||
3 | 화면 자동꺼짐 멀티미디어 볼때는 안돼는게맞는거아닌가용 | 시크릿블로그 | 14/01/06 00:43 | 12 | 0 | |||||
2 | 오랜만에 다시할려는데 ㅠㅠ 확장시디키 있으신분 ㅠ | 시크릿블로그 | 11/10/16 19:52 | 14 | 0 | |||||
1 | 이거 슈프림팀이 부른건데 노래제목 뭐죠? | 시크릿블로그 | 11/10/01 13:27 | 61 | 0 | |||||
|
||||||||||
[1] | ||||||||||