❶ 畢業論文 活期儲蓄賬目管理系統 主要內容、研究方法和思路
畢業論文 活期儲蓄賬目管理系統,開題報告。
我能
寫完,,,開題格式發來
❷ 用C++寫一個活期存儲賬目管理
這就是我們課本的例題
❸ 100財富值求銀行儲蓄業務賬目管理 課程設計程序代碼 要原創的 急用!!
財富值求銀行儲蓄業務賬目管理 課程設計程序代碼
你怎麼分析,這樣我才理解
這個多少字的
❹ 數據結構課程設計(c語言):活期儲蓄處理
#include <iostream>
#include <string>
#include <time.h>
using namespace std;
int total; //初始時銀行現存資金總額
int closeTime; //營業結束時間
int arriveTime; //兩個到達事件之間的間隔上限
int dealTime; //客戶之間交易的時間上限
int dealMoney = 30000; //交易額上限
int currentTime = 0; //當前時間
int totalTime = 0; //客戶逗留總時間
int counter = 0; //客戶總數
int number = 1; //初始客戶序列號+
struct service
{
int num; //客戶號
string type; //到達或離開
int beginTime;
int endTime;
int money; //正數為存款,負數為取款
service* next;
};
struct queue
{ //隊列
service* head;
service* rear;
};
void push(queue &q,int d)
{// 插入元素d為Q的新的隊尾元素
service* temp = new service;
temp->money = d;
temp->next = NULL;
if(NULL == q.head)
{//隊列為空,初始化
q. head = temp;
q. rear = temp;
}//if
else
{//隊列不為空,插入元素d
q. rear->next = temp;
q. rear = q.rear->next;
}//else
}
void pop(queue &q)
{// 若隊列不空,出對列函數
service* temp;
temp = q. head;
if(NULL ==q. head->next)
q.head = q. rear =NULL;
else
q. head=q. head->next;
delete temp;
}
service* front(queue &q)
{//返回隊首元素
return q. head;
}
service* back(queue &q)
{//返回隊尾元素
return q. rear;
}
service* searchAndDel(queue &q,int m)
{//在隊列中尋找可處理元素
service* sign = q. head; //標記頭節點
service* temp;
while(NULL != q. head)
{
if((-(q. head->money)) <m)
{//隊首元素可以處理
if(q. head==q.rear)
{
temp = q. head;
q. head = q. rear = NULL;
return temp;
}//if
else
{//隊首元素出列
temp = q. head;
q. head = q. head->next; // 首節點後移一位,返回原首節點
return temp;
}//else
}//while
else
{//隊首元首不能被處理
if(q. head == q. rear){}
else
{//首節點移到隊列尾部
q. rear->next = q. head;
q. rear = q. rear->next;
q. head =q. head->next;
q. rear->next = NULL;
}//else
}//else
if(q. head == sign)//隊列循環一周時停止
return NULL;
}
return NULL;
}
bool state =1; //用於判斷是否有窗口在處理
int currentTimeOfDeal = 0;
int theArriveTime = 0;
queue eq; //事件隊列
queue fq; //隊列一
queue sq; //對列二
//初始化三個隊列
void arrive()
{/*"到達"函數 隨機產生顧客,進入隊列一
產生到達事件 進入事件隊列*/
push(fq,(rand()% (2*dealMoney) -dealMoney)); //隨機產生顧客加入第一隊列
back(fq)->beginTime = currentTime;
back(fq)->num = number;
push(eq,(back(fq)->money)); //將產生事件加入事件隊列
back(eq)->beginTime = currentTime;
back(eq)->type = "到達";
back(eq)->num = number;
++number;
}
void putMoney()
{ //存款函數
total += front(fq)->money; //更新資金總額
push(eq,front(fq)->money); //加入事件隊列 離開
back(eq)->type = "離開";
back(eq)->num = front(fq)->num;
back(eq)->endTime = (front(fq)->beginTime + rand()%dealTime +1);
++counter; //更新客戶總數
totalTime += (back(eq)->endTime - front(fq)->beginTime); //更新逗留時間
pop(fq); //刪除第一隊列第一個業務
currentTimeOfDeal = back(eq)->endTime;
state =0;
}
void getMoney()
{//取款函數
if( (-fq.head->money) > total )
{//資金短缺 加入第二隊列
push( sq,front(fq)->money );
back(sq)->beginTime = front(fq)->beginTime;
back(sq)->num = front(fq)->num;
pop(fq);
}//if
else
{
total += back(fq)->money;
push(eq,front(fq)->money); //加入事件隊列 離開
back(eq)->type = "離開";
back(eq)->num = front(fq)->num;
back(eq)->endTime = (front(fq)->beginTime + rand()%dealTime +1);
back(eq)->beginTime = 0;
currentTimeOfDeal = back(eq)->endTime;
++counter; //更新客戶總數
totalTime += ( back(eq)->endTime - back(fq)->beginTime ); //更新逗留時間
pop(fq); //刪除第一隊列第一個業務
state =0;
}//else
}
service* temped ;
int randomTemp;
void findAndDeal()
{//在對列中尋找可處理元素,對其進行處理
while( (temped= searchAndDel(sq,total))&&NULL != temped )
{//查找可處理取款
total += temped->money; //更新資金總額
push(eq,temped->money); //加入事件隊列訓 離開
back(eq)->type = "離開";
back(eq)->num = temped->num;
randomTemp = rand()%dealTime +1;
back(eq)->endTime = currentTime + randomTemp ;
currentTimeOfDeal += randomTemp;
++counter; //更新客戶總數
totalTime += ( back(eq)->endTime - temped->beginTime ); //更新逗留時間
delete temped; //刪除節點
temped = NULL;
}
state = 0;
}
int main()
{
printf(" ********************************************\n");
printf(" 歡迎進入銀行模擬系統\n");
printf(" ********************************************\n");
printf("1.開始模擬 0.退出\n");
int n;
scanf("%d",&n);
while(n==1)
{
srand(time(NULL)); //初始化隨機函數
printf("輸入銀行的初始存款:\n");
scanf("%d",&total);
printf("輸入銀行的營業時間:\n");
scanf("%d",&closeTime);
printf("輸入最大到達時間間隔:\n");
scanf("%d",&arriveTime);
printf("輸入最大的處理時間:\n");
scanf("%d",&dealTime);
theArriveTime +=rand()%arriveTime + 1; //首次到達時間
while(currentTime < closeTime)
{
++currentTime;
if( currentTimeOfDeal < currentTime ) currentTimeOfDeal = currentTime ;
if( currentTimeOfDeal == currentTime ) state = 1;
if( currentTime == theArriveTime ) //到達事件
{
arrive();
theArriveTime +=rand()%arriveTime +1;
}//if
if( 1 == state && NULL != fq.head)
{
if(fq.head->money >= 0)
{
putMoney();
findAndDeal();
}//if
else
getMoney();
}//if
}
cout <<endl<< "客戶序列"<<"\t" <<"事件類型"<<"\t\t"<<" 時間"<<"\t"<<" 處理金額"<<endl;
while( NULL != eq.head) //清除事件隊列
{
if(eq.head->type=="離開")
cout << eq.head->num<<"\t\t"<<eq.head->type<<"\t\t"<<"\t\t"<<eq.head->endTime<<"\t\t"<<eq.head->money<<endl;
if(eq.head->type=="到達")
cout << eq.head->num<<"\t\t"<<eq.head->type<<"\t\t"<<"\t\t"<<eq.head->beginTime<<"\t\t"<<eq.head->money<<endl;
pop(eq);
}
cout << "未處理客戶:" <<""<<endl;
while( NULL != fq.head)
{
totalTime += ( closeTime - fq.head->beginTime ); //更新結束時第一隊列中未處理的客戶
cout <<fq.head->num <<" "<<endl ;
++counter;
pop(fq);
}//while
cout <<"客戶逗留平均時間為: " << totalTime/counter <<endl;
cout<<"銀行當前余額:"<<total<<endl;
break;
}//while(n==1)
return 0;
}//maim()
❺ 基於JAVA的銀行儲蓄業務管理系統設計(畢業論文)
可以憑借Baihi告知我們
有機會能夠處理你所遇到的工作
相關的要求也能夠告知我們
ES:\\
交易提醒:預付定金有風險
❻ 活期儲蓄帳目管理
課程設計說明書
一、設計題目
活期儲蓄賬目管理(限最多1人完成)
二、主要內容
編寫一活期儲蓄賬目管理系統,實現儲戶開戶、銷戶、存入、支出等活動。
三、具體要求
能比較迅速地找到儲戶的帳戶,以實現存款、取款記賬
能比較簡單,迅速地實現插入和刪除,以實現開戶和銷戶的需要
測試數據及測試結果請在上交的資料中寫明;必須上機調試通過
按《數據結構課程設計大綱》中的要求完成課程設計報告格式。
四、主要技術路線提示
本問題技術實現上不難,主要考慮優化問題。根據題意要求「快速」,得考慮演算法和存儲結構的選取。
五、進度安排
共計兩周時間,建議進度安排如下:
1. 選題,應該在上機實驗之前完成
2. 需求分析、概要設計可分配4學時完成
3. 詳細設計可分配4學時
4. 調試和分析可分配10學時。
2學時的機動,可提前安排部分提前結束任務的學生答辯
六、完成後應上交的材料
設計結束後,每個學生必須上交的材料有:
1 《課程設計報告》列印稿一份
2.課程設計的源代碼電子文檔一份
七、推薦參考資料
1. 馮博琴 等編著,《軟體技術基礎》(修改版),西安交通大學出版社,1997
2. 嚴蔚敏 等著,《數據結構》,清華大學出版社,2003
3. 李芸芳 等著,《軟體技術基礎》(第二版),清華大學出版社,2000
4. 徐孝凱 等著,《數據結構(C語言描述)》,清華大學出版社,2004
指導教師 簽名日期 年 月 日
系 主 任 審核日期 年 月 日
目 錄
摘 要……………… …… ………………………………………………… ……...1
1 引 言……………………………………………………………..…………….. .2
1.1 問題的提出 2
1.1.1數據結構 2
1.1.2數據結構的發展 2
1.2國內外研究的現狀 2
1.3任務與分析 2
2需求分析…….. ………………………………………………………………… 3
2.1 功能分析 3
2.2 方案分析 3
2.3 演算法分析 3
3 總體設計... ………………………………………………………………………3
3.1 數據結構…………………………………………………………………… ……3
3.2 邏輯結構與物理結構……………………………………… ... …………………4
3.3 模塊功能分析與外部設計………………………………….……………………4
3.4 抽象數據類定義……………………………………… …………………………5
4 詳細設計…... ………………………………………………………………………5
4.1 數據類型定義…………………………………………………………………….5
4.2 主要模塊內部設計……………………………………………………………….5
4.2.1 儲戶開戶模塊………………………………………………………………......5
4.2.2 儲戶銷戶模塊………………………………………………………………..…6
4.2.3 儲戶登錄模塊……………………………………………………………..……7
4.2.4 儲戶存入及支出模塊………………………………………………………..…7
5 實現與調試分析…... …………………………………………………………..…8
5.1實現環境 8
5.2 語言選擇 8
5.3 調試分析 8
6 測試分析... ………………………………………………………………………9
6.1 測試用例………………………………………………………………………….9
6.2 測試結果………………………………………………………………….……11
6.3 性能分析………………………………………………………………………11
結論…………………………………………………………………………………..12
致謝………………………………………………………………………………….13
參考文獻…………………………………………………………….………………14
隨著計算機的普及,現代人越來越多的想到用計算機來代
摘 要
替許多人做的事情。從而提高辦事效率,使經濟收入更加可觀,從而就產生了計算機這門課程。而計算機主要是通過程序來實現各種事情的,再者程序也必須通過各種演算法才能達到存儲各種數據,所以數據結構這門課程就應運而生。本課程設計主要是用數據結構編寫關於活期儲蓄賬目管理的演算法,來達到活期儲蓄賬目管理的目的。
關鍵詞: 計算機 演算法 數據結構 管理
1 引 言
1.1 問題的提出
隨著計算機的普及,現代人越來越多的想到用計算機來代替許多人做的事情。從而提高辦事效率,使經濟收入更加可觀,從而就產生了計算機這門課程。而數據結構這門課程也因為數據存儲而產生。從而讓人產生了用數據結構編寫關於活期儲蓄賬目管理的演算法。
1.1.1數據結構
數據結構就是一門研究非數值計算的程序設計問題中計算機的操作對象以及它們之間的關系各操作等的學科
1.1.2數據結構的發展
「數據結構」作為一門獨立的課程在國外是從1968年才開始設立的,但當時並沒有對課程范圍作明確規定。隨後數據結構從表、樹的理論擴充到了網路、集合代數論、格、關系等方面。再後來不斷的擴大了數據結構的內容,並且隨著資料庫系統的發展,數據結構還增加了文件管理的內容。
1.2國內外研究的現狀
目前在我國,「數據結構」這門課程也已經不僅僅是計算機專業的教學計劃中的核心課程之一,而且是其他非計算機專業的主要選修課程之一。「數據結構」在計算機科學中,已經不僅是一般程序設計的基礎,而且是設計和實現編譯程序、操作系統、資料庫系統及其它系統程序和大型應用程序的重要基礎。在國內外,「數據結構」的發展並未終結。而是從兩方面繼續發展下去……
1.3任務與分析
本課題主要的目的是為了編寫一活期儲蓄賬目管理系統,實現儲戶開戶、銷戶、存入、支出等活動。其主要要求是能比較迅速地找到儲戶的帳戶,以實現存款、取款記賬,還要能比較簡單,迅速地實現插入和刪除,以實現開戶和銷戶的需要。
2 需求分析
2.1 功能分析
本課程設計的主要功能包括實現儲戶開戶、銷戶、存入、支出等活動,根據要求是能比較迅速找到賬戶,因此要實現這樣的幾個功能,意思就是要通過鏈表來存儲數據結構,其結構則按照C語言的相關知識定義結構體,其中儲戶開戶、銷戶就是實現鏈表的插入與刪除,而存入、支出等活動則是實現鏈表中結點的查找,然後進行更改。
2.2 方案分析
在本課程設計的方案設計中,已經確定了用鏈表來作為數據的存儲結構,所以這里我採用單鏈表作為其存儲結構,首先用結構體來定義其數據類型,然後通過單鏈表的相關知識將數據按照該數據結構存儲,之後運用文件的相關知識將更改的數據寫入文件中,這樣就完成了本課程設計的方案設計。
2.3 演算法分析
對於本課程設計中,主要運用到了單鏈表的相關知識,其主要演算法也就來源於單鏈表的相關演算法,首先對於儲戶開戶與銷戶主要是鏈表的插入與刪除,與其主要的區別在於其數據類型不一樣而已,在這里我們的數據類型主要是自己定義的類型,還有儲戶的存入及其支出也就是按照相關條件在單鏈表中進行查找與修改運算而已,故此程序的主要演算法都不難。
3 概要設計
3.1 數據結構
該課程設計的數據結構是線性的數據存儲結構,採用的是單鏈表類型的存儲結構。
3.2 邏輯結構與物理結構
該存儲結構是鏈式存儲結構,所以就不像順序存儲結構那樣邏輯結構與物理結構相對應都是線性的,元素在物理結構中的相對位置來表示數據元素之間的邏輯關系。作為非順序存儲結構(鏈式存儲結構)是藉助指示元素物理結構中的存儲地址的指針來表示數據之間的邏輯關系的。
3.3 功能模塊劃分
3.3.1 結構框圖
圖 3.3.1 程序的總體設計圖
3.3.2模塊功能分析及其外部設計
開戶模塊主要是輸入需要開戶的姓名,然後建立開戶賬號,提醒輸入賬號密碼。
銷戶模塊則是輸入需要銷戶的賬號及其密碼,然後從系統中銷去些賬號的相關記錄。
同樣存款是根據提醒輸入需要登錄的賬號,然後再輸入其密碼,之後就可以查看其賬號上的相關資料。
取款則是要求登錄需要存入及其支出的賬號,然後對該賬號進行相關的存入及支出。
程序的外部設計主要是通過編寫一個菜單功能來實現各個模塊功能的調用,從而更好的協調各個模塊功能之間的關系,同時還要編寫一段代碼來實現所有數據更改後將其寫入文件中,實現數據的及時更新,維護數據的正確性。
3.4 抽象數據類定義
typedef struct ElemType
{
char name[8];
int account;
char password[6];
float money;
}ElemType;
4 詳細設計
4.1數據類型定義
首先將活期儲蓄賬目這個數據抽象定義為數據類型ElemType,其中包括賬戶號碼account,姓名name及其賬號密碼password,還有賬號上的金額 money 。然後再將其鏈式存儲結構中的結構類型定義為剛剛說的抽象類型,如下:
typedef struct lnode
{
ElemType data;
struct lnode *next;
}LINK;
4.2 主要模塊內部設計
4.2.1儲戶開戶模塊
儲戶輸入要想開戶的儲戶輸入其姓名及其開戶賬號的密碼,然後顯示開戶成功,則開戶就成功了。
圖 4.2.1 儲戶開戶模塊圖
4.2.2 儲戶銷戶模塊
儲戶輸入需要銷戶的賬號,然後程序自動判斷該賬號是否存在,然後輸入賬號密碼,若賬號與密碼相對應,則刪除該賬號。
圖 4.2.2 儲戶銷戶模塊分析圖
4.2.3 儲戶登錄模塊
圖 4.2.3 賬號登錄模塊分析
4.2.4 儲戶的存入及其支出模塊
儲戶的存取款,首先在登錄賬戶的基礎上,選擇存或者取款,然後輸入相應的金額,若是取款應判斷其金額是否小於賬戶上的金額,如果不小於,則提示儲戶重新輸入相應的金額,或者退出。
圖 4.2.4 儲戶存入及支出模塊分析
5 實現調試與分析
5.1 實現環境
該課程設計中程序的實現環境是VISUAL C++ 6.0 。
5.2 語言選擇
本課程設計選用的語言是C語言。
5.3 調試分析
經過調試分析解決了程序在儲戶開戶過程中關於儲戶的賬號問題,以至於賬號不會出現重復等問題。同時在調試過程中還遇到了在登錄賬號後,對賬號中選擇相應的存款、取款功能時,如果輸入與要求不一致可能導致程序直接結束,這就導致了程序更改的數據沒有寫入文件中,這種無理退出也在程序的調試中給解決了。
6 測試分析
6.1 測試用例
首先進入VC++6.0,然後進入源程序,接著選擇debug文件夾下的1-2-3.exe文件即可運行程序。
圖 6.1 菜單界面
從圖6.1可以看出程序進入到了活期儲蓄賬目管理的菜單界面,並且要求你選擇相應的功能,當我選擇功能1時:
圖 6.2 儲戶開戶
從圖6.2可以知道選擇功能1後,要求輸入開戶姓名,輸入後則自動輸出賬號,並要求我輸入賬號的密碼,按要求輸入後,就顯示開戶成功。說明開戶成功了。再選擇功能4 就返回菜單了。然後我再選擇功能2:
圖 6.3 儲戶銷戶
從圖6.3可以看出再選擇功能2後,就進入儲戶銷戶模式,輸入要銷戶的賬號及其密碼,當顯示賬號銷戶成功則表明儲戶銷戶成功了。同樣返回主菜單,再選擇功能3:
圖 6.4 賬號存取款及查詢金額
從圖6.4可以看出程序實現了登錄賬號存款以及取款的功能,並且還可以查詢金額,也同時更新了賬戶內金額的信息。然後就退出了賬號。返回主菜單選擇相應的功能5進行測試:
圖 6.5 賬戶相應信息
從圖6.5中可以看出該功能也完成了。
6.2 測試結果
從6.1測試用例中,可以看出該程序實現了程序的各個模塊的功能,同時也解決了程序在調試與分析過程中遇到的各種問題。總之這個程序的各個模塊的功能的測試結果合格。
6.3 性能分析
該程序能夠迅速的進行儲戶開戶以及銷戶等各項操作,同時程序在儲戶取款以及存款過程都詳盡的描述了各種操作提示,也解決了程序在不按要求輸入時可能造成的情況進行了適當的處理。可見此課程設計的性能較好。
結 論
通過本次活期儲蓄管理課程設計,實現了儲蓄賬目的存儲及其管理。能比較迅速地找到儲戶的賬戶,以實現存款、取款記賬。同時也能比較簡單,迅速地實現插入和刪除,以實現開戶和銷戶的需要。
本課程設計的與眾不同的地方就在於處理了用戶不按要求輸入造成程序出錯的問題進行了有效的處理,不會造成該系統的崩潰。還有就是在於文件應用方面,雖然以前沒有做過關於文件方面的課程設計,但是經過自己自行復習了文件方面相應的知識,也把文件應運得很好。
本課程設計還未完成之前還存在一些小問題,那就是程序再進行存儲進文件時,出現了一些問題,經過修改和完善,終於解決了這個小問題,使用戶操作的結果都存儲到文件中去了,保證了文件存儲的數據的有效性。
致 謝
感謝在這次課程設計中給予指導的高志升老師,沒有高老師的指導與講解,跟本不可能在這么短的時間內完這個課程設計。同時也感謝在所有給予我支持和幫助的同學,在這里忠心的感謝他們。
參考文獻
[1]楊寶剛.開展企業管理信息化工作的步驟[J].企業管理.2002.(11).12~15
[2]Islamabad. Software tools for forgery detection[J]. Business line.2001. (5). 29~32
[3] 嚴蔚敏.吳偉民編著數據結構(C語言版).清華大學出版社[J].1997.4 IN 7-302-02368-9
[4] 數據結構教程(C語言版)/李春葆,金晶編著.清華大學出版社[J].2006.11 ISBN 7-302-14054-5