Convert Image to Base64 String and Base64 String to Image

This article will help you to learn how we can convert an image into a base64 string and base64 string back to image.

Image to Base64 String

public string ImageToBase64(Image image, System.Drawing.Imaging.ImageFormat format)
{
  using (MemoryStream ms = new MemoryStream())
  {
    // Convert Image to byte[]
    image.Save(ms, format);
    byte[] imageBytes = ms.ToArray();

    // Convert byte[] to Base64 String
    string base64String = Convert.ToBase64String(imageBytes);
    return base64String;
  }
}

Base64 String to Image

public Image Base64ToImage(string base64String)
{
  // Convert Base64 String to byte[]
  byte[] imageBytes = Convert.FromBase64String(base64String);
  MemoryStream ms = new MemoryStream(imageBytes, 0, imageBytes.Length);

  // Convert byte[] to Image
  ms.Write(imageBytes, 0, imageBytes.Length);
  Image image = Image.FromStream(ms, true);
  return image;
}

Coding in real world

 


Result

Download: https://github.com/tuanitpro/base64toimage

Online test: http://codebeautify.org/base64-to-image-converter

Happy coding ?

CSDL tên Quốc gia, tỉnh thành phố thị xã quận huyện, xã phường Việt Nam

  • Thông tin 245quốc gia trên thế giới
  • Thông tin 64 tỉnh thành  phố Việt Nam
  • Thông tin 697 quận huyện / thị xã
  • Thông tin 11110 xã phường

Nguồn tài liệu tham khảo: cổng thông tin điện tử các tỉnh thành, quận huyện, từ điển bách khoa toàn thư điện tử Wikipedia.
Định dạng dữ liệu: bảng cơ sở dữ liệu SQL
Mục đích: chia sẻ giúp các bạn webmaster đang muốn lấy một nguồn thông tin chuẩn mực về tên các đơn vị hành chính cho các dự án website, cổng thông tin điện tử ….

 Download  

 

 

Chúc các bạn thành công

How to create own dynamic type or dynamic object in C#

How to create own dynamic type or dynamic object in C#
How to create own dynamic type or dynamic object in C#

using System.Reflection;
using System.Reflection.Emit;
public static class MyTypeBuilder
{

public static System.Collections.IList CreateInstanceIList(Type _type)
{
Type customList = typeof(List<>).MakeGenericType(_type);
var result = (System.Collections.IList)Activator.CreateInstance(customList);
return result;
}
public static Type CompileResultType(Dictionary listOfFields)
{
TypeBuilder tb = GetTypeBuilder();
foreach (var field in listOfFields)
CreateProperty(tb, field.Key, field.Value);

Type objectType = tb.CreateType();

return objectType;
}

private static TypeBuilder GetTypeBuilder()
{
var typeSignature = “MyDynamicType_” + DateTime.Now.ToString(“yyyyMMddHHmmss”);
var an = new AssemblyName(typeSignature);
AssemblyBuilder assemblyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(an, AssemblyBuilderAccess.Run);
ModuleBuilder moduleBuilder = assemblyBuilder.DefineDynamicModule(“MainModule”);
TypeBuilder tb = moduleBuilder.DefineType(typeSignature,
TypeAttributes.Public |
TypeAttributes.Class |
TypeAttributes.AutoClass |
TypeAttributes.AnsiClass |
TypeAttributes.BeforeFieldInit |
TypeAttributes.AutoLayout,
null);
return tb;
}

private static void CreateProperty(TypeBuilder tb, string propertyName, Type propertyType)
{
FieldBuilder fieldBuilder = tb.DefineField(“_” + propertyName, propertyType, FieldAttributes.Private);

PropertyBuilder propertyBuilder = tb.DefineProperty(propertyName, PropertyAttributes.HasDefault, propertyType, null);
MethodBuilder getPropMthdBldr = tb.DefineMethod(“get_” + propertyName, MethodAttributes.Public | MethodAttributes.SpecialName | MethodAttributes.HideBySig, propertyType, Type.EmptyTypes);
ILGenerator getIl = getPropMthdBldr.GetILGenerator();

getIl.Emit(OpCodes.Ldarg_0);
getIl.Emit(OpCodes.Ldfld, fieldBuilder);
getIl.Emit(OpCodes.Ret);

MethodBuilder setPropMthdBldr =
tb.DefineMethod(“set_” + propertyName,
MethodAttributes.Public |
MethodAttributes.SpecialName |
MethodAttributes.HideBySig,
null, new[] { propertyType });

ILGenerator setIl = setPropMthdBldr.GetILGenerator();
Label modifyProperty = setIl.DefineLabel();
Label exitSet = setIl.DefineLabel();

setIl.MarkLabel(modifyProperty);
setIl.Emit(OpCodes.Ldarg_0);
setIl.Emit(OpCodes.Ldarg_1);
setIl.Emit(OpCodes.Stfld, fieldBuilder);

setIl.Emit(OpCodes.Nop);
setIl.MarkLabel(exitSet);
setIl.Emit(OpCodes.Ret);

propertyBuilder.SetGetMethod(getPropMthdBldr);
propertyBuilder.SetSetMethod(setPropMthdBldr);
}
}
How to use

