Nhiều bạn thích sử dụng phần mềm tăng tốc tải file Internet Download Manager, phần mềm này có giá 400.000đ và cho dùng thử 15 ngày.Nếu bạn muốn sử dụng miễn phí vĩnh viễn thì có thể làm theo hướng dẫn sau đây.
1. Mở file hosts trong \WINDOWS\system32\drivers\etc\hosts qua hộp thoại run cho mau lẹ
Dùng Notepad mở file này ra, trong đó như sau :
# Copyright (c) 1993-2006 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
::1 localhost
2. Thêm đoạn sau vào cuối file :
0.0.0.0 www.internetdownloadmanager.com
207.44.199.159 registeridm.com
207.44.199.16 registeridm.com
Lúc ấy, file hosts sẽ như thế này:
# Copyright (c) 1993-2006 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
::1 localhost
0.0.0.0 www.internetdownloadmanager.com
207.44.199.159 registeridm.com
207.44.199.16 registeridm.com
3. Save nó lại sau đó click chuột phải vào cái biểu tượng mạng trên system tray và chọn repair (để xoá hết các cache IP cũ) hoặc restart máy lại.
4. Bật IDM mà cung cấp cho nó một chuỗi số bất kỳ, ví dụ:
9NKWG-FNJSG-O1HM0-BQX3N
JATBV-A1J5C-L1K5Y-ZKPBV
K55AH-9YES5-ACWRM-JBJ20
0XRPQ-LI940-JQN4R-VSS59
QMPGJ-IOK5F-5GS0W-VYF0C
Còn tên , mail thì bạn viết gì gì cũng được hết
Và thế là từ bây giờ các bạn có thể dùng bản IDM thoải mái, muốn lấy phiên bản mới nhất thì chỉ việc tải về từ đây và cài lại: http://cnet.co/r9uGhS
Hỗ trợ giải toán - Tin Chia sẻ tài liệu, đề thi miễn phí ôn thi THPT Quốc Gia - Ôn thi Đại học và Học sinh giỏi ... toan, toan online, giai toan tren mang, ioe toan, tin, đại ...
Thứ Sáu, 21 tháng 12, 2012
Thứ Năm, 6 tháng 12, 2012
Code C\C++: Bài thực hành KTLT (ngày 07/12/2012)
/*
Bài 1: In ra man hinh tat ca so nguyen to co 5 chu so sao cho tong cac chu so la so chan.
*/
#include<conio.h>
#include<iostream.h>
// ham kiem tra so nguyen to
int TestSoNT(long a){
if (a<=0)
return 0; // khong phai so nguyen to
for (int i=2;i<a;i++)
if (a%i==0) return 0; // khong phai so nguyen to
return 1; // la so nguyen to
}
// ham chinh
void main(){
clrscr();
cout<<"\n Cac so thoa man dieu kien la: \n";
long n;
for(n=10000;n<=99999;n++)
if (TestSoNT(n)==1)
{
int a1,a2,a3,a4,a5; // so n co dang: a1a2a3a4a5
a5=n%10;
a4=(n/10)%10;
a3=(n/100)%10;
a2=(n/1000)%10;
a1=(n/10000)%10;
if ((a1+a2+a3+a4+a5)%2==0)
cout<<n<<" ; ";
}
getch();
}
//--------------------------------------------------------
//---------------------------------------------------------
/*
Bài 2: Viet cac ham
- Nhap vao day so co n so (3<=n<=30)
- In cac so chan trong day
- Dem so la boi cua 3 va 5
- Sap xep day tang dan
*/
#include<conio.h>
#include<iostream.h>
int a[30],n;
// nhap day
void Nhap(){
cout<<"\n Nhap so phan tu: ";
do{
cout<<"\n n="; cin>>n;
if(n<3||n>30)
cout<<"\n Nhap lai n !";
}while (n<3||n>30);
cout<<"\n Nhap day so: ";
for(int i=0;i<n;i++)
{
cout<<"\n a["<<i<<"]= "; cin>>a[i];
}
}
//In ra cac so chan trong day
void InSoChan(){
cout<<"\n * Cac so chan trong day: \n";
for (int i=0;i<n;i++)
if( a[i]%2==0) cout<<a[i]<<" ; ";
}
// Dem so phan tu la boi cua 3 va 5
int DemSo(){
int dem=0,i=0;
while(i<n){
if(a[i]%3==0&&a[i]%5==0) dem++;
i++;
}
return dem;
}
// Sap xep day tang dan
void SapXep(){
// sap xep Insert_sort
for(int i=1;i<n;i++)
{
int pos=i-1;
int x=a[i];
while(pos>=0&&a[pos]<x){
a[pos+1]=a[pos];
pos--;
}
a[pos+1]=x;
}
// in day da sap xep
cout<<"\n * Day da sap xep: \n";
for(i=0;i<n;i++)
cout<<a[i]<<" ; ";
}
// ham main
void main(){
Nhap();
InSoChan();
cout<<"\n * Dem so la boi cua 3 va 5:"<<DemSo();
SapXep();
getch();
}
/*
Bài 2: Viet cac ham
- Nhap vao day so co n so (3<=n<=30)
- In cac so chan trong day
- Dem so la boi cua 3 va 5
- Sap xep day tang dan
*/
#include<conio.h>
#include<iostream.h>
int a[30],n;
// nhap day
void Nhap(){
cout<<"\n Nhap so phan tu: ";
do{
cout<<"\n n="; cin>>n;
if(n<3||n>30)
cout<<"\n Nhap lai n !";
}while (n<3||n>30);
cout<<"\n Nhap day so: ";
for(int i=0;i<n;i++)
{
cout<<"\n a["<<i<<"]= "; cin>>a[i];
}
}
//In ra cac so chan trong day
void InSoChan(){
cout<<"\n * Cac so chan trong day: \n";
for (int i=0;i<n;i++)
if( a[i]%2==0) cout<<a[i]<<" ; ";
}
// Dem so phan tu la boi cua 3 va 5
int DemSo(){
int dem=0,i=0;
while(i<n){
if(a[i]%3==0&&a[i]%5==0) dem++;
i++;
}
return dem;
}
// Sap xep day tang dan
void SapXep(){
// sap xep Insert_sort
for(int i=1;i<n;i++)
{
int pos=i-1;
int x=a[i];
while(pos>=0&&a[pos]<x){
a[pos+1]=a[pos];
pos--;
}
a[pos+1]=x;
}
// in day da sap xep
cout<<"\n * Day da sap xep: \n";
for(i=0;i<n;i++)
cout<<a[i]<<" ; ";
}
// ham main
void main(){
Nhap();
InSoChan();
cout<<"\n * Dem so la boi cua 3 va 5:"<<DemSo();
SapXep();
getch();
}
Thứ Ba, 4 tháng 12, 2012
Cài đặt thuật toán duyệt Đồ thị (DFS, BFS)
/*
Duyệt đồ thị theo chiều rộng (BFS) và chiều sâu (DFS)
*/
#include<conio.h>
#include<iostream.h>
#include<stdlib.h>
void create(); // For creating a graph
void dfs(); // For Deapth First Search(DFS) Traversal.
void bfs(); // For Breadth First Search(BFS) Traversal.
struct node // Structure for elements in the graph
{
int data,status;
struct node *next;
struct link *adj;
};
struct link // Structure for adjacency list
{
struct node *next;
struct link *adj;
};
struct node *start,*p,*q;
struct link *l,*k;
int main()
{
int chon;
create();
while(1)
{
cout<<"\nMENU:\n";
cout<<"1: DFS\n";
cout<<"2: BSF\n";
cout<<"3: Exit\n";
cout<<" Nhap vao su lua chon cua ban : \n";
cin>>chon;
switch(chon)
{
case 1:
dfs();
break;
case 2:
bfs();
break;
case 3:
exit(0);
break;
default:
cout<<"Chon khong dung!\n";
cout<<"Nhap lai luc chon.\n";
getch();
}
}
return 0;
}
void create() // Creating a graph
{
int dat,flag=0;
start=NULL;
cout<<"Nhap cac nut trong do thi (nhap 0 de ket thuc): \n";
while(1)
{
cin>>dat;
if(dat==0)
break;
p=new node;
p->data=dat;
p->status=0;
p->next=NULL;
p->adj=NULL;
if(flag==0)
{
start=p;
q=p;
flag++;
}
else
{
q->next=p;
q=p;
}
}
p=start;
while(p!=NULL)
{
cout<<"Cac nut noi ke voi "<<p->data<<" (nhap 0 de ket thuc) : \n";
flag=0;
while(1)
{
cin>>dat;
if(dat==0)
break;
k=new link;
k->adj=NULL;
if(flag==0)
{
p->adj=k;
l=k;
flag++;
}
else
{
l->adj=k;
l=k;
}
q=start;
while(q!=NULL)
{
if(q->data==dat)
k->next=q;
q=q->next;
}
}
p=p->next;
}
cout<<"\n-------------------------\n";
return;
}
//Deapth First Search(DFS) Traversal.
void bfs()
{
int qu[20],i=1,j=0;
p=start;
while(p!=NULL)
{
p->status=0;
p=p->next;
}
p=start;
qu[0]=p->data;
p->status=1;
while(1)
{
if(qu[j]==0)
break;
p=start;
while(p!=NULL)
{
if(p->data==qu[j])
break;
p=p->next;
}
k=p->adj;
while(k!=NULL)
{
q=k->next;
if(q->status==0)
{
qu[i]=q->data;
q->status=1;
qu[i+1]=0;
i++;
}
k=k->adj;
}
j++;
}
j=0;
cout<<"Ket qua theo BFS: ";
while(qu[j]!=0)
{
cout<<qu[j]<<" ";
j++;
}
getch();
return;
}
// Breadth First Search(BFS) Traversal.
void dfs()
{
int stack[25],top=1;
cout<<"Ket qua theo DFS: ";
p=start;
while(p!=NULL)
{
p->status=0;
p=p->next;
}
p=start;
stack[0]=0;
stack[top]=p->data;
p->status=1;
while(1)
{
if(stack[top]==0)
break;
p=start;
while(p!=NULL)
{
if(p->data==stack[top])
break;
p=p->next;
}
cout<<stack[top]<<" ";
top--;
k=p->adj;
while(k!=NULL)
{
q=k->next;
if(q->status==0)
{
top++;
stack[top]=q->data;
q->status=1;
}
k=k->adj;
}
}
getch();
return;
}
//--------------------------------------------------
Thứ Hai, 3 tháng 12, 2012
Hướng dẫn sử dụng Fanslave để kiếm tiền qua Facebook
Bài viết hướng dẫn các bước sử dụng Fanslave để kiếm tiền qua Facebook và Twitter bằng hình ảnh cụ thể
Sau khi đã đăng nhập vào Fanslave và kết nối với Tài khoản FB và Twitter
Lưu ý: Tài khoản Twitter và FB ít nhất phải có 5 người bạn và phải có Ảnh đại diện thì mới bắt đầu thực hiện được
Vào Account:
- Chọn Facebook Overview để hiện ra các Fanpage để mình Like
- Chọn Twitter Overview để hiện ra các Twitter để mình Follow
Ví dụ khi click vào Facebook Overview, nếu có các Fanpage đăng ký cần lượt Like nó sẽ hiện như thế này:
Bạn nên đăng nhập Tài khoản Facebook và Twitter của bạn trước.
Tiếp theo, bạn chỉ cần Click vào các Fanpage, nó sẽ tự động hiện ra cửa sổ mới, bạn Like và Follow xong, tắt cửa sổ đó đi và quay lại nhấn UPDATE CREDIT.
Đây là bước cực kỳ quan trọng, nếu bạn ko nhấn Update Credit thì bạn sẽ không cập nhật được số tiền.
Lưu ý: Khi Like Fanpage xong, nút Like sẽ chuyển thành Liked, còn Twitter sau khi Follow xong sẽ chuyển thành Following
Nào, hãy cùng vào Kiếm tiền cùng Fanslave nào!
Nếu chưa có tài khoản Fanslave để kiếm tiền cùng FB, đăng ký tại đây
Chúc các bạn thành công!
Chàng trai Việt thành danh ở Google
Nguyễn Thành Nhân, một người Việt trẻ tuổi làm việc tại tập đoàn công nghệ hàng đầu thế giới, đạt được nhiều thành công nhưng vẫn ấp ủ ngày trở về đóng góp cho quê hương.
Nguyễn Thành Nhân, 29 tuổi, tốt nghiệp đại học Simon Fraser, Canada, từng giành rất nhiều giải thưởng về toán học, tin học, khoa học công nghệ từ khi còn là học sinh trong nước và cả khi du học
Năm 2008, Nhân từng thực tập tại Google ở thung lũng silicon của Mỹ. Khi đó, hai trong bốn người phỏng vấn đã viết thư thuyết phục Nhân ở lại Google với lý do “kỹ năng của bạn sẽ phục vụ được rất nhiều người trên thế giới”. Google còn hứa sẽ nâng lương và cổ phiếu của Nhân, tuy nhiên anh chọn Chai Labs, một công ty công nghệ cao về ứng dụng Internet, trụ sở ở Mỹ.
Năm 2010, Chai Labs từ một công ty mới thành lập đã vươn lên gây chú ý và được Facebook mua lại. Sau khi thành công với Chai Labs, năm 2010, Nhân quyết định trở lại đầu quân cho Google.
"Ngày trở lại Google, mình tham gia nhóm làm về chất lượng quảng cáo. Một bạn trong nhóm nói rằng, nhờ dữ liệu mình làm từ ngày thực tập mà tăng được chất lượng quảng cáo. Mình vui lắm. Ở đây, cần nhiều kiến thức về toán và tin học. Đúng những công việc mình yêu thích", Nguyễn Thành Nhân nhớ lại.
Qua hơn một năm làm việc, Nhân được nhận hai bằng khen vì thành tích làm tăng doanh thu cho Google. Ngoài ra, giám đốc tài chính còn viết thư khen “mức tiến bộ đột phá của nhóm Nhân là nguồn gốc sự phát triển của Google”.
Sau hơn một năm làm ở lĩnh vực chất lượng quảng cáo, hiện Nguyễn Thành Nhân đã chuyển sang nhóm AdWords, trực tiếp với các công ty trả tiền quảng cáo trên Google. "Ở Chai Labs, mình phụ trách lĩnh vực quảng cáo, nên cũng có kinh nghiệm về việc này. Sau nửa năm làm việc, mình đã và đang đưa ra sản phẩm mới", Nhân tiết lộ.
Nhân cho biết, làm việc ở Google cả lương và thưởng đều khá tốt. Làm việc ở đây phải có năng lực thực sự, chủ động, sáng tạo, không ai nhắc nhở cả, phải cố gắng tìm tòi và làm việc để tăng doanh thu cho công ty.
Mong về quê hương
Nguyễn Thành Nhân (thứ hai, phải sang) cùng mẹ và các cộng sự ở Google. Ảnh: Nhân vật cung cấp.
Theo Nguyễn Thành Nhân, có khoảng hơn 10 du học sinh Việt Nam đang làm việc ở Google. Hầu hết trong số đó đều là những người có năng lực. "Có người từng đoạt hai huy chương vàng quốc tế tin học. Được cả Google và Facebook mời về làm việc".
Chân dung những người Việt thành đạt ở nước ngoài
Nhân cho biết: "Ở đây, bọn mình lập nhóm Viet Googlers thường gặp nhau đi xả stress sau giờ làm việc và chia sẻ kinh nghiệm để công việc tốt hơn. Nhiều CEO của Việt Nam khi sang Google dự hội thảo cũng tìm gặp nhóm người Việt Nam đang làm việc ở công ty này để chia sẻ kinh nghiệm".
Nhân kể, mấy tháng vừa qua, hầu như tuần nào cũng có người Việt mua nhà, tổ chức liên hoan ở thung lũng Silicon. "Ở đây, Tết cũng có bánh chưng và tổ chức gặp gỡ, mừng tuổi cho các cháu nhỏ. Hồi vợ mình sinh, các anh chị đi trước đã giúp đỡ rất nhiều. Các chị còn mang xôi, cháo gà đến tận bệnh viện động viên, chia sẻ rất ấm áp".
Theo Nguyễn Thành Nhân, du học sinh Việt Nam ở Google được đánh giá rất cao về năng lực. Hầu hết các bạn đều nhận được hơn năm thư mời vào làm tại thung lũng Silicon. Một vài bạn còn được mời làm kỹ sư công nghệ của một vài công ty mới thành lập.
Xa gia đình, quê hương suốt 10 năm qua, Nguyễn Thành Nhân chia sẻ rất nhớ Việt Nam. Đã có nhiều lúc anh bàn với vợ về Hà Nội sống với gia đình và chia sẻ những gì đã học được ở Canada và Google cho các bạn trẻ trong nước. "Bố mẹ mình đã già và về hưu. Mình rất muốn ông bà được ở gần con, cháu", Nhân nói.
Nhân cho biết đã ấp ủ kế hoạch trong tương lai khi về Việt Nam: "Mình muốn mở một câu lạc bộ về tin học. Mình sẽ mang những cuốn sách hay và những bài báo tốt từ bên này về để trao đổi".
"Nếu kết hợp giữa Internet và sự chăm chỉ, sự thông minh của người Việt, mình tin sẽ có những công ty công nghệ cao được sáng lập ở Việt Nam để phục vụ không chỉ trong nước mà còn cho thị trường thế giới. Quan trọng nhất là thị trường. Mỹ có số dân đông và kinh tế phát triển, nhân tài quy tụ về đây vì có cơ hội kiếm tiền. Ở Việt Nam, số người dùng internet đang tăng rất nhanh, cả trên máy tính và điện thoại smartphone, đây cũng là một cơ hội mở ra cho những người hiểu biết về thị trường Việt Nam" - chàng trai trẻ thành danh ở Google nói.
Thành Nhân từng là cựu học sinh lớp chuyên Toán - Tin, Đại học Sư phạm Hà Nội. Năm 2000, Nhân đạt giải nhất kỳ thi học sinh giỏi Tin học toàn quốc khi đang học lớp 12. Khi là du học sinh trường ĐH Simon Fraser, Nhân được chọn vào đội tuyển Tin học của trường dự kỳ thi tin học quốc tế với các trường đại học ở Bắc Mỹ và thế giới.
Đạt nhiều thành tích, Thành Nhân được đặc cách làm trợ lý khoa học cho chương trình nghiên cứu quan sát vệ tinh Trái đất của Chính phủ Canada. Nhiệm vụ của nhóm sáu thành viên, trong đó Nguyễn Thành Nhân là chàng trai Việt Nam duy nhất và trẻ nhất này là xây dựng thời gian biểu hoạt động tối ưu cho ba vệ tinh có giá trị lên đến hàng tỉ USD.
Theo Tiền Phong
Thứ Bảy, 1 tháng 12, 2012
Code C\C++: Ví dụ về duyệt Cây nhị phân (Sử dụng danh sách liên kết)
/* Ví dụ về duyệt cây nhị phân
- Nhập 1 cây nhị phân
- Duyệt cây theo thứ tự: Trước, sau, giữa
*/
- Nhập 1 cây nhị phân
- Duyệt cây theo thứ tự: Trước, sau, giữa
*/
#include <stdio.h>
#include <alloc.h>
typedef int element_type;
typedef struct node {
element_type element;
struct node *left, *right;
} NODE;
NODE *root;
void khoi_tao_cay(NODE ** root)
{
*root = NULL;
}
void insert(NODE *tmp, NODE **root)
{
if (tmp->element < (*root)->element)
if ((*root)->left)
insert(tmp, &(*root)->left);
else
(*root)->left = tmp;
else
if ((*root)->right)
insert(tmp, &(*root)->right);
else
(*root)->right = tmp;
}
void insert_node(element_type e, NODE **root)
{
NODE *tmp;
tmp = (NODE *)malloc(sizeof(NODE));
tmp->element = e;
tmp->left = NULL;
tmp->right = NULL;
if (*root == NULL)
*root = tmp;
else
insert(tmp, root);
}
void nhap_cay(NODE **root)
{
element_type e;
do {
printf("\nNhap element (-1 de ket thuc) : ");
scanf("%d", &e);
if (e != -1)
insert_node(e, root);
} while (e != -1);
}
void NLR(NODE *root)
{
if (root != NULL)
{
printf("%d ", root->element);
NLR(root->left);
NLR(root->right);
}
}
void NRL(NODE *root)
{
if (root != NULL)
{
printf("%d ", root->element);
NRL(root->right);
NRL(root->left);
}
}
void LNR(NODE *root)
{
if (root != NULL)
{
LNR(root->left);
printf("%d ", root->element);
LNR(root->right);
}
}
void LRN(NODE *root)
{
if (root != NULL)
{
LRN(root->left);
LRN(root->right);
printf("%d ", root->element);
}
}
void RNL(NODE *root)
{
if (root != NULL)
{
RNL(root->right);
printf("%d ", root->element);
RNL(root->left);
}
}
void RLN(NODE *root)
{
if (root != NULL)
{
RLN(root->right);
RLN(root->left);
printf("%d ", root->element);
}
}
void main()
{
khoi_tao_cay(&root);
nhap_cay(&root);
printf("\nDuyet cay NLR : ");
NLR(root);
printf("\nDuyet cay NRL : ");
NRL(root);
printf("\nDuyet cay LNR : ");
LNR(root);
printf("\nDuyet cay LRN : ");
LRN(root);
printf("\nDuyet cay RNL : ");
RNL(root);
printf("\nDuyet cay RLN : ");
RLN(root);
getch();
}
//-----------------------------------------------------
Code C\C++: Ví dụ về Danh sách liên kết đơn
/* Ví dụ: sử dụng danh sách liên kết đơn
- Nhập vào danh sách sinh viên
- In ra màn hình danh sách sinh viên vừa nhập
*/
- Nhập vào danh sách sinh viên
- In ra màn hình danh sách sinh viên vừa nhập
*/
#include <stdio.h>
#include <conio.h>
#include <alloc.h>
#include <string.h>
// cáu trúc sinh viên
typedef struct tagsinhvien {
char hoten[40];
char mslop[6];
struct tagsinhvien *nexthoten, *nextmslop;
} SINHVIEN;
// khai bao list sv
SINHVIEN *headht, *headms;
// khởi tạo
void initialize()
{
headht = (SINHVIEN *)malloc(sizeof(SINHVIEN));
headht->nexthoten = NULL;
headms = (SINHVIEN *)malloc(sizeof(SINHVIEN));
headms->nextmslop = NULL;
}
//
void release(SINHVIEN *s)
{
if (s->nexthoten)
release(s->nexthoten);
free(s);
}
//
void cleanup()
{
if (headht->nexthoten)
release(headht->nexthoten);
free(headht);
free(headms);
}
//
void inds_ht(SINHVIEN *s)
{
if (s == NULL)
return;
printf("\n%-6s %-40s", s->mslop, s->hoten);
inds_ht(s->nexthoten);
}
void inds_ms(SINHVIEN *s)
{
if (s == NULL)
return;
printf("\n%-6s %-40s", s->mslop, s->hoten);
inds_ms(s->nextmslop);
}
void in_hoten()
{
if (headht->nexthoten)
inds_ht(headht->nexthoten);
}
void in_mslop()
{
if (headms->nextmslop)
inds_ms(headms->nextmslop);
}
void insert_hoten(SINHVIEN *s)
{
SINHVIEN *a, *b;
if (headht->nexthoten == NULL)
headht->nexthoten = s;
else
{
a = headht;
b = headht->nexthoten;
while (strcmp(b->hoten, s->hoten)<0 && b!= NULL)
{
a = a->nexthoten;
b = b->nexthoten;
}
a->nexthoten = s;
s->nexthoten = b;
}
}
void insert_mslop(SINHVIEN *s)
{
SINHVIEN *a, *b;
if (headms->nextmslop == NULL)
headms->nextmslop = s;
else
{
a = headms;
b = headms->nextmslop;
while (strcmp(b->mslop, s->mslop)<0 && b!= NULL)
{
a = a->nextmslop;
b = b->nextmslop;
}
a->nextmslop = s;
s->nextmslop = b;
}
}
void insert(char *hoten, char *mslop)
{
SINHVIEN *s;
s = (SINHVIEN *)malloc(sizeof(SINHVIEN));
strncpy(s->hoten, hoten, 40);
strncpy(s->mslop, mslop, 6);
s->nexthoten = s->nextmslop = NULL;
insert_hoten(s);
insert_mslop(s);
}
void nhapds()
{
int done = 0;
char hoten[40], mslop[6];
do {
printf("\nNhap ho ten (trong de thoat) : ");
gets(hoten);
if (strcmp(hoten, "") == 0)
done = 1;
else
{
printf("\nNhap ma so lop : ");
gets(mslop);
insert(hoten, mslop);
}
} while (!done);
}
// hàm main
void main()
{
initialize();
nhapds();
printf("\nDanh sach theo ho ten : ");
in_hoten();
printf("\nDanh sach theo ma so lop : ");
in_mslop();
getch();
cleanup();
}
//---------------------------------------------------------------------------------



