Tài liệu tham khảo cho các học phần: An toàn và bảo mật thông tin, Kỹ thuật lập trình C, Kỹ thuật lập trình (khoa Điện)

Tài liệu tham khảo cho học phần An toàn và bảo mật thông tin:

1. Cryptography and Network Security: Principles and Practice 5th Edition by William Stallings, 2011

2. Information Security The Complete Reference, 2nd Edition by Mark Rhodes-Ousley, 2013

Tài liệu tham khảo cho học phần Kỹ thuật lập trình C:

1. C Primer Plus, Fifth Edition by Stephen Prata, 2004

2. The C programming language, 2nd Edition by Brian W. Kernighan and Dennis M. Ritchie, 1988

3. Danh sách các bài tập và bài mẫu (cần cài đặt Winrar 5 để giải nén): download.

4. Bài về mảng struct (học ngày 22/04/2015): download

5. Bài về xử lý xâu ký tự (học ngày 22/04/2015): download.

6. Bài về mảng cấu trúc Tam giác (học ngày 5/05/2015): download.

7. Học ngày 12/05 (file): download and download.

8. Học ngày 19/05 (struct-sach): download.

9. Học ngày 20/05: file sinhvien

10. Một số bài tập để ôn tập học phần Kỹ thuật lập trình C: download

Tài liệu tham khảo Kỹ thuật lập trình (khoa Điện):

1. Thinking in C++, 2nd Edition by Bruce Eckel

2. Programming embedded systems in C and C++ by Michael Barr, 1999

3. Bài mẫu về kế thừa học ngày 24/05/2015: download.

4. Đề cương ôn tập và bài thi test ngày 29/05/2015: download.

How to upgrade to Qt Creator 2.5.2 from Qt Creator 2.4.1

Today I decided to upgrade from Qt Creator 2.4.1 with SDK 1.2.1 (Qt 4.8.0) to Qt Creator 2.5.2. But I still want to use SDK 1.2.1, just Qt Creator 2.5.2. I did not found any normal way to upgrade from Qt Creator 2.4.1 (like Chrome or Firefox etc …). So I must do it for myself. I downloaded Qt Creator 2.5.2 from Nokia website. Then I deleted the Qt Creator 2.4.1 folder from SDK 1.2.1 (C:\QtSDK\QtCreator) and installed Qt Creator 2.5.2 into that folder. Ha ha, the shortcut to Qt Creator program is the same, the folders and files are the same and the new version run smoothly, without any bug. And the maintenance tool of Qt SDK still think that it is Qt Creator 2.4.1, it is ok for me. But there was a problem with the Boost 1.5.1 that I had updated before. That was:
main.obj:-1: error: LNK2019: unresolved external symbol “void __cdecl boost::filesystem::path_traits: ….
After a while, I found that Qt Creator used a configuration file (C:\QtSDK\Desktop\Qt\4.8.0\msvc2010\mkspecs\win32-msvc2010\qmake.conf) to build its projects. So I opened that file and changed the line:
QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t-
to:
QMAKE_CFLAGS = -nologo -Zm200 -Zc:wchar_t
And now it works.

Timer class for C/C++ – run on all Linux/Windows systems

File  header timer.h:

#ifndef TIMER_H
#define TIMER_H
#include <time.h>
class Timer
{
public:
Timer();
~Timer();
void start();
float Get_Elapsed_restart();
float Get_Elapsed();
float Get_Elapsed_s();
float Get_Elapsed_s_restart();
private:
clock_t starttime, finaltime;
};
#endif
File timer.cpp:

#include “timer.h”
Timer::Timer()
{
}
Timer::~Timer()
{
}

void Timer::start()
{
starttime=clock();
}

float Timer::Get_Elapsed_restart()
{
finaltime=clock();
float val=(float)(finaltime-starttime);
starttime=finaltime;
return val;
}

float Timer::Get_Elapsed()
{
finaltime=clock();
return (float)(finaltime-starttime);
}

float Timer::Get_Elapsed_s()
{
return (float)Get_Elapsed()/CLOCKS_PER_SEC;
}

float Timer::Get_Elapsed_s_restart()
{
return (float)Get_Elapsed_restart()/CLOCKS_PER_SEC;
}

Chương trình C/C++ hiển thị các file bị ẩn do virus – C/C++ program that shows hidden file by virus

// chuong trinh chuyen doi cac thu muc bi virus bien thanh an (hidden)
// sang dang binh thuong
// Ngay 10/06/2007
// Tac gia: Nguyen Huu Tuan
// De test chuong trinh, copy file .exe vao thu muc nao do
// tao thu muc an bang lenh: attrib +h +r +s <ten thu muc>
// Sau do chay thu chuong trinh
// Chuong trinh duoc dich bang C-Free, DevCpp, Visual C++ 2005

#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>

int main()
{
system(“dir /b /a > list.txt”);
ifstream fi(“list.txt”);
ofstream fo(“done.bat”);
char str[255];
fo << “@echo off” << endl;
while(fi.getline(str,255))
fo << “attrib -a -s -h -r \”” << str << “\”” << endl;
fi.close();
fo.close();
system(“done.bat”);
system(“del done.bat”);
system(“del list.txt”);
return 0;
}

Lớp số phức – Complex Number class in C++

#include <iostream.h>
#include
<iomanip.h>
class ComplexN
{
float a;
float b;
public:
ComplexN(){};
ComplexN(float a1, float b1):a(a1),b(b1){};
friend ostream & operator << (ostream &,const ComplexN &);

friend istream & operator >> (istream &, ComplexN &);
ComplexN operator + (const ComplexN &);
ComplexN operator - (const ComplexN &);
ComplexN operator * (const ComplexN &);
};

istream & operator >> (istream & is, ComplexN & r)
{
cout << “Phan thuc:”; is >> r.a;
cout << “Phan ao:”; is >> r.b;
return is;
}

ostream & operator << (ostream & os,const ComplexN & r)
{
os << setprecision(2) << r.a;

if(r.b>0.0)
os << ” + ” << setprecision(2) << r.b << “*i”;
else
os << setprecision(2) << r.b << “*i”;

return os;

}

ComplexN ComplexN::operator+(const ComplexN & r)

{

float a1 = a + r.a; float b1 = b + r.b;

return ComplexN(a1,b1);

}

ComplexN ComplexN::operator-(const ComplexN & r)

{

float a1 = a – r.a; float b1 = b – r.b;

return ComplexN(a1,b1);

}

main()

{

ComplexN z1, z2;

cin >> z1;
cin >> z2;
cout << “z1 = ” << z1 << endl;
cout << “z2 = ” << z2 << endl;
cout << “z1+z2 = ” << z1+z2 << endl;;

return 0;
}

Danh sách liên kết với C++ – Linked list in C++


#include "iostream"
#include "ctime"
using namespace std;
class Element
{
// lop phan tu co ban
// truong du lieu quan ly
int data;
Element * next;
public:
Element(int d, Element * nxt);
friend class LList;
};

Element::Element(int d, Element * nxt):data(d), next(nxt)
{
}

class LList
{
protected:
Element * list; // con tro quan ly cac phan tu
int num; // so phan tu cua danh sach
public:
LList();
~LList();
void push_front(int d); // them vao dau
void push_back(int d); // them vao cuoi
void pop_back(); // xoa phan tu o cuoi danh sach
void pop_front(); // xoa phan tu o dau danh sach
int size()const; // kiem tra so phan tu cua danh sach
int empty()const;
int begin()const;
Element * find()const;
int end()const;
void sort();
void printList()const;
};

int LList::begin()const
{
if(num>0)
return list->data;
return INT_MAX;
}

int LList::end()const
{
Element * p = list;
if(num>0)
{
while(p->next)
p = p->next;
return p->data;
}
return INT_MAX;
}

LList::LList()
{
num = 0;
list = NULL;
cout << "LList constructor" <next!=NULL)
q = q->next;
q->next = p;
}
num ++;
}

void LList::printList()const
{
Element * p = list;
while(p)
{
cout <

data <next;
}
}

LList::~LList()
{
Element * p = list;
while(list)
{
list = list->next;
delete p;
p = list;
}
num = 0;
//cout << "LList destructor" <next;
delete p;
num --;
}
}

void LList::pop_back()
{
Element * q = list;
Element * p;
if(q)
{
p = q;
if(q->next==NULL)
list = NULL;
while(q->next!=NULL)
{
p = q;
q = q->next;
}
p->next = NULL;
delete q;
num --;
}
}

int LList::empty()const
{
return (num==0)?1:0;
}
void LList::sort()
{
Element * p, *q;
p = list;
while(p)
{
q = p->next;
while(q)
{
if(q->data

data)
{
int tam = q->data;
q->data = p->data;
p->data = tam;
}
q = q->next;
}
p = p->next;
}
}
class queue: public LList // lop hang doi ke thua tu danh sach lien ket
{
public:
queue()
{
//LList();
cout << "queue constructor" << endl;
}
};
class IntSet: public LList
{
public:
IntSet operator+(IntSet &);
IntSet operator*(IntSet &);
friend ostream & operator <data);
p = p->next;
}
p = r.list;
while(p)
{
if(!tam.find(p->data))
tam.push_front(p->data);
p = p->next;
}
return tam;
}
IntSet IntSet::operator*(IntSet & r)
{
IntSet tam;
Item * p = list;
while(p!=NULL)
{
if(r.find(p->data))
tam.push_front(p->data);
p = p->next;
}
return tam;
}
ostream & operator << (ostream &os, IntSet & r)
{
os << "{";
Item * p = r.list;
while(p)
{
os <

data <next;
}
os << "}";
return os;
}
int main()
{
queue mList;
int d; // Tested with d = 70000; 07/05/2007
time_t time = clock(); // tinh so xung nhip bat dau tu luc chuong trinh chay
// cho toi thoi diem goi ham
do
{
cout <> d;
if(d>0)
mList.push_back(d--);
}while(d>0);
mList.sort();
while(!mList.empty())
{
cout << mList.begin() << " ";
mList.pop_front();
}
time = clock() - time;
cout << (float)time/CLK_TCK;
system("pause");
return 0;
}

Đề cương ôn tập C++ và thuật toán

Đề cương ôn tập C++ download
Đề cương ôn tập Phân tích và đánh giá thuật toán download
Đề tham khảo Phân tích và thiết kế thuật toándownload