C0712I - FPT Aptech
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

C0712I - FPT Aptech

Diễn đàn của lớp C0712i - FPT - Aptech
 
Trang ChínhPortalGalleryTìm kiếmLatest imagesĐăng kýĐăng Nhập

 

 Bai C quan ly lop hoc va sinh vien, anh em tham khao, bai nay hay lam

Go down 
2 posters
Tác giảThông điệp
Admin
Admin
Admin
Admin


Tổng số bài gửi : 99
Join date : 16/01/2008
Age : 42

Bai C quan ly lop hoc va sinh vien, anh em tham khao, bai nay hay lam Empty
Bài gửiTiêu đề: Bai C quan ly lop hoc va sinh vien, anh em tham khao, bai nay hay lam   Bai C quan ly lop hoc va sinh vien, anh em tham khao, bai nay hay lam I_icon_minitimeSun Mar 09, 2008 2:44 am

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <ctype.h>
#include <string.h>
//====================================
//Cau truc mo ta thong tin mot lop hoc (class)
typedef struct
{char ClassName[10],HeadTeacher[30],RoomNo[40],TimeSlot[40];
int StudentNr;//So sinh vien
} CL;
/*
Vidu:
Class Name: C0611L
Head Teacher: Phan Dang Cau
Room No: Class 1, Lab 1
Time Slot: 17:30 - 19:30
Student Number: 24
(luu y: StudentNr>=16 va <=30)
*/
//=================================
//Khai bao cac bien toan cuc, tep Class.dat chua thong tin ve lop hoc
char *CL_file="Class.dat";FILE *CL_f;
//=================================
//Khai bao nguyen mau cac ham
char* UpperStr(char *p); //loai bo dau cach va chuyen thanh chu in hoa.
void OpenFiles(); //Mo va kiem tra cac tep du lieu
int CL_count();//Ham tra ve so lop hoc
int CL_search(char xCL[10]);//Tim kiem ma mon hoc va tra ve vi tri tim thay
void CL_sort();//Sap xep tep tang dan theo ten lop
void CL_AddNew();//Nhap cac lop hoc moi
void CL_edit();//Sua thong tin ve lop (khong sua ten lop)
void CL_dele();//Xoa lop hoc
void CL_view();//Hien thi danh sach lop tren man hinh
void CL_menu();//Hien thuc don thong tin ve lop hoc
//===============================
/*Ham nay co dau vao la chuoi ky tu p, ham xu ly va tra ve chuoi p nhung da
loai bo dau cach va chuyen thanh chu in hoa.
Ham nay dung de bien doi chuoi nhap vao thanh ten lop hop le: chi chua chu
in hoa va khong co dau cach*/
char* UpperStr(char *p)
{int i,k,n;char *q;
n=strlen(p);q = (char*) malloc(sizeof(char)*(n+1));
k=0;
for(i=0;i<n;i++)
if(p[i]!=' ') q[k++]=toupper(p[i]);
q[k]='\0';
strcpy(p,q);free(q);
return(p);
}
//=================================
//Mo va kiem tra cac tep du lieu
void OpenFiles()
{char ch;
//Kiem tra xem tep tepCL da co chua va mo tep de thao tac
CL_f=fopen(CL_file,"r+b");//Mo tep theo cach truy cap nhi phan doc/ghi
if(CL_f==NULL) //Tep CL_file chua ton tai
{CL_f=fopen(CL_file,"w+b");//Tao tep moi co the doc/ghi
}
else //Tep da co, hoi co ghi de khong?
{printf("\nTep du lieu %s da co, co tao moi khong?(Y/N) ",CL_file);
ch=toupper(getch());
if(ch=='Y') CL_f=fopen(CL_file,"w+b");//Tao tep moi co the doc/ghi
}
}
//=================================
//Ham tra ve so lop hoc
int CL_count()
{int n;
fseek(CL_f,0,2);
n=ftell(CL_f)/sizeof(CL);
return(n);
}
//=================================
//Tim kiem ma lop hoc va tra ve vi tri tim thay (0 la vi tri dau tien)
int CL_search(char xCL[10])
{int i;CL t;
i=0;
fseek(CL_f,0,0);//Tro ve dau tep
while(fread(&t,sizeof(CL),1,CL_f)>0)
{if(strcmpi(t.ClassName,xCL)==0) //So sanh khong phan biet chu hoa chu thuong
return(i);i++;
}
return(-1);//Khong tim thay, tra ve vi tri -1, ngu y la khong tim thay
}
//=================================
//Sap xep tep bang cach do du lieu vao bo nho, sap xep roi do tro lai tep
void CL_sort()
{int n,i,j;CL *p,t;
n=CL_count(); p = (CL *) malloc(n*sizeof(CL));
fseek(CL_f,0,0);//Tro ve dau tep
fread(p,sizeof(CL),n,CL_f);//Do tat ca du lieu vao mang p
//Sap xep tang dan theo MaCL
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(strcmpi(p[j].ClassName,p[i].ClassName)<0)
{t=p[i];p[i]=p[j];p[j]=t;}//Doi gia tri p[i] va p[j]
fseek(CL_f,0,0);
fwrite(p,sizeof(CL),n,CL_f);//Do tat ca du lieu da sap xep vao mang p
}
//=================================
/*Them lop hoc moi
Ham nay moi chi kiem tra xem lop da ton tai chua, neu ton tai roi
thi thong bao va khong nhap
*/
void CL_AddNew()
{CL t;char Save, Cont;
fseek(CL_f,0,2);//Chuyen ve cuoi tep chuan bi nhap lop hoc moi
while(1)
{clrscr();
printf("\nThem lop hoc moi:");
printf("\nNhap ten lop hoc: ");fflush(stdin);gets(t.ClassName);
printf("\nGiao vien chu nhiem: ");fflush(stdin);gets(t.HeadTeacher);
printf("\nPhong hoc: ");fflush(stdin);gets(t.RoomNo);
printf("\nThoi gian: ");fflush(stdin);gets(t.TimeSlot);
printf("\nSo sinh vien: ");scanf("%d",&t.StudentNr);
UpperStr(t.ClassName);//Chuyen thanh chu hoa va loai bo dau cach
if(CL_search(t.ClassName)>=0)//Lop hoc da co
{printf("\nTen lop da co, hay nhap lai!");getch();continue;}

printf("\nDo you want to save?(y/n): ");
Save=toupper(getche());
if(Save=='Y') fwrite(&t,sizeof(CL),1,CL_f);
printf("\nDo you want to continue?(y/n): ");
Cont=toupper(getche());
if(Cont!='Y') break;
}
}
//=================================
/*Sua lop hoc da co (khong sua ten lop)
Ham nay yeu cau tim lop, cho hien thi thong tin cu, yeu cau nhap
thong tin moi (ClassName thi khong thay doi)
*/
void CL_edit()
{CL t;char xCL[10],Save, Cont; int k;
while(1)
{clrscr();
printf("\nSua thong tin lop hoc da co:");
printf("\nNhap ten lop hoc can sua: ");fflush(stdin);gets(xCL);
UpperStr(xCL);//Chuyen thanh chu hoa va loai bo dau cach

k = CL_search(xCL);
if(k<0)//Khong tim thay lop hoc
{printf("\nTen lop chua ton tai, hay nhap lai!");getch();continue;}
fseek(CL_f,k*sizeof(CL),0);//Chuyen den lop can sua
fread(&t,sizeof(CL),1,CL_f);
printf("\n------------------------------------");
printf("\nThong tin cu:");
printf("\n------------------------------------");
printf("\nGiao vien chu nhiem: ");puts(t.HeadTeacher);
printf("\nPhong hoc: ");puts(t.RoomNo);
printf("\nThoi gian: ");puts(t.TimeSlot);
printf("\nSo sinh vien: %d",t.StudentNr);
printf("\n------------------------------------");
printf("\nSua lai la:");
printf("\n------------------------------------");
printf("\nGiao vien chu nhiem: ");fflush(stdin);gets(t.HeadTeacher);
printf("\nPhong hoc: ");fflush(stdin);gets(t.RoomNo);
printf("\nThoi gian: ");fflush(stdin);gets(t.TimeSlot);
printf("\nSo sinh vien: ");scanf("%d",&t.StudentNr);
UpperStr(t.ClassName);//Chuyen thanh chu hoa va loai bo dau cach
printf("\nDo you want to save?(y/n): ");
Save=toupper(getche());
if(Save=='Y')
{fseek(CL_f,k*sizeof(CL),0);//Chuyen den lop can sua
fwrite(&t,sizeof(CL),1,CL_f);
}
printf("\nDo you want to continue?(y/n): ");
Cont=toupper(getche());
if(Cont!='Y') break;
}
}
//=================================
/*Xoa mon hoc da co
Ham nay yeu cau tim lop, cho hien thi thong tin, yeu cau nguoi su dung
khang dinh co muon xoa hay khong.
*/
void CL_dele()
{CL t;char xCL[10],Dele, Cont; int i,k,n,mm;
mm=sizeof(CL);
while(1)
{clrscr();
printf("\nXoa lop hoc da co:");
printf("\nNhap ten lop hoc can xoa: ");fflush(stdin);gets(xCL);
UpperStr(xCL);//Chuyen thanh chu hoa va loai bo dau cach

k = CL_search(xCL);
if(k<0)//Khong tim thay lop hoc
{printf("\nTen lop chua ton tai, hay nhap lai!");getch();continue;}
fseek(CL_f,k*sizeof(CL),0);//Chuyen den lop can sua
fread(&t,sizeof(CL),1,CL_f);
printf("\n------------------------------------");
printf("\nThong tin ve lop can xoa:");
printf("\n------------------------------------");
printf("\nTen lop: ");puts(t.ClassName);
printf("\nGiao vien chu nhiem: ");puts(t.HeadTeacher);
printf("\nPhong hoc: ");puts(t.RoomNo);
printf("\nThoi gian: ");puts(t.TimeSlot);
printf("\nSo sinh vien: %d",t.StudentNr);
printf("\n------------------------------------");
printf("\nDo you want to delete?(y/n): ");
Dele=toupper(getche());
if(Dele=='Y')
{n=CL_count();
FILE *f2=fopen("tmp.dat","wb");//Tao ra mot tep tam thoi
rewind(CL_f);//Ve dau tep
for(i=0;i<n;i++)
{fread(&t,mm,1,CL_f);
if(i==k) continue;//Bo qua lop can xoa
fwrite(&t,mm,1,f2);
}
fclose(CL_f);
fclose(f2);
remove(CL_file);//Xoa tep Class.dat
rename("tmp.dat",CL_file);//Doi ten tep tmp.dat thanh Class.dat
CL_f=fopen(CL_file,"r+b");//Mo de thao tac
}
printf("\nDo you want to continue?(y/n): ");
Cont=toupper(getche());
if(Cont!='Y') break;
}
}
//=================================
/*Hien thi danh sach cac lop hoc tren man hinh
Ham nay moi chi hien thi ten lop, gv chu nhiem va so sinh vien, cac ban
bo sung them cac thong tin khac
*/
void CL_view()
{CL t;
if(CL_count()<1)
{printf("\nKhong co lop hoc nao");return;}
printf("\n\nDanh sach cac lop hoc:");
printf("\nTen lop Gv chu nhiem So sv");
fseek(CL_f,0,0);
while(fread(&t,sizeof(CL),1,CL_f)>0)
printf("\n%-10s %-10s %d",t.ClassName,t.HeadTeacher,t.StudentNr);
}
//=================================
void CL_menu()
{char chon;
while(1)
{clrscr();
printf("\n Thong tin ve lop hoc");
printf("\n ====================");
printf("\n1. Them lop hoc moi");
printf("\n2. Sua thong tin lop hoc");
printf("\n3. Xoa lop hoc");
printf("\n4. Sap xep theo ten lop");
printf("\n5. Danh sach lop hoc");
printf("\n6. Tro ve thuc don chinh");
printf("\n7. Ket thuc");
printf("\n\nHay nhan phim 1 -> 7: ");
chon=getch();
if(chon=='6') return;//Tro ve thuc don chinh
if(chon=='7') {fcloseall();exit(0);}//Ket thuc chuong trinh
switch(chon)
{case '1': CL_AddNew();break;
case '2': CL_edit();break;
case '3': CL_dele();break;
case '4': CL_sort();CL_view();break;
case '5': CL_view();break;
}
printf("\n\nNhan phim bat ky de tiep tuc");
getch();
}
}
//==================
void main()
{char chon;
clrscr();
OpenFiles();
while(1)
{clrscr();
printf("\n ÖÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ·");
printf("\n º º");
printf("\n º HE THONG QUAN LY DIEM º");
printf("\n º º");
printf("\n ÇÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĶ");
printf("\n º º");
printf("\n º 1. Thong tin ve lop hoc º");
printf("\n º º");
printf("\n º 2. Thong tin ve sinh vien º");
printf("\n º º");
printf("\n º 3. Thong tin ve diem º");
printf("\n º º");
printf("\n º 4. Ket thuc º");
printf("\n º º");
printf("\n ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄĽ");
printf("\n Hay nhan phim 1 -> 4:");
chon=getch();
if(chon=='4') break;
switch(chon)
{case '1': CL_menu();break;
case '2': ;break;
case '3': ;break;
}
}
fcloseall();
}
Về Đầu Trang Go down
https://c0712i.forumvi.com
Dragonsilver

