Skip to content

Commit

Permalink
Update 09122020
Browse files Browse the repository at this point in the history
  • Loading branch information
Minh Đức Trương committed Dec 9, 2020
1 parent 45b2060 commit 22124e8
Show file tree
Hide file tree
Showing 6 changed files with 151 additions and 2 deletions.
13 changes: 13 additions & 0 deletions QuanLyChiTieu/expensetracker.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1525,6 +1525,8 @@ void ExpenseTracker::on_btn_P5_CapNhat_tab2_clicked()
if( KhoangThoiGian == "7 ngày trước" ){
QVector<QVector<lli>> Chi = ChiTieuQL.LayThongKe7NgayTruoc(TenDangNhap, TenDanhMuc, TenTaiKhoan, Ngay, Thang, Nam);

ui->label_MaxChi->setText(ChiTieuQL.MaxChi(7, Chi));

lli Max = Chi[1][2];
for (int i = 2; i < 8; ++i) {
if( Chi[i][2] > Max ) Max = Chi[i][2];
Expand Down Expand Up @@ -1600,6 +1602,8 @@ void ExpenseTracker::on_btn_P5_CapNhat_tab2_clicked()
else if( KhoangThoiGian == "30 ngày trước" ){
QVector<QVector<lli>> Chi = ChiTieuQL.LayThongKe30NgayTruoc(TenDangNhap, TenDanhMuc, TenTaiKhoan, Ngay, Thang, Nam);

ui->label_MaxChi->setText(ChiTieuQL.MaxChi(30, Chi));

lli Max = Chi[1][3];
for (int i = 2; i < 11; ++i) {
if( Chi[i][3] > Max ) Max = Chi[i][3];
Expand Down Expand Up @@ -1673,6 +1677,8 @@ void ExpenseTracker::on_btn_P5_CapNhat_tab2_clicked()
else if( KhoangThoiGian == "3 tháng trước" ){
QVector<QVector<lli>> Chi = ChiTieuQL.LayThongKe3ThangTruoc(TenDangNhap, TenDanhMuc, TenTaiKhoan, Ngay, Thang, Nam);

ui->label_MaxChi->setText(ChiTieuQL.MaxChi(3, Chi));

lli Max = Chi[1][3];
for (int i = 2; i < 11; ++i) {
if( Chi[i][3] > Max ) Max = Chi[i][3];
Expand Down Expand Up @@ -1820,6 +1826,7 @@ void ExpenseTracker::on_btn_P5_CapNhat_tab3_clicked()
{
QString LoaiThuNhap, TenTaiKhoan, Ngay, Thang, Nam, KhoangThoiGian;


LoaiThuNhap = ui->comboBox_P5_NguonThuNhap_tab3->currentText();
TenTaiKhoan = ui->comboBox_P5_DenTaiKhoan_tab3->currentText();
Ngay = ui->dateEdit_P5_ThoiGian_tab3->date().toString("dd");
Expand All @@ -1837,6 +1844,8 @@ void ExpenseTracker::on_btn_P5_CapNhat_tab3_clicked()
if( KhoangThoiGian == "7 ngày trước" ){
QVector<QVector<lli>> Thu = ThuNhapQL.LayThongKe7NgayTruoc(TenDangNhap, LoaiThuNhap, TenTaiKhoan, Ngay, Thang, Nam);

ui->label_MaxThu->setText(ThuNhapQL.MaxThu(7, Thu));

lli Max = Thu[1][2];
for (int i = 2; i < 8; ++i) {
if( Thu[i][2] > Max ) Max = Thu[i][2];
Expand Down Expand Up @@ -1912,6 +1921,8 @@ void ExpenseTracker::on_btn_P5_CapNhat_tab3_clicked()
else if( KhoangThoiGian == "30 ngày trước" ){
QVector<QVector<lli>> Thu = ThuNhapQL.LayThongKe30NgayTruoc(TenDangNhap, LoaiThuNhap, TenTaiKhoan, Ngay, Thang, Nam);

ui->label_MaxThu->setText(ThuNhapQL.MaxThu(30, Thu));

lli Max = Thu[1][3];
for (int i = 2; i < 11; ++i) {
if( Thu[i][3] > Max ) Max = Thu[i][3];
Expand Down Expand Up @@ -1985,6 +1996,8 @@ void ExpenseTracker::on_btn_P5_CapNhat_tab3_clicked()
else if( KhoangThoiGian == "3 tháng trước" ){
QVector<QVector<lli>> Thu = ThuNhapQL.LayThongKe3ThangTruoc(TenDangNhap, LoaiThuNhap, TenTaiKhoan, Ngay, Thang, Nam);

ui->label_MaxThu->setText(ThuNhapQL.MaxThu(3, Thu));

lli Max = Thu[1][3];
for (int i = 2; i < 11; ++i) {
if( Thu[i][3] > Max ) Max = Thu[i][3];
Expand Down
30 changes: 28 additions & 2 deletions QuanLyChiTieu/expensetracker.ui
Original file line number Diff line number Diff line change
Expand Up @@ -214,7 +214,7 @@ QDateEdit{
<number>0</number>
</property>
<property name="currentIndex">
<number>0</number>
<number>4</number>
</property>
<widget class="QWidget" name="page_TrangChinh">
<property name="styleSheet">
Expand Down Expand Up @@ -2652,7 +2652,7 @@ font: 75 15pt &quot;MS Shell Dlg 2&quot;;</string>
<string notr="true">font: 12pt &quot;Segoe UI&quot;;</string>
</property>
<property name="currentIndex">
<number>2</number>
<number>1</number>
</property>
<widget class="QWidget" name="tab1_P5">
<attribute name="title">
Expand Down Expand Up @@ -3026,6 +3026,19 @@ font: 75 14pt &quot;Segoe UI&quot;;</string>
</item>
</layout>
</widget>
<widget class="QLabel" name="label_MaxChi">
<property name="geometry">
<rect>
<x>0</x>
<y>370</y>
<width>191</width>
<height>91</height>
</rect>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;Khoảng thời gian&lt;/p&gt;&lt;p align=&quot;center&quot;&gt;có chi tiêu cao nhất &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</widget>
<widget class="QWidget" name="tab3_P5">
<attribute name="title">
Expand Down Expand Up @@ -3202,6 +3215,19 @@ font: 75 15pt &quot;MS Shell Dlg 2&quot;;</string>
<enum>QFrame::Raised</enum>
</property>
</widget>
<widget class="QLabel" name="label_MaxThu">
<property name="geometry">
<rect>
<x>0</x>
<y>370</y>
<width>191</width>
<height>91</height>
</rect>
</property>
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p align=&quot;center&quot;&gt;Khoảng thời gian&lt;/p&gt;&lt;p align=&quot;center&quot;&gt;có chi tiêu cao nhất &lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
</widget>
</widget>
</widget>
</widget>
Expand Down
48 changes: 48 additions & 0 deletions QuanLyChiTieu/quanlychitieu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -456,3 +456,51 @@ QVector<lli> QuanLyChiTieu::LayThongKe1Nam(QString Username, QString TenDanhMuc,
return res;

}

void QuanLyChiTieu::MaxHeap (QVector<QVector<lli>>& data, int i, int posVal){
int largest;
int left = 2*i; /* Vị trí của con bên trái */
int right = 2*i +1; /* Vị trí của con bên phải */
if(left <= data.size() - 1 and data[left][posVal] > data[i][posVal] ) /* N là số phần tử trong mảng, biến toàn cục */
largest = left;
else
largest = i;
if(right <= data.size() - 1 and data[right][posVal] > data[largest][posVal] )
largest = right;
if(largest != i ){
std::swap (data[i] , data[largest]);
MaxHeap (data, largest, posVal);
}
}

void QuanLyChiTieu::RunMaxHeap (QVector<QVector<lli>>& data, int posVal){
for(int i = (data.size() - 1) / 2 ; i >= 1 ; i-- ){
MaxHeap (data, i, posVal) ;
}
}

QString QuanLyChiTieu::MaxChi( int Arg, QVector<QVector<lli>> data ){
switch (Arg) {
case 7:{
QVector<QVector<lli>> res = data;
this->RunMaxHeap(res, 2);
return "Chi tiêu cao nhất \ntrong ngày " + QString::number(res[1][0]) + " tháng " + QString::number(res[1][1]) + " \nvới tổng chi " + QString::number(res[1][2]) + "đ";
}
break;
case 30:{
QVector<QVector<lli>> res = data;
this->RunMaxHeap(res, 3);
return "Chi tiêu từ ngày " + QString::number(res[1][0]) + " \nđến ngày " + QString::number(res[1][1]) + " là cao nhất \nvới tổng chi " + QString::number(res[1][3]) + "đ";
}
break;
case 3:{
QVector<QVector<lli>> res = data;
this->RunMaxHeap(res, 3);
return "Chi tiêu từ ngày " + QString::number(res[1][0]) + " \nđến ngày " + QString::number(res[1][1]) + " là cao nhất \nvới tổng chi " + QString::number(res[1][3]) + "đ";
}
break;
default:
break;
}
return "";
}
8 changes: 8 additions & 0 deletions QuanLyChiTieu/quanlychitieu.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,14 @@ class QuanLyChiTieu

QVector<lli> LayThongKe1Nam(QString Username, QString TenDanhMuc, QString TenTaiKhoan, QString Nam);

void MaxHeap( QVector<QVector<lli>>& data, int i, int posVal );

void RunMaxHeap( QVector<QVector<lli>>& data, int posVal );

QString MaxChi( int Arg, QVector<QVector<lli>> data );




private:
QString MaDanhMuc, TenDanhMuc, TongTien, MoTa, TenChu;
Expand Down
48 changes: 48 additions & 0 deletions QuanLyChiTieu/quanlythunhap.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -392,3 +392,51 @@ QVector<lli> QuanLyThuNhap::LayThongKe1Nam(QString Username, QString LoaiThuNhap

return res;
}

void QuanLyThuNhap::MaxHeap (QVector<QVector<lli>>& data, int i, int posVal){
int largest;
int left = 2*i; /* Vị trí của con bên trái */
int right = 2*i +1; /* Vị trí của con bên phải */
if(left <= data.size() - 1 and data[left][posVal] > data[i][posVal] ) /* N là số phần tử trong mảng, biến toàn cục */
largest = left;
else
largest = i;
if(right <= data.size() - 1 and data[right][posVal] > data[largest][posVal] )
largest = right;
if(largest != i ){
std::swap (data[i] , data[largest]);
MaxHeap (data, largest, posVal);
}
}

void QuanLyThuNhap::RunMaxHeap (QVector<QVector<lli>>& data, int posVal){
for(int i = (data.size() - 1) / 2 ; i >= 1 ; i-- ){
MaxHeap (data, i, posVal) ;
}
}

QString QuanLyThuNhap::MaxThu( int Arg, QVector<QVector<lli>> data ){
switch (Arg) {
case 7:{
QVector<QVector<lli>> res = data;
this->RunMaxHeap(res, 2);
return "Thu nhập cao nhất \ntrong ngày " + QString::number(res[1][0]) + " tháng " + QString::number(res[1][1]) + " \nvới tổng thu " + QString::number(res[1][2]) + "đ";
}
break;
case 30:{
QVector<QVector<lli>> res = data;
this->RunMaxHeap(res, 3);
return "Thu nhập từ ngày " + QString::number(res[1][0]) + " \nđến ngày " + QString::number(res[1][1]) + " là cao nhất \nvới tổng thu " + QString::number(res[1][3]) + "đ";
}
break;
case 3:{
QVector<QVector<lli>> res = data;
this->RunMaxHeap(res, 3);
return "Thu nhập từ ngày " + QString::number(res[1][0]) + " \nđến ngày " + QString::number(res[1][1]) + " là cao nhất \nvới tổng thu " + QString::number(res[1][3]) + "đ";
}
break;
default:
break;
}
return "";
}
6 changes: 6 additions & 0 deletions QuanLyChiTieu/quanlythunhap.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ class QuanLyThuNhap

QVector<lli> LayThongKe1Nam(QString Username, QString LoaiThuNhap, QString TenTaiKhoan, QString Nam);

void MaxHeap( QVector<QVector<lli>>& data, int i, int posVal );

void RunMaxHeap( QVector<QVector<lli>>& data, int posVal );

QString MaxThu( int Arg, QVector<QVector<lli>> data );

protected:
QString TenChu, LoaiThuNhap, TenTaiKhoan;
};
Expand Down

0 comments on commit 22124e8

Please sign in to comment.