Thứ Hai, 4 tháng 8, 2014

Struct quản lý học phần

/**
Để quản lý các học phần trong một trường đại học, người ta quản lý các thông tin: 
+ mã học phần
+ tên học phần, 
+ số tín chỉ
+ loại học phần (có hai loại học phần: tự nhiên và xã hội. 
Nếu là học phần dành cho khối tự nhiên thì dữ liệu của trường này là “TN”, nếu là học phần dành cho khối xã hội thì dữ liệu của trường này là “XH”.

a. Nhập vào thông tin của n (n<=200) học phần với điều kiện không có hai học phần nào trùng mã với nhau.
b. In ra màn hình thông tin của những học phần có đơn giá lớn hơn g với g là giá trị nhập vào từ bàn phím. 
Biết rằng đơn giá của học phần tính theo công thức: số tín chỉ * 120000 * hệ số đơn giá 
(nếu là học phần tự nhiên thì hệ số đơn giá là 1.5, nếu là học phần xã hội thì hệ số đơn giá là 1.0). 
Thông tin của mỗi học phần in trên một dòng theo thứ tự: mã học phần, tên học phần, số tín chỉ, loại học phần 
(tự nhiên/xã hội), đơn giá học phần.
c. In ra màn hình thông tin của các học phần có mã học phần bắt đầu bởi chuỗi ký tự “TIN” và có số tín chỉ nhỏ hơn 3.
/**/

#include<stdio.h>
#include<conio.h>
#include<string.h>

struct HP
{
char ma[20],ten[50];
int sotc;
char loai[3];
};

void nhap(HP *a,int n)
{
for(int i=0;i<n;i++)
{
printf("\n\n Nhap hoc phan thu %d",i+1);

printf("\n-   Ten hoc phan: ");
fflush(stdin);
gets(a[i].ten);

int k;
do
{
k=0;
printf("-   Ma hoc phan: ");
fflush(stdin);
gets(a[i].ma);
for(int j=0;j<i;j++)
if(strcmp(a[j].ma,a[i].ma)==0)
{
k=1;
break;
}
}
while(k==1);

printf("-   So Tin chi: ");
scanf("%d",&a[i].sotc);

printf("-   Loai hoc phan: chon (1): Tu Nhien  -  (2) Xa Hoi \n");

char t;
do
{
fflush(stdin);
t=getch();
if(t=='1')
strcpy(a[i].loai,"TN");
else if(t=='2')
strcpy(a[i].loai,"XH");

if(t=='1')
printf("+  HP tu nhien");
else if(t=='2')
printf("+  HP xa hoi");

} while(t!='1'&&t!='2');
}
}

float dongia(HP a)
{
float s=a.sotc*120000;
if(strcmp(a.loai,"TN")==0)
s=s*1.5;
return s;
}

void in(HP *a,int n,float m)
{
for(int i=0;i<n;i++)
if(dongia(a[i])>m)
printf("\n Ma: %s; TenHP: %s; SoTC: %d; Loai: %s; DonGia: %g",a[i].ma,a[i].ten,a[i].sotc,a[i].loai,dongia(a[i]));
}

void in1(HP *a,int n)
{
for(int i=0;i<n;i++)
if(strncmp(a[i].ma,"TIN",3)==0&&a[i].sotc<3)
printf("\n Ma: %s; TenHP: %s; SoTC: %d; Loai: %s; DonGia: %g",a[i].ma,a[i].ten,a[i].sotc,a[i].loai,dongia(a[i]));
}

void main()
{
HP a[200];
int n;

printf(" Nhap so hoc phan: ");
scanf("%d",&n);

nhap(a,n);

printf("\n\n--------------------------------");

float g;
printf("\n\n Nhap don gia g= ");
scanf("%f",&g);
printf("\n\n Thong tin cua nhung hoc phan co don gia lon hon %g la: ",g);

in(a,n,g);

printf("\n\n Cac hoc phan bat dau bang chuoi ky tu TIN va co so tin chi <3 la: ");

in1(a,n);

getch();
}

Không có nhận xét nào:

Đăng nhận xét