直接上代碼,就是這么任性!
各位小伙伴也都可以去運行一下,之前也弄了一個圖書管理系統,但是今天加了個界面,需要注意的是記得安裝好圖形庫哦!
————————————
#include <stdio.h> #include <graphics.h> #pragma comment(lib,"winmm.lib") IMAGE BD,TAB; FILE* fp; void Image(); //背景 void Save_Data(); //保存 void Delete_Data(); //刪除 int n = 0; typedef struct book { char num[4]; char price[4]; char name[10]; } BOOK; BOOK bk[20]; void Add() { fp = fopen("./BOOK.txt", "a+"); cleardevice(); loadimage(&BD, "./2008071502334265.jpg", 640, 480); putimage(0, 0, &BD); char ch; int ih; int num; char *ar[] = { "請輸入序號:", "請輸入書名:", "請輸入價格:" }; setbkmode(TRANSPARENT); settextcolor(RED); settextstyle(50, 20, "華文彩雲"); outtextxy(250, 10, "添加書籍"); setfillcolor(RGB(180, 180, 180)); fillrectangle(100, 60, 580, 450); settextcolor(BLACK); settextstyle(20, 0, "楷體"); outtextxy(100, 70, *ar); int i = 0; while ((num = getch()) != VK_RETURN) { outtextxy(100 + 10 * i, 100,num); *(bk[n].num + i) = num; i++; } outtextxy(100, 150, *(ar + 1)); i = 0; while ((ch = getch()) != VK_RETURN) { outtextxy(100 + 10 * i, 180, ch); *(bk[n].name + i) = ch; i++; } outtextxy(100, 230, *(ar + 2)); i = 0; while ((ih = getch()) != VK_RETURN) { outtextxy(100 + 10 * i, 260,ih); *(bk[n].price + i) = ih; i++; } outtextxy(250, 400, "正在保存..."); Sleep(2000); fprintf(fp, "%s %s %s ", bk[n].num, bk[n].name, bk[n].price); n++; fclose(fp); cleardevice(); } void Scan() { cleardevice(); loadimage(&BD, "./2008071502334265.jpg", 640, 480); putimage(0, 0, &BD); setbkmode(TRANSPARENT); settextcolor(RED); settextstyle(50, 20, "華文彩雲"); outtextxy(250, 10, "瀏覽書籍"); setfillcolor(RGB(180, 180, 180)); fillrectangle(100, 60, 580, 450); for (int i = 0; i <= 7; i++) { line(100, 60 + i * 50, 580, 60 + i * 50); } fp = fopen("./BOOK.txt", "r"); settextcolor(BLACK); settextstyle(20, 0, "楷體"); for (int i = 0; fscanf(fp, "%s %s %s ", bk[i].num, bk[i].name, bk[i].price)!=EOF; i++,n++) { outtextxy(100, 70 + i * 50, bk[i].num); outtextxy(150, 70 + i * 50, bk[i].name); outtextxy(200, 70 + i * 50, bk[i].price); } fclose(fp); } void Delete_Data() { int x = 0; int b; int arr[4]; fp = fopen("./BOOK.txt","r+"); cleardevice(); loadimage(&BD, "./2008071502334265.jpg", 640, 480); putimage(0, 0, &BD); setbkmode(TRANSPARENT); settextcolor(RED); settextstyle(50, 20, "華文彩雲"); outtextxy(250, 10, "刪除書籍"); setfillcolor(RGB(180, 180, 180)); fillrectangle(100, 60, 580, 450); settextstyle(20, 0, "楷體"); outtextxy(100,70,"請輸入需要刪除書籍的序號:"); for (int i = 0; i <= 7; i++) { line(100, 60 + i * 50, 580, 60 + i * 50); } int a = 0; while ((b = getch()) != VK_RETURN) { outtextxy(100 + 10 * a, 130, b); *(arr + a) = b; a++; } for (int i = 0; fscanf(fp, "%s %s %s ", bk[i].num, bk[i].name, bk[i].price) != EOF; i++, x++) ; for (int i = 0; i < x; i++) { for (int a = 0; a < 4; a++) { if (bk[i].num[a] == arr[a]) { for (int v = i; v <= x; v++) { for (int z = 0; z < 4;z++) *(bk[v].num+z) = *(bk[v + 1].num+z); for (int z = 0; z < 10; z++) *(bk[v].name+z) = *(bk[v + 1].name+z); for (int z = 0; z < 4; z++) *(bk[v].price+z) = *(bk[v + 1].price+z); } break; } } } x--; fclose(fp); fopen("./BOOK.txt", "w+"); for (int i = 0; i < x; i++) { fprintf(fp, "%s %s %s ", bk[i].num, bk[i].name, bk[i].price); } fclose(fp); } void MouseMg() { MOUSEMSG m; while (MouseHit()) { m = GetMouseMsg(); switch (m.uMsg) { case WM_LBUTTONDOWN: if (m.x >= 220 && m.y >= 100 && m.x <= 440 && m.y <= 140) { Add(); } else if (m.x >= 220 && m.y >= 180 && m.x <= 440 && m.y <= 220) { Scan(); getch(); } else if (m.x >= 220 && m.y >= 260 && m.x <= 440 && m.y <= 300) { Delete_Data(); getch(); } else if (m.x >= 220 && m.y >= 340 && m.x <= 440 && m.y <= 380) { exit(0); } break; } } } void Image() { BeginBatchDraw(); loadimage(&BD, "./2008071502334265.jpg", 640, 480); putimage(0, 0, &BD); loadimage(&TAB,"./258PICg58PICzAJ_1024.jpg",220,40); putimage(220, 100, &TAB); loadimage(&TAB, "./258PICg58PICzAJ_1024.jpg", 220, 40); putimage(220, 180, &TAB); loadimage(&TAB, "./258PICg58PICzAJ_1024.jpg", 220, 40); putimage(220, 260, &TAB); loadimage(&TAB, "./258PICg58PICzAJ_1024.jpg", 220, 40); putimage(220, 340, &TAB); setbkmode(TRANSPARENT); settextcolor(RED); settextstyle(50, 20, "華文彩雲"); outtextxy(200, 10, "圖書管理系統"); settextcolor(BLACK); settextstyle(17, 17, "華文新魏"); outtextxy(250, 115,"添加書籍"); settextstyle(17, 17, "華文新魏"); outtextxy(250, 195, "瀏覽書籍"); settextstyle(17, 17,"華文新魏"); outtextxy(250, 275, "刪除書籍"); settextstyle(17, 17,"華文新魏"); outtextxy(250, 355,"退出系統"); EndBatchDraw(); } int main() { PlaySound("05-夜的鋼琴曲(五).wav", NULL, SND_FILENAME | SND_LOOP | SND_ASYNC); initgraph(640, 480); while (1) { Image(); MouseMg(); } return 0; }
————————————
弄了一個好看的界面,順帶也加上了音樂也感覺還不錯吧,而且也比較基礎的!加油~



第一個圖是主要界面以及功能方面,然后就是后面兩個圖,兩個功能一個是添加功能,一個是瀏覽,涉及到的知識點也並不是很多。
1、文件操作;
2、graphics.h頭文件以及圖形界面庫函數;
3、C語言基本語法與控制結構。
其實的話,編程是很有樂趣的,前提是你得喜歡這個,但是也不要局限在知識點里面了,編程思維是很重要的。

最后,不管你是轉行也好,初學也罷,進階也可,如果你想學編程~
【值得關注】我的 C/C++編程學習交流俱樂部!【點擊進入】
問題答疑,學習交流,技術探討,還有超多編程資源大全,零基礎的視頻也超棒~