數(shù)據(jù)結(jié)構(gòu)和c語(yǔ)言課程設(shè)計(jì)報(bào)告_第1頁(yè)
數(shù)據(jù)結(jié)構(gòu)和c語(yǔ)言課程設(shè)計(jì)報(bào)告_第2頁(yè)
數(shù)據(jù)結(jié)構(gòu)和c語(yǔ)言課程設(shè)計(jì)報(bào)告_第3頁(yè)
數(shù)據(jù)結(jié)構(gòu)和c語(yǔ)言課程設(shè)計(jì)報(bào)告_第4頁(yè)
數(shù)據(jù)結(jié)構(gòu)和c語(yǔ)言課程設(shè)計(jì)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

本文格式為Word版,下載可任意編輯——數(shù)據(jù)結(jié)構(gòu)和c語(yǔ)言課程設(shè)計(jì)報(bào)告

活期儲(chǔ)蓄賬目管理

數(shù)據(jù)結(jié)構(gòu)和c語(yǔ)言課程

設(shè)計(jì)報(bào)告

設(shè)計(jì)題目:活期儲(chǔ)蓄賬目管理

專(zhuān)業(yè):計(jì)算機(jī)科學(xué)與技術(shù)班級(jí):

學(xué)生:

學(xué)號(hào):

2023—1010年其次學(xué)期

活期儲(chǔ)蓄賬目管理

目錄

活期儲(chǔ)蓄賬目管理

設(shè)計(jì)任務(wù)書(shū)

能比較迅速地找到儲(chǔ)戶的賬戶,以實(shí)現(xiàn)存款,取款記賬;能比較簡(jiǎn)單,迅速地實(shí)現(xiàn)插入和刪除,以實(shí)現(xiàn)開(kāi)戶和銷(xiāo)戶的需要。

活期儲(chǔ)蓄賬目管理

本組課題及本人任務(wù)

本組課題:活期儲(chǔ)蓄賬目管理

本人任務(wù):

活期儲(chǔ)蓄賬目管理

程序功能簡(jiǎn)介

實(shí)現(xiàn)對(duì)活期儲(chǔ)蓄賬戶及其交易信息的管理,基本功能如下:

1)儲(chǔ)戶開(kāi)戶

2)儲(chǔ)戶銷(xiāo)戶

3)某賬戶存錢(qián)

4)某賬戶取錢(qián)

5)顯示所有賬戶信息

6)查詢(xún)某賬戶余額

7)查詢(xún)某賬戶交易記錄

8)所有賬戶及其交易信息能夠保存至文件中,并且可以從文件中讀出

活期儲(chǔ)蓄賬目管理

主體內(nèi)容

1.設(shè)計(jì)分析

在這里,要針對(duì)可能用到的函數(shù)進(jìn)行有效的分析,在編程的過(guò)程中,根據(jù)事先想好的思路和材料進(jìn)行。分析可能用到的數(shù)據(jù)結(jié)構(gòu)。首先,對(duì)于同一用戶的操作有:儲(chǔ)戶開(kāi)戶,儲(chǔ)戶銷(xiāo)戶,某賬戶存錢(qián),某賬戶取錢(qián),查詢(xún)某賬戶余額。我們?nèi)绾螌⑦@些信息存儲(chǔ)在一些是第一個(gè)問(wèn)題,這里簡(jiǎn)單項(xiàng)選擇擇的數(shù)據(jù)結(jié)構(gòu)狀況有2種:1、結(jié)構(gòu)體。2、數(shù)組。對(duì)于此次課程設(shè)計(jì)來(lái)說(shuō),那么將用戶以數(shù)組存儲(chǔ)就成為一種較好的簡(jiǎn)單的方法。更深一步考慮,為了便利尋覓用戶是否需要?jiǎng)?chuàng)立一個(gè)鏈表來(lái)存儲(chǔ)用戶的信息。其次,該程序還要求顯示所有賬戶信息(至少包括賬號(hào)、姓名、余額),查詢(xún)某賬戶交易記錄(至少包括是存還是取、金額兩項(xiàng)信息,學(xué)有余力者可包含時(shí)間信息),所有賬戶及其交易信息能夠保存至文件中,并且可以從文件中讀出。所以,該程序還要涉及到文件讀寫(xiě)的內(nèi)容。再次,采用交互工作方式。所以,將要用到switch()語(yǔ)句來(lái)執(zhí)行每一個(gè)功能

活期儲(chǔ)蓄賬目管理

2程序說(shuō)明

活期儲(chǔ)蓄賬目管理

2.操作方法(流程)

活期儲(chǔ)蓄賬目管理

3.設(shè)計(jì)體會(huì)

活期儲(chǔ)蓄賬目管理

附錄

1.程序中的主要變量、函數(shù):

變量:id,name,person_num,money,numbe,temp

