SLIDE1

Sunday, May 31, 2015

[C/C++] lập trình giải mã mật thư Cesar

Cho một đoạn mật thư đã được mã hóa thành những chuỗi kí tự 0,1 với mỗi 5 kí tự số sẽ tương ứng với một kí tự trong bảng chữ cái alphabel. Thứ tự bảng mã sẽ giống với bảng chữ cái alphabel (Ví dụ a=00001 thì z=11010,a=01001 thì z=00001). Độ dịch của bảng sẽ là một số ngẫu nhiên từ 1 đến 100, bạn phải tìm ra để có được bảng mã đúng
Ví dụ: với a=00001
01111011001100101101100000100100001 0100110100 sẽ được giải mã là “olympia it”

000110000110101 011000000100011 0001001111 000111000010100sẽ được giải mã là “cau lac bo cpt”
Input: file1.inp
Đoạn mật thư tối đa 100000 kí tự
Output: file1.out

#include<iostream>
#include<fstream>
#include<string>
using namespace std;
char dich(string s,int i)
{
    if(s=="00000") return 97-i;
    if(s=="00001") return 98-i;
    if(s=="00010") return 99-i;
    if(s=="00011") return 100-i;
    if(s=="00100") return 101-i;
    if(s=="00101") return 102-i;
    if(s=="00110") return 103-i;
    if(s=="00111") return 104-i;
    if(s=="01000") return 105-i;
    if(s=="01001") return 106-i;
    if(s=="01010") return 107-i;
    if(s=="01011") return 108-i;
    if(s=="01100") return 109-i;
    if(s=="01101") return 110-i;
    if(s=="01110") return 111-i;
    if(s=="01111") return 112-i;
    if(s=="10000") return 113-i;
    if(s=="10001") return 114-i;
    if(s=="10010") return 115-i;
    if(s=="10011") return 116-i;
    if(s=="10100") return 117-i;
    if(s=="10101") return 118-i;
    if(s=="10110") return 119-i;
    if(s=="10111") return 120-i;
    if(s=="11000") return 121-i;
    if(s=="11001") return 122-i;
    if(s=="11010") return 123-i;
    if(s=="11011") return 124-i;
    if(s=="11100") return 125-i;
    if(s=="11101") return 126-i;
    if(s=="11110") return 127-i;
    if(s=="11111") return 128-i;
    return 48;
}
void main()
{
    fstream t("file1.inp",ios::in);
    fstream f("file1.out",ios::out);
    string s,c;
    char a;
    int i,j;
    for(int k=1;k<100;k++)
    {
        while(!t.eof())
        {
            getline(t,s);
            i=0;
            while(i<s.size())
            {
                c=s.substr(i,5);
                i+=5;
                a=dich(c,k);
                f<<a;
                if(s[i]==' ')
                {
                    i++;
                    f<<" ";
                }
            }
            f<<endl;
        }
        f<<endl;
        t.clear();
        t.seekg(0,ios::beg);
    }
    t.close();
    system("pause");
}

Friday, May 29, 2015

[opp c++] nhập xuất điểm trong tọa độ oxy

lâp trình oop c++ định nghĩa và nhập xuất điểm trong tọa độ oxy , định nghĩa lớp điểm theo hướng đối tượng c++.nhập xuất nạp chồng toán tử

Wednesday, May 27, 2015

trắc nghiệm office 2010 có đáp án

Câu 1:Trong các phần mềm sau, phần mềm nào là phần mềm ứng dụng?
A. Windows XP
B. Microsoft Word
C. Linux
D. Unix
Câu 2: Trên hệ điều hành Windows, để chuyển đổi cửa sổ chương trình cần làm việc ta:
A. Nháy chọn biểu tượng chương trình tương ứng trên thanh công việc (Taskbar).
B. Nhấn giữ phím Alt và gõ phím Tab cho đến khi chọn được cửa sổ chương trình.
C. Nháy vào một vị trí bất kỳ trên cửa sổ chương trình muốn kích hoạt.
D. Các ý trên đều đúng.

