Latest topics
Similar topics
Week10 (Full)
+4
Woodyx
hieupro1269
Tung_tobe
haidang001
8 posters
Trang 1 trong tổng số 1 trang
Week10 (Full)
[Update bài 27/04/2011]
Lần này Koltec làm sớm để lên Lạng Sơn thưởng "hương đồng gió nội".
Post hết cả lên, có gì ae cứ trao đổi + góp ý nhé.
1. Đề bài: xương cốt chính gồm 3 bài:
Bài 1: sorting
Bài 2: mu
Bài 3: (hard) labmanager
2. Tip:
Bài 1:sorting
- Dùng thuật toán sắp xếp nổi bọt (bubble sort algorithm).
Bài 2: mu
Bài này Koltec không biết Tip kiểu gì nữa. Chắc thầy cho để luyện tập với dãy thôi.
Bài 3: labmanager
Bài này chuối cái viết ra bản đồ lớp.
Tuy nhiên, có lưu ý nhỏ nhỏ:
- Khi sử dụng một máy: nếu tất cả các máy đề được dùng, thoát luôn
hàm. Nếu không chương trình còn sẽ không bao giờ dừng (thử rồi biết )
- Mo tri ron, tương tự, khi dời một máy, nếu tất cả các máy đã được
dời, thoát luôn hàm. Nếu không chương trình sẽ thành "bất tử" (trăm nghe
không bằng 1 thử )
- Cuối cùng là, trong trường hợp bắt buộc phải sử dụng biến toàn cục.
Tức là muốn thay đổi biến trong hàm main() chẳng hạn. Khai báo biến đó ở
ngay sau #include .
3. Code: vẫn lại lưu ý cũ: code Koltec hoàn toàn mang tính chất tham khảo, chưa dám chắc đúng hết. Có gì ae góp ý hộ.
Trong bài có sử dụng một chút ít cái sắp hoc .
Bài 1: sorting
Bài 2: mu
Bài 3: labmanager
Chào ae, Koltec đi Lạng Sơn ).
S_have fun!
Lần này Koltec làm sớm để lên Lạng Sơn thưởng "hương đồng gió nội".
Post hết cả lên, có gì ae cứ trao đổi + góp ý nhé.
1. Đề bài: xương cốt chính gồm 3 bài:
Bài 1: sorting
- Code:
Write two function s:
- the first sorts the integers element in an array by the decreasing order.
- the second sort the odd elements in the decreasing order.
Write a program tha asks user to enter 10 intergers and displays the results after two styles of sorting above.
- Code:
Viết 2 hàm:
- sắp xếp dãy theo thứ tự dảm rần.
- sắp xếp dãy theo thứ tự rảm giần của các số lẻ trong dãy
Chương trình nhập vào 10 số nguyên, hiện thị kết quả sau 2 cách sắp xếp trên
Bài 2: mu
- Code:
Cho diem cau thu theo tran dau
De danh gia man trinh dien cua cac cau thu MU (11) moi tuan, to bao Guardian nho 5 chuyen gia.
Diem ecua moi cau thu se duoc lam tron theo so chan 0.5 gan nhat.
Viet chuong trinh cho phep
1) Nhap
- So ao cua cau thu ra san
- Danh gia cua chuyen gia cho cac cau thu.
2) In ra: diem so cua cac cau thu theo dang: so ao - diem
3) Dua ra nguoi danh gia khat khe nhat va rong rai nhat.
Bài 3: (hard) labmanager
- Code:
Phong
Lab 813 chuong trinh Viet Nhat chua 40 may tinh de ban. Hang tuan cac
may se duoc su dung de thuc tap. Biet mot lan duoc su dung - dien nang
tieu thu la 400 Watt. Viet chuong trinh quan ly viec su dung may voi cac
menu sau:
- Dung may: KHi mot nguoi vao phong may - chi dinh so hieu may muon su dung. Neu may con trong - duoc cap may.
- Roi may: may ve trang thai roi.
- IN ra trang thai cac may (dang su dung - tat)
- In ra dien nang tieu thu tich luy tren cac may cho den thoi diem hien tai
- In ra tong dien nang tieu thu - va tien dien thanh toan (750dong/KW)
- In ra nhung may duoc dung nhieu nhat va it nhat
2. Tip:
Bài 1:sorting
- Dùng thuật toán sắp xếp nổi bọt (bubble sort algorithm).
- Code:
for (i = 1; i <= a[0]; i++)
for (j = i + 1; j <= a[0]; j++)
if (a[i] < a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
};
- Code:
for (i = 1; i <= a[0]; i++)
if (a[i] % 2 == 1)
for (j = i + 1; j <= a[0]; j++)
if ((a[j] % 2 ==1) && (a[j] > a[i]))
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
};
Bài 2: mu
Bài này Koltec không biết Tip kiểu gì nữa. Chắc thầy cho để luyện tập với dãy thôi.
Bài 3: labmanager
Bài này chuối cái viết ra bản đồ lớp.
Tuy nhiên, có lưu ý nhỏ nhỏ:
- Khi sử dụng một máy: nếu tất cả các máy đề được dùng, thoát luôn
hàm. Nếu không chương trình còn sẽ không bao giờ dừng (thử rồi biết )
- Code:
if ((nfree) == 0)
{
printf("All computer are being used!\n");
return;
};
- Mo tri ron, tương tự, khi dời một máy, nếu tất cả các máy đã được
dời, thoát luôn hàm. Nếu không chương trình sẽ thành "bất tử" (trăm nghe
không bằng 1 thử )
- Code:
if ((nfree) == ncomp)
{
printf("All computer are free!\n");
return;
};
- Cuối cùng là, trong trường hợp bắt buộc phải sử dụng biến toàn cục.
Tức là muốn thay đổi biến trong hàm main() chẳng hạn. Khai báo biến đó ở
ngay sau #include .
- Code:
#include ...m .. cái phpBB, stdio.h ae nhé :)
int anywhere;
3. Code: vẫn lại lưu ý cũ: code Koltec hoàn toàn mang tính chất tham khảo, chưa dám chắc đúng hết. Có gì ae góp ý hộ.
Trong bài có sử dụng một chút ít cái sắp hoc .
Bài 1: sorting
- Code:
/*Copyright (c) haidang001 (tm) (@yahoo.com)*/
/*2011 Allright reserved*/
/*Write two function s:
- the first sorts the integers element in an array by the decreasing order.
- the second sort the odd elements in the decreasing order.
Write a program tha asks user to enter 10 intergers and displays the results after two styles of sorting above.*/
#include
#define maxsize 100
void enter(int [], char []), aassign(int [], int []), printa(int []), sort(int []), osort(int []);
main()
{
int a[maxsize], b[maxsize];
enter(a, "A");
aassign(b, a); //b = a
printf("\nArray sorted by decreasing order:\n");
sort(b);
printa(b);
aassign(b, a);
printf("\nArray sorted by decreasing odd element order:\n");
osort(b);
printa(b);
printf("\nS_have fun! :)\n");
return 0;
}
void sort(int a[])
{
int i, j, temp;
for (i = 1; i <= a[0]; i++)
for (j = i + 1; j <= a[0]; j++)
if (a[i] < a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
};
return ;
}
void printa(int a[])
{
int i;
for (i = 1; i <= a[0]; i++)
printf("%d, ", a[i]);
printf("\n");
return;
}
void aassign(int a[], int b[])
{
int i;
a[0] = b[0];
for (i = 1; i <= a[0]; i++)
a[i] = b[i];
return ;
}
void osort(int a[])
{
int i, j, temp;
for (i = 1; i <= a[0]; i++)
if (a[i] % 2 == 1)
for (j = i + 1; j <= a[0]; j++)
if ((a[j] % 2 ==1) && (a[j] > a[i]))
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
};
return;
}
void enter(int a[], char name[])
{
int i;
do
{
printf("Enter number of element of array %s: ", name);
scanf("%d", &a[0]);
}
while (a[0] < 0);
for (i = 1; i <= a[0]; i++)
{
printf("Enter %s[%d]: ", name, i);
scanf("%d", &a[i]);
};
return;
}
//S_have fun! :)
Bài 2: mu
- Code:
/*Copyright (c) haidang001 (tm) (@yahoo.com)*/
/*2011 Allright reserved*/
/* Cho diem cau thu theo tran dau
De danh gia man trinh dien cua cac cau thu MU (11) moi tuan, to bao Guardian nho 5 chuyen gia.
Diem cua moi cau thu se duoc lam tron theo so chan 0.5 gan nhat.
Viet chuong trinh cho phep
1) Nhap
- So ao cua cau thu ra san
- Danh gia cua chuyen gia cho cac cau thu.
2) In ra: diem so cua cac cau thu theo dang: so ao - diem
3) Dua ra nguoi danh gia khat khe nhat va rong rai nhat.*/
#include <stdio.h>
#define nplayer 11
#define nexpert 5
#define maxsize 100
void enter(int [][maxsize], int []), menu(), prints(int [][maxsize], int []), commend(int [][maxsize]), rmenu();
char vquit(), select();
int idmin(int [][maxsize]), idmax(int [][maxsize]), numcheck(int [], int), calc(int, int [][maxsize]);
main()
{
char quit = 'N';
int a[maxsize][maxsize] = {0}, num[maxsize] = {0}; //a[nplayer + 1][nexpert + 1] num[nplayer + 1]
do
{
menu();
switch (select())
{
case '1':
enter(a, num);
rmenu();
break;
case '2':
prints(a, num);
rmenu();
break;
case '3':
commend(a);
rmenu();
break;
case '4':
quit = vquit();
break;
};
}
while (quit != 'Y');
printf("\nS_have fun! :)\n");
return 0;
}
void menu()
{
printf("\n\n\t\t\tMU 's player 's score v1.0\n");
printf("\t\tCopyright (c) haidang001 (tm) (@yahoo.com)\n");
printf("\t\t\t 2011 Allright reserved\n\n");
printf("\t1. Input\n");
printf("\t2. Print score\n");
printf("\t3. Some comment about expert\n");
printf("\t4. Quit\n\n");
return;
}
char vquit()
{
char ans[100];
do
{
printf("Do you really want to exit? (Y/N)");
gets(ans);
ans[0] = toupper(ans[0]);
}
while ((ans[0] != 'Y') && (ans[0] != 'N'));
return ans[0];
}
int numcheck(int num[], int x)
{
int i;
if (num[x] <= 0)
return 0;
for(i = 1; i < x; i++)
if (num[x] == num[i])
return 0;
return 1;
}
void enter(int a[][maxsize], int num[])
{
int i, j;
for (i = 1; i <= nplayer; i++)
{
do
{
printf("\nEnter number sign of player %d: ", i);
scanf("%d", &num[i]);
}
while (numcheck(num, i) != 1);
for (j = 1; j <= nexpert; j++)
{
printf("Enter score of expert %d for player having number size %d: ", j, num[i]);
scanf("%d", &a[i][j]);
getchar();
};
};
printf("\n");
return;
}
int calc(int x, int a[][maxsize])
{
double res;
int i;
for(i = 1, res = 0; i <= nexpert; i++)
res += a[x][i];
res = res / nexpert;
if (((int)res != res) && ((int) (res * 2) == (res * 2)))
return (int)(res + 1);
else
return (int)(res);
}
void prints(int a[][maxsize], int num[])
{
int i;
for (i = 1; i <= nplayer; i++)
printf("\nScore of player having number sign %d: %d\n", num[i], calc(i, a));
return;
}
void commend(int a[][maxsize])
{
int i, j;
for (i = 1, a[0][i] = 0; i <= nexpert; i++)
for (j = 1; j <= nplayer; j++)
a[0][i] += a[j][i];
printf("Expert number %d is sternest.\n", idmax(a));
printf("Expert number %d is easiest.\n", idmin(a));
return;
}
int idmin(int a[][maxsize])
{
int res, i;
for (i = 2, res = 1; i <= nexpert; i++)
if (a[0][i] < a[0][res])
res = i;
return res;
}
int idmax(int a[][maxsize])
{
int res, i;
for (i = 2, res = 1; i <= nexpert; i++)
if (a[0][i] > a[0][res])
res = i;
return res;
}
char select()
{
char ans[100];
do
{
printf("Enter your selection: ");
gets(ans);
}
while ((ans[0] < '1') || (ans[0] > '4'));
return ans[0];
}
void rmenu()
{
char ans[100];
printf("\nPress Enter to return to main menu . . .");
gets(ans);
return;
}
//S_have fun! :)
Bài 3: labmanager
- Code:
/*Copyright (c) haidang001 (tm) (@yahoo.com)*/
/*2011 Allright reserved*/
/*Phong
Lab 813 chuong trinh Viet Nhat chua 40 may tinh de ban. Hang tuan cac
may se duoc su dung de thuc tap. Biet mot lan duoc su dung - dien nang
tieu thu la 400 Watt. Viet chuong trinh quan ly viec su dung may voi cac
menu sau:
- Dung may: KHi mot nguoi vao phong may - chi dinh so hieu may muon su dung. Neu may con trong - duoc cap may.
- Roi may: may ve trang thai roi.
- IN ra trang thai cac may (dang su dung - tat)
- In ra dien nang tieu thu tich luy tren cac may cho den thoi diem hien tai
- In ra tong dien nang tieu thu - va tien dien thanh toan (750dong/KW)
- In ra nhung may duoc dung nhieu nhat va it nhat*/
#include
#define perpow 400
#define powcost 750
#define ncomp 40
#define sizemax 100
void
fill(int []), menu(), getuse(int [], int [], int*), rmenu(), leave(int
[], int [], int*), status(int [], int [], int), sumup(int []),
statistic(int []);
char vquit(), select();
main()
{
int pow[sizemax] = {0}, free[sizemax] = {0}, nfree = 40;
char quit;
fill(free);
do
{
menu();
switch (select())
{
case '1':
getuse(pow, free, &nfree);
rmenu();
break;
case '2':
leave(pow, free, &nfree);
rmenu();
break;
case '3':
status(pow, free, nfree);
rmenu();
break;
case '4':
sumup(pow);
rmenu();
break;
case '5':
statistic(pow);
rmenu();
break;
case '6':
quit = vquit();
};
}
while (quit != 'Y');
printf("\nS_have fun! :)\n");
return 0;
}
int getmin(int pow[])
{
int i, res = pow[1];
for (i = 1; i <= ncomp; i++)
if (pow[i] < res)
res = pow[i];
return res;
}
int getmax(int pow[])
{
int i, res = pow[1];
for (i = 1; i <= ncomp; i++)
if (pow[i] > res)
res = pow[i];
return res;
}
void statistic(int pow[])
{
int min = getmin(pow), max = getmax(pow), i;
printf("Computer most has being used:");
for (i = 1; i <= ncomp; i++)
if (pow[i] == max)
printf("%d ", i);
printf("\n");
printf("Computer least has being used:");
for (i = 1; i <= ncomp; i ++)
if (pow[i] == min)
printf("%d ", i);
printf("\n");
return;
}
void sumup(int pow[]) //IN ra tong dien nang tieu thu va tien dien thanh toan
{
int i, sumpow = 0, bill = 0;
for(i = 1; i <= ncomp; i++)
sumpow += pow[i];
sumpow *= perpow;
bill = sumpow * powcost;
printf("Power has being used: %d (Watt)\n", sumpow);
printf("Total: %d (VND)\n", bill);
return;
}
void status(int pow[], int free[], int nfree)
{
int i, j;
printf("-----| |--------------------------------------------------------------\n");
printf("| ----------------- |\n");
printf("| |%-15s| |\n", "Teacher 's");
printf("| |%15s| |\n", "Desktop");
printf("| ----------------- |\n");
for (i = 1; i <= ((ncomp + 3) / 4); i ++)
{
j = (i - 1) * 4;
printf("|%-77s|\n", "");
printf("|%-77s|\n", "");
printf("|----------------- ----------------- ----------------- -----------------|\n");
printf("||Number: %-7d| ", j + 1);
printf("|Number: %-7d| ", j + 2);
printf("|Number: %-7d| ", j + 3);
printf("|Number: %-7d||\n", j + 4);
printf("|| Pow: %-8d| ", pow[j + 1] * perpow);
printf("| Pow: %-8d| ", pow[j + 2] * perpow);
printf("| Pow: %-8d| ", pow[j + 3] * perpow);
printf("| Pow: %-8d||\n", pow[j + 4] * perpow);
printf("|| Status: %-5s| ", (free[j + 1] == 1) ? "Free" : "Using");
printf("| Status: %-5s| ", (free[j + 2] == 1) ? "Free" : "Using");
printf("| Status: %-5s| ", (free[j + 3] == 1) ? "Free" : "Using");
printf("| Status: %-5s||\n", (free[j + 4] == 1) ? "Free" : "Using");
printf("|----------------- ----------------- ----------------- -----------------|\n");
};
printf("-------------------------------------------------------------------------------\n\n");
printf("There are %d being used computer(s)\n", ncomp - nfree);
printf("Remaing %d free computer(s)\n", nfree);
return;
}
void leave(int pow[], int free[], int (*nfree))
{
if ((*nfree) == ncomp)
{
printf("All computer are free!\n");
return;
};
int num;
do
{
printf("Enter number of computer to leave: ");
scanf("%d", &num);
getchar();
if ((num < 1) || (num > ncomp))
printf("Invalid number!\n");
else
if (free[num] == 1)
printf("Computer number %d already has been leaved!\n", num);
else
break;
}
while (1);
free[num] = 1;
(*nfree) ++;
printf("\nNow, computer number %d is free!\n", num);
return;
}
void getuse(int pow[], int free[], int (*nfree))
{
if ((*nfree) == 0)
{
printf("All computer are being used!\n");
return;
};
int num;
do
{
printf("Enter number of computer to be used: ");
scanf("%d", &num);
getchar();
if ((num < 1) || (num > ncomp))
printf("Invalid number!\n");
else
if (free[num] == 0)
printf("Computer number %d is being used!\n", num);
else
break;
}
while (1);
pow[num]++;
free[num] = 0;
(*nfree) --;
printf("\nNow, computer number %d is being used!\n", num);
return;
}
void menu()
{
printf("\n\n\t\t813 Laboratory manager v1.0\n");
printf("\tCopyright (c) haidang001 (tm) (@yahoo.com)\n");
printf("\t\t 2011 Allright reserved\n\n");
printf("Main menu:\n");
printf("\t1. Pick free computer to use\n");
printf("\t2. Leave a computer\n");
printf("\t3. View status\n");
printf("\t4. Check sum up\n");
printf("\t5. View statistic\n");
printf("\t6. Quit\n\n");
return;
}
void fill(int free[])
{
int i;
for (i = 1; i <= ncomp; i++)
free[i] = 1;
return;
}
char vquit()
{
char ans[100];
do
{
printf("Do you really want to exit? (Y/N)");
gets(ans);
ans[0] = toupper(ans[0]);
}
while ((ans[0] != 'Y') && (ans[0] != 'N'));
return ans[0];
}
char select()
{
char ans[100];
do
{
printf("Enter your selection: ");
gets(ans);
}
while ((ans[0] < '1') || (ans[0] > '6'));
printf("\n");
return ans[0];
}
void rmenu()
{
char ans[100];
printf("\nPress Enter to return to main menu . . .");
gets(ans);
return;
}
//S_have fun! :)
Chào ae, Koltec đi Lạng Sơn ).
S_have fun!
Được sửa bởi haidang001 ngày 27/04/11, 10:33 pm; sửa lần 1.
Re: Week10 (Full)
) tìm đc lỗi vớ vấn trong bài MU của Sáng ) đấy là các cầu thủ có thể mặc cùng số áo @@ hoặc số áo âm nhưng nói vậy mình ngồi sửa cũng ko sửa đc )
còn nữa cái a[][] nghĩa là sao?
mới làm đc bài 3, trình bày ko đc đẹp như Sáng, ae ngồi bới lông tìm vết hộ nhá ;;) còn 2 bài kia chán + lười, ko muốn làm, lấy luôn bài Sáng cho tiện
còn nữa cái a[][] nghĩa là sao?
mới làm đc bài 3, trình bày ko đc đẹp như Sáng, ae ngồi bới lông tìm vết hộ nhá ;;) còn 2 bài kia chán + lười, ko muốn làm, lấy luôn bài Sáng cho tiện
- Code:
#include<stdio.h>
#define diennang 400
#define giadien 70
int c=0,i,maybat,maytat,menu,may[40],dem[40],m,tdn=0;
int checkfull(const int may[];)
{
int i;
for(i=0;i<40;i++)
{
if (may[i]==0)
return 1;//con may
}
return 0;//het may
}
int checkfree(const int may[];)
{
int i;
for(i=0;i<40;i++)
{
if(may[i]==1)
return 1;//da co may su dung
}
return 0;
}
int batmay(int m ,int may[],int dem[])
{
int i;
i=m;
if(may[i]==0)
{
may[i]=1;
dem[i]++;
return 1;//*bat may
}
if(may[i]!=0)
{
return 2;//*may dang su dung
}
}
int tatmay(int m,int may[])
{
int i;
i=m;
if(may[i]==1)//*check xem may tat chua
{
may[i]=0;
return 1;//*may tat
}
if(may[i]==0) return 2;//may chua dc bat
}
void trangthai()
{
int i,j;
for(j=0;j<40;j+=4)
{
for(i=j;i<=(j+3);i++){
printf("May %2d: %-7s ",i+1,may[i+1]==1?"--ON--":"off"); }
printf("\n\n");
}
}
void dn()
{
int i,j;
for(j=0;j<40;j+=4)
{
for(i=j;i<=(j+3);i++){
printf("May %-2d:%4d(W) | ",i+1,dem[i+1]*diennang ); }
printf("\n | | | |\n");
}
}
void tongdn()
{
int i,tdn,td,tien;
for(i=0;i<40;i++)
{
td+=dem[i];
}
tdn=td*diennang;
tien=tdn*giadien;
printf("\nTong dien nang tieu thu cua phong may:%d W",tdn);
printf("\nTien dien phong may:%d VND\n\n",tien);
}
main()
{
for(i=1;i<41;i++)
{
may[i]=0;
dem[i]=0;
}
do{
printf("\n ===Phong may 813 du an Viet Nhat===\n");
printf("\n\t1.Su dung may chon may");
printf("\n\t2.Roi khoi may");
printf("\n\t3.Trang thai cac may");
printf("\n\t4.Dien nang tieu thu tung may");
printf("\n\t5.Tong dien nang tieu thu cua phong may");
printf("\n\t6.May duoc dung nhieu nhat,it nhat");
printf("\n\t7.Thoat");
printf("\n\t...");scanf("%d",&menu);
switch (menu)
{
case 1://case 1
{
if(checkfull(may)==0){printf("\n[!!!]Tat cac ca may dang dc su dung...\n");break;}
do
{
printf("\nXin moi chon may muon su dung:");scanf("%d",&m);
if(m<1||m>40){printf("\n[!!!]Du lieu khong dung, xin moi nhap lai...");c=1; }
if(batmay(m,may,dem)==1){c=0;continue;}
if(batmay(m,may,dem)==2)
{
printf("\n[!!!] May dang duoc su dung, moi chon may khac...\n");c=1;
}
}while (c!=0);
}break;
case 2://case 2
{
if (checkfree(may)==0){printf("\n[!!!]Khong co may nao de tat, xin moi chon lai...\n");break;}
do{
printf("\nXin moi chon may muon tat:");scanf("%d",&m);
if(m<1||m>40){printf("\n[!!!]Du lieu khong dung, xin moi nhap lai...");c=1;}
else {
if (tatmay(m,may)==1){c=0;break;}
if (tatmay(m,may)==2){printf("\n[!!!] May chua duoc bat hoac dang trong trang thai nghi...\n");c=1;}
}
}while(c==1);
}break;
case 3://case 3
{
printf("\n\n");
trangthai();
}break;
case 4://case 4
{
dn();
}break;
case 5://case 5
{
tongdn();
}break;
case 6://case 6
{
int maymax=0,maymin=0,ma=1,mi=1;
for (i=0;i<40;i++)
{
if (dem[i]>maymax)
{
maymax=dem[i];
ma=i;
}
if(dem[i]<maymin)
{
maymin=dem[i];
mi=i;
}
}
printf("\nMay su dung nhieu nhat la May %d (%d lan)",ma,maymax);
printf("\nMay su dung nhieu it la May %d (%d lan)",mi,maymin);
}
}
}while(menu!=7);
printf("\n\nXIN CHAO, HEN GAP LAI LAN SAU\n\n");
return 0;
}
Tung_tobe- Tổng số bài gửi : 100
Points : 124
Join date : 27/09/2010
Re: Week10 (Full)
Bài 3 của em,các bác xem có lỗi gì ko nhé.
- Code:
/*Bui Trung Hieu - 20101503*/
/* 5C Viet Nhat K55 */
/* Lab manager */
#include<stdio.h>
#define W 400
#define giadien 750
#define sosv 40
void main()
{
void dungmay(int,int[],int[]);
void tatmay(int,int[]);
void inmanhinh(int,int,int[],int[]);
void tongdien_tien(int,int[]);
void maxmin(int,int[],int[]);
int ktonoff(int,int[]);
int i,choice,onoff[sosv],lansd[sosv],c,pt=sosv;
for (i;i<40;i++)
{
onoff[i]=0;
lansd[i]=0;
}
do
{printf("\033[2J");
printf(" Chuong trinh quan ly phong lab HEDPSI\n\n\n");
printf("1.Su dung may.\n");
printf("2.Ngung su dung may.\n");
printf("3.In trang thai cac may.\n");
printf("4.In dien nang tieu thu tren cac may tinh den thoi diem hien tai.\n");
printf("5.In tong dien nang tieu thu - tien dien thanh toan.\n");
printf("6.In may su dung nhieu nhat va it nhat.\n");
printf("7.Thoat\n\n");
printf("Chon mot chuc nang de tiep tuc:");
scanf("%d",&choice);
if (choice>7||choice<1) continue;
switch (choice)
{
case 1:
{
dungmay(pt,onoff,lansd);
break;
}
case 2:
{
tatmay(pt,onoff);
break;
}
case 3:
{
c=1;
printf("Trang thai cac may (0 la tat,1 la bat):\n\n");
inmanhinh(pt,c,onoff,lansd);
break;
}
case 4:
{
c=2;
inmanhinh(pt,c,onoff,lansd);
break;
}
case 5:
{
tongdien_tien(pt,lansd);
break;
}
case 6:
{
maxmin(pt,lansd,onoff);
break;
}
case 8:for (i=0;i<40;i++) printf(" %d-%d ",i,lansd[i]);
}
}
while (choice!=7);
}
/****************************/
void dungmay(int phantu,int onoff[],int lansd[])
{
int so,kt,i;
kt=1;
do
{
if (ktonoff(phantu,onoff)==1)
{
printf("Tat cac cac may deu dang dung!");
kt=0;
continue;
}
printf("nhap may muon dung:");
scanf("%d",&so);
if (so<0||so>40) continue;
if (onoff[so-1]==0)
{
printf("May dang trang thai roi,ban co the dung.\n\n");
onoff[so-1]=1;
lansd[so-1]=lansd[so-1]+1;
kt=0;
}
else printf("May ban,moi ban chon may khac.\n\n");
}
while (kt==1);
printf("Nhan Enter de tiep tuc...");
getchar();getchar();
}
/*-------------*/
void tatmay(int phantu,int onoff[])
{
int so,kt=1;
do
{
if (ktonoff(phantu,onoff)==0)
{
printf("Tat ca cac may deu tat!\n");
kt=0;
continue;
}
printf("nhap may muon tat:");
scanf("%d",&so);
if (so<0||so>40) continue;
if (onoff[so-1]==0) printf("May dang trang thai roi,moi ban nhap lai.\n\n");
else
{
printf("May da tat.\n\n");
onoff[so-1]=0;
kt=0;
}
}
while (kt==1);
printf("Nhan Enter de tiep tuc...");
getchar();getchar();
}
/*-------------*/
void inmanhinh(int phantu,int chon,int onoff[],int lansd[])
{
int i,in[40];
switch(chon)
{
case 1:
{
for (i=0;i<phantu;i++) in[i]=onoff[i];break;
}
case 2:
{
for (i=0;i<phantu;i++) in[i]=lansd[i]*W;break;
}
}
printf(" 1 2 3 4\n");
for (i=0;i<phantu;)
{
printf(" ______________ ______________ ______________ ______________ \n");
printf("%-2d |%-2d%12d| |%-2d%12d| |%-2d%12d| |%-2d%12d|\n",i/4+1,i+1,in[i],i+2,in[i+1],i+3,in[i+2],i+4,in[i+3]);i=i+4;
printf(" |______________| |______________| |______________| |______________|\n\n\n");
}
printf("Nhan Enter de tiep tuc...");
getchar();getchar();
}
/*-------------*/
void tongdien_tien(int phantu,int lansd[])
{
int dien=0,i;
float tien=0;
for (i=0;i<phantu;i++) dien=dien+lansd[i]*W;
tien=dien*giadien;
tien=tien/1000;
printf("Tong dien nang tieu thu:%d W\n",dien);
printf("Tong tien thanh toan:%.0f VND\n",tien);
printf("Nhan Enter de tiep tuc...");
getchar();getchar();
}
/*-------------*/
void maxmin(int phantu,int lansd[],int onoff[])
{
int max,min,i,kt=0;
max=min=lansd[0];
do
{
for (i=0;i<phantu;i++)
{
if (lansd[i]>max) max=lansd[i];
if (lansd[i]<min) min=lansd[i];
}
if (max==0)
{
printf("Chua co may nao duoc su dung!\n");
continue;
}
printf("May duoc su dung nhieu nhat:");
for (i=0;i<phantu;i++) if (lansd[i]==max) printf("%d ",i+1);
printf("\n");
printf("May duoc su dung it nhat:");
for (i=0;i<phantu;i++) if (lansd[i]==min) printf("%d ",i+1);
printf("\n");
printf("Nhan Enter de tiep tuc...");
getchar();getchar();
}
while (kt==1);
}
/*-------------*/
int ktonoff(int phantu,int onoff[])
{
int i,dem=0;
for (i=0;i<phantu;i++)
if (onoff[i]==1) dem++;
if (dem==phantu) return 1;
else if (dem==0) return 0;
}
hieupro1269- Tổng số bài gửi : 31
Points : 37
Join date : 04/10/2010
Age : 32
Re: Week10 (Full)
Hix. Sao bài tập về nhà của thầy giao isumo dùng toàn cái chưa học mới làm được zậy. :shock:
Woodyx- Tổng số bài gửi : 26
Points : 35
Join date : 27/09/2010
Age : 32
Đến từ : Hà nội pro
Re: Week10 (Full)
- Code:
//ON = 0; OFF = 1;400W/h
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
void menu()
{
printf("\t\t\tMENU\n\n");
printf("1:dung may\n");
printf("2:nghi may\n");
printf("3:trang thai cac may\n");
printf("4:dien nag tieu thu\n");
printf("5:dien nang tieu thu va tien dien\n");
printf("6:may duoc su dung nhieu nhat\n");
printf("7:quit\n");
}
int main()
{
clock_t start[40],finish[40],now[40];
double totaltime[40],timenow[40],dien[40],tongdien=0,tien[40],tongtien=0;
int i,select,quit=0,h,min,j;
int trangthai[40],max[40],may;
for (i=0;i<40;i++) {trangthai[i]=1;max[i]=0;start[i]=0;tien[40]=0;dien[i]=0;}
j=max[0];
while (1)
{
menu();
printf("select....");scanf("%d",&select);
switch (select)
{
case 1:printf("nhap so may dung:");
scanf("%d",&may);
if (trangthai[may-1]==0) printf("may da duoc su dung! Hay dung may khac!\n"); else {
trangthai[may-1]=0;
start[may-1]=clock();
max[may-1]++;
printf("ban da ngoi may %d",may);}
break;
case 2:printf("ban nghi may so?...");
scanf("%d",&may);
if (trangthai[may-1]==1) printf("may nay ko duoc su dung!!\n"); else
{finish[may-1]=clock();
totaltime[may-1]=(double)(finish[may-1]-start[may-1])/(CLOCKS_PER_SEC);
dien[may-1]=totaltime[may-1]/9000;
h=(totaltime[may-1]/3600);
min=totaltime[may-1]/60-h*60;
printf("ban da su dung %d h %d min %.0lf s",h,min,totaltime[may-1]-h*3600-60*min);
trangthai[may-1]=1;
}
break;
case 3:printf("\t\t\tTRANG THAI HOAT DONG\n");
for (i=0;i<40;i++) {
printf("may %d: ",i+1);
if (trangthai[i]==1) printf("Off\t"); else printf("ON\t");
if ((i+1)%4==0) printf("\n\n\n\n");
}
break;
case 4:printf("\t\t\tDIEN NANG TIEU THU\n");
for (i=0;i<40;i++) {
printf("may %d: ",i+1);
if (trangthai[i]==0)
{
now[i]=clock();
timenow[i]=(double)(now[i]-start[i])/(CLOCKS_PER_SEC);
dien[i]=(timenow[i]/3600)*400;
printf("%.0lf W\t",dien[i]);
} else {printf("0 W\t");}
if ((i+1)%4==0) printf("\n\n\n\n");
}
break;
case 5:for (i=0;i<40;i++) {tongdien+=dien[i];}tongtien=tongdien*750;
printf("tong so dien su dung :%.2lf kW\n",tongdien);
printf("Tong so tien thanh toan:%.0lf $\n",tongtien);
break;
case 6:printf("May duoc su dung nhieu nhat:\n");
for (i=0;i<40;i++) if(j<max[i]) j=max[i];
for (i=0;i<40;i++) if (max[i]==j) printf("%d\t",i+1);
break;
case 7:quit++;
system("PAUSE");
break;
}
if (quit!=0) break;
}
printf("hen gap lai!!!\n\n");
return 0;
}
chikclik- Tổng số bài gửi : 12
Points : 20
Join date : 21/03/2011
Re: Week10 (Full)
cac bac show kinh qa' hey
senior_kien- Tổng số bài gửi : 1
Points : 1
Join date : 30/09/2010
Re: Week10 (Full)
Bai 1
Bai 3
Mon nay minh chi hy vong duoc D de do ton 550k hoc lai
- Code:
#include <stdio.h>
int print_menu();
int yourArr(int a[]);
int randArr(int a[]);
int occur0(int a[], int size);
int max0(int a[], int size);
void occur_all(int a[], int size);
int main()
{
int a[100], i, size = 0, menu, occur_0, max_0;
for(i = 0; i < 100; i++)
a[i] = 0;
do
{
menu = print_menu();
printf("\n");
switch (menu)
{
case 1:
{
size = yourArr(a);
printf("\n-------------------------------------------------------\n\n");
break;
}
case 2:
{
size = randArr(a);
printf("\n-------------------------------------------------------\n\n");
break;
}
case 3:
{
printf("The Array: ");
for(i = 0; i < size; i++)
printf("%d ", a[i]);
occur_0 = occur0(a, size);
printf("\n\nThe Frequency of Occurence of Number 0: %d\n", occur_0);
printf("\n-------------------------------------------------------\n\n");
break;
}
case 4:
{
printf("The Array: ");
for(i = 0; i < size; i++)
printf("%d ", a[i]);
max_0 = max0(a, size);
printf("\n\nThe Max Length of Number 0 Subsequence: %d\n", max_0);
printf("\n-------------------------------------------------------\n\n");
break;
}
case 5:
{
printf("The Array: ");
for(i = 0; i < size; i++)
printf("%d ", a[i]);
printf("\n\n");
occur_all(a, size);
printf("\n-------------------------------------------------------\n\n");
break;
}
case 6: printf("See You Again!\n\n"); break;
default:
{
printf("Invalid Choice! Please Choose Again!\n");
printf("\n-------------------------------------------------------\n\n");
}
}
}
while (menu != 6);
return 0;
}
int print_menu()
{
int menu;
printf("PROGRAM MAIN MENU\n\n");
printf("1. Enter Your Integer Array.\n");
printf("2. Let The Computer Randomly Generate an Integer Array.\n");
printf("3. The Frequency of Occurence of Number 0.\n");
printf("4. The Max Length of Number 0 Subsequence.\n");
printf("5. The Frequency of Occurence of All numbers.\n");
printf("6. Exit.\n");
printf("\nYour choice: ");
scanf("%d", &menu);
return menu;
}
int yourArr(int a[])
{
int i, size;
for(i = 0; i < 100; i++)
a[i] = 0;
do
{
printf("Size of Array (1 - 100): ");
scanf("%d", &size);
if ((size < 1)||(size > 100))
printf("Invalid! Size must be between 1 and 100! Enter Again!\n\n");
}
while ((size < 1)||(size > 100));
printf("\n");
for(i = 0; i < size; i++)
{
printf("Enter a[%d]: ", i);
scanf("%d", &a[i]);
}
return size;
}
int randArr(int a[])
{
int i, size;
for(i = 0; i < 100; i++)
a[i] = 0;
do
{
printf("Size of Array (1 - 100): ");
scanf("%d", &size);
if ((size < 1)||(size > 100))
printf("Invalid! Size must be between 1 and 100! Enter Again!\n\n");
}
while ((size < 1)||(size > 100));
for(i = 0; i < size; i++)
{
a[i] = rand()%100;
}
return size;
}
int occur0(int a[], int size)
{
int i, count = 0;
for(i = 0; i < size; i++)
if (a[i] == 0)
count++;
return count;
}
int max0(int a[], int size)
{
int i, in = 1, out = 0, stt, length = 0, max = 0;
stt = out;
for(i = 0; i < size; i++)
{
if (a[i] == 0)
if (stt == in)
length++;
else
{
length = 1;
stt = in;
}
else if (stt == in)
{
stt = out;
if (length > max)
max = length;
}
}
return max;
}
void occur_all(int a[], int size)
{
int i, k, temp, occur = 1, b[100];
for(i = 0; i < 100; i++) /* copy array */
b[i] = a[i];
for(i = 0; i < size; i++)
for(k = i; k > 0; k--)
{
if (b[k] < b[k-1])
{
temp = b[k];
b[k] = b[k-1];
b[k-1] = temp;
}
}
printf("Number\tOccurence\n\n");
printf("%d", b[0]);
for(i = 1; i < size; i++)
{
if (b[i] == b[i - 1])
{
occur++;
}
else
{
printf("\t%d\n", occur);
printf("%d", b[i]);
occur = 1;
}
}
printf("\t%d\n", occur);
}
Bai 3
- Code:
#include <stdio.h>
#define POWER 400
#define PRICE 750
int print_menu();
void logOn(int a[],int b[]);
void logOff(int a[]);
void states( int a[]);
void usage(int a[]);
void totalUsage(int a[]);
void most_least(int a[]);
int main()
{
int i, menu, com[40], elec[40];
for(i = 0; i < 40; i++)
com[i] = elec[i] = 0;
do
{
menu = print_menu();
printf("\n");
switch (menu)
{
case 1:
{
logOn(com, elec);
printf("\n------------------------------------------\n\n");
break;
}
case 2:
{
logOff(com);
printf("\n------------------------------------------\n\n");
break;
}
case 3:
{
states(com);
printf("\n------------------------------------------\n\n");
break;
}
case 4:
{
usage(elec);
printf("\n------------------------------------------\n\n");
break;
}
case 5:
{
totalUsage(elec);
printf("\n------------------------------------------\n\n");
break;
}
case 6:
{
most_least(elec);
printf("\n------------------------------------------\n\n");
break;
}
case 7:
{
printf("See You Again!\n\n");
break;
}
default: printf("Invalid Choice! Choose Again!\n\n");
}
}
while (menu != 7);
return 0;
}
int print_menu()
{
int menu;
printf("COMPUTER MANAGEMENT PROGRAM - R.813\n\n");
printf("1. Log On a Computer.\n");
printf("2. Log Off a Computer.\n");
printf("3. Computers' States.\n");
printf("4. Computers' Electricity Usage.\n");
printf("5. Total Electricity Consumption.\n");
printf("6. Most/Least Used Computer.\n");
printf("7. Exit.\n\n");
printf("Your Choice: ");
scanf("%d", &menu);
return menu;
}
void logOn(int a[],int b[])
{
int com, valid = 1;
do
{
printf("Choose a Computer to Log On [1-40]: ");
scanf("%d", &com);
if ((com < 1)||(com > 40))
{
printf("Invalid Choice! Choose Again!\n\n");
valid = 0;
}
else if (a[com - 1] == 1)
{
printf("This computer is currently logged on. Please choose another one!\n\n");
valid = 0;
}
else
{
printf("You have logged on Computer %d.\n", com);
a[com - 1] = 1;
b[com - 1] += POWER;
valid = 1;
}
}
while (valid == 0);
}
void logOff(int a[])
{
int com, valid = 1;
do
{
printf("Choose a Computer to Log Off [1-40]: ");
scanf("%d", &com);
if ((com < 1)||(com > 40))
{
printf("Invalid Choice! Choose Again!\n\n");
valid = 0;
}
else if (a[com - 1] == 0)
{
printf("This computer is already logged off.\n");
valid = 1;
}
else
{
printf("You have logged off Computer %d.\n", com);
a[com - 1] = 0;
valid = 1;
}
}
while (valid == 0);
}
void states( int a[])
{
int i;
printf("Computer\tState\n\n");
for(i = 0; i < 40; i++)
{
printf("%d\t\t", i+1);
if (a[i] == 1)
printf("On\n");
else printf("Off\n");
}
}
void usage(int a[])
{
int i;
printf("Computer\tElectricity Usage (W)\n\n");
for(i = 0; i < 40; i++)
{
printf("%d\t\t%d\n", i+1, a[i]);
}
}
void totalUsage(int a[])
{
int i;
float total = 0;
for(i = 0; i < 40; i++)
total += (float) a[i];
printf("%-40s%20.1f\n", "Total Electricity Consumption (kW):", total/1000);
printf("%-40s%16s%4d\n", "Price (per kW):", "x", PRICE);
printf("--------------------------------------------------------------\n");
printf("%-40s%20.0f\n", "Total Cost (VND):", total/1000*(float)PRICE);
}
void most_least(int a[])
{
int i, max, maxCom, min, minCom;
max = min = a[0];
for(i = 1; i < 40; i++)
{
if (a[i] > max)
{
max = a[i];
}
}
for(i = 1; i < 40; i++)
{
if (a[i] < min)
{
min = a[i];
}
}
printf("The Most Used Computer(s) is: Computer ");
for(i = 0; i < 40; i++)
if (a[i] == max)
printf("%d, ", i+1);
printf("\b\b (%d W)\n", max);
printf("The Least Used Computer(s) is: Computer ");
for(i = 0; i < 40; i++)
if (a[i] == min)
printf("%d, ", i+1);
printf("\b\b (%d W)\n", min);
}
Mon nay minh chi hy vong duoc D de do ton 550k hoc lai
zxcvbnm<>?- Tổng số bài gửi : 15
Points : 27
Join date : 04/10/2010
Re: Week10 (Full)
đọc thì chả hiểu
ý kiên mỗi cái ai dạy viết motriron thế kia vậy
ý kiên mỗi cái ai dạy viết motriron thế kia vậy
darklord226- Tổng số bài gửi : 16
Points : 18
Join date : 04/10/2010
Re: Week10 (Full)
Bài của zxcvbnm<>? làm ngon nhỉ. Kết nhất vì dễ hiểu. Phù hợp vs trình độ hiểu bít. . Thanks phát. Lần sau cố gắng phát huy. . .
Woodyx- Tổng số bài gửi : 26
Points : 35
Join date : 27/09/2010
Age : 32
Đến từ : Hà nội pro
Re: Week10 (Full)
bài của chikclik sai rồi, check mà xem, bật máy lên xong tắt máy đi điện năng tiêu thụ vẫn bằng 0 với cả tính watt toàn là 1 w với 2w, đc cái tính đc thời gian sử dụng máy
Bài Hiếu sai ngay từ chỗ nhập dữ liệu đầu tiên, nhập máy nào cũng báo là đang sử dụng
Bài Hiếu sai ngay từ chỗ nhập dữ liệu đầu tiên, nhập máy nào cũng báo là đang sử dụng
Tung_tobe- Tổng số bài gửi : 100
Points : 124
Join date : 27/09/2010
Re: Week10 (Full)
hơ hơ còn bài mình dịch trên code block còn ko chạy ) sang ubuntu đã
Tung_tobe- Tổng số bài gửi : 100
Points : 124
Join date : 27/09/2010
Trang 1 trong tổng số 1 trang
Permissions in this forum:
Bạn không có quyền trả lời bài viết
06/02/14, 11:10 am by sshin_conan
» các bạn/anh/chị cho hỏi đề thi giải tích 1
03/05/13, 09:47 pm by ictk56
» Đề nghị sát nhập 2 diễn đàn
18/02/12, 11:01 am by ngoanhtuan_hn
» Hội nghị sinh viên Việt Nam Nhật Bản tuyển thành viên
17/02/12, 11:43 pm by michiosatoo
» mình có câu này, mong các bạn dịch giúp!!!
16/11/11, 06:17 pm by asakurayo
» nho forum chut
15/11/11, 11:29 am by asakurayo
» CS 1.6 MAP MAKER
15/11/11, 07:55 am by asakurayo
» ubuntu-win
12/10/11, 05:46 pm by darklord226
» diễn đàn hedspi k56
11/10/11, 09:41 pm by lakazai