- Code:
#include
#include
#include
#define Max 50
struct sinhvien
{
int masosv;
int dtoan;
int dly;
int dhoa;
char hoten[50];
};
void input(sinhvien,int);
void output(sinhvien,int);
void input(sinhvien ssv[],int n)
{
char tam[10];
for(int i=0;i
{
printf("Nhap vao ma so sinh vien thu %d:",i+1);
gets(tam);
ssv[i].masosv=atoi(tam);
gets(tam);
printf("Nhap vao so diem cua mon toan %d:",i+1);
gets(tam);
ssv[i].dtoan=atoi(tam);
printf("Nhap vao so diem cua mon ly %d:",i+1);
gets(tam);
ssv[i].dly=atoi(tam);
printf("Nhap vao so diem cua mon hoa %d:",i+1);
gets(tam);
ssv[i].dhoa=atoi(tam);
printf("Nhap vao ten sinh vien:");
gets(ssv[i].hoten);
}
}
void output(sinhvien ssv[],int n)
{
for(int i=0;i
{
printf("Ma so sinh vien %5d va ho ten cua sinh vien %s:"
,ssv[i].masosv,ssv[i].hoten);
printf("\\n");
printf("So diem mon toan: %5d",ssv[i].dtoan);
printf("\\n");
printf("So diem mon ly: %5d",ssv[i].dly);
printf("\\n");
printf("So diem mon hoa: %5d",ssv[i].dhoa);
printf("\\n");
}
}
main()
{
sinhvien ssv[Max];
char tam[10];
int i,n;
printf("Nhap vao so sinh vien : " );
gets(tam);
n=atoi(tam);
input(ssv,n);
output(ssv,n);
getch();
}
4 posters
Nhap xuat cau truc mang sinh vien (bai tap 4)
ban_tuongky- Moderator
- Giới tính : Bài gửi : 91
Tổng Điểm : 198
Điểm Thưởng : 0
Bị Dụ Dỗ : 11/09/2009
chuquangtu- Advance Member
- Giới tính : Bài gửi : 50
Tổng Điểm : 151
Điểm Thưởng : 4
Sinh Nhật : 29/12/1990 Bị Dụ Dỗ : 12/09/2009
Tuổi : 33
ban_tuongky thân mến ! Bạn có thể tham khảo bài làm này nha ! Hé hé nếu có chỗ nào khúc mắc cứ reply lại
- Code:
/* Bai tap 1_61 - Quan ly danh sach hoc sinh */
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define MAX 100
typedef struct hocsinh {
char hoten[35];
char mssv[7];
float diemtoan, diemly, diemhoa;
} HOCSINH;
HOCSINH danhsach[MAX];
int n = 0;
char filename[] = "DANHSACH.DAT";
main()
{
int done = 0, i;
char hoten[35];
float diem;
do {
printf("\nHo ten (trong de thoat) : ");
gets(hoten);
if (strlen(hoten) == 0)
done = 1;
else
{
strcpy(danhsach[n].hoten, hoten);
printf("\nmssv : ");
gets(danhsach[n].mssv);
printf("\nDiem toan : ");
scanf("%f", &diem);
danhsach[n].diemtoan = diem;
printf("\nDiem ly : ");
scanf("%f", &diem);
danhsach[n].diemly = diem;
printf("\nDiem hoa : ");
scanf("%f%*c", &diem);
danhsach[n].diemhoa = diem;
n++;
}
} while (!done);
for (i=0; i<n; i++)
{
printf("\n+-----+------------------------------------+--------+------+------+------+");
printf("\n| STT | H O V A T E N | MSSV | TOAN | LY | HOA |");
printf("\n+-----+------------------------------------+--------+------+------+------+");
for (i=0; i<n; i++)
{
printf("\n| %3d | ", i+1);
printf("%-35s| %-7s| %4.1f | %4.1f | %4.1f |", danhsach[i].hoten,danhsach[i].mssv,
danhsach[i].diemtoan, danhsach[i].diemly, danhsach[i].diemhoa);
}
printf("\n+-----+------------------------------------+--------+------+------+------+");
}
getch();
}
ban_tuongky- Moderator
- Giới tính : Bài gửi : 91
Tổng Điểm : 198
Điểm Thưởng : 0
Bị Dụ Dỗ : 11/09/2009
cam on ban nha "chuquangtu". Lam phien ban 1 ti dc ko?
ban co the giup minh them 1 doan cot de xoa di 1 danh sach nhan vien nha, thanks
ban co the giup minh them 1 doan cot de xoa di 1 danh sach nhan vien nha, thanks
Vy Thanh Định- Web Master
- Giới tính : Bài gửi : 228
Tổng Điểm : 544
Điểm Thưởng : 16
Sinh Nhật : 19/05/1990 Bị Dụ Dỗ : 11/09/2009
Tuổi : 34
Úi dào tới lượt Admin ra tay đây! Góp ý phát nha
Nếu muốn đẹp và xuất ra đc nhìu thứ thì bạn tham khảo tại topic này nha http://itvi.co.cc/forum-f7/topic-t57.htm
- Code:
#include
#include
#include
#include
#include
#define MAX 100
#define TOAN 0
#define LY 1
#define HOA 2
struct sinhvien {
char mslop[5];
char hoten[35];
float diem[3];
} danhsach[MAX];
int n = 0;
void nhapmoi()
{
char mslop[5], tmp[3];
int i;
float diem[3];
do {
printf("\nCho biet ma so lop : ");fflush(stdin);
gets(mslop);
if (strlen(mslop))
{
strcpy(danhsach[n].mslop, mslop);fflush(stdin);
printf("\nCho biet ho ten : ");
gets(danhsach[n].hoten);
printf("\nCho biet diem so : ");
for (i=0; i<3; i++)
{
scanf("%f", &diem[i]);
danhsach[n].diem[i] = diem[i];
}
gets(tmp);
n++;
}
} while (strlen(mslop));
}
void timkiem()
{
char mslop[5];
int i = 0, found = 0;
printf("\nCho biet ma so lop : ");fflush(stdin);
gets(mslop);
if (strlen(mslop))
while (i
if (stricmp(danhsach[i].mslop, mslop) == 0)
{
printf("\nMa so lop : %s", danhsach[i].mslop);
printf("\nHo va ten : %s", danhsach[i].hoten);
printf("\nDiem Toan : %f", danhsach[i].diem[TOAN]);
printf("\nDiem Ly : %f", danhsach[i].diem[LY]);
printf("\nDiem Hoa : %f", danhsach[i].diem[HOA]);
found = 1;
break;
}
else
i++;
if (!found)
printf("\nKhong tim thay!!!");
}
void xoa()
{
char mslop[5], traloi;
int i = 0, j;
printf("\nCho biet ma so lop : ");fflush(stdin);
gets(mslop);
if (strlen(mslop))
while (i
if (stricmp(danhsach[i].mslop, mslop) == 0)
{
printf("\nMa so lop : %s", danhsach[i].mslop);
printf("\nHo va ten : %s", danhsach[i].hoten);
printf("\nDiem Toan : %f", danhsach[i].diem[TOAN]);
printf("\nDiem Ly : %f", danhsach[i].diem[LY]);
printf("\nDiem Hoa : %f", danhsach[i].diem[HOA]);
printf("\nCo muon xoa khong (C/K)? ");
do {
traloi = toupper(getch());
} while (traloi != 'C' && traloi != 'K');
putc(traloi, stdout);
if (traloi == 'C')
{
n--;
memcpy(&danhsach[i], &danhsach[i+1], sizeof(struct sinhvien) * (n-i));
break;
}
}
else
i++;
}
void menu()
{
printf("\n***************");
printf("\n* 1. Them *");
printf("\n* 2. Xoa *");
printf("\n* 3. Tim kiem *");
printf("\n* 0. Thoat *");
printf("\n***************");
printf("\nChon lua ? ");
}
void main()
{
char traloi;
do {
menu();
do {
traloi = getch();
} while (traloi < '0' || traloi > '3');
putc(traloi, stdout);
switch (traloi)
{
case '1' : nhapmoi();
break;
case '2' : xoa();
break;
case '3' : timkiem();
break;
}
} while (traloi != '0');
}
Nếu muốn đẹp và xuất ra đc nhìu thứ thì bạn tham khảo tại topic này nha http://itvi.co.cc/forum-f7/topic-t57.htm
Vy Thanh Định- Web Master
- Giới tính : Bài gửi : 228
Tổng Điểm : 544
Điểm Thưởng : 16
Sinh Nhật : 19/05/1990 Bị Dụ Dỗ : 11/09/2009
Tuổi : 34
Bài này mới chỉnh sửa, còn phần xếp loại học lực chưa kịp làm thông cảm nhá
- Code:
/*****************************************************************************
* Chuong trinh C4-1: Chuong trinh quan ly danh sach sinh vien, cai dat bang *
* danh sach ke *
*****************************************************************************/
#include <stdio.h>
#include <conio.h>
#define MAX 100
#define TRUE 1
#define FALSE 0
typedef struct sinhvien
{
int mssv;
char hoten[20];
float DIEMTOAN, DIEMVAN, DIEMLY, dtb;
};
typedef struct list
{
int n;
sinhvien a[MAX];
};
// tac vu initialize: khoi dong danh sach ke
void initialize(list *p)
{
p->n = 0;
}
// Tac vu listsize: xac dinh so nut trong danh sach
int listsize(list *p)
{
return(p->n);
}
// Tac vu empty: kiem tra danh sach co bi rong khong
int empty(list *p)
{
return((p->n == 0) ? TRUE : FALSE);
}
// Tac vu full: kiem tra danh sach bi day khong
int full(list *p)
{
return((p->n == MAX) ? TRUE : FALSE);
}
// Tac vu insert: chen nut co noi dung x vao vi tri pos
void insert(list *p, int pos, sinhvien x)
{
int i;
if(pos < 0 || pos > listsize(p))
{
printf("Vi tri chen khong phu hop.");
return;
}
else
if(full(p))
{
printf("Danh sach bi day.");
return;
}
else
{
for(i = listsize(p)-1; i >= pos; i--)
p->a[i+1] = p->a[i];
p->a[pos] = x;
p->n++;
}
}
// Tac vu remove: xoa nut tai vi tri pos trong danh sach
sinhvien remove(list *p, int pos)
{
int i;
sinhvien x;
if(pos < 0 || pos >= listsize(p))
printf("Vi tri xoa khong phu hop.");
else
if(empty(p))
printf("Danh sach khong co sinh vien.");
else
{
x = p->a[pos];
for(i = pos; i <= listsize(p)-1; i++)
p->a[i] = p->a[i+1];
p->n--;
return(x);
}
}
// Tac vu clearlist: xoa tat ca cac nut trong danh sach
void clearlist(list *p)
{
p->n = 0;
}
// Tac vu replace: hieu chinh noi dung cua nut tai vi tri pos trong danh sach
void replace(list *p, int pos, sinhvien x)
{
if(pos < 0 || pos >= listsize(p))
{
printf("Vi tri hieu chinh khong phu hop.");
return;
}
else
if(empty(p))
{
printf("Danh sach khong co sinh vien.");
return;
}
else
p->a[pos] = x;
}
// Tac vu traverse: duyet danh sach sinh vien
void traverse(list *p)
{
int i;
if(p->n == 0)
{
printf("\nDanh sach khong co sinh vien");
return;
}
for(i = 0; i < p->n; i++)
printf("\n|%3d|%8d|%20s|%6.0f|%6.0f|%6.0f|%6.1f|", i, p->a[i].mssv, p->a[i].hoten,
p->a[i].DIEMTOAN,p->a[i].DIEMVAN,p->a[i].DIEMLY,p->a[i].dtb);
printf("\n+---+--------+--------------------+------+------+------+------+");
}
// Tac vu selectionsort: sap xep danh sach theo MSSV tang dan
void selectionsort(list *p)
{
int i, j, vitrimin;
sinhvien svmin;
for(i = 0; i < p->n-1; i++)
{
svmin = p->a[i];
vitrimin = i;
for(j = i+1; j < p->n; j++)
if(svmin.mssv > p->a[j].mssv)
{
svmin = p->a[j];
vitrimin = j;
}
// hoan doi
p->a[vitrimin] = p->a[i];
p->a[i] = svmin;
}
}
void sort(list *p)
{
int i, j, vitrimax;
sinhvien tbmax;
for(i = 0; i < p->n-1; i++)
{
tbmax = p->a[i];
vitrimax = i;
for(j = i+1; j < p->n; j++)
if(tbmax.dtb < p->a[j].dtb)
{
tbmax = p->a[j];
vitrimax = j;
}
// hoan doi
p->a[vitrimax] = p->a[i];
p->a[i] = tbmax;
}
}
/* Tac vu linearsearch: tim kiem tuyen tinh, neu khong tim thay ham nay tra
ve tri -1, neu tim thay ham nay tra ve vi tri tim thay */
int linearsearch(list *p, int mssv)
{
int vitri = 0;
while(p->a[vitri].mssv != mssv && vitri < p->n)
vitri++;
if(vitri == p->n) // khong tim thay
return(-1);
return(vitri); // tim thay
}
int search(list *p,float dtb)
{
int vitri = 0;
while(p->a[vitri].dtb != dtb && vitri < p->n)
vitri++;
if(vitri == p->n) // khong tim thay
return(-1);
return(vitri); // tim thay
}
void main()
{
struct list ds;
sinhvien sv;
int chucnang, vitri;
char c;
// clrscr();
initialize(&ds);
do
{
// menu chinh cua chuong trinh
printf("\n\nCHUONG TRINH QUAN LY DANH SACH SINH VIEN:\n");
printf("Cac chuc nang cua chuong trinh:\n");
printf(" 1: Xem danh sach sinh vien\n");
printf(" 2: Them mot sinh vien vao danh sach\n");
printf(" 3: Xoa mot sinh vien trong danh sach\n");
printf(" 4: Hieu chinh sinh vien\n");
printf(" 5: Sap xep danh sach theo MSSV\n");
printf(" 6: Sap xep danh sach theo DTB\n");
printf(" 7: Tim kiem sinh vien theo MSSV\n");
printf(" 8: Tim kiem sinh vien theo DTB\n");
printf(" 9: Xoa toan bo danh sach\n");
printf(" 0: Ket thuc chuong trinh\n");
printf("Chuc nang ban chon: ");
scanf("%d", &chucnang);
switch(chucnang)
{
case 1:
{
printf("\nDanh sach sinh vien: ");
printf("\n+---+--------+--------------------+------+------+------+------+");
printf("\n|STT| MSSV | HO TEN | TOAN | VAN | LY | DTB |");
printf("\n+---+--------+--------------------+------+------+------+------+");
traverse(&ds);
break;
}
case 2:
{
do{
printf("\nVi tri them (0, 1, 2, ...): ");
scanf("%d", &vitri);
printf("Ma so sinh vien: ");
scanf("%d", &sv.mssv);
printf("Ho ten sinh vien: ");fflush(stdin);
gets(sv.hoten);
printf("Diem toan: ");
scanf("%f", &sv.DIEMTOAN);
printf("Diem van: ");
scanf("%f", &sv.DIEMVAN);
printf("Diem ly: ");
scanf("%f", &sv.DIEMLY);
sv.dtb=(sv.DIEMTOAN+sv.DIEMVAN+sv.DIEMLY)/3.0;
insert(&ds, vitri, sv);
printf("Nhap them khong ?(c/k): ");
c = getche();
}while(c == 'c' || c == 'C');
break;
}
case 3:
{
printf("Ma sinh vien can xoa: ");fflush(stdin);
scanf("%d", &sv.mssv);
vitri = linearsearch(&ds, sv.mssv);
if(vitri == -1)
printf("Khong co sinh vien co MSSV %d trong danh sach",sv.mssv);
else
remove(&ds, vitri);
printf("Da xoa sinh vien co MSSV %d",sv.mssv);
break;
}
case 4:
{
printf("Ma sinh vien can sua: ");fflush(stdin);
scanf("%d", &sv.mssv);
vitri = linearsearch(&ds, sv.mssv);
if(vitri == -1)
printf("Khong co sinh vien co MSSV %d trong danh sach",sv.mssv);
else
printf("\nSTT:%d MSSV:%d HOTEN:%s", vitri,
ds.a[vitri].mssv, ds.a[vitri].hoten);
printf("\nMa so sv moi: ");
scanf("%d", &sv.mssv);
printf("Ho ten sv moi: ");fflush(stdin);
gets(sv.hoten);
printf("Diem toan: ");
scanf("%d", &sv.DIEMTOAN);
printf("Diem van: ");
scanf("%d", &sv.DIEMVAN);
printf("Diem ly: ");
scanf("%d", &sv.DIEMLY);
sv.dtb=(sv.DIEMTOAN+ sv.DIEMVAN+ sv.DIEMLY)/3.0;
replace(&ds, vitri, sv);
printf("Da sua xong sinh vien co ma so: %d!",sv.mssv);
break;
}
case 5:
{
printf("Ban co chac khong (c/k): ");
c = getche();
if(c == 'c' || c == 'C')
selectionsort(&ds);
break;
}
case 6:
{
printf("Ban co chac khong (c/k): ");
c = getche();
if(c == 'c' || c == 'C')
sort(&ds);
break;
}
case 7:
{
printf("\nMa so sinh vien can tim: ");
scanf("%d", &sv.mssv);
vitri = linearsearch(&ds, sv.mssv);
if(vitri == -1)
printf("Khong co sinh vien co MSSV %d trong danh sach",sv.mssv);
else
{
printf("Tim thay tai vi tri %d trong danh sach", vitri);
printf("\n+--------+--------------------+------+------+------+------+");
printf("\n| MSSV | HO TEN | TOAN | VAN | LY | DTB |");
printf("\n+--------+--------------------+------+------+------+------+");
printf("\n|%8d|%20s|%6.0f|%6.0f|%6.0f|%6.1f|", ds.a[vitri].mssv, ds.a[vitri].hoten,ds.a[vitri].DIEMTOAN,ds.a[vitri].DIEMVAN,ds.a[vitri].DIEMLY,ds.a[vitri].dtb);
printf("\n+--------+--------------------+------+------+------+------+");
}
break;
}
case 8:
{
printf("\nDTB sinh vien can tim: ");
scanf("%f", &sv.dtb);
vitri = search(&ds, sv.dtb);
if(vitri == -1)
printf("Khong co sinh vien co DTB %d trong danh sach",sv.dtb);
else
{
printf("Tim thay tai vi tri %d trong danh sach", vitri);
printf("\n+--------+--------------------+------+------+------+------+");
printf("\n| MSSV | HO TEN | TOAN | VAN | LY | DTB |");
printf("\n+--------+--------------------+------+------+------+------+");
printf("\n|%8d|%20s|%6.0f|%6.0f|%6.0f|%6.1f|", ds.a[vitri].mssv, ds.a[vitri].hoten,ds.a[vitri].DIEMTOAN,ds.a[vitri].DIEMVAN,ds.a[vitri].DIEMLY,ds.a[vitri].dtb);
printf("\n+--------+--------------------+------+------+------+------+");
}
break;
}
case 9:
{
printf("Ban co chac khong (c/k): ");
c = getche();
if(c == 'c' || c == 'C')
clearlist(&ds);
break;
}
}
} while(chucnang != 0);
}
minhchi692002- New Member
- Giới tính : Bài gửi : 9
Tổng Điểm : 11
Điểm Thưởng : 0
Sinh Nhật : 13/09/1990 Bị Dụ Dỗ : 21/09/2009
Tuổi : 34
hay qua di