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

Đề tài: Chương trình QLSV: xóa thông tin sinh viên bằng phương pháp remove(), rename().

  1. #1
    Ngày gia nhập
    03 2012
    Bài viết
    1

    Wink Chương trình QLSV: xóa thông tin sinh viên bằng phương pháp remove(), rename().

    Các bạn xem dùm mình ở Case 4 được ko, để xóa một thông tin sv theo mã số sv mình sử dụng phương pháp copy record từ file "Student.dat" sang "temp.dat" rồi remove() file gốc "Student.dat" và đổi tên file tạm thời là "temp.dat" thành file "Student.dat". Thông tin sv mã số mình nhập vào đã được xóa nhưng mà nó cũng xóa lun 1 số thông tin sv khác chỉ copy 1 thông tin sv sang file tạm thời "temp.dat" ko bik là mình có nhầm lẫn ở đâu ko mong các bạn xem giúp. Mình xin cám ơn trước!
    Code:
    C++ Code:
    1. // QuanLySinhVien.cpp : Defines the entry point for the console application.
    2. //
    3.  
    4. #include "stdafx.h"
    5. #include<iostream>
    6. #include<conio.h>
    7. #include<fstream>
    8. using namespace std;
    9. //Dinh nghia class Student
    10. class Student
    11. {
    12. //cho phep truy cap trong class nay
    13. private:
    14.     int iReg_No;// luu ma so sinh vien
    15.     char cName[20];// luu ten sinh vien
    16. public:
    17. //dinh nghia function setRegNo()=>nhap vao msv
    18.     void setRegNo()
    19.     {
    20.         cout<<"\nVui long nhap MSSV: ";
    21.         cin>>iReg_No;
    22.     }
    23. //DN function getRegNo() => Tra ve gia tri mssv
    24.     int getRegNo()
    25.     {
    26.         return iReg_No;
    27.     }
    28. //DN function setName() => Nhap vao ten SV
    29.     void setName()
    30.     {
    31.         cout<<"\nVui long nhap vao ten:";
    32.         cin>>cName;
    33.     }
    34.     char *getName()
    35.     {
    36.         return cName;
    37.     }
    38.  
    39.  
    40.  
    41.  
    42. };
    43. //than chuong trinh chinh
    44. // them thong tin cho sv Que quan, masv, tên sv, nam sinh, dtb
    45. int _tmain(int argc, _TCHAR* argv[])
    46. {
    47.    
    48.     int imenukey=0;
    49.     Student sv;
    50.     Student std;
    51.     char cIKEY;
    52.     int mSV, flag, RegNo, Status=0, pos=0, curr=1;
    53.     while(imenukey!=7)
    54.     {
    55.     cout<<"\n-------------------Chuong trinh QLSV-----------------------";
    56.     cout<<"\n1. Nhap thong tin sinh vien (reset)";// luu xuong file student.dat
    57.     cout<<"\n2. Xem thong tin sinh vien";// xem toan bo thong tin sinh vien lay tu file student.dat
    58.     cout<<"\n3. Tim thong tin sinh vien theo ma so.";// bat user nhap vao ma so, hien thi thong tin sinh vien
    59.     cout<<"\n4. Xoa sinh vien theo ma so";// YC user nhap ma so sau do xoa sinh vien theo ma so
    60.     cout<<"\n5. them sinh vien moi vao file student.dat";//them moi sinh vien vao file student.dat
    61.     cout<<"\n6. Hieu chinh thong tin sinh vien theo ma so";// user nhap vao ma sinh vien sau do duoc thay doi thong tin sv
    62.     cout<<"\n7. Thoat\n\n\n";
    63.     cout<<"\n De chon chuc nang vui long an so tu 1-7: ";
    64.     cin>>imenukey;
    65.  
    66.     switch(imenukey)
    67.     {
    68.     case 1:
    69.         {
    70.             ofstream ofile("Student.dat");
    71.         while(1)//luon luon dung
    72.         {  
    73.             cout<<"\nBan co muon nhap thong tin sinh vien ko(c/k)?: ";
    74.             cin>>cIKEY;
    75.             if (cIKEY=='k')
    76.                 break;
    77.             sv.setRegNo();//nhap vao ma sv
    78.             sv.setName();//nhap ten
    79.             ofile.write((char*)&sv,sizeof(Student));
    80.                
    81.            
    82.         }
    83.  
    84.         ofile.close();
    85.         break;
    86.         }
    87.  
    88.     case 2:
    89.         {
    90.             //Mo file de doc
    91.             ifstream ifile("Student.dat");
    92.             ifile.read((char*)&sv,sizeof(Student));
    93.             cout<<"\n----Thong Tin Sinh Vien ----";
    94.                 int iNumoforder=1;
    95.                 while(ifile)
    96.                 {
    97.                     //hien thi thong tin sv
    98.                 cout<<"\n"<<iNumoforder<<". Thong Tin Sinh Vien Thu "<<iNumoforder;
    99.                 cout<<"\n Ma sinh vien la: "<<sv.getRegNo();
    100.                 cout<<"\n ten sinh vien la: "<<sv.getName()<<endl;
    101.                 ifile.read((char*)&sv,sizeof(Student));
    102.                 iNumoforder++;
    103.                 }
    104.             //Dong file lai
    105.             ifile.close();
    106.             break;
    107.         }
    108.     case 3:
    109.         {
    110.        
    111.             cout<<"\nVui long nhap vao ma sinh vien: ";
    112.             cin>>mSV;
    113.             //mo file de doc
    114.             ifstream ifile("Student.dat");
    115.             while(ifile.read((char*)&sv,sizeof(Student)))
    116.             {
    117.                 if (mSV==sv.getRegNo())
    118.                 {
    119.                     flag=1;
    120.                     ifile.close();
    121.                     continue;
    122.                 }
    123.             }
    124.             if (flag==1)
    125.             {
    126.                 /*ifile.seekg((mSV-1)*sizeof(Student),ios::beg);*/
    127.                 cout<<"\nThong tin sinh vien tim duoc la: ";
    128.                 cout<<"\nMa sinh vien: "<<sv.getRegNo();
    129.                 cout<<"\nTen sinh vien: "<<sv.getName()<<"\n\n\n\n\n";
    130.             }else
    131.             {
    132.                 cout<<"\nOh! We are sorry, Can't found";
    133.             }
    134.             ifile.close();
    135.            
    136.             break;
    137.         }
    138.     case 4:
    139.         {
    140.             cout<<"Nhap vao ma so sinh vien can xoa: ";
    141.             cin>>RegNo;
    142.    
    143.             fstream ifile;
    144.             ifile.open("Student.dat",ios::in | ios::binary);
    145.             fstream ofile;
    146.             ofile.open("temp.dat",ios::out | ios::binary);
    147.             while (ifile.read((char*)&sv,sizeof(Student)));
    148.             {
    149.                 if (RegNo!=sv.getRegNo())
    150.                
    151.                     ifile.write((char*)&sv,sizeof(Student));
    152.                
    153.                 else
    154.                
    155.                     Status=1;
    156.                
    157.             }
    158.             if (Status==1)
    159.                 cout<<"Khong tim thay thong tin sinh vien can xoa";
    160.             else
    161.                 cout<<"thong tin sv da dc xoa";
    162.             ifile.close();
    163.             ofile.close();
    164.             remove ("Student.dat");
    165.             rename ("temp.dat", "Student.dat");
    166.  
    167.             break;
    168.         }
    169.     case 5:
    170.         {
    171.             fstream ifile;
    172.             ifile.open("Student.dat",ios::app| ios::binary);
    173.            
    174.             sv.setRegNo();
    175.             sv.setName();
    176.             ifile.write((char*)&sv,sizeof(sv));
    177.  
    178.             break;
    179.         }
    180.     case 6:
    181.         {
    182.             cout<<"";
    183.             break;
    184.         }
    185.     case 7:
    186.         {
    187.             continue;
    188.         }
    189.     default:
    190.         {
    191.             cout<<"vui long an so tu 1-7";
    192.             break;
    193.         }
    194.     }
    195.  
    196.     }
    197.     getch();
    198.     return 0;
    199. }

  2. #2
    Ngày gia nhập
    12 2010
    Nơi ở
    Hà Nội
    Bài viết
    137

    Trong case 4, sửa cái này:
    PHP Code:
    1. if (RegNo!=sv.getRegNo())
    2.  
    3.                     ofile.write((char*)&sv,sizeof(Student));
    4.  
    5.                 else
    6.  
    7.                     Status=1;
    Freelancer, free coder, free tester.
    Nhận hợp tác viết app, viết midlet khi free time.
    Tình trạng: Siêu bận!

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

  1. Xóa một sinh viên trong một danh sách sinh viên
    Gửi bởi tuanvi261 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 2
    Bài viết cuối: 19-04-2012, 07:57 PM
  2. Tạo danh sách sinh viên trên C++. Chỉnh sửa, xóa sinh viên thì làm thế nào?
    Gửi bởi hiepsiao trong diễn đàn Thắc mắc CTDL & Giải thuật
    Trả lời: 3
    Bài viết cuối: 28-08-2011, 10:26 AM
  3. Xóa một sinh viên có mã là X
    Gửi bởi teotoni trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 12
    Bài viết cuối: 26-06-2011, 03:16 PM
  4. Bài tập C++ xóa sinh viên trong dssv , ai test dùm em , xóa sv thứ 3 mà nó toàn xóa sv thứ 4
    Gửi bởi prt_awm trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 2
    Bài viết cuối: 08-11-2010, 02:24 PM
  5. Hàm xóa sinh viên
    Gửi bởi aydada trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 8
    Bài viết cuối: 02-05-2010, 08:10 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