函數(shù):add()//添加用戶資料

count()//計(jì)算文件中的記錄總數(shù)

del()//銷(xiāo)戶

display()//顯示用戶資料

getmoney()//用戶取款

getname(char*name)//讀取用戶姓名(字符數(shù)20)

getperson_num(char*person_num)//讀取用戶身份證號(hào)碼(15位或者18位)getuser()

print()//輸出界面

save_money()//按賬號(hào)存款

select_id()//依照賬號(hào)查詢(xún)賬戶余額

select_name()//依照姓名查詢(xún)賬戶余額

2.源程序:

#includestdio.h

#includestring.h

#includeconio.h

#includestdlib.h

#definefiletemp.txt//數(shù)據(jù)存儲(chǔ)的文件名

structuser//用戶類(lèi)型定義(賬號(hào),姓名,身份證號(hào),余額){

intid;

charname[20];

charperson_num[19];

doublemoney;

};

voidadd()//添加用戶資料

{

printf(%30s\n,***添加用戶***);

printf(\n\n);

活期儲(chǔ)蓄賬目管理

structusergetuser();

intcount();//函數(shù)目的:計(jì)算文件中的記錄數(shù)目以生成自動(dòng)賬號(hào)

FILE*fp;

intnumber;

structusertemp;

if((fp=fopen(file,ab))==NULL)

{

printf(cannotopenfile!\n);

exit(1);

}

temp=getuser();//讀取用戶名

number=count();

temp.id=number+1;//生成自動(dòng)賬號(hào)

fwrite(temp,sizeof(structuser),1,fp);

printf(添加用戶成功!\n);

fclose(fp);

}

intcount()//函數(shù)目的:計(jì)算文件中的記錄總數(shù)

{

FILE*fp;

intnum;

structusertemp;

num=0;

if((fp=fopen(file,rb))==NULL)

{

printf(cannotopenfile!\n);

exit(1);

}

while(fread(temp,sizeof(structuser),1,fp))

{

num++;

}

fclose(fp);

活期儲(chǔ)蓄賬目管理

returnnum;

}

structusergetuser()

{

voidgetname(char*name);

voidgetperson_num(char*person_num);

structusertemp;

printf(請(qǐng)輸入用戶姓名(字符數(shù)20):);//讀取相關(guān)開(kāi)戶信息

getname(http://.77);

printf(請(qǐng)輸入用戶身份證號(hào)碼:);

getperson_num(temp.person_num);

printf(輸入開(kāi)戶金額:);

do{//判斷開(kāi)戶金額(=100)

scanf(%lf,temp.money);

fflush(stdin);

if((temp.money)100.0)

printf(開(kāi)戶金額不能小于100\n);

else

break;

printf(重新輸入開(kāi)戶金額:);

}while(1);

returntemp;

}

voidgetname(char*name)//函數(shù)功能:讀取用戶姓名(字符數(shù)20){

do{

scanf(%s,name);

fflush(stdin);

if(strlen(name)==0)

printf(姓名不能為空!\n);

else

if(strlen(name)=20)

printf(姓名不能超過(guò)20個(gè)字符!\n);

活期儲(chǔ)蓄賬目管理

else

break;

printf(重新輸入姓名:);

}while(1);//循環(huán)以保證讀入數(shù)據(jù)有效

}

voidgetperson_num(char*person_num)//函數(shù)功能:讀取用戶身份證號(hào)碼(15位或者18位)

{

do{

inti,mark;

charch;

for(i=0,mark=0;;i++)//輸入有效性判斷(只能是數(shù)字)if((ch=getchar())!='\n')

{

if(ch='9'ch='0')

person_num[i]=ch;

else

{

printf(身份證號(hào)碼只能是數(shù)字!\n);

mark=1;

break;

}

}

else

break;

person_num[i]='\0';

if(mark==1)

continue;

if(strlen(person_num)!=15strlen(person_num)!=18)

printf(身份證號(hào)碼只能是15位,或者18位!\n);

else

break;

printf(重新輸入身份證號(hào)碼:);

}while(1);//循環(huán)以保證讀入數(shù)據(jù)有效

}

voidselect_name()//依照姓名查詢(xún)賬戶余額

