C++
  • Home
  • Học lập trình
    • All
    • Học C++
    Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

    Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

    Lập trình Backend là gì? Những điều Backend Developer nên biết

    Lập trình Backend là gì? Những điều Backend Developer nên biết

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

    hướng dẫn cài đặt visual studio code lập trình c++ chi tiết

    Cài Đặt Visual Studio Code Lập Trình C++ Chi Tiết Đơn Giản 2024

    học lập trình c++ thì làm được gì

    Học Lập Trình C++ Thì Làm Được Gì?

    Sự khác nhau giữa struct và class trong C++

    Sự Khác Nhau Giữa Struct Và Class Trong C++

    Sự khác nhau giữa tham chiếu và con trỏ c++

    Sự Khác Nhau Giữa Tham Chiếu Và Con Trỏ Trong C++

    • Học C++
  • Reviews
    Top 7 công cụ tạo website không cần code

    Top 7 Công Cụ Tạo Website Không Cần Code Miễn Phí

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

  • Phần mềm PC
  • App/Ứng dụng
  • Game
  • Hướng dẫn
    • PC
    • Mobile Tips
No Result
View All Result
  • Home
  • Học lập trình
    • All
    • Học C++
    Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

    Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

    Lập trình Backend là gì? Những điều Backend Developer nên biết

    Lập trình Backend là gì? Những điều Backend Developer nên biết

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

    hướng dẫn cài đặt visual studio code lập trình c++ chi tiết

    Cài Đặt Visual Studio Code Lập Trình C++ Chi Tiết Đơn Giản 2024

    học lập trình c++ thì làm được gì

    Học Lập Trình C++ Thì Làm Được Gì?

    Sự khác nhau giữa struct và class trong C++

    Sự Khác Nhau Giữa Struct Và Class Trong C++

    Sự khác nhau giữa tham chiếu và con trỏ c++

    Sự Khác Nhau Giữa Tham Chiếu Và Con Trỏ Trong C++

    • Học C++
  • Reviews
    Top 7 công cụ tạo website không cần code

    Top 7 Công Cụ Tạo Website Không Cần Code Miễn Phí

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

    Top 7 website luyện thuật toán chất lượng nhất năm 2023 cho IT

  • Phần mềm PC
  • App/Ứng dụng
  • Game
  • Hướng dẫn
    • PC
    • Mobile Tips
No Result
View All Result
C++
No Result
View All Result
Home Học lập trình Học C++

Xử lý tệp trong C++

admin by admin
July 5, 2023
in Học C++
0 0
0
0
SHARES
0
VIEWS
Share on FacebookShare on Twitter

Ở đây chúng ta sẽ thảo luận về nhiệm vụ sau đây. Điều này là cần thiết để tạo một dự án trong C ++.

1. Tạo tên lớp là học sinh
2. Để chèn bản ghi vào tệp
3. Để hiển thị bản ghi từ trong tệp
4. Để xóa bản ghi khỏi tệp
5. Để tìm kiếm một bản ghi cụ thể trong tệp
6. Để sửa đổi một bản ghi cụ thể trong tệp
7. Để tính Tổng số bản ghi trong tệp

Hãy bắt đầu ở đây,

Chương trình đã được sử dụng (thêm mã dòng) để dễ hiểu. Mỗi tùy chọn được đặt trong các khối khác nhau để làm cho chương trình có thể đọc được. Để có được đầu ra tốt hơn của chương trình, hãy thực thi Turbo trên C ++.

Nó có menu Lựa chọn như sau-

Nếu bạn muốn, bạn có thể cải thiện nó hơn nữa bằng cách thêm các tùy chọn khác như Sao lưu cơ sở dữ liệu, định dạng cơ sở dữ liệu, khôi phục cơ sở dữ liệu, đăng nhập người dùng, v.v. Điều này sẽ xóa xử lý tệp và khái niệm của bạn cũng như cải thiện kỹ năng lập trình của bạn. tốt hơn là xóa khái niệm.

Khối này là của các tệp tiêu đề, bằng cách đưa ra nhận xét trong đó, chúng tôi đã nói với chức năng được xác định trước của chúng.

// header file include 
#include<iostream.h> 
#include<stdio.h> rename and remove 
#include<stdlib.h> // exit() 
#include<iomanip.h> // setw() 
#include<fstream> // file handling //data member and member function declaration

Tạo tên lớp học là sinh viên

Một lớp học trong chương trình, có tên là sinh viên, đã được tuyên bố. Trong lớp này công khai, một số hàm do người dùng xác định đã được khai báo. Ngoài ra, nhà xây dựng cũng đã được tuyên bố-

