1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài tập đề cương Turbo C - Struct, Union, DSLK thuận - nghịch ppt

15 329 4

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 76 KB

Nội dung

Bài tập đề cương turbo C - HVKTMM Struct – union – DSLK thuận + nghịch. Bài 1. #include<stdio.h> #include<conio.h> #include<string.h> typedef struct slbh { int stt;int dg;int sl;char ten[30];long int tien; }; int i=-1,j,tt,n;char c;char *g[]={"STT","tenhang","Don gia","So luong","Thanh tien"}; struct slbh a[50],swap; void nhapdl(int stt,char ten[30],int *dg,int *sl,long int *tien) { printf("\n nhap mat hang thu %d : ",stt); printf("\n ten hang : ");fflush(stdin);gets(ten); printf("\n don gia : ");scanf("%d",dg); printf("\n so luong : ");scanf("%d",sl); *tien=(long int)(*dg)*(long int)(*sl); } void indl(int stt,char ten[30],int dg,int sl,long int tien) { printf("%3d %30s %10d %10d %10ld \n",stt,ten,dg,sl,tien); } void sapxep() { for(i=0;i<=n-1;i++) for(j=0;j<=n-i;j++) if (strcmp(a[j].ten,a[j+1].ten)>0) { tt=a[j].stt;a[j].stt=a[j+1].stt;a[j+1].stt=tt; swap=a[j];a[j]=a[j+1];a[j+1]=swap; } } void main() { do { clrscr(); i++; a[i].stt=i+1; nhapdl(a[i].stt,a[i].ten,&a[i].dg,&a[i].sl,&a[i].tien); printf("\n ban muon nhap tiep khong?"); fflush(stdin); Hoàng Đình Vinh AT5B 1 Bài tập đề cương turbo C - HVKTMM scanf("%c",&c); } while (c!='k'); n=i; clrscr(); printf("%d",n); printf("\n\t\t\t SO LIEU BAN HANG"); printf("\n %3s %30s %10s %10s %10s \n",g[0],g[1],g[2],g[3],g[4]); sapxep(); for(i=0;i<=n;i++) { indl(a[i].stt,a[i].ten,a[i].dg,a[i].sl,a[i].tien); } getch(); } Bài 2. #include <stdio.h> #include <conio.h> #include <string.h> #include <alloc.h> typedef struct { float TOAN,LY,HOA; }KA; typedef struct { float VAN,SU,DIA; }KC; typedef struct { char HOTEN[30],QUE[20],NGAYSINH[10],KHOITHI; float TONGDIEM; union { KA K1; KC K2; }KHOI; }THI_SINH; THI_SINH THISINH[100],TG; int n,i; #define TS THISINH[i] #define DA THISINH[i].KHOI.K1 #define DC THISINH[i].KHOI.K2 void NHAP() { Hoàng Đình Vinh AT5B 2 Bài tập đề cương turbo C - HVKTMM float M1,M2,M3; printf("NHAP VAO SO THI SINH : "); scanf("%d",&n); for (i=1;i<=n;i++) { printf("\nNHAP TEN THI SINH : "); fflush(stdin); gets(TS.HOTEN); printf("\nNHAP QUE QUAN THI SINH : "); gets(TS.QUE); printf("\nNHAP NGAY SINH CUA THI SINH : "); gets(TS.NGAYSINH); printf("\nNHAP KHOI THI CUA THI SINH : "); TS.KHOITHI=getch(); if (TS.KHOITHI=='A'||TS.KHOITHI=='a') { printf("\nNHAP DIEM TOAN : "); scanf("%f",&M1); printf("\nNHAP DIEM LY : "); scanf("%f",&M2); printf("\nNHAP DIEM HOA : "); scanf("%f",&M3); DA.TOAN=M1; DA.LY=M2; DA.HOA=M3; } else if (TS.KHOITHI=='C'||TS.KHOITHI=='c') { printf("\nNHAP DIEM VAN : "); scanf("%f",&M1); printf("\nNHAP DIEM SU : "); scanf("%f",&M2); printf("\nNHAP DIEM DIA : "); scanf("%f",&M3); DC.VAN=M1; DC.SU=M2; DC.DIA=M3; } TS.TONGDIEM=M1+M2+M3; } } void IN() { printf(" DANH SACH THI SINH KHOI A"); printf("\nSTT\tHO TEN\t\tQUE\t\tNGAY SINH\tDIEM TOAN DIEM LY DIEM HOA TONG\n"); Hoàng Đình Vinh AT5B 3 Bài tập đề cương turbo C - HVKTMM for (i=1;i<=n;i++) if (TS.KHOITHI=='A'||TS.KHOITHI=='a') printf("\n%d\t%s\t\t%s\t\t%s\t%f %f %f %f\n",i,TS.HOTEN,TS.QUE,TS.NGAYSINH,DA.TOAN,DA.LY,DA.HOA,TS.TONGD IEM); printf("\n\n DANH SACH THI SINH KHOI C"); printf("\nSTT\tHO TEN\t\tQUE\t\tNGAY SINH\tDIEM VAN DIEM SU DIEM DIA TONG\n"); for (i=1;i<=n;i++) if (TS.KHOITHI=='C'||TS.KHOITHI=='c') printf("\n%d\t%s\t\t%s\t\t%s\t%f %f %f %f\n",i,TS.HOTEN,TS.QUE,TS.NGAYSINH,DC.VAN,DC.SU,DC.DIA,TS.TONGDIE M); } void SAPXEP() { for(i=1;i<=n;i++) if (THISINH[i].TONGDIEM<THISINH[i+1].TONGDIEM) { TG=THISINH[i]; THISINH[i]=THISINH[i+1]; THISINH[i+1]=TG; } } main() { NHAP(); SAPXEP(); IN(); getch(); } Bài 3 #include<stdio.h> #include<conio.h> #include<alloc.h> #include<string.h> typedef struct hoc_vien { char ho_ten[20]; int tuoi; float d_tb; struct hoc_vien *tiep; }p_hv; p_hv *first,*p,*q,*r; Hoàng Đình Vinh AT5B 4 Bài tập đề cương turbo C - HVKTMM char ht[20],ch; float x;int tuoihv; void tao_ds(p_hv **first) {int i=0; printf("NHAP DANH SACH SINH VIEN\n"); *first=NULL; //khi danh sach chua co gi do { fflush(stdin); printf("Ho ten sv thu %d:",++i); gets(ht); if(*first==NULL) { *first=(p_hv*)malloc(sizeof(p_hv)); //cap phat vung nho do con tro first tro vao p=*first; // phan tu tiep theo do p tro toi } else { p->tiep=(p_hv*)malloc(sizeof(p_hv)); p=p->tiep; } strcpy(p->ho_ten,ht); p->tiep=NULL; printf("Tuoi :"); scanf("%d",&tuoihv); p->tuoi = tuoihv; printf("Diem trung binh:"); scanf("%f",&x); p->d_tb = x; printf("\n ban co nhap nua hay ko?y/n:\n"); ch=getch(); }while(ch=='y'||ch=='Y'); } void in_ds(p_hv *first) { int i=0; printf(" DANH SACH HOC VIEN\n"); printf(" ==================\n"); printf(" STT HO_TEN TUOI DIEM_TB\n"); p=first; while(p!=NULL) { printf(" %d %s %d %2.2f\n",++i,p->ho_ten,p->tuoi,p->d_tb); Hoàng Đình Vinh AT5B 5 Bài tập đề cương turbo C - HVKTMM p=p->tiep; } getch(); } void chen_sau(p_hv *first) { fflush(stdin); p=(p_hv*)malloc(sizeof(p_hv)); p->tiep=NULL; printf("\nHo ten sv can chen:"); gets(p->ho_ten); printf("Tuoi :"); scanf("%d",&tuoihv); p->tuoi = tuoihv; printf("Diem trung binh:"); scanf("%f",&x); p->d_tb=x; do{printf("Muon chen vao sau hoc vien nao:"); fflush(stdin); q=first; gets(ht); while((q!=NULL) && strcmpi(q->ho_ten,ht)) q=q->tiep; if(q==NULL) printf("\nKhong tim thay vi tri chen!"); printf("\nCo muon tim tiep hay ko?y/n:\n"); ch=getch();} while(ch=='y'||ch=='Y'); { if(q->tiep==NULL) //tim thay o cuoi ds q->tiep=p; else { p->tiep=q->tiep; q->tiep=p; } } printf("Da chen xong!"); getch(); } void chen_truoc(p_hv *first) { fflush(stdin); p=(p_hv*)malloc(sizeof(p_hv)); p->tiep=NULL; Hoàng Đình Vinh AT5B 6 Bài tập đề cương turbo C - HVKTMM printf("\nHo ten sv can chen:"); gets(p->ho_ten); printf("Tuoi :"); scanf("%d",&tuoihv); p->tuoi = tuoihv; printf("Diem trung binh:"); scanf("%f",&x); p->d_tb=x; do{printf("Muon chen vao truoc hoc vien nao:"); fflush(stdin); q=first; gets(ht); while((q!=NULL) && strcmpi(q->ho_ten,ht)) q=q->tiep; if(q==NULL) printf("\nKhong tim thay vi tri chen!"); printf("\nCo muon tim tiep hay ko?y/n:\n"); ch=getch(); } while(ch=='y'||ch=='Y'); {r=first; while(r->tiep!=q) r=r->tiep; q=(p_hv*)malloc(sizeof(p_hv)); q->tiep=r->tiep; r->tiep=q; } printf("\n da chen xong"); } void xoa_ds(p_hv **first) { do{ printf("Nhap ho ten nguoi can xoa:"); gets(ht); q=*first; while((q!=NULL)&&strcmpi(q->ho_ten,ht)) { r=q; q=q->tiep; } if(q==NULL) printf("\nKhong tim thay hoc vien can xoa!"); printf("\n ban co can xoa tiep ko?y/n:\n"); ch=getch(); } while(ch=='y'||ch=='Y'); { if(q==NULL) Hoàng Đình Vinh AT5B 7 Bài tập đề cương turbo C - HVKTMM r->tiep=NULL; else if(q==*first) *first=q->tiep; else r->tiep=q->tiep; free(q); printf("Da xoa xong!"); } getch(); } void main() { do{clrscr(); printf("\n 1.NHAP SV"); printf("\n 2.IN SV"); printf("\n 3.CHEN TRUOC"); printf("\n 4.CHEN SAU"); printf("\n 5.XOA SV"); printf("\n 6.KET THUC"); fflush(stdin); ch=getch(); //ko hien ky tu nhap ra man hinh switch(ch) { case '1': tao_ds(&first); break; case '2': in_ds(first); break; case '3': chen_truoc(first); break; case '4': chen_sau(first); break; case '5': xoa_ds(&first); break; } } while(ch!='6'); } Bài 4. #include<stdio.h> #include<conio.h> #include<alloc.h> #include<string.h> typedef struct hoc_vien { char ho_ten[20]; int tuoi; float d_tb; struct hoc_vien *tiep; }p_hv; p_hv *first,*p,*q,*r; Hoàng Đình Vinh AT5B 8 Bài tập đề cương turbo C - HVKTMM char ht[20],ch; float x;int tuoihv; void tao_ds(p_hv **first) {int i=0; printf("NHAP DANH SACH SINH VIEN\n"); *first=NULL; //khi danh sach chua co gi do { fflush(stdin); printf("Ho ten sv thu %d:",++i); gets(ht); first=NULL; p=(p_hv*)malloc(sizeof(p_hv)); p->tiep=*first; *first=p; strcpy(p->ho_ten,ht); p->tiep=NULL; printf("Tuoi :"); scanf("%d",&tuoihv); p->tuoi = tuoihv; printf("Diem trung binh:"); scanf("%f",&x); p->d_tb = x; printf("\n ban co nhap nua hay ko?y/n:\n"); ch=getch(); }while(ch=='y'||ch=='Y'); } void in_ds(p_hv *first) { int i=0; printf(" DANH SACH HOC VIEN\n"); printf(" ==================\n"); printf(" STT HO_TEN TUOI DIEM_TB\n"); p=first; while(p!=NULL) { printf(" %d %s %d %2.2f\n",++i,p->ho_ten,p->tuoi,p->d_tb); p=p->tiep; } getch(); } void chen_sau(p_hv *first) { Hoàng Đình Vinh AT5B 9 Bài tập đề cương turbo C - HVKTMM fflush(stdin); p=(p_hv*)malloc(sizeof(p_hv)); p->tiep=NULL; printf("\nHo ten sv can chen:"); gets(p->ho_ten); printf("Tuoi :"); scanf("%d",&tuoihv); p->tuoi = tuoihv; printf("Diem trung binh:"); scanf("%f",&x); p->d_tb=x; do{printf("Muon chen vao sau hoc vien nao:"); fflush(stdin); q=first; gets(ht); while((q!=NULL) && strcmpi(q->ho_ten,ht)) q=q->tiep; if(q==NULL) printf("\nKhong tim thay vi tri chen!"); printf("\nCo muon tim tiep hay ko?y/n:\n"); ch=getch();} while(ch=='y'||ch=='Y'); { if(q->tiep==NULL) //tim thay o cuoi ds q->tiep=p; else { p->tiep=q->tiep; q->tiep=p; } } printf("Da chen xong!"); getch(); } void chen_truoc(p_hv *first) { fflush(stdin); p=(p_hv*)malloc(sizeof(p_hv)); p->tiep=NULL; printf("\nHo ten sv can chen:"); gets(p->ho_ten); printf("Tuoi :"); scanf("%d",&tuoihv); p->tuoi = tuoihv; printf("Diem trung binh:"); scanf("%f",&x); Hoàng Đình Vinh AT5B 10 [...]... first=first->tiep; return q; } void chuyen_thap(int n,int c1 ,int c2 ,int c3 ) { if(n==1) push(1 ,c1 ,c3 ); else { chuyen_thap(n-1 ,c1 ,c3 ,c2 ); push(n ,c1 ,c3 ); chuyen_thap(n-1 ,c2 ,c1 ,c3 ); } } void hienkq() { do { p=pop(); printf("\nchuyen tang %d tu cot %d sang cot %d",p->t,p->cn,p->cd); } while (first!=NULL); getch(); } 14 Hoàng Đình Vinh AT5B Bài tập đề c ơng turbo C - HVKTMM void main() {int n ,c1 ,c2 ,c3 ; printf("nhap... doics(x,a);in(); getch(); } Bài 6 #include #include #include typedef struct node { int t,cn,cd; struct node *tiep; } p_node; p_node *p,*first,*last; void push(int n,int c1 ,int c2 ) 13 Hoàng Đình Vinh AT5B Bài tập đề c ơng turbo C - HVKTMM { p=(p_node*)malloc(sizeof(p_node)); p->t=n; p->cn =c1 ; p->cd =c2 ; if(first==NULL) { first=p; last=p; } else { last->tiep=p; last=p; } last->tiep=NULL;... in_ds(first); break; case '3': chen_truoc(first); break; case '4': chen_sau(first); break; case '5': xoa_ds(&first); break; } } while(ch!='6'); } Bài 5 #include #include #include struct cs { char c; struct cs *next; } ; struct cs *p,*top; void push(int t) { p=(cs *)malloc(sizeof(cs)); if (tc= t; else p- >c= t+87; p->next=top;top=p; } char *pop() { char t; if (top==NULL).. .Bài tập đề c ơng turbo C - HVKTMM p->d_tb=x; do{printf("Muon chen vao truoc hoc vien nao:"); fflush(stdin); q=first; gets(ht); while((q!=NULL) && strcmpi(q->ho_ten,ht)) q=q->tiep; if(q==NULL) printf("\nKhong tim thay vi tri chen!"); printf("\nCo muon tim tiep hay ko?y/n:\n"); ch=getch(); } while(ch=='y'||ch=='Y'); {r=first; while(r->tiep!=q) r=r->tiep; q=(p_hv*)malloc(sizeof(p_hv)); q->tiep=r->tiep;... Đình Vinh AT5B Bài tập đề c ơng turbo C - HVKTMM t=top- >c; top=top->next; return &t; } void doics(int x,int a) { do { push(x%a); x=x/a; } while (x!=0); } void in() { p=(cs *)malloc(sizeof(cs)); p=top; if (p==NULL) printf("\n danh sach rong "); else do { if (p- >cc) ; else printf(" %c" ,p- >c) ; p=p->next; } while (p!=NULL); } void main() { int x,a; printf("\n nhap x va a = ");scanf("%d%d",&x,&a);... r->tiep=q->tiep; free(q); 11 Hoàng Đình Vinh AT5B Bài tập đề c ơng turbo C - HVKTMM printf("Da xoa xong!"); } getch(); } void main() { do{clrscr(); printf("\n 1.NHAP SV"); printf("\n 2.IN SV"); printf("\n 3.CHEN TRUOC"); printf("\n 4.CHEN SAU"); printf("\n 5.XOA SV"); printf("\n 6.KET THUC"); fflush(stdin); ch=getch(); //ko hien ky tu nhap ra man hinh switch(ch) { case '1': tao_ds(&first); break; case... q->tiep=r->tiep; r->tiep=q; } printf("\n da chen xong"); } void xoa_ds(p_hv **first) { do{ printf("Nhap ho ten nguoi can xoa:"); gets(ht); q=*first; while((q!=NULL)&&strcmpi(q->ho_ten,ht)) { r=q; q=q->tiep; } if(q==NULL) printf("\nKhong tim thay hoc vien can xoa!"); printf("\n ban co can xoa tiep ko?y/n:\n"); ch=getch(); } while(ch=='y'||ch=='Y'); { if(q==NULL) r->tiep=NULL; else if(q==*first) *first=q->tiep;... %d",p->t,p->cn,p->cd); } while (first!=NULL); getch(); } 14 Hoàng Đình Vinh AT5B Bài tập đề c ơng turbo C - HVKTMM void main() {int n ,c1 ,c2 ,c3 ; printf("nhap so tang can chuyen:"); scanf("%d",&n); chuyen_thap(n,1,2,3); hienkq(); getch(); } To be continue… 15 Hoàng Đình Vinh AT5B . Bài tập đề c ơng turbo C - HVKTMM Struct – union – DSLK thuận + nghịch. Bài 1. #include<stdio.h> #include<conio.h> #include<string.h> typedef struct slbh { int. *p,*first,*last; void push(int n,int c1 ,int c2 ) Hoàng Đình Vinh AT5B 13 Bài tập đề c ơng turbo C - HVKTMM { p=(p_node*)malloc(sizeof(p_node)); p->t=n; p->cn =c1 ; p->cd =c2 ; if(first==NULL) { . push(1 ,c1 ,c3 ); else { chuyen_thap(n-1 ,c1 ,c3 ,c2 ); push(n ,c1 ,c3 ); chuyen_thap(n-1 ,c2 ,c1 ,c3 ); } } void hienkq() { do { p=pop(); printf(" chuyen tang %d tu cot %d sang cot %d",p->t,p->cn,p->cd);

Ngày đăng: 06/07/2014, 06:20

TỪ KHÓA LIÊN QUAN

w