简易股票投资管理系统

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1組長:89214020潘國成組員:88214028簡維新88214034王宏民88214040童世遠2簡易股票投資管理系統一系統功能、輸入與輸出的資料:在台灣股市可為全民運動,加上現今投資理財的風氣十分盛行,股票市場幾乎是最大規模的資本市場,記錄股票的賣出買入及損益,若無電腦輔助可謂事倍功半,費心費力,因此我們這次的作業作的就是股票管理系統,幫助投資人處理惱人的資料和紀錄過去的交易狀況,並且可在系統上知道最新的股市資訊,還可立即計算當時的資產變動情況,損益和報酬。本系統採用會員制度,會員可享用完整的功能,非會員也擁有查詢股市的功能,十分的方便。這個系統包含以下幾種的基本功能:查詢:查詢方面,提供使用者查詢個股資訊,並可以細部查詢個股之詳細資料。可供查詢之項目分別為:股票代碼、股票名稱、股票價格、股本、EPS、本益比、每股淨值。另外也提供了以上名詞的簡易解釋,有助於使用者在基本面的選股判斷。管理:管理方面,可提供使用者紀錄各項交易記錄。透過儲存之交易檔案,可以為使用者整合多項資訊。如:已實現損益、未實現損益、股票購入歷史價格、買賣張數、買賣價格等。幫助使用者瞭解投資之狀況,以評估未來之投資決策。以下列出系統所處理的輸入及輸出檔案介紹及欄位說明:程式所需輸入之資料檔案如下:1.股票資訊檔:stock.log(程式預設數量20)股票的資訊檔案。包含下例欄位:●股票代碼:證交所每支股票都有其編號,以方便交易。●股票名稱●價格●股本●EPS:每股稅後盈餘●本益比●每股淨值:例:含有3筆資料的股票資訊檔3代碼名稱(某日)現價股本EPS(估)每股淨值1101台泥10.65249.20.718.171216統一9.85344.20.412.111301臺塑44.6453.42.6322.072.會員資料檔:club.txt(程式預設數量2)提供系統執行身份認證時,檢查會員之帳號、密碼。Id姓名密碼88214040童小遠123488214034王小民5678-1unused-1-1unused-1-1unused-1程式輸出之資料檔案如下:(僅會員擁有)1.個人投資組合(主要用來計算損益):my_pfo1.txt,my_pfo2.txt記錄了投資組合種類個數、股票代碼、股票名稱、擁有張數、歷史平均價格、現價、個股之買進價格、已實現損益。(程式預設數量20)2.個人交易記錄(主要用來記錄交易狀況):trade1.txt,trade2.txt個人所有之交易記錄。包括:交易個數、股票代碼、股票名稱、買進張數、買進價格、賣出張數、賣出價格。(程式預設數量100)二、應用層面說明此系統除了可運用在個人股票的管理外,還可以運用在入口網站會員的自選股票交易管理上,用來記錄大量的會員股市交易和損益。三、資料結構說明在程式當中我們使用了4種資料結構(datastructure);1.股票的資料結構(STOCKINFO),用來儲存股票的資料。股票資料(STOCKINFO)欄位意義欄位名稱股票代碼intcode4股票名稱charname[80]價格floatprice股本floatequityEPSfloatEPS本益比intratio每股淨額charnetvalue[10]2.會員的資料結構會員資料(CLUB)欄位意義欄位名稱會員idintcode會員名稱charname[80]會員密碼floatprice3.會員手中持有投資組合結構(PORTFOLIO)。投資組合結構(PORTFOLIO)欄位意義欄位名稱股票代碼intcode股票名稱charname[80]張數intmount買入歷史平均價floatprice_avg個股現價floatprice_now買入的價格floatprice_buy[50]4.交易記錄的資料結構檔(REPORT):用來存放每次交易的資料。交易記錄(REPORT)欄位意義欄位名稱股票代碼intcode股票名稱charname[80]買入張數intmount_buy買入價格loatprice_buy5賣出張數intmount_sell賣出價格floatprice_sell三、程式說明寫在前頭、重要須知:此程式有幾點需要事先說明,有助於對程式的瞭解。第一:此程式的stock.log檔必須隨著時間每日更新,尤其是股票(stockinfo)的現價欄,如此一來在計算未實現損益時方才有意義。第二:此程式計算損益上,暫時不考慮證券交易稅以及買賣的手續費,主要因為手續費會隨著交易券商的規定而有所改變.。第三:在計算損益上,會計學上有三種法則:先進先出法、後進先出法、平均成本法,而我們程式所採用的是較為折衷的平均成本法,也就是說當時間點不同,有重複買進單一個股的紀錄時,程式會記錄下買進的價格,利用買進的價格來計算買進歷史平均價,而當有賣出動作時,則計算賣出價格與歷史平均價之間的差價來作為損益的計算。第四:關於買賣股票的最小單位為1張,而1張為1000股,假設買進A股票面額10元,實際所付出的成本為10000元,又假設賣出價格為11元,則實收金額為11000元,也就是賺了1000元的差價。61主程式main().●說明:先載入股票的資料檔,和會員的個人資料檔,最後依據使用者的選項做相對應的動作●參數:無●傳回值:無●流程圖:管理者部分輸入管理者密碼密碼=8888?離開程式NO輸入選項AddDelQuit7程式碼部分main(){/******FILE******/FILE*stock_file;FILE*club_file;/******定義四大arrry******/structSTOCKINFOstock[STOCK_NUM+1];structPORTFOLIOmy_pfo[PFO_NUM+1];structREPORTtrade[TRADE_NUM+1];structCLUBclubs[CLUB_NUM+1];charchoice;//主選單之選項intpwd;//輸入選項用_passwordintuser_id;//輸入選項用_user_id使用者部分副程式user_exam:檢驗會員id與password通過檢驗則會傳回會員id值副程式user_main:根據會員id值開啟其個人記錄檔,並帶入選單之中離開程式guest部分副程式view_info:查詢股票資訊離開程式8/**********************openstockfile************/if(stock_file=fopen(stock.log,r)){load_stock(stock,stock_file);//呼叫副程式:讀入股票檔內容}else{printf(無法開啟股票資料檔,程式終結!\n);exit(1);//離開程式}fclose(stock_file);//關閉讀檔/**********************openclubfile************/if(club_file=fopen(club.txt,r)){load_club(clubs,club_file);//呼叫副程式:讀入會員檔內容}else{printf(無法開啟會員資料檔,程式終結!!\n);exit(1);}fclose(club_file);//關閉讀檔printf(=========================================================);printf(\n);printf(歡迎使用簡易個人股票管理系統);printf(\n);printf(請選擇登入身分1.系統管理員2.會員3.guest);printf(\n);printf(請選擇);scanf(%c,&choice);//輸入選項switch(choice){case'1':9printf(請輸入管理者passward:);fflush(stdin);scanf(%d,&pwd);if(pwd==8888)//預設管理者password=8888{manager_main();//呼叫副程式manager_main}else{printf(密碼輸入錯誤!!!!請輸入正確密碼\n);}break;case'2':user_id=user_exam(clubs);//呼叫副程式user_examuser_main(user_id,stock,my_pfo,trade);//呼叫副程式user_aminbreak;case'3':printf(歡迎使用此系統,請繼續\n);view_info(stock);//呼叫副程式view_infobreak;default:printf(無效的選項\n);break;}}102.副程式Ⅰmanager_main(管理者主要功能區)voidmanager_main(){charchoice;//輸入選項之用printf(管理者順利登入);printf(\n);printf(====================mainmenu=====================);printf(\n);printf(a.新增會員);printf(\n);printf(d.刪除會員);printf(\n);printf(q.儲存資料並跳出);printf(\n);printf(==================================================);printf(\n);printf(請選擇);fflush(stdin);//清空緩衝區scanf(%c,&choice);//輸入選項switch(choice){case'a':for(i=1;i=CLUB_NUM;i++){if(clubs[i].id==-1){printf(會員新增資料將建立在第%d位置\n,i);printf(請輸入新增會員的ID:);scanf(%d,&id);result=search_club(clubs,id);if(result!=-1){printf(會員ID重複輸入,新增失敗,請重新登入\n);exit(1);11}else{clubs[i].id=id;printf(請輸入新增會員的姓名:);scanf(%s,&clubs[i].name);printf(請輸入新增會員的密碼:);scanf(%d,&clubs[i].pwd);}break;}}save_club(clubs);//呼叫副程式:儲存結果break;case'd':printf(請輸入欲刪除會員ID:);fflush(stdin);scanf(%d,&id);printf(\n);result=search_club(clubs,id);//呼叫副程式:查詢是否在會員名單中,正確傳回該indexif(result==-1){printf(會員ID輸入錯誤,請重新執行\n);exit(1);}else{clubs[result].id=-1;}save_club(clubs);//呼叫副程式:儲存結果break;default:printf(無效的選項\n);break;}}12Ⅱuser_exam(檢驗會員ID,密碼)intuser_exam(structCLUBclubs[]){inti;intid,passwd;//輸入選項用intresult;//儲存search副程式傳回值printf(請輸入會員ID:);scanf(%d,&id);printf(\n);result=search_club(clubs,id);//呼叫副程式:檢驗該id是否為會員if(result==-1){printf(錯誤的會員ID\n);//會員id輸入錯誤exit(1);13}else{for(i=1;i=3;i++){printf(請輸入會員密碼:);scanf(%d,&passwd);if(passwd==clubs[result].pwd)//密碼登入正確{printf(\n會員順利登入,請繼續使用\n);returnresult;//傳

1 / 46
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功