class student
{
int roll;char sname[29];
char fname[20],mname[20];

public:
// function declaration in public mode
   student(void);   // constructor declaration for intro wizard
   ~student(void){  } // destroy object initialized by constructor
   void input_record(void);    // write record into file
   void putdata_record(void);  // display all record
   void putdata_form(void);   // create a template to displaying record on monitor
   void search_record();     // search a specific record
   void total();          // properties of program
   void modify_form(void);   // create a template to modifying record
   void modify_record();     // modify record into file
   void delete_record();     // delete spacific record

}obj;  // constructor called automatically

Đây là phần giới thiệu của chương trình được hiển thị ở đầu chương trình. Chức năng hệ thống (tạm dừng) giữ màn hình.

student::student(void)
{ 
  clrscr();
  cout<<"/t/t/tThis program clear some concept of file handling/n";
  cout<<"/t/t";
  system("pause");
}

Để chèn bản ghi vào tệp

Hàm input_record() được sử dụng để viết một tệp sẽ được gọi bằng cách khác,

Một tệp đã được tạo với tên cơ sở dữ liệu trong chương trình. Với hàm input_record() chúng ta ghi dữ liệu vào file này. Lưu ý rằng ở đây chúng ta đã sử dụng phương pháp ghi dữ liệu, dữ liệu trong file sẽ được lưu trữ ở định dạng nhị phân –