{

活期儲(chǔ)蓄賬目管理

voidgetname(char*name);

printf(%30s\n,***依照姓名查詢(xún)賬戶余額***);

printf(%8s%15s%15s%10s\n,賬號(hào),用戶姓名,身份證號(hào)碼,存款余額);printf(\n\n);

FILE*fp;

structusertemp;

charname[20];

if((fp=fopen(file,rb))==NULL)

{

printf(cannotopenfile!\n);

exit(1);

}

printf(輸入要查詢(xún)的姓名:);//調(diào)用讀取用戶名函數(shù)

getname(name);

while(fread(temp,sizeof(structuser),1,fp))//循環(huán)讀取每一條記錄判斷是否為要查看的記錄

if(strcmp(http://.77,name)==0)

{

printf(NO.%d%15s%15s%.2f\n,temp.id,http://.77,temp.person_num,temp.money);

}

fclose(fp);

}

voidselect_id()//依照賬號(hào)查詢(xún)賬戶余額

{

intcount();

printf(%30s\n,***依照編號(hào)查詢(xún)賬戶余額***);

printf(%8s%15s%15s%10s\n,編號(hào),用戶姓名,身份證號(hào)碼,存款余額);printf(\n\n);

FILE*fp;

structusertemp;

inti,maxnum;

if((fp=fopen(file,rb))==NULL)

活期儲(chǔ)蓄賬目管理

{

printf(cannotopenfile!\n);

exit(1);

}

maxnum=count();

printf(輸入要查詢(xún)賬號(hào):);//判斷賬號(hào)是否在記錄中

scanf(%d,i);

if(i1||imaxnum)

{

printf(你要查詢(xún)的賬號(hào)不存在!);

return;

}

while(fread(temp,sizeof(structuser),1,fp))//循環(huán)讀取每一條記錄判斷是否為要查看的記錄

if(temp.id==i)

{

printf(NO.%d%15s%15s%.2f\n,temp.id,http://.77,temp.person_num,temp.money);

}

fclose(fp);

}

voiddisplay()//顯示用戶資料

{

printf(%30s\n,***用戶資料顯示***);

printf(%8s%15s%15s%10s\n,賬號(hào),用戶姓名,身份證號(hào)碼,存款余額);printf(\n\n);

FILE*fp;

structusertemp;

if((fp=fopen(file,rb))==NULL)

{

printf(cannotopenfile!\n);

exit(1);

}

while(fread(temp,sizeof(structuser),1,fp))

{

活期儲(chǔ)蓄賬目管理

printf(NO.%d%15s%15s%.2f\n,temp.id,http://.77,temp.person_num,temp.money);

}

fclose(fp);

}

voidsave_money()//函數(shù)功能:按賬號(hào)存款

{

printf(%30s\n,***用戶存款業(yè)務(wù)***);

printf(\n\n);

intcount();

FILE*fp;

inti,num,mark;

structuser*temp;

num=count();//根據(jù)記錄數(shù)申請(qǐng)空間

temp=(structuser*)malloc(num*sizeof(structuser));

if((fp=fopen(file,rb))==NULL)

{

printf(cannotopenfile!\n);

exit(1);

}

for(i=0;inum;i++)//將文件內(nèi)容存入數(shù)組

fread(temp[i],sizeof(structuser),1,fp);

fclose(fp);

printf(輸入要存款賬號(hào):);//讀取存款賬號(hào)

scanf(%d,mark);

if(mark1||marknum)

{

printf(你要存款賬號(hào)不存在!);

return;

}

if((fp=fopen(file,wb))==NULL)//寫(xiě)方式開(kāi)啟文件,覆蓋原文件中的內(nèi)容{

printf(cannotopenfile!\n);

exit(1);

活期儲(chǔ)蓄賬目管理

}

for(i=0;inum;i++)

{

if(temp[i].id==mark)

{

doublemoney=0;

printf(輸入要存入的金額:);

scanf(%lf,money);

if(money=0)

{

printf(只能為正數(shù)!\n);

money=0;

}

temp[i].money+=money;//修改該用戶的信息

}

fwrite(temp[i],sizeof(structuser),1,fp);

}

fclose(fp);

free(temp);

printf(你存款業(yè)務(wù)已辦妥!\n);

}

voidget_money()//函數(shù)功能:用戶取款

{

printf(%30s\n,***用戶取款業(yè)務(wù)***);

printf(\n\n);

intcount();

FILE*fp;

inti,num,mark;

structuser*temp;

num=count();//根據(jù)記錄數(shù)申請(qǐng)空間

temp=(structuser*)malloc(num*sizeof(structuser));

if((fp=fopen(file,rb))==NULL)

{

printf(cannotopenfile!\n);

exit(1);

}

活期儲(chǔ)蓄賬目管理

fread(temp[i],sizeof(structuser),1,fp);fclose(fp);printf(輸入要取款賬號(hào):);scanf(%d,mark);if(mark1||marknum){printf(你要取款賬號(hào)不存在!);return;}if((fp=fopen(file,wb))==NULL){printf(cannotopenfile!\n);exit(1);}for(i=0;inum;i++)//寫(xiě)方式開(kāi)啟文件,覆蓋原文件中的內(nèi)容{if(temp[i].id==mark){doublemoney=0;printf(輸入要取出的金額:);scanf(%lf,money);if(money=0)//判斷用戶余額是否足夠{printf(只能為正數(shù)!\n);money=0;}elseif(moneytemp[i].money)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論