C語言程式設計:綜合設計實驗一(設計一個文字遊戲)
阿新 • • 發佈:2021-12-11
目錄
C語言程式設計:綜合設計實驗一(設計一個文字遊戲)
1.實驗要求
(1) 設計一個文字遊戲,通過玩家輸入命令或者選擇某種操作,推進劇情的發展,要求程式有一定的可玩性。
(2) 在沒有學習檔案之前,用字串陣列儲存劇情文字資訊;
(3) 在遊戲中設計隨機元素,使用者同樣的選擇,可以得到不同的結果。
(4) 根據自己能力完成上面的練習後,填寫實驗報告,將原始檔和實驗報告,命名為“學號-姓名-實驗X”,比如:1740611111-張三-實驗1,上交到智慧樹。(注:原始碼以截圖的方式上交。)
2.設計思路
我想設計一個炒股軟體,簡單的買賣~~~~
3.原始碼
#include<stdlib.h> #include<stdio.h> #include<time.h> #include<string.h> #define BUF_size 5 typedef struct _shares { int num;//股票程式碼code int first_price;//買入價格 int buy;//買入數量 int last_price;//漲跌後價格 }shares; shares items[BUF_size]; void Initialization(); void Make(); void Event(); int round = 1; int gameon = 1; int gameoff = 0; int money = 1500; int main() { while (gameon) { Initialization(); Make(); Event(); //gameon = 0; round++; } return 0; } void Initialization() { if (money <= 0) { printf("\n===================[/Lose]=========================\n"); printf("!!!很遺憾,你已經破產了\n", money); printf("是否重新開始遊戲【輸入1重開,輸入0則為退出】\n", money); printf("===================[Lose/]=========================\n\n"); scanf_s("%d", &gameoff); if (gameoff) { money = 1500; gameoff = 0; } else { exit(0); } } printf("=================[Round.%.2d]=======================\n", round); printf("你現在有[%d]股\n", money); } void Make() { int a = 1; srand((unsigned)time(NULL)); int code = rand() % 40000 + 10000; int first_price = 1 + rand() % 10; int increasing = rand() % 51; int falling = rand() % 51; int put = 0; int buymoney; while(a == 1) { printf("====================[Shares]======================\n"); printf("現在有一支程式碼為[%d]的股票\n", code); printf("當前價格為:[%d]元\n", first_price); printf("上漲概率為[%d%%]\n", increasing); printf("下跌概率為[%d%%]\n", falling); printf("是否進行買入?\n"); printf("[輸入1為買入,輸入其他則為放棄]\n"); printf("==================================================\n"); scanf_s("%d", &put); if (put == 1) { printf("===================[Buy]==========================\n"); printf("需要購入多少股?\n"); printf("==================================================\n"); scanf_s("%d", &buymoney); if (buymoney > money) { printf("===============[Failded to buy]===================\n"); printf("買入失敗,你當前只擁有[%d]股,請不要超過該數量\n\n", money); } else { money -=buymoney; items->buy = buymoney; items->num = code; items->first_price = first_price; printf("==============[Buy Successfully]==================\n"); printf("買入[%d]股成功,當前剩餘[%d]股\n\n", buymoney, money); } } //a = rand() % 2; a = 0; } } void Event() { srand((unsigned)time(NULL)); int a = rand() % 2;//0跌1升 int income = 0; int difference = 0; if (items->num != 0) { if (a == 1) { items->last_price = items->first_price + rand() % 11; difference = items->last_price - items->first_price; income = difference * items->buy; money += income; printf("===================[Rise]=========================\n"); printf("你購買的程式碼為[%d]的股票,上漲啦\n", items->num); printf("買入時價格為[%d]元,當前價格為[%d]元\n", items->first_price, items->last_price); printf("相較於買入時上漲了[%d元],一共買入[%d]股\n", difference, items->buy); printf("你獲得了[%d]股,當前共有[%d]股\n", income, money); printf("==================================================\n\n"); } else { items->last_price = 1 + rand() % items->first_price; difference = items->first_price - items->last_price; income = difference * items->buy; money -= income; printf("===================[Fall]=========================\n"); printf("你購買的程式碼為[%d]的股票,下跌啦\n", items->num); printf("買入時價格為[%d]元,當前價格為[%d]元\n", items->first_price, items->last_price); printf("相較於買入時下跌了[%d元],一共買入[%d]股\n", abs(difference), items->buy); printf("你損失了[%d]股,當前還剩[%d]股\n", abs(income), money); printf("==================================================\n\n"); } } }
4.後話
本來想用動態陣列實現對買入不同的股票進行管理的,程式碼中埋下了好多的坑都沒補上,我太懶了~~~~所以,這是一個極度精簡的文字炒股遊戲,enjoy it~