




版權(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ǔ)蓄賬目管理
專業(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)戶和銷戶的需要。
活期儲(chǔ)蓄賬目管理
本組課題及本人任務(wù)
本組課題:活期儲(chǔ)蓄賬目管理
本人任務(wù):
活期儲(chǔ)蓄賬目管理
程序功能簡(jiǎn)介
實(shí)現(xiàn)對(duì)活期儲(chǔ)蓄賬戶及其交易信息的管理,基本功能如下:
1)儲(chǔ)戶開(kāi)戶
2)儲(chǔ)戶銷戶
3)某賬戶存錢(qián)
4)某賬戶取錢(qián)
5)顯示所有賬戶信息
6)查詢某賬戶余額
7)查詢某賬戶交易記錄
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ǔ)戶銷戶,某賬戶存錢(qián),某賬戶取錢(qiá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)、姓名、余額),查詢某賬戶交易記錄(至少包括是存還是取、金額兩項(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()//銷戶
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)查詢賬戶余額
select_name()//依照姓名查詢賬戶余額
2.源程序:
#includestdio.h
#includestring.h
#includeconio.h
#includestdlib.h
#definefiletemp.txt//數(shù)據(jù)存儲(chǔ)的文件名
structuser//用戶類型定義(賬號(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()//依照姓名查詢賬戶余額
{
活期儲(chǔ)蓄賬目管理
voidgetname(char*name);
printf(%30s\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(輸入要查詢的姓名:);//調(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)查詢賬戶余額
{
intcount();
printf(%30s\n,***依照編號(hào)查詢賬戶余額***);
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(輸入要查詢賬號(hào):);//判斷賬號(hào)是否在記錄中
scanf(%d,i);
if(i1||imaxnum)
{
printf(你要查詢的賬號(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024~2025學(xué)年廣東八年級(jí)下冊(cè)4月期中考試數(shù)學(xué)試題【帶答案】
- 2024~2025學(xué)年福建泉州八年級(jí)下冊(cè)4月期中考試數(shù)學(xué)試題【帶答案】
- 師生關(guān)系構(gòu)建考核試卷
- 濕敷敷料的透氣性對(duì)皮膚水分蒸發(fā)與熱量散失的關(guān)系探討考核試卷
- 清潔生產(chǎn)技術(shù)應(yīng)用考核試卷
- 印刷機(jī)智能調(diào)度系統(tǒng)的生產(chǎn)安全風(fēng)險(xiǎn)評(píng)估與管理技術(shù)考核試卷
- 自律監(jiān)管與消費(fèi)者權(quán)益保護(hù)考核試卷
- 成本控制與設(shè)計(jì)優(yōu)化考核試卷
- 新型維護(hù)材料在農(nóng)副食品加工中的應(yīng)用考核試卷
- 反浮選技術(shù)在鐵礦石選礦中的應(yīng)用考核試卷
- 矯正牙齒合同協(xié)議書(shū)模板
- 信息安全設(shè)備性能評(píng)測(cè)-洞察闡釋
- 農(nóng)村抗震農(nóng)房裝配式施工安全監(jiān)理合同
- GB/T 45575-2025工業(yè)產(chǎn)品表面缺陷自動(dòng)檢測(cè)系統(tǒng)技術(shù)要求
- 鋁粉加工合同協(xié)議書(shū)
- 大學(xué)語(yǔ)文試題及答案安徽
- 小學(xué)三年級(jí)數(shù)學(xué)下冊(cè)口算練習(xí)題(每日一練共17份)
- 近七年寧夏中考化學(xué)真題及答案2024
- Braden 壓力性損傷評(píng)分表詳解
- 充電寶代理轉(zhuǎn)讓協(xié)議合同
- 銀行客戶投訴處理培訓(xùn)
評(píng)論
0/150
提交評(píng)論