Thứ Sáu, 1 tháng 1, 2016

Tạo menu trong c

tạo menu trong c (bài tập quản lí sinh vien)
Hiển thị kết quả từ 1 đến 7 / 7
  1. #1
    Tham gia
    01-12-2008
    Bài viết
    31
    Like
    0
    Thanked 0 Times in 0 Posts

    Ngạc nhiên tạo menu trong c (bài tập quản lí sinh vien)

    Code:
    #include <stdio.h>
    #include <conio.h>
    
    #define MaxSV 50
    #define BELL 7
    
    void Khoitao(void);
    void NhapData(void);
    void TongDiemTang(void);
    void TrungBinh(void);
    void DiemMax(void);
    void About(void);
    void ThoatCT(void);
    
    struct KieuSV
    {
       char MaSV[10];
       char Ten[20];
       float DToan;
       float DVan;
       float TDiem;
    };
    struct KieuSV SV[MaxSV];
    int index[MaxSV];
    int i,j;
    int N;
    int main()
    {
       int luachon;
       Khoitao();
       do
       {
    	  clrscr();
    	  printf("			        MENU CUA CHUONG TRINH");
    	  printf("\n   	  	    ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»");
    	  printf("\n   		    º 1.Nhap du lieu                 º");
    	  printf("\n   		    º 2.In DS tang dan tong diem     º");
    	  printf("\n   		    º 3.In trung binh cua tong diem  º");
    	  printf("\n   		    º 4.In DS hoc sinh tong diem MAX º");
    	  printf("\n   		    º 5.Doi dieu ve tac gia.         º");
    	  printf("\n   		    º 6.Thoat khoi chuong trinh      º");
    	  printf("\n   		    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ");
    	  printf("\n");
    	  printf("\n	Ban hay chon mot so:");
    	  scanf("%d",&luachon);
    	  switch (luachon)
    	  {
    		 case 1:NhapData();break;
    		 case 2:TongDiemTang();break;
    		 case 3:TrungBinh();break;
    		 case 4:DiemMax();break;
    		 case 5:About();break;
    		 case 6:{
    				ThoatCT();
    				return 0;
    				}
    		 default:{printf("Lua chon trong 1-6! %c",BELL);
    				  getch();
    				 }
    
    	  }
       }
       while (1);
    }
    void Khoitao()
    {
       N=0;
    }
    void NhapData(void)
    {
       int first=1;
       struct KieuSV Temp;
       clrscr();
       do {
    	  printf("\nHay nhap so sinh vien:");
    	  scanf("%d",&N);
    	  if ((N<0)||(N>MaxSV))
    		 {
    		 if (first)
    			printf("%c",BELL);
    		 first=0;
    		 printf("\nSo sinh vien phai thuoc 1-%d",MaxSV,BELL);
    		 printf("\n Xin moi nhap lai!");
    		 }
    	  }
       while ((N<0)||(N>MaxSV));
       first=1;
       for (i=0;i<N;i++)
    	  {
    	  fflush(stdin);
    	  printf("\nNhap thong tin cua sinh vien thu %d",i+1);
    	  printf("\n      ÍÍÍÍÍÍÍÍÍÍo0oÍÍÍÍÍÍÍÍÍÍÍ");
    	  printf("\n   Ma sinh vien:");
    	  gets(Temp.MaSV);
    
    	  fflush(stdin);
    	  printf("\n   Ten sinh vien:");
    	  gets(Temp.Ten);
    	  do
    		{printf("\n   Diem Toan:");
    		 scanf("%f",&Temp.DToan);
    		 if ((Temp.DToan<0) || (Temp.DToan>10))
    			{
    			if (first) printf("%c",BELL);
    			first=0;
    			printf("\nXin loi, diem nhap khong hop le!");
    			printf("\nXin moi nhap lai Diem Toan:");
    			}
    		}
    	  while ((Temp.DToan<0)||(Temp.DToan>10));
    
    	  fflush(stdin);
    	  first=1;
    	  do
    		{printf("\n    Diem Van:");
    		 scanf("%f",&Temp.DVan);
    		 if ((Temp.DVan<0) || (Temp.DVan>10))
    			{
    			if (first) printf("%c",BELL);
    			first=0;
    			printf("\nXin loi, diem nhap khong hop le!");
    			printf("\nXin moi nhap lai Diem Van:");
    			}
    		}
    	  while ((Temp.DVan<0)||(Temp.DVan>10));
    
    	  SV[i]=Temp;
    	  SV[i].TDiem=SV[i].DToan+SV[i].DVan;
    	  }
       printf("Hoan thanh viec nhap....!");
       getch();
    }
    void Swap(int *a,int *b)
    {
       int Tam;
       Tam=*a;
       *a=*b;
       *b=Tam;
    }
    void SapXep(void)
    {
       for (i=0;i<N;i++)
    	  index[i]=i;
       for (i=0;i<N-1;i++)
    	  for (j=i+1;j<N;j++)
    		 if (SV[index[i]].TDiem>SV[index[j]].TDiem)
    			Swap(&index[i],&index[j]);
    }
    void TongDiemTang(void)
    {
       clrscr();
       if (N==0)
    	  {
    	  printf("Chua co thong tin gi ca, khong the in duoc! %c",BELL);
    	  getch();
    	  goto CuoiThuTuc;
    	  }
       SapXep();
       /*In ra*/
       printf("\n         		DANH SACH HOC SINH CO TONG DIEM TANG DAN:");
       printf("\n	ÉÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍ»");
       printf("\n	º   MaSV    ³      Ten SV       ³ Diem Toan ³ Diem Van ³ Tong diem º");
       for (i=0;i<N;i++)
       {
       printf("\n	ÇÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄĶ");
       printf("\n	º%11s³%19s³%11.2f³%10.2f³%11.2fº",
       SV[index[i]].MaSV,SV[index[i]].Ten,SV[index[i]].DToan,SV[index[i]].DVan,SV[index[i]].TDiem);
       if ((i+1)%30==0)
    	  getch();
       }
       printf("\n	ÈÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍͼ");
       getch();
       CuoiThuTuc:
    }
    void TrungBinh(void)
    { float DiemToan=0.0;
      float DiemVan=0.0;
      clrscr();
      if (N==0)
    	  {
    	  printf("Chua co thong tin gi ca, khong the in duoc! %c",BELL);
    	  getch();
    	  goto CuoiThuTuc;
    	  }
      for (i=0;i<N;i++)
    	 {
    	 DiemToan=DiemToan+SV[i].DToan;
    	 DiemVan=DiemVan+SV[i].DVan;
    	 }
      DiemToan=DiemToan/N;
      DiemVan=DiemVan/N;
      printf("\nDiem trung binh cua hai mon tren:");
      printf("\n	Mon Toan: %5.2f",DiemToan);
      printf("\n	Mon  Van: %5.2f",DiemVan);
      getch();
      CuoiThuTuc:
    }
    float GTLN()
    {
       float Tg;
       Tg=SV[0].TDiem;
       for (i=1;i<N;i++)
    	  if (Tg<SV[i].TDiem)
    		 Tg=SV[i].TDiem;
       return Tg;
    }
    void DiemMax(void)
    {
       float Max;
       clrscr();
       if (N==0)
    	  {
    	  printf("Chua co thong tin gi ca, khong the in duoc! %c",BELL);
    	  getch();
    	  goto CuoiThuTuc;
    	  }
       Max=GTLN();
       printf("\n         		DANH SACH HOC SINH CO TONG DIEM MAX:");
       printf("\n	ÉÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍ»");
       printf("\n	º   MaSV    ³      Ten SV       ³ Diem Toan ³ Diem Van ³ Tong diem º");
       for (i=0;i<N;i++)
       if (SV[i].TDiem==Max)
       {
       printf("\n	ÇÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄĶ");
       printf("\n	º%11s³%19s³%11.2f³%10.2f³%11.2fº",
       SV[i].MaSV,SV[i].Ten,SV[i].DToan,SV[i].DVan,SV[i].TDiem);
    	 if ((i+1)%30==0)
    	  getch();
       }
       printf("\n	ÈÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍͼ");
       getch();
       CuoiThuTuc:
    }
    void About(void)
    {
       clrscr();
       printf("\n		THONG TIN VE TAC GIA CHUONG TRINH NAY:");
       printf("\n");
       printf("\n     huynh tuan viet");
       printf("\n");
       printf("\n     Dia chi: Truong CDCN Tuy Hoa - Phu Yen");
       printf("\n     Dien thoai: 0905189345");
       printf("\n   lop cdtin 30b ");
       printf("\n\n\n\n      Cam on da xem phan nay! ");
       getch();
    }
    void ThoatCT(void)
    {
       clrscr();
       printf("\n");
       printf("\n       Chuong trinh ket thuc. Bye bye!");
       printf("\n       Khong biet quy vi co vua y khong vay?");
       getch();
    }

    Ai sửa sai dùm mình cái
    nó báo lỗi " funtion 'khoitao'should have a prototype
    'nhapdata'
    'thoatct'
    tất cả các hàm đều báo lỗi như vậy
    Quote Quote

  2. #2
    Tham gia
    10-11-2006
    Bài viết
    177
    Like
    0
    Thanked 0 Times in 0 Posts
    Bạn sử dụng compiler gì vậy?

    [=========> Bổ sung bài viết <=========]

    Bỏ các label CuoiThuTuc, thay goto CuoiThuTuc = return.(ko hiểu vì sao bạn phải sử dụng label)
    Compile với vs c++ 6.0(nên phải commen clrscr()) thì ok.
    Hy vọng giúp được bạn.
    Code:
    #include <stdio.h>
    #include <conio.h>
    
    #define MaxSV 50
    #define BELL 7
    
    void Khoitao(void);
    void NhapData(void);
    void TongDiemTang(void);
    void TrungBinh(void);
    void DiemMax(void);
    void About(void);
    void ThoatCT(void);
    
    struct KieuSV
    {
       char MaSV[10];
       char Ten[20];
       float DToan;
       float DVan;
       float TDiem;
    };
    struct KieuSV SV[MaxSV];
    int index[MaxSV];
    int i,j;
    int N;
    int main()
    {
       int luachon;
       Khoitao();
       do
       {
    	  //clrscr();
    	  printf("			        MENU CUA CHUONG TRINH");
    	  printf("\n   	  	    ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»");
    	  printf("\n   		    º 1.Nhap du lieu                 º");
    	  printf("\n   		    º 2.In DS tang dan tong diem     º");
    	  printf("\n   		    º 3.In trung binh cua tong diem  º");
    	  printf("\n   		    º 4.In DS hoc sinh tong diem MAX º");
    	  printf("\n   		    º 5.Doi dieu ve tac gia.         º");
    	  printf("\n   		    º 6.Thoat khoi chuong trinh      º");
    	  printf("\n   		    ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ");
    	  printf("\n");
    	  printf("\n	Ban hay chon mot so:");
    	  scanf("%d",&luachon);
    	  switch (luachon)
    	  {
    		 case 1:NhapData();break;
    		 case 2:TongDiemTang();break;
    		 case 3:TrungBinh();break;
    		 case 4:DiemMax();break;
    		 case 5:About();break;
    		 case 6:{
    				ThoatCT();
    				return 0;
    				}
    		 default:{printf("Lua chon trong 1-6! %c",BELL);
    				  getch();
    				 }
    
    	  }
       }
       while (1);
    }
    void Khoitao()
    {
       N=0;
    }
    void NhapData(void)
    {
       int first=1;
       struct KieuSV Temp;
    //   clrscr();
       do {
    	  printf("\nHay nhap so sinh vien:");
    	  scanf("%d",&N);
    	  if ((N<0)||(N>MaxSV))
    		 {
    		 if (first)
    			printf("%c",BELL);
    		 first=0;
    		 printf("\nSo sinh vien phai thuoc 1-%d",MaxSV,BELL);
    		 printf("\n Xin moi nhap lai!");
    		 }
    	  }
       while ((N<0)||(N>MaxSV));
       first=1;
       for (i=0;i<N;i++)
    	  {
    	  fflush(stdin);
    	  printf("\nNhap thong tin cua sinh vien thu %d",i+1);
    	  printf("\n      ÍÍÍÍÍÍÍÍÍÍo0oÍÍÍÍÍÍÍÍÍÍÍ");
    	  printf("\n   Ma sinh vien:");
    	  gets(Temp.MaSV);
    
    	  fflush(stdin);
    	  printf("\n   Ten sinh vien:");
    	  gets(Temp.Ten);
    	  do
    		{printf("\n   Diem Toan:");
    		 scanf("%f",&Temp.DToan);
    		 if ((Temp.DToan<0) || (Temp.DToan>10))
    			{
    			if (first) printf("%c",BELL);
    			first=0;
    			printf("\nXin loi, diem nhap khong hop le!");
    			printf("\nXin moi nhap lai Diem Toan:");
    			}
    		}
    	  while ((Temp.DToan<0)||(Temp.DToan>10));
    
    	  fflush(stdin);
    	  first=1;
    	  do
    		{printf("\n    Diem Van:");
    		 scanf("%f",&Temp.DVan);
    		 if ((Temp.DVan<0) || (Temp.DVan>10))
    			{
    			if (first) printf("%c",BELL);
    			first=0;
    			printf("\nXin loi, diem nhap khong hop le!");
    			printf("\nXin moi nhap lai Diem Van:");
    			}
    		}
    	  while ((Temp.DVan<0)||(Temp.DVan>10));
    
    	  SV[i]=Temp;
    	  SV[i].TDiem=SV[i].DToan+SV[i].DVan;
    	  }
       printf("Hoan thanh viec nhap....!");
       getch();
    }
    void Swap(int *a,int *b)
    {
       int Tam;
       Tam=*a;
       *a=*b;
       *b=Tam;
    }
    void SapXep(void)
    {
       for (i=0;i<N;i++)
    	  index[i]=i;
       for (i=0;i<N-1;i++)
    	  for (j=i+1;j<N;j++)
    		 if (SV[index[i]].TDiem>SV[index[j]].TDiem)
    			Swap(&index[i],&index[j]);
    }
    void TongDiemTang(void)
    {
    //   clrscr();
       if (N==0)
    	  {
    	  printf("Chua co thong tin gi ca, khong the in duoc! %c",BELL);
    	  getch();
    	  //goto CuoiThuTuc;
    	  return;
    	  }
       SapXep();
       /*In ra*/
       printf("\n         		DANH SACH HOC SINH CO TONG DIEM TANG DAN:");
       printf("\n	ÉÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍ»");
       printf("\n	º   MaSV    ³      Ten SV       ³ Diem Toan ³ Diem Van ³ Tong diem º");
       for (i=0;i<N;i++)
       {
       printf("\n	ÇÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄĶ");
       printf("\n	º%11s³%19s³%11.2f³%10.2f³%11.2fº",
       SV[index[i]].MaSV,SV[index[i]].Ten,SV[index[i]].DToan,SV[index[i]].DVan,SV[index[i]].TDiem);
       if ((i+1)%30==0)
    	  getch();
       }
       printf("\n	ÈÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍͼ");
       getch();
       //CuoiThuTuc:
    }
    void TrungBinh(void)
    { float DiemToan=0.0;
      float DiemVan=0.0;
    //  clrscr();
      if (N==0)
    	  {
    	  printf("Chua co thong tin gi ca, khong the in duoc! %c",BELL);
    	  getch();
    	  //goto CuoiThuTuc;
    	  return;
    	  }
      for (i=0;i<N;i++)
    	 {
    	 DiemToan=DiemToan+SV[i].DToan;
    	 DiemVan=DiemVan+SV[i].DVan;
    	 }
      DiemToan=DiemToan/N;
      DiemVan=DiemVan/N;
      printf("\nDiem trung binh cua hai mon tren:");
      printf("\n	Mon Toan: %5.2f",DiemToan);
      printf("\n	Mon  Van: %5.2f",DiemVan);
      getch();
     // CuoiThuTuc:
    }
    float GTLN()
    {
       float Tg;
       Tg=SV[0].TDiem;
       for (i=1;i<N;i++)
    	  if (Tg<SV[i].TDiem)
    		 Tg=SV[i].TDiem;
       return Tg;
    }
    void DiemMax(void)
    {
       float Max;
       //clrscr();
       if (N==0)
    	  {
    	  printf("Chua co thong tin gi ca, khong the in duoc! %c",BELL);
    	  getch();
    	  //goto CuoiThuTuc;
    	  return;
    	  }
       Max=GTLN();
       printf("\n         		DANH SACH HOC SINH CO TONG DIEM MAX:");
       printf("\n	ÉÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍ»");
       printf("\n	º   MaSV    ³      Ten SV       ³ Diem Toan ³ Diem Van ³ Tong diem º");
       for (i=0;i<N;i++)
       if (SV[i].TDiem==Max)
       {
       printf("\n	ÇÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄÅÄÄÄÄÄÄÄÄÄÄĶ");
       printf("\n	º%11s³%19s³%11.2f³%10.2f³%11.2fº",
       SV[i].MaSV,SV[i].Ten,SV[i].DToan,SV[i].DVan,SV[i].TDiem);
    	 if ((i+1)%30==0)
    	  getch();
       }
       printf("\n	ÈÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍͼ");
       getch();
    //   CuoiThuTuc:
    }
    void About(void)
    {
       //clrscr();
       printf("\n		THONG TIN VE TAC GIA CHUONG TRINH NAY:");
       printf("\n");
       printf("\n     huynh tuan viet");
       printf("\n");
       printf("\n     Dia chi: Truong CDCN Tuy Hoa - Phu Yen");
       printf("\n     Dien thoai: 0905189345");
       printf("\n   lop cdtin 30b ");
       printf("\n\n\n\n      Cam on da xem phan nay! ");
       getch();
    }
    void ThoatCT(void)
    {
       //clrscr();
       printf("\n");
       printf("\n       Chuong trinh ket thuc. Bye bye!");
       printf("\n       Khong biet quy vi co vua y khong vay?");
       getch();
    }
    Được sửa bởi _donquixote_ lúc 18:52 ngày 05-12-2008 Reason: Bổ sung bài viết

  3. #3
    Tham gia
    19-02-2009
    Bài viết
    1
    Like
    0
    Thanked 0 Times in 0 Posts
    Giúp e làm cái menu động bằng C với. có nghĩa là dùng mũi tên di chuyển thanh sáng để chọn chức năng đó

  4. #4
    Tham gia
    12-05-2008
    Bài viết
    3
    Like
    0
    Thanked 0 Times in 0 Posts
    Hic ai biet dev C va visua C++ dung khác nhau thế nào không? Tại lười cài C++ quá ^.^

  5. #5
    Tham gia
    22-10-2008
    Location
    hieuinvest.com
    Bài viết
    86
    Like
    6
    Thanked 9 Times in 8 Posts
    chào bạn,
    lỗi prototype nghĩa là bạn gọi hàm main trước khi thông báo cho nó biết các hàm còn lại.

    - tạo prototype cho hàm: vd void nhapdata ( int *a ... ), rồi viết code hàm main và các hàm còn lại.
    - hoặc là bạn đưa hàm main xuống dưới cùng, sau các hàm khác,

    vậy thôi, hi vọng giúp ích được cho bạn .

  6. Thành viên Like bài viết này:


  7. #6
    Tham gia
    16-07-2004
    Bài viết
    662
    Like
    0
    Thanked 3 Times in 3 Posts
    Nó khác nhau giao diện, người viết ra nó cũng khác

    Mình thấy VS C++ tương tác chậm hơn Dev-C vì Dev C++ ít tính năng hơn VS C++. Dev-C tạo project OPENGL được cho bạn còn visual C++ thì không , không hẳn là không vì mới cài vô thì visual C++ không có mẫu cho OpenGL.

  8. #7
    Tham gia
    13-05-2012
    Bài viết
    1
    Like
    0
    Thanked 0 Times in 0 Posts
    cái này sao mình chay trên cfree không được bạn, bạn nào giúp mình vơi, mình đang tìm hiểu cách sử dụng cái switch làm cái menu, nhưng bỏ mấy cái code ở trên vào cfree thì không chạy. hix

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •  

0 nhận xét: