Công cụ bảo vệ mã nguồn .NET mạnh nhất, không thể unpack, miễn phí cho các khách hàng đầu tiên đăng ký.
Trang 1 trên tổng số 3 123 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 24 kết quả

Đề tài: [ Solved ]( Bài tập lớn OOP )Quản lý bầu cử

  1. #1
    No Avatar
    Leon88 Khách

    Mặc định [ Solved ]( Bài tập lớn OOP )Quản lý bầu cử

    YÊU CẦU : XÂY DỰNG CHƯƠNG TRÌNH QUẢN LÝ BẦU CỬ
    MÔ TẢ HỆ THỐNG BẦU CỬ Ở CHẶNG CUỐI
    :
    Trong chặng cuối của cuộc bầu cử, mỗi Đảng phái chính trị sẻ cử 1 đại diện để tham gia tranh cử chức Tổng Thống. Ngoài các ứng cử viên đại diện cho từng Đảng, còn có các ứng cử viên độc lập là những người ứng cử không thuộc một đảng phái chính trị nào.
    Tham gia quá trình bầu cử ra tổng thống là các đại cử tri, đại diện cho cử tri của 1 bang nào đó. Mỗi bang, tùy thuộc vào số dân, sẻ có một số đại cử tri nhất định gọi là cử tri đoàn. VD, bang California là bang có cử tri đoàn lớn nhất với 55 đại cử tri, hoặc quận Columbia có cử tri đoàn nhỏ nhất với 3 đại cử tri. Tổng cộng sẻ có tất cả 538 đại cử tri tham gia bầu ra Tổng Thống.
    Hình thức bầu cử là bầu cử kín, mỗi đại cử tri sẻ có một phiếu bầu, trên phiếu bầu là danh sách các ứng cử viên và các đại cử tri sẻ lựa chọn ứng cử viên trên phiếu bầu này. ứng cử viên nào giành được nhiều phiếu bầu của các đại cử tri nhất và hơn ½ số phiếu bầu của các đại cử tri (270) sẻ trở thành Tổng Thống.

    YÊU CẦU VỀ CHỨC NĂNG CỦA BÀI TẬP:
    1. Nhập thông tin cần thiết cho cuộc bầu cử:
    - Danh sách các ứng cử viên: họ tên, ngày tháng năm sinh, nơi sinh, thời gian sống tại Mỹ trước ngày bầu cử, thuộc Đảng( nếu có)
    - Danh sách các đại cử tri: Họ tên, ngày tháng năm sinh, nơi sinh, thuộc cử tri đoàn của bang nào...
    - Thông tin của các đảng phái chính trị: tên đảng phái, ngày thành lập, chủ tịch...
    - Thông tin của các cử tri đoàn: cử tri đoàn của bang nào, gồm bao nhiêu đại cử tri,...
    - Các thông tinh khác (nếu có) cần thiết cho cuộc bầu cử
    2. Lưu các thông tin đã nhập ra tập tin:
    - mỗi mẫu tin được lưu trên 1 dòng
    - mỗi trường cách nhau bằng kí tự $
    - nếu lớp có dữ liệu thành viên là một đối tượng của 1 lớp khác, dữ liệu thành viên này cũng được xem như là một thuộc tính, bao gồm nhiều thuộc tính khác;
    - đối với các lớp thừa kế, dữ liệu thành viên thừa kế từ lớp cha được lưu trước các dữ liệu thành viên của lớp con.

    Tập tin dữ liệu cho lớp NGƯỜI có cấu trúc như sau:
    Tran Cong An$123456789$01/01/1978$Thanh Tri, Soc Trang
    Phan Thuong Cang$111222333$01/01/1976$Binh Minh, Vinh Long
    ...
    Tập tin lưu dữ liệu cho lớp Daicutri co cấu trúc như sau
    Tran Cong An$123456789$01/01/1978$Thanh Tri, Soc Trang$CA
    Phan Thuong Cang$111222333$01/01/1976$Binh Minh, Vinh Long$NY

    3. đọc dữ liệu từ tập tin để tổ chức bầu cử

    4.Cho phép các đại cử tri bầu cử. Tạo ra các phiếu bầu dựa trên các thông tin đã được nhập, hiển thị phiếu bầu để các đại cử tri có thể bầu cho ứng cử viên. Thông tin phiếu bầu bao gồm danh sách các ứng cử viên (họ tên, đảng). danh sách ứng cử viên được sắp xếp theo thứ tự tăng dần của tên ứng cử viên. Sau đó, cho phép người dùng lựa chọn 1 ứng cử viên trên phiếu bầu.

    5. Tính toán kết quả bầu cử và hiển thị kết quả bầu cử. Nếu có ứng cử viên đủ điều kiện trở thành tổng thống thì hiển thị thông tin về người trúng cử. Ngược lại thì hiển thị thông báo thích hợp. Điều kiện để 1 ứng cử viên có thể trở thành tổng thống:

    Người có được nhiều phiếu bầu của đại cử tri nhất

    Phải được ít nhất hơn phân nửa số phiếu của các đại cử tri. VD trong trường hợp của Mỹ thì có tất cả 538 đại cử tri, do đó ứng cử viên phải đạt được ít nhất 270 = (538/2 +1) phiếu.

    6. YÊU CẦU THÊM: viết thêm module cho phép test chức năng của chương trình bằng cách sinh ra kết quả bầu cử một cách ngẫu nhiên (dựa trên thông tin của các ứng cử viên, các đại cử tri, tạo các phiếu bầu và bầu ngẫu nhiên trên các phiếu đó). Sau đó thực hiện việc tính toán bầu cử (5) và cho kết quả.
    MỘT SỐ YÊU CẦU VỀ THIẾT KẾ:
    1.Phải có ít nhất 4 lớp(các lớp chính), không vượt quá 10 lớp
    2.có sử dụng tính thừa kế
    3. phải có tái định nghĩa toán tử. VD: tái định nghĩa toán tử nhập, xuất cho một số lớp chính(ra màn hình và tập tin)
    4.sử dụng các khái niệm : thừa kế, hàm ảo, chồng hàm, tái định nghĩa hàm,…
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

  2. #2
    Ngày gia nhập
    10 2007
    Nơi ở
    Gameloft studio
    Bài viết
    175

    Bạn post bài này lên là để anh em thành viên Cviet nghiên cứu làm thử, thêm số bài tập cho anh em thử sức hả? hay sao?
    Không biết ghi gì luôn ...

  3. #3
    No Avatar
    Leon88 Khách

    Mình post bài tập lớn này để làm chơi đó. Làm member ở đây lâu rồi ... đâu dám thử sức anh em .

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

    Mình post bài tập lớn này để làm chơi đó. Làm member ở đây lâu rồi ... đâu dám thử sức anh em .
    hi T_T ! Lâu rùi không gặp Leon. Lạc ở phương nào h mới mò về lại đây . Hồi đó vẫn nợ Leon 1 bài giải thuật, r2 sẽ bù lại bằng bài này cho Leon nhé T_T, để suy nghĩ xem sao !

  5. #5
    Ngày gia nhập
    10 2007
    Nơi ở
    Gameloft studio
    Bài viết
    175

    Trích dẫn Nguyên bản được gửi bởi Leon88 Xem bài viết
    Mình post bài tập lớn này để làm chơi đó. Làm member ở đây lâu rồi ... đâu dám thử sức anh em .
    hihi, mình cũng chỉ hỏi lại thôi, sợ bạn nhầm lẫn với box hướng dẫn, hay project.
    ht còn nhớ bạn chứ, nếu là thành viên khác thì ht không có một câu trả lời như trên -> mà xóa hẳn rồi, hihihihi.
    Không biết ghi gì luôn ...

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

    Mặc định [ Solved ]( Bài tập lớn OOP )Quản lý bầu cử

    hihi, mình cũng chỉ hỏi lại thôi, sợ bạn nhầm lẫn với box hướng dẫn, hay project.
    ht còn nhớ bạn chứ, nếu là thành viên khác thì ht không có một câu trả lời như trên -> mà xóa hẳn rồi, hihihihi.
    Ht vào giúp anh 1 tay nào T_T, thấy đề bài cũng khá hay, mô tả cũng chi tiết, cài đặt cho tốt chắc cũng là cả 1 vấn đề, có gì anh sẽ chít chít với em qua yahoo nhé, tuần này đã thi xong nên rảnh lém T_T. Nếu được em có thể suy nghĩ trước mô hình UML nhé.

  7. #7
    Ngày gia nhập
    02 2008
    Bài viết
    5

    các bác nghiên cứu nhanh nhanh giúp em với, em cũng đang điên đầu với bài này đây !
    thanks !

  8. #8
    Ngày gia nhập
    10 2007
    Nơi ở
    Gameloft studio
    Bài viết
    175

    Trích dẫn Nguyên bản được gửi bởi tep_riu Xem bài viết
    các bác nghiên cứu nhanh nhanh giúp em với, em cũng đang điên đầu với bài này đây !
    thanks !
    Vậy bắt tay làm tới đâu rùi bạn. Post thử lên đi
    Trích dẫn Nguyên bản được gửi bởi rox_rook Xem bài viết
    Ht vào giúp anh 1 tay nào T_T, thấy đề bài cũng khá hay, mô tả cũng chi tiết, cài đặt cho tốt chắc cũng là cả 1 vấn đề, có gì anh sẽ chít chít với em qua yahoo nhé, tuần này đã thi xong nên rảnh lém T_T. Nếu được em có thể suy nghĩ trước mô hình UML nhé.
    OK, còn nhưng xong cái đợt kiểm tra này đã, nhiều môn kiểm tra, báo cáo đây..
    Không biết ghi gì luôn ...

  9. #9
    Ngày gia nhập
    02 2008
    Bài viết
    5

    Đây là 1 số class em đã thiết kế ! trình còn gà các bác xem giúp em với nhé !
    thanks các bác !

    Lớp Người
    Code:
    #include "Date_bc.cpp"
    #include<iostream.h>
    #include<conio.h>
    #include<stdio.h>
    #include<string.h>
    #include<fstream.h>
    #include<iomanip.h>
    class Person
    {
       char* hoten;
       char gioitinh[3];
       Date ngaysinh;
       char* quequan;
       char* cmnd;
        public:
       Person();
       Person(char*,char*,Date,char*,char*);
       Person(const Person&);
       ~Person()
          {
    	   delete[]hoten;
    	   delete[]quequan;
    	   delete[]cmnd;
          }
       Person& operator=(const Person&);
    
       void NhapThongTin();
       void InThongTin();
       char* LayHoTen() {return hoten;}
       void GhifilePerson();
    };
    
    Person::Person():ngaysinh()
    {
        hoten=new char[50];
        strcpy(hoten," ");
        strcpy(gioitinh," ");
        quequan=new char[50];
        strcpy(quequan," ");
        cmnd=new char[50];
        strcpy(cmnd," ");
        
    }
    Person::Person(char* ht,char* gt,Date ns,char* qq,char*cm)
    {
        hoten=strdup(ht);
        strcpy(gioitinh,gt);
        ngaysinh=ns;
        quequan=strdup(qq);
        cmnd=strdup(cm);
        
    }
    Person::Person(const Person& dv):ngaysinh(dv.ngaysinh)
    {
        hoten=strdup(dv.hoten);
        strcpy(gioitinh,dv.gioitinh);
        quequan=strdup(dv.quequan);
        cmnd=strdup(dv.cmnd);}
    Person& Person::operator=(const Person& dv)
    {
        delete[]hoten;
        hoten=strdup(dv.hoten);
        strcpy(gioitinh,dv.gioitinh);
        ngaysinh=dv.ngaysinh;
        delete[]quequan;
        quequan=strdup(dv.quequan);
        delete[]cmnd;
        cmnd=strdup(dv.cmnd);
        return* this;
    }
    void Person::NhapThongTin()
    {
        int i,j,k;
        char* blank=" ";
        cout<<"Ho ten: ";gets(hoten);
        k=20-strlen(hoten);
        for(i=0;i<k;i++)
        {
          strcat(hoten,blank);
        }
    
        cout<<"gioitinh: ";gets(gioitinh);
        k=5-strlen(gioitinh);
        for(i=0;i<k;i++)
        {
          strcat(gioitinh,blank);
        }
        cout<<"Ngay sinh: "<<endl;
        cout<<"	";     ngaysinh.Nhap();
        cout<<endl;
        cout<<"Que quan: ";gets(quequan);
        k=15-strlen(quequan);
        for(i=0;i<k;i++)
        {
          strcat(quequan,blank);
        }
        cout<<"CMND: ";gets(cmnd);
        k=15-strlen(cmnd);
        for(i=0;i<k;i++)
        {
          strcat(cmnd,blank);
        }
    }
    void Person::InThongTin()
    {
       cout<<"Ho ten: "<<hoten<<endl;
       cout<<"gioitinh: "<<gioitinh<<endl;
       cout<<"Ngay sinh: ";    ngaysinh.In();
       cout<<endl;
       cout<<"Que quan: "<<quequan<<endl;
       cout<<"CMND: "<<cmnd<<endl;
    }
    void Person::GhifilePerson()
    {
       ofstream OutFile("Person.txt",ios::app);
       OutFile<<hoten<<"$"<<gioitinh<<"$";
       ngaysinh.GhifileDate();
       OutFile<<"$"<<quequan<<"$";
       OutFile<<"$"<<cmnd<<endl;
       OutFile.close();
    }
    /*void ChiDoan_SV::DocfileChiDoan_SV()
    {
       ifstream InFile("Person.txt",ios::in);
      // cout<<setiosflags(ios::left)<<setw(strlen(mscd)+2)<<mscd<<setw(strlen(tencd)+2)<<tencd<<doanphi<<endl;
    }
      */
    
    void main()
    {
         Person a;
         clrscr();
         a.NhapThongTin();
         a.InThongTin();
         a.GhifilePerson();
         getch();
    }
    Lớp UngCuVien
    Code:
    #include "Person.CPP"
    #include<iostream.h>
    #include<conio.h>
    #include<stdio.h>
    #include<string.h>
    class UngCuVien:public Person
    {
          char* sinhsong;
          char* dang;
      public:
          UngCuVien():Person()
           {
    	 sinhsong=new char[50];
    	 strcpy(sinhsong," ");
    	 dang=new char[100];
    	 strcpy(dang," ");
           }
    
          UngCuVien(char* ht,char* gt,Date ns,char* qq,char* cm,char* ss,char* d):Person()
           {
    
    	 sinhsong=strdup(ss);
    	 dang=strdup(d);
           }
           ~UngCuVien()  {delete[]sinhsong;delete[]dang;}
           UngCuVien(const UngCuVien& ucv):Person(ucv)
           {
    	 sinhsong=strdup(ucv.sinhsong);
    	 dang=strdup(ucv.dang);
           }
    
           UngCuVien& operator=(const UngCuVien& ucv)
           {
    	 delete[]sinhsong;
    	 delete[] dang;
    	 sinhsong=strdup(ucv.sinhsong);
    	 dang=strdup(ucv.dang);
    	 return *this;
           }
    
           void NhapThongTin_ucv()
           {
    	   cout<<"Sinh song tai My trong bao lau: ";  gets(sinhsong);
    	   cout<<"Dang Phai: ";  gets(dang);
    	   NhapThongTin();
           }
    
           void InThongTin_ucv()
           {
    	  cout<<"sinhsong: "<<sinhsong<<endl;
    	  cout<<"Dang Phai: "<<dang<<endl;
    	  InThongTin();
           }
           char* Lay_dang()   {return dang;}
           char* Lay_sinhsong()   {return sinhsong;}
    };
    void main()
    {
      clrscr();
      fflush(stdin);
      UngCuVien a;
      a.NhapThongTin_ucv();
      clrscr();
      a.InThongTin_ucv();
      getch();
    }
    Lớp Đại cử tri
    Code:
    #include "Person.CPP"
    #include<iostream.h>
    #include<conio.h>
    #include<stdio.h>
    #include<string.h>
    class DaiCuTri:public Person
    {
          char* bang;
      public:
          DaiCuTri():Person()
           {
    	 bang=new char[50];
    	 strcpy(bang," ");
           }
          DaiCuTri(char* ht,char* p,Date ns,char* qq,Date nvd,char* vv,char* cvd,char* ms,char* dv):Person()
           {
    	 bang=strdup(dv);
           }
           ~DaiCuTri()  {delete[]bang;}
           DaiCuTri(const DaiCuTri& dct):Person(dct)
           {
    	 bang=strdup(dct.bang);
           }
           DaiCuTri& operator=(const DaiCuTri& dct)
           {
    	 
    	 delete[]bang;
    	 bang=strdup(dct.bang);
    	 return *this;
           }
           void NhapThongTin_dct()
           {
    	   cout<<"Ten Bang: ";  gets(bang);
    	   NhapThongTin();
           }
           void InThongTin_dct()
           {
    	  cout<<"Tieu Bang: "<<bang<<endl;
    	  InThongTin();
           }
           
           char* Lay_bang()   {return bang;}
    };
    void main()
    {
      clrscr();
      fflush(stdin);
      DaiCuTri a;
      a.NhapThongTin_dct();
      clrscr();
      a.InThongTin_dct();
      getch();
    }
    Lớp Đảng Phái chính trị
    Code:
    #include "Date_bc.cpp"
    #include<iostream.h>
    #include<conio.h>
    #include<stdio.h>
    #include<string.h>
    #include<fstream.h>
    #include<iomanip.h>
    class DangPhai
    {
       char* tendang;
       Date ngaythanhlap;
       char* chutich;
       
        public:
       DangPhai();
       DangPhai(char*,char*,Date,char*,char*);
       DangPhai(const DangPhai&);
       ~DangPhai()
          {
    	   delete[]tendang;
    	   delete[]chutich;
    	   
          }
       DangPhai& operator=(const DangPhai&);
    
       void NhapThongTin();
       void InThongTin();
       char* Laytendang() {return tendang;}
       void GhifileDangPhai();
    };
    
    DangPhai::DangPhai():ngaythanhlap()
    {
        tendang=new char[50];
        strcpy(tendang," ");
        chutich=new char[50];
        strcpy(chutich," ");
        
    }
    DangPhai::DangPhai(char* tdang,Date ngaytl,char* ctich)
    {
        tendang=strdup(tdang);
        ngaythanhlap=ngaytl;
        chutich=strdup(ctich);
            
    }
    DangPhai::DangPhai(const DangPhai& dv):ngaythanhlap(dv.ngaythanhlap)
    {
        tendang=strdup(dv.tendang);
        chutich=strdup(dv.chutich);
    }
    DangPhai& DangPhai::operator=(const DangPhai& dv)
    {
        delete[]tendang;
        tendang=strdup(dv.tendang);
        ngaythanhlap=dv.ngaythanhlap;
        delete[]chutich;
        chutich=strdup(dv.chutich);
        return* this;
    }
    void DangPhai::NhapThongTin()
    {
        int i,j,k;
        char* blank=" ";
        cout<<"Ten Dang Phai Chinh Tri: ";gets(tendang);
        k=20-strlen(tendang);
        for(i=0;i<k;i++)
        {
          strcat(tendang,blank);
        }
    
        cout<<"Ngay thanh lap: "<<endl;
        cout<<"	";     ngaythanhlap.Nhap();
        cout<<endl;
        cout<<"Chu Tich: ";gets(chutich);
        k=15-strlen(chutich);
        for(i=0;i<k;i++)
        {
          strcat(chutich,blank);
        }
        
    }
    void DangPhai::InThongTin()
    {
       cout<<"Ten Dang Phai Chinh Tri: "<<tendang<<endl;
       cout<<"Ngay thanh lap: ";    ngaythanhlap.In();
       cout<<endl;
       cout<<"Chu Tich: "<<chutich<<endl;
    }
    /* void DangPhai::GhifileDangPhai()
    {
       ofstream OutFile("DangPhai.txt",ios::app);
       OutFile<<tendang<<"$"<<;
       ngaythanhlap.GhifileDate();
       OutFile<<"$"<<chutich<<"$";
       OutFile.close();
    }
    void DangPhai::DocfileDangPhai()
    {
       ifstream InFile("DangPhai.txt",ios::in);
      // cout<<setiosflags(ios::left)<<setw(strlen(mscd)+2)<<mscd<<setw(strlen(tencd)+2)<<tencd<<doanphi<<endl;
    }
      */
    
    void main()
    {
         DangPhai a;
         clrscr();
         a.NhapThongTin();
         a.InThongTin();
         a.GhifileDangPhai();
         getch();
    }

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

    Khi tui về nhà tui sẽ suy nghĩ lại, các class cậu viết cũng rất có idea tuy nhiên cậu bị giới hạn khi dùng c_string rất nhiều, chuyển sang C++ string hết sẽ không cần phải dùng nake new, delete[]. Và class Person tui thấy nó lên là abstract class. Rùi các ứng cử viên, cử tri... sẽ derived from nó. Đọc và lưu dữ liệu nên quăng nó vào 1 class Utility hay standalone function cũng chả có vấn đề gì. Sau đó có 1 class Database, lưu dữ liệu thì có vẻ sáng sủa hơn.
    Để có gì tui sẽ suy nghĩ lại kĩ hơn. Có dàn bài thì viết sẽ dễ dàng hơn.
    Công cụ bảo vệ mã nguồn .NET mạnh nhất hiện tại, miễn phí cho các khách hàng đầu tiên đăng ký.

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

  1. [ Solved ]Lỗi ở đâu ? ( Bài tập quản lý )
    Gửi bởi luxiphe89 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 28-11-2008, 08:24 AM
  2. [ Solved ]Bài tập tính: a mũ 3 mũ n bị sai kết quả, giúp mình với
    Gửi bởi congtoan 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: 21-10-2008, 01:16 PM
  3. [ Solved ]Quản lí học sinh ( sắp xếp theo điểm )
    Gửi bởi thangit trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 8
    Bài viết cuối: 22-09-2008, 12:49 AM
  4. [ Solved ]Chương trình quản lí sinh viên
    Gửi bởi nakaru_snow trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 16
    Bài viết cuối: 19-09-2008, 01:55 PM
  5. [Solved] In kết quả dưới dạng phân số tối giản
    Gửi bởi pfc718 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 5
    Bài viết cuối: 16-09-2008, 08: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