public JsonResult DynamicObject()
{

Dictionary listOfFields = new Dictionary();

listOfFields.Add(“Name”, typeof(string));
listOfFields.Add(“Age”, typeof(int));
var myType = MyTypeBuilder.CompileResultType(listOfFields);
var myObject = Activator.CreateInstance(myType);

myType.GetProperty(“Name”).SetValue(myObject, “Tuan”, null);
myType.GetProperty(“Age”).SetValue(myObject, 20, null);

object name = myType.GetProperty(“Name”).GetValue(myObject);

return Json(name.ToString(), JsonRequestBehavior.AllowGet);
// return Json(myObject, JsonRequestBehavior.AllowGet);
}
Mapping data to List

public JsonResult DynamicObject2()
{
Dictionary listOfFields = new Dictionary();
listOfFields.Add(“Name”, typeof(string));
listOfFields.Add(“Age”, typeof(int));

var myType = MyTypeBuilder.CompileResultType(listOfFields);
var list = MyTypeBuilder.CreateInstanceIList(myType);
var listString = listOfFields.Select(x => x.Key).ToArray();

Type t = typeof(YourObject); // your class define
PropertyInfo[] props = t.GetProperties().Where(x => listString.Contains(x.Name)).ToArray();

var data = ListYourObjects(); // your list data

// mapping only you need
foreach (var item in data)
{
var myObject = Activator.CreateInstance(myType);
foreach (var prop in props)
{
object name = t.GetProperty(prop.Name).GetValue(item);
myType.GetProperty(prop.Name).SetValue(myObject, name, null);

}
list.Add(myObject);
}

return Json(list, JsonRequestBehavior.AllowGet);
}

T SQL Query Ultilities

— Find all Column not in Table

select name from sys.tables
where name not in
(
SELECT t.name
FROM sys.columns c
JOIN sys.tables t ON c.object_id = t.object_id
WHERE c.name LIKE ‘IsDeleted’
)
— Deleting all duplicate rows but keeping one [duplicate]

WITH cte AS (
SELECT FirstName,
row_number() OVER(PARTITION BY FirstName ORDER BY FirstName) AS [rn] FROM Client
)
DELETE cte WHERE [rn] > 1
— Adding a column to all user tables in T-SQL

exec sp_msforeachtable ‘alter table ? add IsDeleted bit not null default 0’;

— Adding a column to all user table if not exists
EXEC sp_msforeachtable ‘
if not exists (select name from sys.tables
where name not in(SELECT t.name FROM sys.columns c
JOIN sys.tables t ON c.object_id = t.object_id
WHERE c.name LIKE ”IsDeleted”)
)
begin
ALTER TABLE ? ADD IsDeleted bit NOT NULL DEFAULT 0;
end’;

Upload file trong Google Apps Script

Hướng dẫn sau đây giúp bạn upload một file từ máy của hình lên thư mục trên Google Drive của bạn thông qua Google Apps Script

Code.gs

// Ham upload file, nhận vào một file input
function uploadFileToGoogleDrive(fileInput) {
/* Name of the Drive folder where the files should be saved */
var dropbox = FOLDER_NAME;
var folder,folders = DriveApp.getFoldersByName("Ten_thu_muc_cua_ban"); //getFolderById, getFoldersByName

/* Find the folder, create if the folder does not exist */
if (folders.hasNext()) {
folder = folders.next();
} else {
folder = DriveApp.createFolder(dropbox);
}

/* Get the file uploaded though the form as a blob */
var file = folder.createFile(fileInput);

/* Set the file description as the name of the uploader */
//file.setDescription("Uploaded by " + form.myName);

/* Return the download URL of the file once its on Google Drive */
var fileUrl=file.getUrl();
Logger.log(fileUrl)
return fileUrl;
}


