PDA

ดูเวอร์ชั่นเต็ม : ใครก็ได้ช่วยเขียน c++ หน่อย



aki
19th February 2013, 21:16
อธิบาย พอดีจะเขียนโปรแกรมตัดเกรด ทำได้แล้ว

แต่ตอนนี้เค้าให้ใช้ฟังชั่น swap เพื่อทำการสลับค่า มากขึ้นมาก่อน ผมงงมาก ตย. เค้าก็ไม่มีให้ ใครทำได้ช่วยหน่อย

ข้างล่างคือที่เขียนค้างอยู่

#include <iostream>
using namespace std;
#include <conio.h>
#include <string.h>
#include <windows.h>
void gotoxy(short x, short y) {
COORD pos = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);


}
void swap(float &x, float &y);
void swap(char &x, char &y);
void swap(float &x, float &y){
int temp;
temp = x;
x = y;
y = temp;
}
void sw(char &x, char &y){
char temp;
temp = x;
x = y;
y = temp;
}
int n,i,j,k;
char stu[50][2][20],grade[50][5];
float score[50][3];
int main()
{


std::cout<<"NO.";
std::cin>>n;
system("cls");

for(i=1;i<=n;i++)
{

std::cout<<"Number ";
std::cin>>stu[i][0];
std::cout<<"Name ";
std::cin>>stu[i][1];
std::cout<<"Midtrum ";
std::cin>>score[i][1];
std::cout<<"Final ";
std::cin>>score[i][2];
score[i][0]=score[i][1]+score[i][2];
if(score[i][0]>=80)
strcpy (grade[i],"A");
else
if (score[i][0]>=75)
strcpy (grade[i],"B+");
else
if (score[i][0]>=70)
strcpy (grade[i],"B");
else
if(score[i][0]>=65)
strcpy (grade[i],"C+");
else
if(score[i][0]>=60)
strcpy (grade[i],"C");
else
if(score[i][0]>=55)
strcpy (grade[i],"D+");
else
if(score[i][0]>=50)
strcpy (grade[i],"D");
else
strcpy (grade[i],"E");

system("cls");
}

std::cout<<"__________________________________________________________________";
std::cout<<"\n No. | Number | Name |Midtrum|Final|Total|Grade|\n";
std::cout<<"__________________________________________________________________";

for(k=1;k<=n;k++){
sw(stu[k][1],stu[k][1]);
}



for(i=1;i<=n;i++)
{

gotoxy(1,3+i);
std::cout<<i;
gotoxy (6,3+i);
std::cout<<stu[i][0];
gotoxy (23,3+i);
std::cout<<stu[i][1];
gotoxy (41,3+i);
std::cout<<score[i][1];
gotoxy (48,3+i);
std::cout<<score[i][2];
gotoxy (54,3+i);
std::cout<<score[i][0];
gotoxy (60,3+i);
std::cout<<grade[i];

}

getch();
}