Tuesday, May 26, 2015

các vị trí nghề nghiệp thuộc ngành CNTT hiện nay

Liệt kê các vị trí nghề nghiệp thuộc ngành CNTT hiện nay
1.     Nhân viên thiết kế đồ họa website
- Design giao diện layout website, banner, logo website cho khách hàng
- Đưa ra sản phẩm sáng tạo dựa trên ý tưởng của khách hàng
- Có kinh nghiệm về thiết kế đồ họa và thiết kế web.
- Thành thạo các phần mềm thiết kế web cơ bản như: Photoshop, CorelDraw hoặc Illustrator, Flash…và có khả năng sử dụng các phần mềm hỗ trợ
- Đọc hiểu tài liệu tiếng Anh tốt là một lợi thế.
- Sáng tạo, hoạt bát.
- Biết lập trình action script là một lợi thế; html + css, đã có kinh nghiệm design các trang CMS, ecommerce dựa trên các hệ thống như wordpress, joomla, codeigniter.. là 1 lợi thế
_ Tốt nghiệp đại học hoặc cao đẳng trở lên chuyên ngành mỹ thuật/thiết kế đồ họa CNTT
_ Có ít nhất 1 năm kinh nghiệm trong lĩnh vực thiết kế mỹ thuật/đồ họa website

ứng dụng CNTT trong quản lý bán hàng

I.                  Ứng dụng CNTT trong quản lý bán hàng
quản lý bán hàng bằng phần mềm là một hệ thống được sử dụng để giảm chi phí hoạt động đồng thời thúc đẩy hoạt động kinh doanh. Phần mềm này có thể được sử dụng cho các quá trình khác nhau bao gồm giao nhiệm vụ cho nhân viên, quản lý luồng công việc, và theo dõi tiến độ công việc. Phần mềm sẽ cho phép các tổ chức kinh doanh tập trung vào năng lực cốt lõi và lợi thế chiến lược, ngoài ra nó còn giúp sắp xếp các mục tiêu kinh doanh của công ty với các chương trình khuyến mãi và bán hàng.

thống kê 10 ứng dụng CNTT được thực tiễn hóa

thống kê 10 ứng dụng CNTT được thực tiễn hóa, tin học hóa trong đời sống hiện nay, mô tả tóm tắt ứng dụng

1.     Phần mềm quản lý phòng net Gcafe


GCafe Plus – Internet Cafe là phần mềm hỗ trợ công tác quản lý tại các điểm truy cập Internet công cộng, đáp ứng nghị định 72 của chính phủ về việc quản lý các điểm truy cập Internet. GCafe Plus là phần mềm hỗ trợ quản lý mọi mặt tại các điểm truy cập Internet công cộng. Từ việc quản lý tự động thời gian truy cập, tính tiền sử dụng của các máy trạm trong đó bao gồm tiền truy cập Internet và tiền sử dụng các dịch vụ kèm theo ví dụ: Nước uống, kẹo bánh, … Phương thức tính tiền truy cập Internet với bảng giá động theo từng ngày trong tuần, theo thời gian truy cập, quản lý sử dụng thẻ hội viên, quản lý và cân đối các thu chi hàng ngày, các báo cáo tài chính thông dụng, đến việc cung cấp các khả năng theo dõi, điều khiển, bảo vệ toàn bộ các máy tính trạm… Với giao diện trực quan, thân thiện hoàn toàn bằng tiếng Việt.

2.     Phần mềm thi bằng lái xe máy


ứng dụng CNTT trong quản lý bệnh viện

