版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)題目:活期儲(chǔ)蓄賬目管理學(xué)院:班級(jí):學(xué)生姓名:學(xué)生學(xué)號(hào):指導(dǎo)教師:2013 年11月27 日課程設(shè)計(jì)任務(wù)書姓名班級(jí)學(xué)號(hào)設(shè)計(jì)題目活期儲(chǔ)蓄賬目管理理論要點(diǎn)1. 活期儲(chǔ)蓄處理中,儲(chǔ)戶開戶、銷戶、存入、支出活動(dòng)頻繁,系 統(tǒng)設(shè)計(jì)要求:2. 能比較迅速地找到儲(chǔ)戶的帳戶,以實(shí)現(xiàn)存款、取款記賬;并能 實(shí)現(xiàn)排序。3. 能比較簡單,迅速地實(shí)現(xiàn)插入和刪除,以實(shí)現(xiàn)開戶和銷戶的需 要。設(shè)計(jì)目標(biāo)1. 代替營業(yè)員進(jìn)行許多繁雜的手動(dòng)操作。2. 給用戶帶來了很大的方便。3. 節(jié)省許多人力資源。4. 提高人們的工作效率。研究方法 步驟1. 設(shè)計(jì)程序流程圖2. 編寫源程序3. 編譯運(yùn)行,對(duì)指定文件進(jìn)行編碼譯碼預(yù)期結(jié)果
2、實(shí)現(xiàn)對(duì)既定文件的讀入,編碼壓縮后存入另一文件,調(diào)出編碼后 的文件進(jìn)行譯碼輸出并存入新文件。計(jì)劃與進(jìn) 步的安排1. 搜集資料,理解原理,分析已有的編碼1天2. 分模塊分析,畫出實(shí)驗(yàn)流程圖1天3. 編寫源代碼2天4. 編譯運(yùn)行,對(duì)既定文件進(jìn)行編碼譯碼2天5. 實(shí)驗(yàn)總結(jié)1天摘要1題目分析目錄錯(cuò)誤!未定義書簽錯(cuò)誤!未定義書簽2概要設(shè)計(jì) 23詳細(xì)設(shè)計(jì) 24調(diào)試設(shè)計(jì) 55用戶使用說明 66 測試結(jié)果 67 結(jié)論體會(huì) 88 參考文獻(xiàn) 89源程序9摘要隨著計(jì)算機(jī)的普及,現(xiàn)代人越來越多的想到用計(jì)算機(jī)來代替許多人做的事 情。從而提高辦事效率,使經(jīng)濟(jì)收入更加可觀,從而就產(chǎn)生了計(jì)算機(jī)這門課程。 隨著信息技術(shù)的飛速發(fā)展
3、,大量信息需要傳輸,傳輸信息就要先經(jīng)過編碼,然后 再譯碼,可見編碼技術(shù)的提高對(duì)整個(gè)信息產(chǎn)業(yè)有著舉足輕重的作用。而計(jì)算機(jī)主要是通過程序來實(shí)現(xiàn)各種事情的,再者程序也必須通過各種算法才能達(dá)到存儲(chǔ)各 種數(shù)據(jù),所以數(shù)據(jù)結(jié)構(gòu)這門課程就應(yīng)運(yùn)而生。本課程設(shè)計(jì)主要是用數(shù)據(jù)結(jié)構(gòu)編寫 關(guān)于活期儲(chǔ)蓄賬目管理的算法,來達(dá)到活期儲(chǔ)蓄賬目管理的目的。關(guān)鍵詞:編碼 存儲(chǔ) 活期儲(chǔ)存賬目管理錯(cuò)誤!未定義書簽數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)1題目分析活期儲(chǔ)蓄管理系統(tǒng)用戶通過該系統(tǒng)可以進(jìn)行存款、取款、銷戶等業(yè)務(wù)。該系 統(tǒng)在金融業(yè)給人民帶來了很大的方便,系統(tǒng)開發(fā)成功后,一旦應(yīng)用于銀行領(lǐng)域, 會(huì)給管理員與用戶帶來很大的方便,其主要作用具體如下:1)、可
4、以代替營業(yè)員進(jìn)行許多繁雜的手動(dòng)操作。2)、給用戶帶來了很大的方便。3 )、可以節(jié)省許多人力資源。4 )、可以提高人們的工作效率?;钇趦?chǔ)蓄賬目管理系統(tǒng)主要是由于在活期儲(chǔ)蓄處理中,儲(chǔ)戶開戶、銷戶、存入、支出活動(dòng)頻繁,為實(shí)現(xiàn)儲(chǔ)戶的各種操作而設(shè)計(jì)的, 本課程設(shè)計(jì)的主要功能包 括實(shí)現(xiàn)儲(chǔ)戶開戶、銷戶、存入、支出等活動(dòng),為了能比較迅速找到賬戶,實(shí)現(xiàn)這 樣的幾個(gè)功能,就要通過鏈表來存儲(chǔ)數(shù)據(jù)結(jié)構(gòu),其結(jié)構(gòu)則按照C語言的相關(guān)知識(shí) 定義結(jié)構(gòu)體,其中儲(chǔ)戶開戶、銷戶就是實(shí)現(xiàn)鏈表的插入與刪除,而存入、支出等 活動(dòng)則是實(shí)現(xiàn)鏈表中結(jié)點(diǎn)的查找,然后進(jìn)行更改。2概要設(shè)計(jì)1) 、數(shù)據(jù)結(jié)構(gòu):typedef struct message
5、 char n ame10; char sex3; int old; char no20; double base; double ir; int code; int year; int yday; message *n ext;message,*Message;2) 、各種函數(shù)說明:Message out()將txt文件中的信息讀出 tm * date();調(diào)用系統(tǒng)時(shí)間void make();對(duì)文件中已有賬戶進(jìn)行處理 void it(Message );將信息寫入txt文件 void create()創(chuàng)建新賬戶void debit(Message);從賬戶中取款 void credit(Me
6、ssage);向賬戶中存款 in t chaxu n();查詢賬戶信息void rework(Message);修改賬戶密碼 int ma in();主函數(shù)3詳細(xì)設(shè)計(jì)1)、頭文件headerfile.h中,聲明結(jié)構(gòu)體和函數(shù):typedef struct message char n ame10; char sex3; int old;char no20; double base; double ir; int code; int year; int yday; message *n ext;message,*Message; Message out();tm * date(); void ma
7、ke();void it(Message ); void create();void debit(Message); 圖1程序結(jié)構(gòu)圖void credit(Message); int chax un();void rework(Message);2)int main()/主函數(shù)圖1程序結(jié)構(gòu)圖int choice=0;while(1) cout請(qǐng)選擇操作:1、創(chuàng)建賬戶2、查詢賬戶0、退出n;cin choice;switch(choice)case 1:create();break;case 2:chax un() ;break;case 0:retur n 0;default:coutn ex
8、t;while(p!=NULL)for(i nt i=1;itm_yday-p-yday+365*(d-tm_year-p-year);i+) 一 一 p-base=p-base+p-base*p-ir;p=p-n ext;q=head-n ext;ofstream fout(Message.txt);fout.close();while(q!=NULL)it(q);q=q- next;Message out()/將 txt文件中的信息讀出Message p,q,head;head=new message;p=head;ifstream fin (Message.txt);if(!fin) c
9、out文件打開失敗 n;return head;elsewhile(!fi n.eof()q=new message;finq-n ameq-sexq-old q-no q-baseq-irq-codeq-yea rq-yda;q- next=NULL;p-n ext=q;p=p-n ext;fin .close();retur n head;void it(Message q)/將信息寫入txt文件ofstream fout(Message.txt,ios:app);if(!fout) cout文件打開失敗 n; foute ndln ame sexoldnobasev ir codev t
10、m_yearvv tm_yday; fout.close();void create。/創(chuàng)建賬戶Message q=new message; cout*請(qǐng)輸入客戶的信息*name;coutvv性另廿:;cin q-sex;cout年齡:;cinq-old;coutvv身份證號(hào):;cinq-no;cout本金:;cin q-base;coutvv禾 率:;cin q-ir;coutvv密碼:;cin q-code; q-year=d-tm_year;q-yday=d-tm_yday; q-n ext=NULL;it(q);士void debit(Message p)/取款double mon e
11、y,m;coutvv請(qǐng)輸入取款金額:;cinmon ey;m=p-base-m on ey;if(mv0.00)coutvv余額不足!n;else coutvv取款成功!nvv當(dāng)前余額為:vvm;p-base=m;coutvvendl; 丄void credit(Message p)/存款double mon ey,m;coutvv請(qǐng)輸入存款金額:;ci nmo ney;m=p-base+m on ey;coutvv存款成功!nvv當(dāng)前余額為:vvm;p-base=m;coutvvendl;void rework(Message p)/修改密碼int code1,code2;coutvv請(qǐng)輸入
12、新密碼:;cin code1;coutvv請(qǐng)?jiān)俅屋斎胄旅艽a:;c in code2; if(code1=code2)coutvv修改密碼成功! n;p-code=code1; else coutvv兩次輸入的新密碼不一致!修改密碼失?。;in t chaxu n()查詢賬戶make();Message head=new message;head=out();Message p,q;p=head-n ext; char a20;i nt b,choice;coutvv請(qǐng)輸入要查詢的賬戶的身份證號(hào):;c in a;cout請(qǐng)輸入密碼:;c in b;while(p!=NULL)if(strcmp
13、(a,p-n o)=0&b=p-code)coutvv*要查詢的賬戶信息為*endl;coutvv姓名vvsetw(6)性別setw(5)年齡 setw(15)vv身份證號(hào)setw(13)vv余額n amevvsetw(5)vvp-sexvvsetw(5)vvp-oldno basevirvve ndl;break;else p=p-n ext;if(p=NULL)cout choice;switch(choice)case 1:credit(p);break;case 2:debit(p);break;case 3:rework(p);break;case 0:retur n 0;defau
14、lt:coutvv你敲錯(cuò)鍵了。n;break;q=head-n ext;ofstream fout(Message.txt);fout.close(); while(q!=NULL)it(q);q=q-n ext;4調(diào)試分析程序調(diào)試采用Dev C+實(shí)現(xiàn),程序在調(diào)試過程中遇到了各種問題,首先在開 戶程序是時(shí)我是主函調(diào)試錯(cuò)誤,在原理上是可行,但調(diào)試時(shí)總得不到正確結(jié)果, 后來改為基本類型整型后就很好的得到了滿意結(jié)果,其它一些小錯(cuò)誤在不斷地調(diào) 試,不斷地改善后,基本達(dá)到可滿意的效果155用戶使用-T舌期儲(chǔ)蓄帳目管理系統(tǒng)十1,2,按步驟開戶完成一系列操作戶 肖 Ail詢?cè)兿㈣脰诵?戶名口戶 瑩賬用 戶照
15、矍si習(xí)岀札7,8,圖2主界面6測試結(jié)果i Eildd.exeX用戶取款業(yè)務(wù)dx=1製號(hào)工辦A入取圖3取款N0.1NO. 2NO.3NO. 4NO.5NO. 6123654789987456.00三浩1236547899874561&Q&.0012365478998745610000.00辜浩1236547899874561&Q&.001112365478998745610000.00李浩1236547899874561000B.00圖4用戶資料圖5余額查詢口 X務(wù)c子符數(shù)=李浩份證號(hào)碼:123654789987456:10000“添加用戶云姓身聲 戶戶金成 用用戶戶 入入開用 iAto 請(qǐng)請(qǐng)
16、輸添圖6用戶添加7結(jié)論體會(huì)第一次做課程設(shè)計(jì),開始自己讀題時(shí),思路不是很清晰,首先定義了一個(gè)結(jié) 構(gòu)體,包含了儲(chǔ)戶的各類信息,如姓名,賬號(hào),金額等等,并利用文件將用戶信 息加以存儲(chǔ)。開戶時(shí)將輸入的信息寫入文件,存款和取款時(shí)對(duì)用戶的存款加以處 理并更新到文件中。在分析好活期儲(chǔ)蓄帳目管理的功能模塊后,開始編寫代碼, 通過這次對(duì)銀行管理系統(tǒng)的編寫與調(diào)試, 鞏固了有關(guān)結(jié)構(gòu)體的知識(shí)及其操作,鍛 煉了實(shí)際應(yīng)用能力。8參考文獻(xiàn)1 馮博琴.軟件技術(shù)基礎(chǔ)(修改版)西安交通大學(xué)出版社,1997.2 嚴(yán)蔚敏.數(shù)據(jù)結(jié)構(gòu).清華大學(xué)出版社,2003.3 李蕓芳.軟件技術(shù)基礎(chǔ)(第二版).清華大學(xué)出版社,2000.4 徐孝凱.數(shù)
17、據(jù)結(jié)構(gòu)(C語言描述).清華大學(xué)出版社,2004.9源程序#i nclude #i nclude#in cludevc oni o.h#i nclude姓名,身份證號(hào),以生成自動(dòng)賬#defi ne file temp.txt/數(shù)據(jù)存儲(chǔ)的文件名struct user用戶類型定義(賬號(hào),余額)int id;char n ame20;char pers on_nu m19;double mon ey;void add()添加用戶資料printf(%30sn,* 添加用戶 *);printf(nn);struct user getuser();int count();/函數(shù)目的:計(jì)算文件中的記錄數(shù)目號(hào)F
18、ILE *fp;int nu mber;struct user temp;if(fp=fope n(file,ab)=NULL)printf(cannot open file!n); exit(1);temp=getuser();讀取用戶名nu mber=co un t();temp.id=nu mbe葉1;/生成自動(dòng)賬號(hào)fwrite(&temp,sizeof(struct user),1,fp);printf(添加用戶成功!n);fclose(fp);in t cou nt()函數(shù)目的:計(jì)算文件中的記錄總數(shù)FILE *fp;int num;struct user temp;num=0;if(
19、fp=fope n(file,rb)=NULL)printf(cannot open file!n”); exit(1);while(fread(&temp,sizeof(struct user),1,fp)nu m+;fclose(fp);return num;struct user getuser()void get name(char *n ame);void getpers on_nu m(char *pers on_nu m);struct user temp;printf(請(qǐng)輸入用戶姓名(字符數(shù)=100)scan f(%lf, &temp.m on ey);fflush(stdi
20、n);if(temp.mo ney)100.0)printf(開戶金額不能小于100n);elsebreak;printf(重新輸入開戶金額:);while(1);return temp;void getname(char *name)/函數(shù)功能:讀取用戶姓名(字符數(shù)=20) printf(姓名不能超過20個(gè)字符!n); else break;printf(重新輸入姓名:);while(1);/循環(huán)以保證讀入數(shù)據(jù)有效 void getperson_num(char*person_num)/ 函數(shù)功能:讀取用戶身份證號(hào)碼 (15位或者18位)doint i,mark;char ch;for(i=
21、0,mark=0;i+)/輸入有效性判斷(只能是數(shù)字)if(ch=getchar()!=n)if(ch=0)pers on_nu mi=ch;elseprintf(身份證號(hào)碼只能是數(shù)字!n);mark=1;break;elsebreak;pers on_nu mi=0;if(mark=1)con ti nue;if(strle n(pers on_nu m)!=15&strle n(pers on_nu m)!=18) printf(身份證號(hào)碼只能是15位,或者18位!n);elsebreak;printf(重新輸入身份證號(hào)碼:);while(1);循環(huán)以保證讀入數(shù)據(jù)有效11數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)v
22、oid select_name()/按照姓名查詢賬戶余額void get name(char *n ame);printf(%30sn,*按照姓名查詢賬戶余額*);printf(%8s %15s %15s %10sn,賬號(hào),用戶姓名,身份證號(hào)碼,存款余額 );printf(nn);FILE * fp;struct user temp;char n ame20;if(fp=fope n(file,rb)=NULL)printf(cannot open file!n);exit(1);printf(輸入要查詢的姓名:);/調(diào)用讀取用戶名函數(shù)get name( name);while(fread(&
23、temp,sizeof(struct user),1,fp)/ 循環(huán)讀取每一條記錄判斷是否為要查看的記錄if(strcmp(temp .n ame ,n ame)=0)printf(NO.%d %15s %15s %.2fn,temp.id,,temp.person_num,temp. mon ey);fclose(fp);void select_id()按照賬號(hào)查詢賬戶余額int coun t();printf(%30sn,*按照編號(hào)查詢賬戶余額*);printf(%8s %15s %15s %10sn,編號(hào),用戶姓名,身份證號(hào)碼,存款余額 );printf(nn);FIL
24、E * fp; struct user temp; int i,max num;if(fp=fope n(file,rb)=NULL)printf(cannot open file!n”); exit(1);maxnum=co un t();printf(輸入要查詢賬號(hào):);判斷賬號(hào)是否在記錄中sca nf(%d,&i);if(imax num)printf(你要查詢的賬號(hào)不存在!);return;while(fread(&temp,sizeof(struct user),1,fp)循環(huán)讀取每一條記錄判斷是否為要查看的記錄if(temp.id=i)printf(NO.%d %15s %15s
25、%.2fn,temp.id,,temp.person_num,temp. mon ey);fclose(fp);void display()/顯示用戶資料printf(%30sn,* 用戶資料顯示 *);printf(%8s %15s %15s %10sn,賬號(hào),用戶姓名,身份證號(hào)碼,存款余額 );printf(nn);FILE * fp;struct user temp;if(fp=fope n(file,rb)=NULL)printf(cannot open file!n); exit(1);while(fread(&temp,sizeof(struct user),1,
26、fp)printf(NO.%d %15s %15s %.2fn,temp.id,,temp.person_num,temp. mon ey);fclose(fp);void save_mo ney() /函數(shù)功能:按賬號(hào)存款printf(%30sn,* 用戶存款業(yè)務(wù) *);printf(nn);int coun t();FILE *fp;int i,num ,mark;struct user *temp;num=cou nt();根據(jù)記錄數(shù)申請(qǐng)空間temp=(struct user *)malloc(num*sizeof(struct user);if(fp=fope n(f
27、ile,rb)=NULL)printf(cannot open file!n);exit(1);for(i=0;i num;i+)/將文件內(nèi)容存入數(shù)組fread(&tempi,sizeof(struct user),1,fp);fclose(fp);printf(輸入要存款賬號(hào):);/讀取存款賬號(hào)sca nf(%d,&mark);if(marknum)printf(你要存款賬號(hào)不存在!);return;if(fp=fope n(file,wb)=NULL)/寫方式打開文件,覆蓋原文件中的內(nèi)容printf(cannot open file!n);exit(1);for(i=0;i nu m;i+
28、)if(tempi.id=mark)double mon ey=0;printf(輸入要存入的金額:); sea nf(%lf,&mon ey);if(mon ey=0)printf(只能為正數(shù)!n);mon ey=0;tempi.m oney +=mon ey;/修改該用戶的信息 fwrite(&tempi,sizeof(struct user),1,fp);fclose(fp);free(temp);printf(你存款業(yè)務(wù)已辦妥!n);void get_mo ney()函數(shù)功能:用戶取款printf(%30sn,* 用戶取款業(yè)務(wù) *); printf(nn);int coun t();F
29、ILE *fp;int i,num ,mark;struct user *temp;num=cou nt();/根據(jù)記錄數(shù)申請(qǐng)空間temp=(struct user *)malloc(num*sizeof(struct user);if(fp=fope n(file,rb)=NULL)printf(cannot open file!n); exit(1);for(i=0;i nu m;i+)讀取文件內(nèi)容fread(&tempi,sizeof(struct user),1,fp);fclose(fp);printf(輸入要取款賬號(hào):); sca nf(%d,&mark); if(marknum)
30、printf(你要取款賬號(hào)不存在門; return;if(fp=fope n(file,wb)=NULL)printf(cannot open file!n”); exit(1);for(i=0;i num;i+)/寫方式打開文件,覆蓋原文件中的內(nèi)容if(tempi.id=mark)double mon ey=0;printf(輸入要取出的金額:);sea nf(%lf,&mon ey);if(mo neytempi.m on ey)printf(你的余額不足!n);mon ey=0;tempi.m oney -=mon ey;fwrite(&tempi,sizeof(struct user)
31、,1,fp);fclose(fp);free(temp);printf(你取款業(yè)務(wù)已辦妥!n);void del()銷戶int eoun t();printf(%30sn,* 注銷賬戶 *);printf(%8s %15s %15s %10sn,賬號(hào),用戶姓名,身份證號(hào)碼,存款余額 );printf(nn);FILE * fp; struct user temp; int i,max num;if(fp=fope n(file,rb)=NULL) printf(cannot open file!n); exit(1);maxnum=co un t();printf(輸入要銷戶賬號(hào):);判斷編號(hào)是否在記錄中sca nf(%d,&i);if(imax num)printf(你要查詢的賬號(hào)不存在!);return;while(fread(&temp,sizeof(str
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 海南2025年國家糧食和物資儲(chǔ)備局海南儲(chǔ)備物資管理處招聘16人筆試歷年參考題庫附帶答案詳解
- 標(biāo)準(zhǔn)緊固件項(xiàng)目籌資方案
- 泰州2025年江蘇泰州職業(yè)技術(shù)學(xué)院口腔門診部招聘合同制口腔助理醫(yī)師筆試歷年參考題庫附帶答案詳解
- 河北河北省第三榮軍優(yōu)撫醫(yī)院選聘高層次退休人才3人筆試歷年參考題庫附帶答案詳解
- 昆明2025年云南昆明市五華區(qū)云銅中學(xué)合同制教師招聘筆試歷年參考題庫附帶答案詳解
- 2025年中國印染廢水特效脫色劑市場調(diào)查研究報(bào)告
- 廣州2025年廣東廣州市天河區(qū)瑜翠園幼兒園編外聘用制專任教師招聘筆試歷年參考題庫附帶答案詳解
- 2025年綠籬機(jī)齒輪項(xiàng)目可行性研究報(bào)告
- 2025年滴流樹脂項(xiàng)目可行性研究報(bào)告
- 2025年楓木實(shí)木地板項(xiàng)目可行性研究報(bào)告
- 30453自考機(jī)電一體化技術(shù)及應(yīng)用小抄
- 旅游規(guī)劃收費(fèi)標(biāo)準(zhǔn)
- 水利生產(chǎn)安全事故典型案例分析
- 機(jī)械基礎(chǔ) 第2版全書電子教案
- 歸檔文件整理規(guī)則
- 醫(yī)院輸血管理委員會(huì)工作總結(jié)
- 海淀高科技高成長20強(qiáng)暨明日之星年度報(bào)告
- 不停電作業(yè)標(biāo)準(zhǔn)流程及表格
- (建筑電氣工程)電氣系統(tǒng)調(diào)試方案
- 2022年煤礦事故應(yīng)急救援演練方案
- 新人教版八年級(jí)下冊(cè)初中物理全冊(cè)課前預(yù)習(xí)單
評(píng)論
0/150
提交評(píng)論