//get record by end user
void student::input_record(void)
{
  ofstream fout;
  cout<<"INSERT RECORD/n";

  fout.open("database",ios::app|ios::binary);
  cout<<"Enter roll no: "; 
  cin>>roll;
  cout<<"Enter stuname: ";
  gets(sname);
  cout<<"Enter father name: ";
  gets(fname);
  cout<<"Enter mother name: ";
  gets(mname);

  fout.seekp(0,ios::beg); //go to start
  fout.write((char*)&obj,sizeof(obj));
  fout.close();

  cout<<"/n/n/tRecord saved successfully...";

Tạo biểu mẫu để hiển thị bản ghi vào màn hình Giám sát

Hàm putdata_form() được sử dụng để hiển thị các bản ghi theo cách nhớ ở đây, nó sẽ không lấy các bản ghi từ tệp mà nó sẽ chỉ hiển thị chúng.

void student::putdata_form(void)
 {
    cout<<roll<<"/t"<<sname<<"/t"<<fname<<"/t"<<mname<<endl;
 }

Để hiển thị bản ghi từ trong tệp

Hàm putdata_record() sẽ lấy bản ghi đã lưu từ tệp và gọi hàm khác putdata_form(), người sẽ hiển thị chúng trên màn hình điều khiển.

//display all record into monitor screen
void student::putdata_record(void)
{
  ifstream fin;
  cout<<"SHOW ALL RECORD/n";

  fin.open("database",ios::app|ios::binary);
  fin.seekg(0,ios::beg); //goto begining or start

  while(fin.read((char*)&obj,sizeof(student)))
  {
     putdata_form();
  }
  fin.close();

  //hold screen
}

Nếu bạn không muốn khai báo hai hàm ở đây, bạn chỉ có thể hiển thị và truy cập dữ liệu từ một hàm, nhưng làm như vậy có thể làm giảm khả năng đọc của hàm này. Do đó nó được chia thành hai phần / chức năng ở đây.

Để xóa bản ghi khỏi tệp

Đổi tên và loại bỏ chức năng, cả hai đều được xác định trong tệp tiêu đề.stdio.h

Để đổi tên tệp

rename (old-file-name, new-file-name);

để xóa tệp

remove (filename);

Để biết thêm tên tệp theo người dùng, hãy xóa tệp, đổi tên tệp

Khi thực hiện một nhiệm vụ trên một học sinh cụ thể thì chúng ta cần truy cập vào bản ghi cụ thể đó và đối với điều này, chúng ta cần ID duy nhất của bản ghi đó. Ở đây id duy nhất sẽ là roll-no của học sinh.

void student::delete_record()
{
  int x,true=0;
  ofstream fout;
  ifstream fin;
  cout<<"DETELE RECORD/n";

  cout<<"Enter student roll no: "; 
  cin>>x;

  int r = x;
  fin.open("database",ios::binary);
  fout.open("temp",ios::binary);

  while(fin.read((char*)&obj,sizeof(obj)))
  {
    if(x==r) // accessing record using their roll no
    {
      if(x!=roll) // which record not matched write into temp file
      {
        fout.write((char*)&obj,sizeof(student));
        true=1;
      }
   }
 }
 fout.close();
 fin.close();

remove("database"); //remove file
rename("temp","database"); //rename file

if(true)
   cout<<"record deleted...";
if(true!=1)
   cout<<"record not found.....";
}
if(x!=roll)

Đó là, chúng tôi viết tất cả các bản ghi khác (tạm thời) ngoại trừ một bản ghi (mà chúng tôi muốn xóa) và xóa tệp cũ này (cơ sở dữ liệu) và tệp mới này (tạm thời) Hãy đổi tên nó.

Trong hoạt động tìm kiếm cũng vậy, bất kỳ bản ghi cụ thể nào cũng sẽ được truy cập từ số cuộn.

Để tìm kiếm một bản ghi cụ thể trong tệp

Ở đây chúng tôi sẽ tìm kiếm hồ sơ sinh viên bằng cách sử dụng cuộn của họ không làm id duy nhất

void student::search_record()
{
  int x;
  ifstream fin;
  cout<<"SEARCH RECORD/n";
  cout<<"Enter student roll no: "; 
  cin>>x;

  fin.open("database",ios::app|ios::binary);
  while(fin.read((char*)&obj,sizeof(obj)))
  { 
    if(x==roll) // if record found display
    {
       putdata_form();
    }
  }
  fin.close();
}

Nếu tệp bản ghi có sẵn, thì bằng cách putdata_form (), chúng tôi hiển thị bản ghi đó trên màn hình.

Tạo biểu mẫu để sửa đổi bản ghi cũ

modify_form() hiển thị dữ liệu đã sửa đổi

void student::modify_form(void)
{
  cout<<"Enter new roll no: "; 
  cin>>roll;
  cout<<"Enter new stuname: ";
  gets(sname);
  cout<<"Enter new father name: ";
  gets(fname);
  cout<<"Enter new mother name: ";
  gets(mname);

  cout<<"/n/ntRecord updated successfully...";
}

Để sửa đổi một bản ghi cụ thể trong tệp

Đây là cú pháp để sửa đổi bản ghi.

int variable=(object-1)*sizeof(class-name/class-object);

Chúng tôi truy cập bản ghi để được sửa đổi từ cuộn của nó -no và hiển thị nó với putdata_form ().

// modify specific student record using their roll no
void student::modify_record()
{

  int x; char true=0;
  fstream file;
  cout<<"MODIFY RECORD/n" ;
  cout<<"Enter roll no: "; 
  cin>>x;

  file.open("database",ios::in|ios::out|ios::binary);
  while(file.read((char*)&obj,sizeof(student)))
   {
     if(x==roll)
      {
        cout<<"/nOld record are n";
        putdata_form();
        cout<<"/n/nEnter new record/n/n";

        modify_form();

        int loc=(-1)*sizeof(obj);
        file.seekp(loc,ios::cur); // give current found location into file
        file.write((char*)&obj,sizeof(student));
        true=1;
      }
   }
 file.close();
 
 if(!true) //true!=1
    cout<<"record not found.....";

}

Để tính Tổng bản ghi trong tệp

Có một số thao tác trong xử lý tệp được sử dụng cho nhiều tác vụ khác nhau, một ví dụ được đưa ra dưới đây. Từ đó chúng tôi tìm ra có bao nhiêu bản ghi trong một tệp hoặc kích thước của tệp là bao nhiêu. Nó hiển thị thuộc tính của tệp theo một cách nào đó. Do đó, nó đã được sử dụng như một tùy chọn riêng biệt.

// show properties of program like total record and size of file
void student::total()
 {
   cout<<"ABOUT PROGRAM/n";
   int total_rec,st;
   ifstream fin;
   fin.open("database",ios::in|ios::out|ios::binary);

   /*******using manipulators*********/
   fin.seekg(0,ios::end); // goto end of file
   total_rec=fin.tellg()/sizeof(student);
   st = fin.tellg();

   cout<<"/n/ntTotal record in file of student are: "<<total_rec;
   cout<<"/ntMemory of database is: "<<st<<" byte";

   _setcursortype(_NOCURSOR); // disable mouse cursor
 }

Chương trình chính Bắt đầu tại đây

Đây là điểm khởi đầu của toàn bộ chương trình này, nó giống như một chương trình đơn giản –

int main()
{
  char ch;
  do
  {
  gotoxy(40,5);// print message a specific location into monitor
  cout<<"SELECTION MENUn";
  gotoxy(40,7);
  cout<<"1.INSERT RECORDn";
  gotoxy(40,8);
  cout<<"2.DISPLAY RECORDn";
  gotoxy(40,9);
  cout<<"3.SEARCH RECORDn";
  gotoxy(40,10);
  cout<<"4.MODIFY RECORDn";
  gotoxy(40,11);
  cout<<"5.DELETE RECORDn";
  gotoxy(40,12);
  cout<<"6.PROPERTIESn";
  gotoxy(40,13);
  cout<<"0.EXITn";
  gotoxy(45,18);
  cout<<"Enter Your Choice: ";
  ch=getche();
  switch(ch)
  {
    case '1': obj.input_record();break;
    case '2': obj.putdata_record();break;
    case '3': obj.search_record(); break;
    case '4': obj.modify_record(); break;
    case '5': obj.delete_record();break;
    case '6': obj.total();break;
    case '0': exit(0);               //program exit
  }
 }
 while(ch!=0);
return 0;
}

RA

SELECTION MENU
        1.INSERT RECORD
        2.DISPLAY RECORD
        3.SEARCH RECORD
        4.MODIFY RECORD
        5.DELETE RECORD
        6.PROPERTIES
        0.EXIT
             Enter Your Choice:

Bây giờ, bạn đã sẵn sàng để thực hiện dự án của riêng bạn ………

Nếu bạn muốn, bạn có thể cải thiện nó hơn nữa bằng cách thêm các tùy chọn khác như sao lưu cơ sở dữ liệu, đặt lại cơ sở dữ liệu, khôi phục cơ sở dữ liệu, trang đăng nhập người dùng, quyền truy cập nhiều người

Previous Post

lệnh “Continue” trong C++

Next Post

Vòng lặp while trong C++

admin

admin

Next Post

Vòng lặp while trong C++

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

  • Trending
  • Comments
  • Latest
cách code hình trái tim bằng c++

Cách code hình trái tim giống với nhân vật Thủ Khoa Lý

December 7, 2023
hướng dẫn cài đặt visual studio code lập trình c++ chi tiết

Cài Đặt Visual Studio Code Lập Trình C++ Chi Tiết Đơn Giản 2024

October 3, 2023
Office 2019 full crack

Cách Crack Office 2019 Đơn Giản, Dễ Hiểu Thành Công 100%

September 19, 2023
Top 10 ứng dụng mua hàng Trung Quốc uy tín nhất hiện nay

Top 10 ứng dụng mua hàng Trung Quốc uy tín nhất hiện nay

January 18, 2025

Các lớp lưu trữ trong cpp

0

Câu lệnh if else trong cpp

0

Chức năng của switch trong cpp

0

Mảng đối tượng trong C++

0
Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

October 23, 2023
Top 7 website bán túi xách nữ chính hãng, uy tín nhất

Top 7 website bán túi xách nữ chính hãng, uy tín nhất

October 12, 2023
Hướng dẫn Cài Đặt Và Sử Dụng AutoCAD 2024 Full Crack 

Hướng dẫn Cài Đặt Và Sử Dụng AutoCAD 2024 Full Crack 

October 7, 2023
Hướng Dẫn Tải Và Sử Dụng GS Auto Clicker 3.1.2 Full Crack

Hướng Dẫn Tải Và Sử Dụng GS Auto Clicker 3.1.2 Full Crack

October 5, 2023

Recommended

Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

Quick Sort – Thuật toán sắp xếp đột phá trong thế kỉ XX

October 23, 2023
Top 7 website bán túi xách nữ chính hãng, uy tín nhất

Top 7 website bán túi xách nữ chính hãng, uy tín nhất

October 12, 2023
Hướng dẫn Cài Đặt Và Sử Dụng AutoCAD 2024 Full Crack 

Hướng dẫn Cài Đặt Và Sử Dụng AutoCAD 2024 Full Crack 

October 7, 2023
Hướng Dẫn Tải Và Sử Dụng GS Auto Clicker 3.1.2 Full Crack

Hướng Dẫn Tải Và Sử Dụng GS Auto Clicker 3.1.2 Full Crack

October 5, 2023
Hướng dẫn học C++

© 2023 Hướng dẫn học C++ - Website thuộc bản quyền của Hướng dẫn học C++.

Liên kết

  • Home
  • Học lập trình
  • Reviews
  • Phần mềm PC
  • App/Ứng dụng
  • Game
  • Hướng dẫn

Theo dõi chúng tôi

No Result
View All Result
  • Home
  • Học lập trình
    • Học C++
  • Reviews
  • Phần mềm PC
  • App/Ứng dụng
  • Game
  • Hướng dẫn
    • PC
    • Mobile Tips

© 2023 Hướng dẫn học C++ - Website thuộc bản quyền của Hướng dẫn học C++.

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In