版權(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ù)書
能比較迅速地找到儲(chǔ)戶的賬戶,以實(shí)現(xiàn)存款,取款記賬;能比較簡(jiǎn)單,迅速地實(shí)現(xiàn)插入和刪除,以實(shí)現(xiàn)開戶和銷戶的需要。
活期儲(chǔ)蓄賬目管理
本組課題及本人任務(wù)
本組課題:活期儲(chǔ)蓄賬目管理
本人任務(wù):
活期儲(chǔ)蓄賬目管理
程序功能簡(jiǎn)介
實(shí)現(xiàn)對(duì)活期儲(chǔ)蓄賬戶及其交易信息的管理,基本功能如下:
1)儲(chǔ)戶開戶
2)儲(chǔ)戶銷戶
3)某賬戶存錢
4)某賬戶取錢
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ǔ)戶開戶,儲(chǔ)戶銷戶,某賬戶存錢,某賬戶取錢,查詢某賬戶余額。我們?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í)間信息),所有賬戶及其交易信息能夠保存至文件中,并且可以從文件中讀出。所以,該程序還要涉及到文件讀寫的內(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)開戶信息
getname(http://.77);
printf(請(qǐng)輸入用戶身份證號(hào)碼:);
getperson_num(temp.person_num);
printf(輸入開戶金額:);
do{//判斷開戶金額(=100)
scanf(%lf,temp.money);
fflush(stdin);
if((temp.money)100.0)
printf(開戶金額不能小于100\n);
else
break;
printf(重新輸入開戶金額:);
}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)//寫方式開啟文件,覆蓋原文件中的內(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++)//寫方式開啟文件,覆蓋原文件中的內(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度愛奇藝體育賽事賽事直播內(nèi)容制作合同:股票投資回報(bào)保障協(xié)議3篇
- 二零二五年度環(huán)保型渣土運(yùn)輸船租賃合同3篇
- 二零二五年電子商務(wù)平臺(tái)運(yùn)營(yíng)咨詢合同2篇
- 二零二五年度桉樹木材加工節(jié)能減排合同3篇
- 二零二五版醫(yī)療扶貧公益項(xiàng)目合同3篇
- 二零二五版股份收購(gòu)項(xiàng)目風(fēng)險(xiǎn)評(píng)估及控制合同3篇
- 二零二五版生態(tài)旅游區(qū)建設(shè)項(xiàng)目招標(biāo)合同及生態(tài)保護(hù)協(xié)議3篇
- 二零二五版數(shù)據(jù)中心電梯緊急搶修及日常維護(hù)合同3篇
- 二零二五年度房產(chǎn)交易居間服務(wù)合同12篇
- 二零二五版國(guó)際農(nóng)業(yè)勞務(wù)輸出與管理合同3篇
- 2024年電信綜合部辦公室主任年度述職報(bào)告(四篇合集)
- 購(gòu)銷合同電子版完整版
- 福建省福州市延安中學(xué)2023-2024學(xué)年八年級(jí)上學(xué)期期末物理模擬試卷+
- 2024年度醫(yī)院肝膽外科實(shí)習(xí)生帶教計(jì)劃課件
- 微機(jī)原理與接口技術(shù)考試試題及答案(綜合-必看)
- 勞務(wù)投標(biāo)技術(shù)標(biāo)
- 研發(fā)管理咨詢項(xiàng)目建議書
- 轉(zhuǎn)錢委托書授權(quán)書范本
- 一種配網(wǎng)高空作業(yè)智能安全帶及預(yù)警系統(tǒng)的制作方法
- 某墓園物業(yè)管理日常管護(hù)投標(biāo)方案
- 蘇教版六年級(jí)數(shù)學(xué)上冊(cè)集體備課記載表
評(píng)論
0/150
提交評(píng)論