Từ 1 tới 2 trên tổng số 2 kết quả

Đề tài: [ Solved ]Lỗi "Function "gets" should have a prototype" !

  1. #1
    Ngày gia nhập
    10 2008
    Bài viết
    1

    Mặc định [ Solved ]Lỗi "Function "gets" should have a prototype" !

    em mới tập làm OOP gặp lỗi này sửa mãi ko được mong mọi người giúp đỡ
    Code:
    #include <iostream.h>
    #include <conio.h>
    #include <iomanip.h>
    #include <fstream.h>
    #include <ctype.h>
    #include <stdlib.h>
    #include <string.h>
    void menu();
    struct Nvien{
    	char ht[25];
    	int Mnv;
    	int NS;
    	int nc, nvao;
    	long int Tu;
    	char pb[5];
    	char cv[6];
    	double lcb, luong, hsl;
    	int pc;
    	double bh;
    };
    class NV {
    	private:
    		Nvien *t;
    		int soNv;
    		int i;
    	public:
    		NV(){
    			soNv=0;
    			t = NULL;
    		}
    		void xuat();
    		void doctep(char *ttep);
    		void ghitep(char *ttep);
    		void sapxep();
    		double baohiem(Nvien x);
    		void themnv();
    		void timnv();
    		void dsnvdtnh();
    		int phucap(Nvien x);
    		double hsluong(Nvien x);
    };
    double NV :: hsluong(Nvien x){
    	int ntn;
    	ntn = (2007-x.nvao)/5;
    	if(ntn ==1) x.hsl =1;
    	else if(ntn==2) x.hsl = 1.02;
    		 else if(ntn ==3) x.hsl = 1.05;
    			  else if(ntn==4) x.hsl = 1.15;
    					else if(ntn==5) x.hsl = 1.3;
    						 else if(ntn==6) x.hsl = 1.5;
    	return x.hsl;
    }
    void NV::dsnvdtnh(){
    	cout<<"\n Danh sach nhan vien duoc xet nghi huu";
    	for(int i=1; i<=soNv; i++)
    	   if(2007 - t[i].nvao>=25){
    		 int nct;
    		 nct = 2007-t[i].nvao;
    		 cout<<"\n"<<setw(25)<<t[i].ht<<setw(6)<<setw(3)<<t[i].pb<<setw(4)<<t[i].cv<<"so nam cong tac:"<<nct;
    	   }
    }
    void NV::timnv(){
    	int ma;
    	cout<<"Nhap ma nhan vien:"; cin>>ma;
    	int d=0;
    	for(int i=0; i<=soNv; i++)
    	  if (t[i].Mnv==ma){
    		cout<<"\n Thong tin ve nhan vien nhu sau:\n";
    		cout<<t[i].Mnv<<setw(25)<<t[i].ht<<setw(6)<<t[i].NS<<t[i].pb<<t[i].cv;
    		d+=1;
    	  }
    	if (d==0)cout<<"\n Khong co nhan vien nay trong danh sach nhan vien";
    }
    void NV::ghitep(char *ttep){
    	ofstream f;
    	f.open(ttep,ios::out|ios::noreplace);
    
    	if (f.bad()){
    	  cout<<"\n Ghi len tep? (C/K)\n";
    	  int ch =getch();
    	  if (toupper(ch)=='C')
    	  {
    		f.close();
    		f.open(ttep);
    	  }
    	  else exit(1);
    	}
    	f<<soNv;
    	t = new Nvien[soNv];
    	f<<setprecision(1)<<setiosflags(ios::showpoint);
    	for(int i=1; i<=soNv;i++){
    	  f<<endl<<setw(5)<<t[i].Mnv<<setw(25)<<t[i].ht<<setw(3)<<t[i].pb<<setw(4)<<t[i].cv;
    	  f<<setw(9)<<t[i].luong;
    	}
    	f.close();
    }
    void NV::doctep(char *ttep){
    	ifstream f;
    	f.open(ttep);
    	if (f.bad()){
    	  cout<<"\n Tep khong ton tai";
    	  getch();
    	  exit(1);
    	};
    	f>>soNv;
    	f.ignore();
    	if(t!=NULL) delete t;
    	t = new Nvien[soNv+1];
    	for(int i =1; i<=soNv; i++){
    	   f>>t[i].Mnv;
    	   f.get(t[i].ht,25);
    	   f>>t[i].NS;
    	   f.get(t[i].pb,5).get(t[i].cv,6);
    	   f>>t[i].nvao>>t[i].Tu;
    	   f>>t[i].nc>>t[i].lcb;
    	   f.ignore();
    	};
    	f.close();
    }
    int NV::phucap(Nvien x){
    	if(x.Mnv/1000==1) x.pc =4000;
    	else if(x.Mnv/1000==2) x.pc =3000;
    		else if(x.Mnv/1000==4) x.pc =2000;
    			 else x.pc =1000;
    	return x.pc;
    }
    void NV::xuat(){
    	cout<<setprecision(1)<<setiosflags(ios::showpoint);
    	cout<<"MNV   HO VA TEN  PBAN  CVU  hsLUONG  NCONG  T_UNG   LUONG  PCAP\n\n";
    	for(int i=1; i<=soNv; i++){
    	  t[i].pc=phucap(t[i]);
    	  t[i].luong=t[i].lcb*t[i].nc*t[i].hsl - t[i].Tu+t[i].pc;
    	  cout<<"\n"<<setw(5)<<t[i].Mnv<<setw(25)<<t[i].ht;
    	  cout<<setw(3)<<t[i].pb<<setw(4)<<t[i].cv;
    	  cout<<setw(5)<<t[i].hsl<<setw(5)<<t[i].nc<<setw(8)<<t[i].Tu;
    	  cout<<setw(9)<<t[i].luong;
    	  cout<<setw(6)<<t[i].pc<<"\n";
    	}
    }
    void NV::sapxep(){
    	int n = soNv;
    	for(int i=0; i<n; i++)
    	 for(int j=i+1; j<=n; j++)
    	  if(t[i].luong<t[j].luong){
    		Nvien tg=t[i];
    		t[i]=t[j];
    		t[j]=tg;
    	  }
    }
    double NV::baohiem(Nvien x){
    	if((x.Mnv/1000) ==1)
    	  x.bh=(15*x.luong)/100;
    	else x.bh=(10*x.luong)/100;
    	return x.bh;
    }
    void dohoa(){
    	int mh, mode;
    	//mh = 0;// mode=0;
    	//initgraph(&mh, &mode," ");
    }
    void NV::themnv(){
    	int so;
    	cout<<"\n Ban muon them vao bao nhieu nhan vien:"; cin>>so;
    	for(int i=1; i<=so; i++){
    		soNv+=1;
    		cout<<"Nhap ma nhan vien:"; cin>>t[soNv].Mnv;
    		cout<<"Nhap ho ten:"; 	gets(t[soNv].ht); //Nó báo lỗi ở đây nè
    		cout<<"Nhap nam sinh"; cin>>t[soNv].NS;
    		cout<<"Nhap ngay cong"; cin>>t[soNv].nc;
    		cout<<"Nhap nam vao"; cin>>t[soNv].nvao;
    		cout<<"Nhap ma phong ban:"; gets(t[soNv].pb);
    		cout<<"Nhap chuc vu:"; gets(t[soNv].cv);
    		cout<<"Nhap vao tam ung"; cin>>t[soNv].Tu;
    		cout<<"Nhap luong co ban"; cin>>t[soNv].lcb;
    		t[soNv].luong=t[soNv].nc*t[soNv].lcb*t[soNv].hsl-t[soNv].Tu+t[soNv].pc;
    	}
    }
    void Menu(){
    	clrscr();
    	cout<<"\n\n";
    	cout<<"\t	CHUONG TRINH CO NHUNG NOI DUNG NHU SAU:	\n";
    	cout<<"\t	---------------------------------------	\n";
    	cout<<"\t					\n";
    	cout<<"\t\t Doc danh sanh nhan vien tu file 'danhsach.txt'	\n";
    	cout<<"\t\t1 Sap xep danh sanh nhan vien theo su giam dan cua luong \n";
    	cout<<"\t\t2 Ghi danh sanh luong nhan vien len file 'dsluong.txt'	\n";
    	cout<<"\t\t3 In thong tin cua nhan vien khi biet ma nhan vien	\n";
    	cout<<"\t\t4 Them nhan vien va luu danh sach moi len file 'dsmoi.txt'	\n";
    	cout<<"\t\t5 Nhung nhan vien duoc xet nghi huu	\n";
    	cout<<"\t\t6 Xuat ra man hinh danh sanh nhan vien hien tai \n";
    	cout<<"\t\t0 Thoat chuong trinh \n";
    	cout<<"\n";
    }
    void main(){
    	NV nv;
    	int i;
    	nv.doctep("dsach.txt");
    	menu();
    	do{
    		cout<<"\n Chon muc yeu cau nao?"; cin>>i;
    		menu();
    		switch(i){
    			case 1:	nv.sapxep();
    					nv.xuat();
    					break;
    			case 2:	nv.ghitep("DSLUONG.TXT");
    					getch();
    					break;
    			case 3:	nv.timnv();
    					break;
    			case 4:	nv.themnv();
    					nv.ghitep("DSMOI.TXT");
    					break;
    			case 5: nv.dsnvdtnh();
    					break;
    			case 6:	nv.xuat();
    					break;
    		}
    	}while (i!=0);
    }
    Nó báo lỗi:"Function "gets" should have a prototype" ở dòng này:
    cout<<"Nhap ho ten:"; gets(t[soNv].ht);

  2. #2
    Ngày gia nhập
    11 2008
    Nơi ở
    Neverland
    Bài viết
    48

    Hàm gets và puts khai báo trong tệp thư viện stdio.h nên cần include nó vào .
    C Code:
    1.  
    2. #include <stdio.h>
    Hàm menu khi viết nhớ đúng hoa thường đi bạn C là ngôn ngữ phân biệt hoa thường đó phần prototype và definition của hàm menu cần tên chính xác giống nhau như bài của bạn hai chỗ bạn ghi khác nhau đó .
    C Code:
    1. void menu();
    2. .................
    3. void Menu() { //Chỗ này phải là menu chứ không phải Menu(:-)??
    4. {
    5.      ........
    6. }
    I'm superman

Các đề tài tương tự

  1. nghĩa của 3 từ "principals", "artifacts", "securables" là như thế nào?
    Gửi bởi ntbao trong diễn đàn English for IT | Tiếng anh cho dân CNTT
    Trả lời: 2
    Bài viết cuối: 02-09-2017, 06:36 PM
  2. Lỗi"error C2275: 'T' : illegal use of this type as an expression" khi dùng "list<T>::iterator it"
    Gửi bởi doicanhden trong diễn đàn Thảo luận, góp ý code C/C++ của bạn
    Trả lời: 6
    Bài viết cuối: 19-01-2012, 01:59 AM
  3. Trả lời: 1
    Bài viết cuối: 01-12-2011, 07:32 PM
  4. Lập trình C++ Mình gặp lỗi "unresolved externals" & "unresolved external symbol _main referenced in function _tmainCRTS "
    Gửi bởi ntbao trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 3
    Bài viết cuối: 24-09-2011, 10:48 PM
  5. Problems : " recover tree " with input as " preorder" and "inorder"
    Gửi bởi HoangManhHa1991 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 13-04-2011, 10:19 PM

Quyền hạn của bạn

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