Dragonsilver


Tổng số bài gửi : 36
Join date : 18/01/2008
Age : 34
Đến từ : Ha Noi

Bai C quan ly lop hoc va sinh vien, anh em tham khao, bai nay hay lam Empty
Bài gửiTiêu đề: Re: Bai C quan ly lop hoc va sinh vien, anh em tham khao, bai nay hay lam   Bai C quan ly lop hoc va sinh vien, anh em tham khao, bai nay hay lam I_icon_minitimeSun Mar 09, 2008 11:54 pm

bác Minh ơi...bác viết như thế này thì đọc bao giờ cho thành pro đây hả bác?bác giải thích dễ hiểu 1 tý đi.e xem và căng hết mắt+tận dụng trí óc ra mới hiểu dc có 70% à...bác xem thế nào đi chứ...sắp thi rùi đoá...
Về Đầu Trang Go down
 
Bai C quan ly lop hoc va sinh vien, anh em tham khao, bai nay hay lam
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» Bai Djava lam Calculator! Moi nguoi xem tham khao!
» ANH EM THANH VIEN T0712I AI SINH NHAT NGAY BAO NHIEU THONG BAO NHE
» Tài liệu tham khảo và 1 số mẫu đề thi C
» Thanh vien moi day..thanh vien moi day
» Rap Viet ,anh em nghe di,hoi kho nghe nhung co nhes

Permissions in this forum:Bạn không có quyền trả lời bài viết
C0712I - FPT Aptech :: Các vấn đề chung của Aptech và riêng tư của T0712i :: Cùng thảo luận ở đây nhá-
Chuyển đến