Do tính phức tạp và đa dạng của các chuyên ngành y khoa, do tính đa dạng của mô hình và quản lý bệnh viện cho nên việc thiết kế một bộ phần mềm quản lý bệnh viện tổng thể dùng chung cho các bệnh viện là cực kỳ khó khăn, phức tạp. Các quốc gia giàu có như Mỹ, Anh Quốc, Canada, Úc... đã đầu tư nhiều tiền để trang bị một hệ thống y tế điện tử quốc gia dùng chung cho các bệnh viện nhưng cho đến thời điểm cuối năm 2011 vẫn chưa có quốc gia nào đạt đến trình độ này. Các bệnh viện chỉ ứng dụng đến mức quản lý thông tin bệnh nhân trong phạm vi bệnh viện. Đa phần các tính năng quản lý còn rời rạc, chưa kết nối thành 1 hệ thống hoàn chỉnh.
Hiện nay tại Việt Nam đã có phần mềm đầy đủ tính năng quản lý liên hoàn trên cùng một hệ thống. Các chức năng của phần mềm được phân thành các phân hệ dành cho từng đối tượng riêng. Dưới đây là liệt kê và tóm tắt chức năng chính của hệ thống phần mềm quản lý bệnh nhân.

thống kê 10 website thương mại điện tử có tiếng

1.     Vatgia.com

Kinh doanh đa dạng hàng hóa sản phẩm: điện thoại, máy tính, máy ảnh, linh phụ kiện máy tính, điện thoại, các mặt hàng thời trang, ô tô, xe máy, xe đạp,...
Chấp nhận thanh toán qua thẻ Visa, mastercard, hổ trợ thanh toán qua ví điện tử Baokim.vn, qua đó có thể thanh toán qua các tài khoản ngân hàng thông dụng ở việt nam như Vietcombank, donga bank, ACB, vietin bank,Hdbank, vpbank,..

đề xuất mô hình kinh doanh trực tuyến hay

I.                   ĐỀ XUẤT MÔ HÌNH KINH DOANH TRỰC TUYẾN

*TÊN MÔ HÌNH ĐƯỢC ĐỀ XUẤT: “Mô hình đặt phòng khách sạn online cho tất cả các khách sạn ở thành phố Hồ Chí Minh.” tác giả: Trương Trung Việt

mô hình kinh doanh trực tuyến của Amazon

A.                 MÔ HÌNH KINH DOANH TRỰC TUYẾN CỦA AMAZON

1.                  Giới thiệu sơ lược về Amazon


mô hình kinh doanh trực tuyến của Kay

A.                 MÔ HÌNH KINH DOANH TRỰC TUYẾN CỦA KAY

1.                  Giới thiệu sơ lược về Kay



Ø  Được biết đến như là một trang thương mại điện tử cao cấp, Kay cung cấp các sán phẩm chất lượng vào thị trường Việt Nam nhầm đáp ứng nhu cầu cao của khách hàng và các sản phẩm độc đáo chỉ có duy nhất tại Kay. Kay được sinh ra nhờ sự kết hợp giữa kiến thức và chuyên môn từ 2 "người anh em" đáng tin khác của nó là DiaDiem.com và YuMe.vn.
Ø  Kay tập trung kinh doanh ở 3 mảng chính: dịch vụ (spa, nha khoa, ăn uống,...), du lịch và mua sắm (thời trang, hàng công nghệ).  Để trở thành một địa chỉ mua sắm trực tuyến đáng tin cậy, KAY.vn đặc biệt chú trọng chất lượng sản phẩm và dịch vụ được bán ra, đảm bảo quy trình trong việc kiểm tra chất lượng nhà cung cấp cũng như các đối tác khác.  

mô hình kinh doanh của hotdeal

A.                 MÔ HÌNH KINH DOANH TRỰC TUYẾN CỦA HOTDEAL

1.                  Giới thiệu lược về hotdeal



Ø  Hotdeal.vn là <a href="website hàng đầu v cung cp các phiếu giảm giá nhà hàng, ăn ung, spa làm đẹp, du lịch và các sản phẩm thời trang, gia dng.

cấu trúc cây nhị phân tìm kiếm và các thao tác trên cây

cấu trúc cây nhị phân tìm kiếm và các thao tác trên cây. định nghĩa, và các thao tháo cần thiết phải có khi cài đặt 1 cay nhị phân tìm kiếm

Ðịnh nghĩa cây nhị phân tìm kiếm


Cây nhị phân
Bảo đảm nguyên tắc bố trí khoá tại mỗi nút:
Các nút trong cây trái nhỏ hơn nút hiện hành
Các nút trong cây phải lớn hơn nút hiện hành


Ưu điểm của cây nhị phân tìm kiếm


Nhờ trật tự bố trí khóa trên cây :
Định hướng được khi tìm kiếm
Cây gồm N phần tử :
Trường hợp tốt nhất h = log2N
Trường hợp xấu nhất h = Ln
Tình huống xảy ra trường hợp xấu nhất ?


Cấu trúc dữ liệu của cây nhị phân tìm kiếm


Cấu trúc dữ liệu của 1 nút
    typedef struct tagTNode
    {  
        int Key; //trường dữ liệu là 1 số nguyên
        struct tagTNode *pLeft;
        struct tagTNode *pRight;
    }TNode;
Cấu trúc dữ liệu của cây
    typedef TNode *TREE;

Các thao tác trên cây nhị phân tìm kiếm



Tạo 1 cây rỗng
Tạo 1 nút có trường Key bằng x
Thêm 1 nút vào cây nhị phân tìm kiếm
Xoá 1 nút có Key bằng x trên cây
Tìm 1 nút có khoá bằng x trên cây


Tạo cây rỗng


Cây rỗng -> địa chỉ nút gốc bằng NULL
    void CreateTree(TREE &T)
    {
        T=NULL;
    }

Tạo 1 nút có Key bằng x


TNode *CreateTNode(int x)
{
        TNode *p;
        p = new TNode; //cấp phát vùng nhớ động
        if(p==NULL)
            exit(1); // thoát
        else
        {
            p->key = x; //gán trường dữ liệu của nút = x
            p->pLeft = NULL;
            p->pRight = NULL;
        }
        return p;
}


Thêm một nút x


Rằng buộc: Sau khi thêm cây đảm bảo là cây nhị phân tìm kiếm.
int insertNode(TREE &T, Data X)
{   if(T)
    {   if(T->Key == X) return 0;
        if(T->Key > X) return insertNode(T->pLeft, X);
        else    return insertNode(T->pRight, X);}
        T   = new TNode;
        if(T == NULL)   return -1;
        T->Key  = X;
        T->pLeft =T->pRight = NULL;
    return 1;
}

Tìm nút có khoá bằng x (không dùng đệ quy)


TNode * searchNode(TREE Root,  Data x)
{       Node *p = Root;
        while (p != NULL)
        {   if(x == p->Key) return p;
            else  
            if(x < p->Key)  p = p->pLeft;
            else    p = p->pRight;
        }
        return NULL;
}

Tìm nút có khoá bằng x (dùng đệ quy)


TNode *SearchTNode(TREE T, int x)
{
    if(T!=NULL)
    {
        if(T->key==x)
            return T;
        else
            if(x>T->key)
                return SearchTNode(T->pRight,x);
            else
                return SearchTNode(T->pLeft,x);
    }
    return NULL;
}

Hủy 1 nút có khoá bằng X trên cây


Hủy 1 phần tử trên cây phải đảm bảo điều kiện ràng buộc của Cây nhị phân tìm kiếm
Có 3 trường hợp khi hủy 1 nút trên cây
TH1: X là nút lá
TH2: X chỉ có 1 cây con (cây con trái hoặc cây con phải)
TH3: X có đầy đủ 2 cây con
TH1: Ta xoá nút lá mà không ành hưởng đến các nút khác ttrên cây
TH2: Trước khi xoá x ta móc nối cha của X với con duy nhất cùa X.
TH3: Ta dùng cách xoá gián tiếp

Hủy 1 nút có 2 cây con


Ta dùng cách hủy gián tiếp, do X có 2 cây con
Thay vì hủy X ta tìm phần tử thế mạng Y. Nút Y có tối đa 1 cây con.
Thông tin lưu tại nút Y sẽ được chuyển lên lưu tại X.
Ta tiến hành xoá hủy nút Y (xoá Y giống 2 trường hợp đầu)
Cách tìm nút thế mạng Y cho X: Có 2 cách
 C1: Nút Y là nút có khoá nhỏ nhất (trái nhất) bên cây con phải X
