این ویدیو توضیحات مثال قبلی است که متاسفانه کیفیت صدای آن در برخی لحظات خوب نیست. برخی فریمها هم ناقص ضبط شده اند.
این مثال دو بخش دارد، یکی ایجاد پایگاه داده از اطلاعات کتابها و نوشتن آنها در فایل باینری book_data.db و بخش دوم شامل خواندن اطلاعات از همین فایل و نمایش آنها. ویدیوی ضبط شده مربوط به این مثال در پست بعدی منتشر می شود.
#include "stdafx.h" #include <iostream> struct BookInfo { char name[30]; char author[30]; int nPage; float price; int year; }; void CreateDatabase() { printf("To start, enter number of books you want to store in the database\n"); int n = 0; scanf_s("%d", &n); printf("Please enter Book information for %d books as follows\n", n); printf("Name, Author, Pages, Price, Year of Publication\n"); BookInfo *books = new BookInfo[n]; for (int i = 0; i < n; i++) { std::cin.ignore(); printf("\n#%d Name: ", i + 1); gets_s(books[i].name, 30); printf("\n#%d Author: ", i + 1); gets_s(books[i].author, 30); printf("\n#%d Pages: ", i + 1); scanf_s("%d", &books[i].nPage); printf("\n#%d Price: ", i + 1); scanf_s("%f", &books[i].price); printf("\n#%d Year: ", i + 1); scanf_s("%d", &books[i].year); } FILE* fp = 0; fopen_s(&fp, "book_data.db", "wb"); if (!fp) { printf("File can't be oppened.\n"); return; } fwrite(books, sizeof(BookInfo), n, fp); fclose(fp); printf("Data saved successfully\n"); } void ReadDatabase() { int n = 2; BookInfo *books = new BookInfo[n]; FILE* fp = 0; fopen_s(&fp, "book_data.db", "rb"); if (!fp) { printf("File can't be oppened.\n"); return; } fread(books, sizeof(BookInfo), n, fp); for (int i = 0; i < n; i++) { printf("\n#%d Name: %s", i + 1, books[i].name); printf("\n#%d Author: %s", i + 1, books[i].author); printf("\n#%d Pages: %d", i + 1, books[i].nPage); printf("\n#%d Price: %.1f", i + 1, books[i].price); printf("\n#%d Year: %d", i + 1, books[i].year); printf("\n--------------------------------------------"); } fclose(fp); delete[] books; } int main() { printf("Welcome to Book Database Application:\n"); bool create_data = false; //change to false for read mode if (create_data) CreateDatabase(); else ReadDatabase(); getchar(); return 0; }
در این مثال نحوه ایجاد فایل باینری و توابع نوشتن و خواندن (fread, fwrite) توضیح داده شده و یک فایل حاوی صد عدد اعشاری به دو صورت باینری و متنی ساخته شده و مقایسه می شوند:
در این مثال نحوه ایجاد فایل متنی، نوشتن در و خواندن از آن را خواهید دید. دو نوع فایل اسکی و یونیکد بررسی می شود:
مثالهایی از تابع که در کلاس بیان شد را از این آدرس دانلود کنید.
ویدیوی ضبط شده در کلاس به دلیل تنظیم نامناسب میکروفون، کیفیت صدای مناسبی ندارد اما به کارتان می آید:
دانشجویان درس شبکه عصبی، یکی از مقالات زیر را برای ارائه انتخاب کرده و به من اطلاع دهید.
مثالی که در کلاس مطرح شد جهت تسهیل حل تمرین سری سوم (بخش ج). در این مثال نحوه تفکیک یک رشته محاسباتی به دو بخش عددی نشان داده می شود:
#include "stdafx.h" #include <iostream> //Shahrood University of Technology //C Programming //Hossein Khosravi - http://Khosravi.blog.ir using namespace std; int main() { char str[100] = "1625-4520"; //str[4] = 0; //cout << str; char* p1 = strstr(str, "-"); char s1[10] = { 0 }, s2[10] = { 0 }; int n1 = 0, n2 = 0; if (p1 == NULL) cout << "operator - not found"; else { cout << "operator - is located on index " << p1 - str; strncpy_s(s1, 10, str, p1 - str); strcpy_s(s2, 10, p1 + 1); n1 = atoi(s1); //convert first part to integer n2 = atoi(s2); //convert second part to integer } //char* p = str + 5; //cout << p; getchar(); return 0; }
مثال دریافت n عدد اعشاری به کمک اشاره گر، مرتب سازی حبابی آنها و نمایش خروجی:
#include "stdafx.h" #include <iostream> int main() { /*int x = 10, y = 21; float z = (float)y / x; //remove (float) and see the results x = (int)z; printf("z = %.f", z);*/ unsigned long N = 0; printf("Please enter N:\n"); GET_N: scanf_s("%ld", &N); if (N < 1) { printf("Invalid size, try again\n"); goto GET_N; } printf("\nEnter %d Numbers: ", N); double* data = new double[N]; memset(data, 0, N * sizeof(double)); for (int i = 0; i < N; i++) scanf_s("%lf", &data[i]); for (int i = 0; i < N; i++) { for (int j = i + 1; j < N; j++) { if (data[j] > data[i]) { double t = data[i]; data[i] = data[j]; data[j] = t; } } } printf("Sorted output:\n"); for (int i = 0; i < N; i++) printf("%.2lf, ", data[i]); std::cin.ignore(); getchar(); return 0; }