資源簡介
在c語言數據機構課程課題中,寫銀行客戶排隊的離散模擬:主要信息為客戶到達時間和辦理業務所需時間,用兩種數據結構--有序鏈表和隊列實現。
代碼片段和文件信息
#include?
#include?
#include?
/*****************************************變量**************************************/
typedef?struct?CQueue
{
????int?cometime;??????????????????????????????//進入銀行的時間
int?money;?????????????????????????????//存/取款金額,+為存,-為取
int?leavetime;?????????????????????????//離開銀行時間
int?working;???????????????????????????//已交易時間
int?worktime;??????????????????????????//交易時間(用隨機函數)
struct?CQueue?*next;
}?CQ;
CQ?*head[4]*cq[4]*last[4]*hlast[4];????//對應隊列的頭結點和尾結點指針
int?currenttimetotaltimenexttime;???????//目前時間設定按時間模擬總時間下一個顧客來的時間
int?totalnumcurrentnum;??????????????????//總人次目前為第幾位顧客
int?num[4];???????????????????????????????//對應三個窗口的目前人數
int?totalVIP;?????????????????????????????//一共有多少位VIP
int?*cometime;????????????????????????????//存儲顧客來的時間
float?avewait;????????????????????????????//平均等待時間
long?int?totalmoney;??????????????????????//目前銀行總金額
char?*menu[]={“****************************************““**********歡迎進入銀行模擬系統**********“
??????????????“****************************************““******************MENU******************“
??“1.按輸入人次模擬““2.按輸入時間模擬““3.退出“};
/*****************************************函數**************************************/
int?menu_select();????????????????????????//菜單函數,用于顯示菜單返回選擇序號
void?starttime();?????????????????????????//按時間模擬函數
void?startnum();??????????????????????????//按人次模擬函數
void?quit();??????????????????????????????//退出函數
void?gotoxy(int?iint?j);?????????????????//光標定位函數i表示列,j表示行
void?quicksort(int?*pint?leftint?right);//快速排序函數
void?add(int?iCQ?*pint?j);??????????????//增加隊列函數i表示窗口
int?getminnum();??????????????????????????//判斷123號窗口人數最少窗口返回對應123
int?getmaxnum();??????????????????????????//判斷123號窗口人數最多窗口返回對應123
void?show();??????????????????????????????//顯示窗口
void?showqueue();?????????????????????????//顯示隊列
void?leave();?????????????????????????????//判斷是否有人結束交易離開
void?printtotal();????????????????????????//統計函數用于判斷交易金額交易人次等
void?printcq(int?i);??????????????????????//顯示某個窗口交易歷史
void?getavewait();????????????????????????//獲得平均等待時間
void?movequeue();?????????????????????????//判斷移動隊伍函數
void?mov(int?maxint?minint?flag);???????//移動長隊到短隊
/****************************************主函數**************************************/
void?main()
{
system(“cls“);
for(;;)
{
switch(menu_select())
{
???? case?1:startnum();break;
case?2:starttime();break;
case?3:quit();break;
}
}
}
/***************************************菜單函數**************************************/
int?menu_select()
{
int?s;
int?i;
totalmoney=0;
currenttime=0;???????????????????????//對數據初始化
nexttime=0;
totaltime=0;
avewait=0;
currentnum=0;
totalVIP=0;
num[0]=num[1]=num[2]=0;
head[0]=cq[0]=last[0]=head[1]=cq[1]=last[1]=head[2]=cq[2]=last[2]=NULL;
head[3]=cq[3]=last[3]=NULL;
system(“cls“);
system(“color?06“);??????????????????//改變DOS窗口顯示顏色
gotoxy(102);
for(i=0;i<28;i++)??????????????????
- 上一篇:紅警大戰探寶外掛
- 下一篇:VC源碼獲取WINDOWS系統所有的用戶密碼
評論
共有 條評論