// Ham thực thi Upload file. Data là một FormId
function doUploadFile(data){

 var myFile = data.myfile;
 if(typeof myFile !== 'undefined' && myFile!=null && myFile.length>0)
 { 
 return uploadFileToGoogleDrive(myFile);
 }
 return "";
}

Code HTML

 <form name="uploadfile" enctype="multipart/form-data" id="uploadForm">
     <label>Chọn file tải lên</label>
     <input type="file" name="myfile" id="myfile" />
     <button type="button" class="btn btn-primary" onclick="return doUploadFile();">Upload</button>
</form>

Code Javascript

function doUploadFile() { 
        google.script.run           
            .doUploadFile(document.getElementById("uploadForm"));

}

 

Làm thế nào để tránh bị lừa đảo trên mạng?

Chào các bạn.

Trong thế giới phẳng ngày nay, với chiếc máy tính hay smartphone có kết nối Internet là bạn hoàn toàn có cả thế giới trong tầm tay.

Các bạn chỉ cần ngồi một chỗ, click chuột là có ngay thứ bạn muốn.

Tất cả các dịch vụ, tất cả các sản phẩm…

Trong phạm vi của bài viết này không đề cập đến lợi ích của Internet mang lại cho bạn, thực sự nó rất to lớn, nếu bạn biết cách làm chủ nó. Ở đây người viết muốn đề cập mặt trái của nó. Đó là việc lừa đảo qua mạng.

Có nhiều báo chí đã nói về vấn đề đề này, nhưng mình vẫn muốn chia sẻ lại bằng kinh nghiệm của mình.

Các bạn cũng có thể chia sẻ thêm kinh nghiệm của các bạn giúp mọi người hiểu rõ hơn.

Có nhiều hình thức lừa đảo trực tuyến khác nhau, nhưng mình chỉ muốn nói về việc lừa đảo sản phẩm, dịch vụ thu lợi bất chính, gây thiệt hại cho nạn nhân.

Lừa đảo qua mạng
Lừa đảo qua mạng

Cách nhận biết

Quảng cáo, giới thiệu sản phẩm rất tốt, giá thấp hơn thị trường nhiều lần.
Ví dụ: quần áo, giày dép, túi xách, đồng hồ, điện thoại, các khóa học…. nói chung là các sản phẩm kinh doanh online.

Đối tượng sẽ nắm bắt nhu cầu của bạn. Sau đó làm quen, giới thiệu sản phẩm, dịch vụ với giá thấp hơn giá thị trường….

Đối tượng luôn luôn muốn bạn chốt giao dịch càng sớm càng tốt, tìm cách khiến bạn thanh toán ngay. Trong khi không hề đề cập chính sách hoàn tiền cho bạn. Khi giao dịch hay dùng công cụ thanh toán điện tử như Bảo Kim, Ngân Lượng… không dùng tài khoản ngân hàng vì sợ lộ thông tin.

Lúc đầu rất chi là nhiệt tình, sau khi nhận được tiền, sẽ tìm cách trì hoãn giao dịch, hoặc giao sản phẩm kém chất lượng, không đúng cam kết.

Nếu bạn thắc mắc sẽ bị khóa kênh liên lạc, chặn số điện thoại, chặn Facebook của bạn. Không chịu hoàn tiền cho bạn.

Ai là nạn nhân?

Những bạn hay mua hàng online, những bạn mua khóa học, mua theme, mua sản phẩm số (phần mềm, website, code…)

Những bạn đang là sinh viên hay đã đi làm vẫn bị lừa như thường, vì mất cảnh giác.

Tâm lý chủ quan vì giao dịch giá trị thấp. Nhưng thưa các bạn, kẻ có chủ ý thì 1 đồng cũng lừa nhé.

Tin lời giới thiệu, nhưng lại là giới thiệu từ người nhà, nội bộ kẻ lừa đảo.

Cách phòng tránh tiền mất tật mang

Luôn tìm hiểu kỹ sản phẩm, dịch vụ mình sắp mua. Tại sao lại nó lại rẻ bất thường như vậy.

Kiểm tra thông tin người bán trên các diễn đàn uy tín, Google, bạn có thể thể tìm kiếm dựa vào số điện thoại, nick Facebook, email…

Nói chuyện với người bán, đề nghị dùng thử sản phẩm, nếu sản phẩm tốt, người bán chẳng sợ gì mà không cho bạn thử.

Nếu tiến hành giao dịch, thì kiểm tra kỹ thông tin người bán, thanh toán qua ngân hàng mà chủ tài khoản trùng tên CMND của họ.

Luôn xác nhận thông tin để tránh bị kẻ xấu lợi dụng. Chuyển tiền cho A mà sao vào B.

Nếu dùng dịch vụ điện thử, nên chọn PayPal, nó có chức năng mở tranh chấp, bạn có khả năng đòi lại được tiền.

Mọi tin nhắn, log chát, biên lai chuyển tiền phải được lưu lại, có lúc cần đòi lại quyền lợi.

Bạn cũng có thể giao dịch qua trung gian là người uy tín, nhờ giữ tiền hộ. (kiểu như trọng tài kinh tế).

Luôn luôn thật tỉnh táo trong mọi giao dịch online. Có thể hôm qua người ấy tốt, nhưng hôm nay đã khác.

Ở chiều ngược lại, người bán cũng sợ bị người mua lừa (mình từng bị) các bạn chỉ cần thay đổi vai trò trong bài viết trên, nó cũng hoàn toàn hợp lý.

Bài viết có thể chưa đầy đủ, mong các bạn chia sẻ thêm, chúc các bạn giao dịch qua mạng an toàn, thành công.

Cách học lập trình ASP.NET MVC tốt nhất?

Bài viết được dịch từ trang web Danylkoweb

Gần đây tôi có tham dự một cuộc hội thảo CONDG hàng tháng và đã gặp một vài người có hứng thú trong việc học cách sử dụng ASP.NET MVC.

Thật trùng hợp, tôi cũng thấy có khá nhiều người trên mạng xã hội Quora hỏi về cách thức tốt nhất để học ASP.NET MVC. Ngoài việc thảo luận về cách tốt nhất để tìm hiểu nó, tôi cũng sẽ đưa ra những cách nhanh nhất để học lập trình ASP.NET MVC.

Học những kiến thức nền tảng trước

Nếu bạn là người chỉ mới bắt đầu làm quen với ASP.NET, thì bạn cần phải học VB.NET hoặc C# trước. Cả hai ngôn ngữ lập trình này là một phần của ASP.NET, do đó bạn cần phải quen thuộc với một (hoặc cả hai) ngôn ngữ.

Khi mới bắt đầu, tôi muốn giới thiệu tới bạn một cuốn sách C# của nhà xuất bản Apress có tên là Beginning C# Object-Oriented Programming của tác giả Dan Clark. Đây là một trong những cuốn sách có nội dung khá dễ hiểu dành cho người mới bắt đầu.

Nếu bạn là một người đã có kinh nghiệm lập trình trong (Java, C, C++, v.v…), thì tôi muốn giới thiệu tới bạn một cuốn sách khác từ Apress tên là Pro C# 5.0 and the .NET 4.5 Framework của tác giả Andrew Troelsen.

Bây giờ bạn biết mọi thứ về C#, lúc này bạn sẽ chuyển sang ASP.NET MVC.

Nếu bạn đang quan tâm đến cách làm thế nào để bắt đầu học Lập trình website với ASP.NET MVC thì tôi đang có Khóa học Lập trình ASP.NET MVC dành cho bạn đấy. Hình thức học linh hoạt, giúp bạn cách tiếp cận hoàn toàn khác biệt sách vở.

Bắt đầu tìm hiểu về ASP.NET MVC

Bạn có biết ASP.NET MVC là một nền tảng mã nguồn mở của Microsoft giúp cho công việc phát triển web của bạn trở nên dễ dàng hơn so với công nghệ trước đó của họ được gọi là WebForms. MVC là cụm từ viết tắt của Model-View-Controller. Đây là một pattern về kiến trúc phần mềm đã được hình thành từ những năm 1970 và 80.

Cách nhanh nhất để tìm hiểu một công nghệ mới là tìm hiểu sâu về cách mọi thứ hoạt động. Một cách để làm điều này đó là bạn hãy tải về và xem xét vòng đời của một ứng dụng web MVC. Đây là một tài liệu rất dễ hiểu và bổ ích. Tất cả mọi thứ được giải thích cho bạn qua những chi tiết cụ thể. Thậm chí tôi đã in nó ra và dán lên tường nơi bàn làm việc của mình.

Nếu bạn đang tìm kiếm một tài liệu để đọc, thì tôi muốn giới thiệu tới bạn cuốn sách có tên là Pro ASP.NET MVC 5 của tác giả Adam Freeman. Tôi đã thu được rất nhiều kiến thức cơ bản về lập trình ASP.NET MVC trong cuốn sách này và vẫn tham khảo lại khi cần.

Những khóa học lập trình trực tuyến

Nếu bạn đang tìm kiếm một khóa học lập trình trực tuyến chất lượng, thì một trong những trang web tôi yêu thích và thường hay lui tới là Pluralsight. Pluralsight có hơn 1.000 khóa học về tất cả mọi thứ từ lập trình web tới di động và ảo hóa. Bạn phải trả $30/tháng và tham gia các khóa học không giới hạn.

Về các khóa học ASP.NET MVC, tôi muốn giới thiệu tới bạn các khóa học Pluralsight sau đây:

  • ASP.NET MVC 5 Fundamentals – Scott Allen
  • Automated ASP.NET MVC Testing: End to End – Jason Roberts
  • Architecting Applications for the Real World in .NET – Cory House

Hầu hết các khóa học này có thời lượng từ 2 đến 3 giờ, bởi vậy bạn hãy dành đủ thời gian để hoàn thành các khóa học chất lượng này nhé!

Tạo ra một sản phẩm thú vị

Cuối cùng, hãy bắt đầu áp dụng kiến thức bạn đã học được bằng cách xây dựng một sản phẩm gì đó. Bạn đã học đến lúc này, tại sao lại không bắt đầu xây dựng một ứng dụng web? Dưới đây là một vài ý tưởng để giúp bạn bắt đầu:

  • Tạo ra một ứng dụng dạng To-do list (danh sách công việc phải làm)
  • Xây dựng một danh sách liên lạc (contact list)
  • Viết một blog nhỏ

Kết luận

Ưu điểm của phương pháp học này là bạn có thể áp dụng kiến thức đã học vào thực tế một cách nhanh chóng. Và bạn cũng có thể áp dụng cách học này cho những ngôn ngữ lập trình khác.

Viết code trong các ngôn ngữ lập trình khác sẽ trở nên ngày càng dễ dàng hơn cùng với kinh nghiệm mà bạn đã tạo ra cho chính mình.

Bạn có cách nào nhanh hơn để tìm hiểu về ASP.NET MVC? Hãy để lại ý kiến của mình trong phần bình luận phía dưới nhé!

Về tác giả bài viết:

hoc-lap-trinh-truc-tuyen-online-aspnet-mvc-tot-nhat-14012016-2Tác giả bài viết là Jonathan Danylko. Anh là người có trên 30 năm kinh nghiệm lập trình và hiện nay Jonathan đang tập trung vào lĩnh vực ASP.NET MVC Best Practices, Code Exorcisms (refactorings)…

 

Nguồn bài dịch: Techmaster.vn

Bạn có dám bước ra khỏi vùng an toàn?

Vùng an toàn (comfort zone) là nơi mà chúng ta luôn cảm thấy thoải mái nhất – một công việc chúng ta đã làm quen tay bao năm qua, một loại sách mà ta luôn chọn mua để đọc hay một môi trường sống mà ở đó ta quen vẫy vùng mà không lo sợ.

Và chẳng có gì là sai nếu ai cũng thích ở trong vùng an toàn như vậy, vì nó khiến ta như “cá gặp nước”, có gì mà lo lắng vì bất kỳ ai hay thứ gì trong nơi đó cũng khiến ta dễ chịu hay được yêu thương và bao bọc. Tuy vậy, sẽ có ngày ta chợt nhận thấy: Sao cuộc sống này thật quá đơn điệu và buồn tẻ?

Để bước ra khỏi vùng an toàn, chúng ta cần rất nhiều sự dũng cảm. Trước hết, chúng ta phải chuẩn bị tâm thế rằng ở môi trường mới có thể mọi thứ sẽ không hề thuận lợi. Công việc mới sẽ có những quy trình mới, người đồng nghiệp mới, vì thế mà không phải ai cũng sẽ hiểu bạn hay bạn có thể hiểu rõ cách công việc đó được thực hiện tốt nhất.

Một loại sách mới chắc gì đã hay, vì vốn bạn chỉ thích những điều ngọt ngào mà thứ sách bạn đang thử đọc lại quá khô khan. Một nơi ở mới có nhiều phong tục tập quán mới và những con người lạ lẫm. Vì thế, sự dũng cảm dám trải nghiệm phải là điều kiện tiên quyết để bạn quyết định mở rộng hay chuyển đổi vùng an toàn của mình.

Nhưng tại sao chúng ta lại phải thay đổi nó? Có thực sự cần thiết để thay đổi hay không?

Tôi sẽ kể các bạn nghe câu chuyện mà có lẽ nhiều người trong chúng ta cảm thấy quen thuộc. Thuở nhỏ, chúng ta hay nhìn cuộc sống xung quanh bằng con mắt e dè, đầy hoài nghi và lo sợ. Cha mẹ chúng ta luôn nói rằng “ngoài kia có ông kẹ đấy, ông sẽ bắt nhốt chúng ta vào bao và bán đi”.

Và thế là chúng ta cứ quanh quẩn trong nhà, bên mẹ hay chỉ đi ra ngoài khi có người đi cùng. Rồi đến khi chọn trường đại học, chúng ta cũng sẽ chỉ dám nghe theo ý của cha mẹ. Chúng ta sợ làm khác theo những gì được dạy, cũng sợ “ngoài kia có ông kẹ” nếu mình không làm theo những gì người lớn chỉ dẫn.

Tuy vậy, khi bước vào môi trường học thật sự, chúng ta đâu thể cứ luôn sợ hãi, không dám ra khỏi nhà, hay đi học cũng không dám nói chuyện với ai (trừ những người bạn cũ). Và có khi nào bạn tự hỏi, chúng ta rồi sẽ đi về đâu khi đến lúc chúng ta phải sống cuộc đời của mình và tự ra quyết định cho những vấn đề trong cuộc sống khi người thân không còn ở đó?

Bạn không thể là một nhà giáo giỏi nếu điều bạn muốn truyền đạt không thể được diễn đạt gẫy gọn và dễ hiểu. Bạn cũng không thể là một người lãnh đạo tốt nếu bạn luôn chỉ thích làm theo ý người khác và lo sợ ý kiến của mình bị phản bác.

Rõ ràng đó chính là lúc bạn thấy mình cần “sinh tồn” theo bản năng, nếu bạn không đi thì bạn đang đứng tại chỗ, nếu bạn càng đứng ở “vùng an toàn” càng lâu thì điều đó sẽ càng khiến bạn bị đào thải nhanh.

Bước ra khỏi vùng an toàn

Cũng có những trường hợp bạn muốn mình bước ra khỏi “vùng an toàn” để mở mang kiến thức, để có nhiều trải nghiệm, để thấy thế giới này bao la và rộng lớn. Vì thế giới luôn thay đổi, luôn biến đổi không ngừng khiến cho điều ta hiểu biết càng lúc càng trở nên lỗi thời.

Vì không phải việc lặp đi lặp lại có thể khiến chúng ta là người thợ lành nghề mà chúng ta còn phải là một người thợ khéo léo và tinh tế. Bản thân ta có thấy chán với chính ta nếu như ngày nào chúng ta cũng mặc lên người những bộ quần áo như nhau từ kiểu dáng đến màu sắc? Chúng ta có thấy rằng đã quá lâu có ai đó phải trầm trồ khen ngợi vì ta có những bước thay đổi tích cực.

Ngày nay, bước ra khỏi vùng an toàn chính là “dám dấn thân và dám thay đổi”. Các bạn có thể thay đổi một cách từ từ để mình tập quen với hình ảnh con người mới, với những thay đổi quanh ta.

Có nhiều sinh viên cứ nói với tôi “em cũng không biết mình thích gì cả, cũng không biết mình có thể làm được gì nếu em ra trường”. Nếu chính em còn không biết thì làm sao tôi có thể biết để dẫn đường cho em. Chính em còn không thể hiểu em là ai và em thích gì thì cả chục bài trắc nghiệm về bản thân cũng chỉ là làm cho vui mà thôi.

Đã đến lúc em nghiêm túc nhìn nhận bản thân, và dấn thân để thử xem mình thích ngành nghề nào hay nó có phù hợp với em không. Giáo viên hay bất kỳ ai cũng chỉ có thể giúp em định hình đường đi nhưng chính em mới quyết định được mình nên đi hay không hoặc có dám thử nó hay không.

Trong thời đại công nghệ như hiện nay, việc dám dấn thân và dám nhận lấy những rủi ro cũng là những yếu tố để giúp em bản lĩnh và thành công hơn. Bước ra khỏi vùng an toàn bằng cách dám hỏi, dám nói, dám nhận chỉ trích, dám đối diện với bản thân và thất bại sẽ luôn khó khăn nhưng hãy dũng cảm lên nhé…

Cuộc sống thú vị đang chờ chúng ta ngoài kia!

8 ĐIỀU HÃY NGHĨ ĐẾN KHI BẠN BẾ TẮC

1. Không ai khôn lớn mà chưa từng trải qua nỗi đau
Đôi khi cuộc sống đóng một cánh cửa lại vì đó là lúc để cho bạn tiến về phía trước. Gặp khó khăn không có nghĩa là bạn đang thất bại. Hãy nhớ rằng nỗi đau có hai loại: loại làm bạn tổn thương và loại khiến bạn thay đổi. Thay vì kháng cự hai loại nỗi đau này, hãy chấp nhận chúng vì chúng đều khiến bạn trưởng thành hơn.

2. Tất cả mọi thứ trong cuộc sống chỉ là tạm thời
Trời mưa rồi cũng sẽ tạnh. Vết thương rồi cũng sẽ được chữa lành. Sau màn đêm tăm tối là ánh sáng của buổi bình minh. Không có gì kéo dài mãi mãi cả. Mỗi khoảnh khắc đều mang lại cho bạn một khởi đầu mới và một kết thúc mới. Mỗi giây trôi qua bạn lại có một cơ hội mới. Bạn chỉ cần nắm bắt cơ hội đó và tận dụng nó.

3. Lo lắng và phàn nàn cũng không thay đổi được gì
Những người hay phàn nàn là những người ít được việc nhất. Bạn có dành cả ngày hôm nay để than vãn về ngày hôm qua thì ngày mai của bạn cũng không khởi sắc được. Thay vào đó hãy bắt tay hành động.

4. Vết sẹo của bạn là biểu tượng của sức mạnh
Một vết sẹo có nghĩa là một nỗi đau qua đi và vết thương đã lành. Nó có nghĩa là bạn đã chinh phục nỗi đau, đã học được một bài học, lớn mạnh hơn, và tiến về phía trước. Hãy bắt đầu xem những vết sẹo của bạn như là một dấu hiệu của sức mạnh chứ không phải là dấu vết của những nỗi đau.

5. Cuộc đời là một chuỗi những cuộc đấu tranh
Kiên nhẫn không phải là chờ đợi mà là khả năng duy trì một thái độ tích cực trong khi theo đuổi giấc mơ. Bạn có thể mất đi sự ổn định và thoải mái trong một thời gian dài, thậm chí là “ăn không ngon, ngủ không yên ”. Bạn có thể phải hy sinh các mối quan hệ và tất cả những gì thân thuộc. Đôi khi bạn phải chấp nhận sự chế giễu từ người khác. Nhưng rồi bạn sẽ nhận ra rằng con đường của bạn được xây dựng nên từ những cuộc đấu tranh với những điều nhỏ nhặt nhất.

6. Bạn không cần phải để tâm đến sự tiêu cực của người khác
Khi xung quanh bạn tràn ngập sự tiêu cực, thì bạn hãy tỏ ra tích cực. Mỉm cười khi ai đó cố tình dìm bạn xuống. Hãy luôn là chính mình dù ai đó đối xử với bạn tồi tệ. Đừng bao giờ để cho sự cay nghiệt của người khác thay đổi con người bạn. Người ta vẫn sẽ xì xầm về bạn cho dù bạn đã làm tốt như thế nào. Vì vậy, hãy nghĩ về bản thân trước khi nghĩ về những gì đang diễn ra trong đầu người khác. Hãy làm những gì khiến bạn hạnh phúc và ở bên cạnh bất cứ ai làm cho bạn thường xuyên mỉm cười.

7. Chuyện gì cần đến sẽ đến
Hãy tận hưởng cuộc sống đang mở ra trước mắt bạn. Bạn có thể không đến được nơi mà bạn muốn, nhưng cuối cùng bạn sẽ chắc chắn đến được nơi mà bạn cần.
8. Điều tốt nhất bạn có thể làm là tiếp tục bước đi
Đừng ngần ngại nhận sự giúp đỡ từ ai đó. Đừng ngần ngại yêu thêm một lần nữa. Hãy tìm thấy động lực để cười mỗi ngày và làm cho người khác mỉm cười theo. Hãy nhớ rằng bạn không cần nhiều người trong cuộc sống, mà chỉ cần một vài người thật sự quan trọng với bạn mà thôi. Chấp nhận khi bạn sai và học hỏi từ nó. Luôn luôn nhìn lại và xem bạn đã trưởng thành được bao nhiêu, và tự hào về chính mình.

(Sưu tầm)

Tạo menu lựa chọn trong C/C++

Tạo một Menu có các lựa chọn là 1 bài tập lập trình căn bản, giúp các bạn làm quen với các lệnh xóa màn hình, vòng lặp while, lệnh switch case, lệnh getch. Đây có thể nói là 1 bài tập tổng hợp. Các bạn theo dõi video bên dưới để dễ hình dung hơn.

Tạo menu lựa chọn trong C/C++

Tóm tắt Video

  • Tạo một dự án mới
  • Tạo các chức năng của dự án (bài tập)
  • Tạo các menu chức năng
  • Viết các hàm xử lý menu
  • Gọi hàm main để chạy thử chương trình

Code: Menu.h

#include "Lib.h"

void Menu();		// Ham nay se xuat ra cac danh sach menu
int ChonMenu();		// Ham nay dung de chon 1 menu tuong ung
void XuLyMenu();	// Xu ly menu ung voi menu duoc chon


void Menu() {
	cout << "=================MENU================\n";
	cout << "1. Vua ga - vua cho\n";
	cout << "2. Kiem tra so nguyen to\n";
	cout << "3. Tong cac so nguyen to\n";
	cout << "4. Dao nguoc so\n";
	cout << "5. Tim so sao cho a*b = 2(a+b)\n";
	cout << "6. Tinh giai thua cua mot so\n";
	cout << "7. Tim day Fibonaci\n";
	cout << "8. Hoan vi\n";
	cout << "9. Ve tam giac\n";
	cout << "10. Bai tap cua cac ban";
	cout << "99. Thoat!!!\n";
	cout << "=====================================\n";
}
int ChonMenu()
{
	int n = 0;
	cout << "\n\nMoi chon menu: ";
	cin >> n;
	if (n > 0 || n < 99)
		return n;
	else return ChonMenu();
}
void XuLyMenu() 
{
	int chon = ChonMenu();
	int a = 5; int b = 6;
	switch (chon)
	{
	case 1:		
		cout << "1. Vua ga vua cho.\n";
		VuaGaVuaCho();
		break;
	case 2:
		cout << "2. Kiem tra so nguyen to\n";
		cout << TimSoNT(5);
		break;
	case 3:
		cout << "3. Tong cac so nguyen to\n";
		cout << TinhTongCacSoNT(11);
		break;
	case 4:
		cout << "4. Dao nguoc so\n";
		cout << DaoNguocSo(123);
		break;
	case 5:
		cout << "5. Tim so sao cho a*b = 2(a+b)\n";
		TimSoTichABBang2TongAB(100);
		break;
	case 6:
		cout << "6. Tinh gia thua cua mot so\n";
		cout << TinhGiaiThua(6);
		break;
	case 7:
		cout << "7. Tim day Fibonaci\n";
		for (int i = 0; i < 5; i++)
		{
			cout << Finbonaci(i) << "\t";
		}
		Finbonaci2(7);
		break;
	case 8:
		cout << "7. Hoan vi\n";
		//int a = 5; int b = 6;
		HoanVi(a, b);
		cout << a << "\t" << b;
		break;
	case 9:
		VeHinhTamGiac(4, 5);
		break;
	case 99:
		cout << "Thoat!!!\n";
		exit(1);
		break;
	}
}

Code Source.cpp

#include "Menu.h"
using namespace std;
void main() 
{	
	Menu();
	while (true)
	{	
		XuLyMenu();
	}
	_getch();
}

Hãy sáng tạo theo cách của bạn.

Nếu bạn đã hoàn thành theo hướng dẫn mà vẫn gặp khó khăn, hãy liên hệ với tôi.

Cảm ơn bạn đọc và tôi luôn đánh giá cao phản hồi của bạn.