C2: Nút Y là nút có khoá lớn nhất (phải nhất) bên cây con trái của X

Cài đặt thao tác xoá nút có trường Key = x


void DeleteNodeX1(TREE &T,int x)
{
    if(T!=NULL)
    {
        if(T->Key<x)    DeleteNodeX1(T->Right,x);
        else
        {
            if(T->Key>x)    DeleteNodeX1(T->Left,x);
            else  //tim thấy  Node có trường dữ liệu = x
            {   TNode *p;  
                p=T;
                if (T->Left==NULL)  T = T->Right;
                else
                {   if(T->Right==NULL)  T=T->Left;
                    else    ThayThe1(p, T->Right);// tìm bên cây con phải
                }
                delete p;
            }
        }
    }
    else    printf("Khong tim thay phan can xoa tu");
}

Hàm tìm phần tử thế mạng 


void ThayThe1(TREE &p, TREE &T)
{    if(T->Left!=NULL)
        ThayThe1(p,T->Left);
else
     {
        p->Key = T->Key;
        p=T;
        T=T->Right;
    }
}

cấu trúc cây trong lập trình c/c++

cấu trúc cây trong lập trình c/c++, cấu trúc cây rất quan trọng trong lập trình quản lý dữ liệu


Định Nghĩa Cây


Cây là một tập hợp T các phần tử (gọi là nút của cây), trong đó có một nút đặc biệt gọi là nút gốc, các nút còn lại được chia thành những tập rời nhau T1, T2, …,Tn theo quan hệ phân cấp, trong đó Ti cũng là 1 cây. Mỗi nút ở cấp i sẽ quản lý một số nút ở cấp i+1. Quan hệ này người ta gọi là quan hệ cha – con.

Một Số Khái Niệm


Bậc của một nút: là số cây con của nút đó .
Bậc của một cây: là bậc lớn nhất của các nút trong cây 
Nút gốc: là nút không có nút cha.
Nút lá: là nút có bậc bằng 0 .
Mức của một nút:
Mức (gốc (T) ) = 0.
Gọi T1, T2, T3, ... , Tn là các cây con của T0 : Mức (T1) = Mức (T2) = . . .  = Mức (Tn) = Mức (T0) + 1.
Độ dài đường đi từ gốc đến nút x: là số nhánh cần đi qua kể từ gốc đến x.

Một Số Tính Chất Của Cây Nhị Phân


Số nút nằm ở mức i  2i.
Số nút lá  2h-1, với h là chiều cao của cây.
Chiều cao của cây h  log2(N)
N = số nút trong cây
Số nút trong cây  2h-1.

Cấu Trúc Dữ Liệu Của Cây Nhị Phân


typedef struct tagTNode
{
Data Key; 
struct tagTNode *pLeft; struct tagTNode *pRight; 
}TNode;

typedef TNode *TREE;


Duyệt Cây Nhị Phân 


 Có 3 trình tự thăm gốc :
 Duyệt trước
 Duyệt giữa
 Duyệt sau
  Độ phức tạp O (log2(h))
    Trong đó h là chiều cao cây

Duyệt Trước 


void NLR(TREE Root)
{
if (Root != NULL)
{
<Xử lý Root>; //Xử lý tương ứng theo nhu cầu NLR(Root->pLeft);
NLR(Root->pRight);
}
}

Duyệt Giữa

void LNR(TREE Root)
{
if (Root != NULL)
{
LNR(Root->pLeft);
<Xử lý Root>; // Xử lý tương ứng theo nhu cầu 
LNR(Root->pRight);
}
}

Duyệt Sau

void LRN(TREE Root)
{
if (Root != NULL)
{
LRN(Root->pLeft);
LRN(Root->pRight);
<Xử lý Root>; // Xử lý tương ứng theo nhu cầu 
}
}