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

Đề tài: Đọc và ghi file trong lập trình C++

  1. #1
    Ngày gia nhập
    02 2009
    Bài viết
    3

    Wink Đọc và ghi file trong lập trình C++

    MÌnh đag gặp rắc rồi về phần đọc file và ghi file . Mình kok đc giỏi phần về file này lắm các bạn đọc code rồi hướng dẫn cách làm tiếp cho mình với .
    Xin chân thành cảm ơn
    đây là đề bài của bài tập :
    Khai báo lớp người ( họ tên ,địa chỉ ,sdt).Lớp sinh viên kế thừa từ lớp người và có thêm các thuộc tính (mã sinh viên ,lớp khoa)
    Khai báo lớp môn học( mã môn ,tên môn, số dvht)
    Khai báo lớp bảng điểm là bạn của lớp sinh viên và lớp môn học trong đó sinh viên có một điểm cho môn học .
    Viết chương trình thực hiện các chức năng sau:
    1. Nhập thêm sinh viên vào file SV.DAT- 1 lần nhập 1 sinh viên và kok có 2 sinh viên mã trùng nhau.
    2. Nhập thêm môn học và file MONHOC.DAT- 1lần nhập 1 môn và kok có 2 môn mã trùng nhau.
    3 Nhập bảng điểm cho mỗi sinh viên đã có trong file SV.DAT,lưu vào file BANGDIEM.DAT và in ra danh sách man hìnhh.
    4. Sắp xếp danh sach bảng điểm theo họ tên sinh viên .
    5. Tìm kiếm và hiển thị danh sách bảng điểm.
    a. Theo tên sinh viên.
    b.Theo lớp.

    Code:
    #include<stdio.h>
    #include<string.h>
    #include<conio.h>
    #include<fstream.h>
    #include<iostream.h>
    #include<iomanip.h>
    #include<dos.h>
    class nguoi{
    protected:
    char ten[30];
    char dc[30];
    char sdt[30];
    public:
    int nhap();
    void in();
    };
    class sv:public nguoi{
    protected:
    char ma[30];
    char lop[30];
    char khoa[30];
    public:
    int nhap();
    void in();
    friend class bangdiem;
    };
    class monhoc:public sv{
    protected:
    char mamon[30];
    char tenmon[30];
    int dvht;
    public:
    int nhap();
    void in();
    friend class bangdiem;
    };
    class bangdiem:public monhoc{
    private:
    float diem;
    public:
    int nhap();
    void in();
    };
    int sv::nhap()
    {
        int i=0;
        char str[20];
        cout<<"\n Nhap ma sinh vien :"; fflush(stdin);gets(str);
        if(strcmp(str,NULL)==0)
    	{
    	    cout<<"\n\n Ma khong hop le:";
    	    return 0;
    	}
        ifstream g("sv.dat",ios::in|ios::binary);
        if(!g.bad())
        {
    	while(g.read((char*)(this),sizeof(sv)),!g.eof())
    	    {
    		if(strcmp(str,ma)==0)
    		    {
    			i++;
    			break;
    		    }
    	    }
    	if(i==0)
    	{
    	    strcpy(ma,str);
    	    cout<<"\n Nhap ten Sinh vien:";fflush(stdin); gets(ten);
    	    cout<<"\n Nhap dia chi sinh vien:";fflush(stdin);gets(dc);
    	    cout<<"\n Nhap so dien thoai cua sinh vien :";fflush(stdin);gets(sdt);
    	    cout<<"\n Nhap lop cua sinh vien :";fflush(stdin);gets(lop);
    	    cout<<"\n Nhap khoa cua sinh vien :";fflush(stdin);gets(khoa);
    	    ofstream f("sv.dat",ios::app|ios::binary);
    	    f.write((char*)(this),sizeof(sv));
    	    f.close();
    	}
    	else    cout<<"\n Sinh vien nay da ton tai";
        }
         else {
           strcpy(ma,str);
    	    cout<<"\n Nhap ten Sinh vien:";fflush(stdin); gets(ten);
    	    cout<<"\n Nhap dia chi sinh vien:";fflush(stdin);gets(dc);
    	    cout<<"\n Nhap so dien thoai cua sinh vien :";fflush(stdin);gets(sdt);
    	    cout<<"\n Nhap lop cua sinh vien :";fflush(stdin);gets(lop);
    	    cout<<"\n Nhap khoa cua sinh vien :";fflush(stdin);gets(khoa);
    	    ofstream f("sv.dat",ios::app|ios::binary);
    	    f.write((char*)(this),sizeof(sv));
    	    f.close();
         }
         return 1;
    }
    void sv::in()
    {
        ifstream f("sv.dat",ios::in|ios::binary);
        cout<<" Day la danh sach sinh vien :\n\n";
        cout<<setw(7)<<"tTen"<<setw(10)<<"ma"<<setw(10)<<"dia chi"<<setw(10)<<"sdt"<<setw(10)<<"lop"<<setw(10)<<"khoa"<<endl;
        while(f.read((char*)(this),sizeof(sv)),!f.eof())
    	{
         cout<<"\n\n"<<setw(7)<<ten<<setw(10)<<ma<<setw(10)<<dc<<setw(10)<<sdt<<setw(10)<<lop<<setw(10)<<khoa<<endl;
    
    	}
        f.close();
    }
    int monhoc::nhap()
    {
        int i=0;
        char str[20];
        cout<<"\n Nhap ma mon :"; fflush(stdin);gets(str);
        if(strcmp(str,NULL)==0)
    	{
    	    cout<<"\n\n Ma khong hop le:";
    	    return 0;
    	}
        ifstream g("monhoc.dat",ios::in|ios::binary);
        if(!g.bad())
        {
    	while(g.read((char*)(this),sizeof(monhoc)),!g.eof())
    	    {
    		if(strcmp(str,mamon)==0)
    		    {
    			i++;
    			break;
    		    }
    	    }
    	if(i==0)
    	{
    	    strcpy(mamon,str);
    	    cout<<"\n Nhap ten mon hoc :";fflush(stdin); gets(tenmon);
    	    cout<<"\n Nhap so don vi hoc trinh:";cin>>dvht;
    	    ofstream f("monhoc.dat",ios::app|ios::binary);
    	    f.write((char*)(this),sizeof(monhoc));
    	    f.close();
    	}
    	else    cout<<"\n ma mon hoc nay da ton tai";
    }
    else {
     strcpy(mamon,str);
    	    cout<<"\n Nhap ten mon hoc :";fflush(stdin); gets(tenmon);
    	    cout<<"\n Nhap so don vi hoc trinh:";cin>>dvht;
    	    ofstream f("monhoc.dat",ios::app|ios::binary);
    	    f.write((char*)(this),sizeof(monhoc));
    	    f.close();
    }
    return 1;
    }
    void monhoc::in(){
        ifstream f("monhoc.dat",ios::in|ios::binary);
        cout<<" Day la danh sach cac mon hoc :\n\n";
        cout<<setw(7)<<"Tenmon"<<setw(10)<<"Mamon"<<setw(10)<<"Sodonvihoctrinh"<<endl;
        while(f.read((char*)(this),sizeof(monhoc)),!f.eof())
    	{
    	cout<<"\n\n"<<setw(7)<<tenmon<<setw(10)<<mamon<<setw(10)<<dvht<<endl;
    
    	}
        f.close();
    }
    int bangdiem::nhap(){
    {
        int i=0;
        char str[20];
        cout<<"\n Nhap ten sinh vien :"; fflush(stdin);gets(str);
        if(strcmp(str,NULL)==0)
    	{
    	    cout<<"\n\n Ma khong hop le:";
    	    return 0;
    	}
        ifstream g("sv.dat",ios::in|ios::binary);
        if(!g.bad())
        {
    	while(g.read((char*)(this),sizeof(sv)),!g.eof())
    	    {
    		if(strcmp(str,ten)==0)
    		    {
    			i++;
    			break;
    		    }
    	    }
    	if(i==0)
    	{   cout<<"\n CHua co sinh vien nay !";
    
    	}
    	else   {
    	    strcpy(ma,str);
    	     ifstream g("monhoc.dat",ios::in|ios::binary);
    		while(g.read((char*)(this),sizeof(monhoc)),!g.eof())
    	{     cout<<"\n Nhap diem cho mon "<<tenmon<<":";cin>>diem;}
    	    ofstream f("bangdiem.dat",ios::in|ios::app);
    	    f.write((char*)(this),sizeof(bangdiem));
    	    f.close();
    	    }
        }
         else {
          cout<<"\n chua co sinh vien nay !";
     }
         return 1;
    }
    }
    void bangdiem::in(){
    ifstream f("bangdiem.dat",ios::in|ios::out);
    	while(f.read((char*)(this),sizeof(bangdiem)),!f.eof()){
    	cout<<setw(7)<<diem<<endl;
    	}
    	f.close();
    }
    void menu(){
    int chon;
    sv a;
    monhoc b;
    bangdiem c;
    while(1){
    cout<<"\n \t 1.Nhap them sinh vien !";
    cout<<"\n \t 2.Nhap them mon hoc !";
    cout<<"\n \t 3.Nhap diem cho mon hoc !";
    cout<<"\n \t 4.Sap xep danh sach bang diem  theo ho ten sinh vien !";
    cout<<"\n \t 5.Tim kiem va hien thi danh sach bang diem !";
    cout<<"\n \t 0.Thoat.";
    cout<<"\n \t Nhap lua chon :";cin>>chon;
    if(chon==0) break;
    switch(chon){
    case 1:a.nhap();a.in();break;
    case 2:b.nhap();b.in();break;
    case 3:c.nhap();c.in();break;
    }
    getch();
    }
    }
    void main(){
    clrscr();
    menu();
    getch();
    }
    mình chưa làm đc void bangdiem::in() nên mới viết tạm ra thế mình làm nhưng nó kok xuất đc cái zì ra cả hy vọng dc sự giúp đỡ của member. CÁc bạn giúp mình xuất đc bảng điểm ra màn hình nhé....:((
    Đã được chỉnh sửa lần cuối bởi thangbsb : 03-05-2009 lúc 11:03 PM.

  2. #2
    Ngày gia nhập
    12 2006
    Nơi ở
    US
    Bài viết
    1,917

    - Code viết dối quá, coi cái này rồi tự viết lại đi cậu :
    C++ Code:
    1. #include <fstream>
    2. #include <iostream>
    3.  
    4. using namespace std;
    5.  
    6. struct Student {
    7.     int age;
    8.     char name[ 25 ];
    9. };
    10.  
    11.  
    12. int main() {
    13.  
    14.     Student st1 = { 19, "you" };
    15.     Student st2 = { 20, "me" };
    16.  
    17.     fstream file;
    18.  
    19.     file.open( "t.dat", ios::out | ios::binary );
    20.  
    21.     cout << "Writing data to file :";
    22.  
    23.     file.write( reinterpret_cast< char * >( &st1 ), sizeof( Student ) );
    24.     file.write( reinterpret_cast< char * >( &st2 ), sizeof( Student ) );
    25.  
    26.     // Close the file.
    27.     file.close();
    28.  
    29.     // Open the file for input in binary mode.
    30.     file.open( "t.dat", ios::in | ios::binary );
    31.  
    32.     cout << "\n Reading data from file : ";
    33.     Student a_stu;
    34.  
    35.     do {
    36.         file.read( reinterpret_cast< char * >( &a_stu ), sizeof( Student ) );
    37.         cout << a_stu.age << " , " << a_stu.name << endl;
    38.     } while( !file.eof() );
    39.  
    40.  
    41.  
    42.  
    43.     file.close();
    44.  
    45.     return 0;
    46. }

  3. #3
    Ngày gia nhập
    02 2009
    Bài viết
    3

    mình vẫn kok đc hiểu cho lắm kậu có thể sửa lại cái void bangdiem::in() hộ mình đc kok .Mình muốn nó in ra đc tất cả các môn học có điểm của sinh viên mà minh` nhập. Cảm ơn bạn nhiều

  4. #4
    Ngày gia nhập
    04 2009
    Nơi ở
    một căn hộ nhỏ trên trái đất
    Bài viết
    372

    Mình đã đọc qua mã của bạn và thấy nó rất lung tung. tại sao bạn khai báo lớp nguoi nhung rồi không định nghĩa các phương thức trong lớp nguoi (nhap,in) thay vào đó lại định nghĩa trong lớp sv, thừa kế từ lớp nguoi

  5. #5
    Ngày gia nhập
    04 2009
    Bài viết
    1

    cho mình hỏi !g.bad() là gì vậy nhỉ,mình là 1 con gà

  6. #6
    Ngày gia nhập
    12 2009
    Bài viết
    1

    Mặc định Đọc và ghi file trong lập trình C++

    Trích dẫn Nguyên bản được gửi bởi lucky10000 Xem bài viết
    cho mình hỏi !g.bad() là gì vậy nhỉ,mình là 1 con gà
    g.bad(): Là kiểm tra file đó có tồn tại hay không?
    Ở đây: !g.bad() là file không tồn tại!

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

  1. Trả lời: 3
    Bài viết cuối: 10-04-2013, 08:06 AM
  2. Giới thiệu cách chuyển File Ảnh thành file Video trong download proshow gold
    Gửi bởi thuhu0900x trong diễn đàn Giới thiệu website, sản phẩm của bạn
    Trả lời: 3
    Bài viết cuối: 03-07-2012, 03:54 AM
  3. Đọc dữ liệu file midi dạng số HEX và lấy lời nhạc trong file ra file text
    Gửi bởi kimngockhtn_2007 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 29-06-2011, 04:40 PM
  4. File server để dùng ajax trong visual2010 là file gì, xử lý kết nối với SQLserver như thế nào?
    Gửi bởi lenamshenlong trong diễn đàn Thắc mắc lập trình ASP.NET
    Trả lời: 9
    Bài viết cuối: 26-05-2011, 05:14 PM
  5. Làm sao để open file bằng cách double click vào file trong windows explorer?
    Gửi bởi Batchuoc_09 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 11
    Bài viết cuối: 18-07-2010, 01:12 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