C語言實(shí)現(xiàn)個人財(cái)務(wù)管理軟件_第1頁
C語言實(shí)現(xiàn)個人財(cái)務(wù)管理軟件_第2頁
C語言實(shí)現(xiàn)個人財(cái)務(wù)管理軟件_第3頁
C語言實(shí)現(xiàn)個人財(cái)務(wù)管理軟件_第4頁
C語言實(shí)現(xiàn)個人財(cái)務(wù)管理軟件_第5頁
已閱讀5頁,還剩42頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第C語言實(shí)現(xiàn)個人財(cái)務(wù)管理軟件本文實(shí)例為大家分享了C語言實(shí)現(xiàn)個人財(cái)務(wù)管理軟件的具體代碼,供大家參考,具體內(nèi)容如下

代碼:

/*課程設(shè)計(jì)項(xiàng)目名稱:個人賬戶管理軟件

作者:施瑞文

專業(yè):軟件工程(商業(yè)智能)

時間:2025.1

#includestdio.h

#includewindows.h

#includestring.h

#includeconio.h

#includestdlib.h

#includetime.h

#defineNsizeof(structAccount)

//宏定義

#defineMsizeof(structincome_and_expenditure)

structincome_and_expenditure

//收支情況

floatiae;

//收入或支出

charch;

//-號代表支出,+號代表收入

intyear;

//年月日

intmonth;

intday;

intnum;

//標(biāo)號

charsource_or_aim[50];

//收入來源或支出目的

structincome_and_expenditure*next;

//指針域,后接

structincome_and_expenditure*pre;

//前驅(qū)

typedefstructincome_and_expenditureIAE;

typedefIAE*IAEP;

structAccount

//賬戶信息

charname[10];

//賬號昵稱

charpassword[18];

//密碼

structAccount*next;

//指針域

typedefstructAccountAcc;

typedefAcc*Accp;

//好多自定義函數(shù)~~

Accpff();

//將存賬號的文件里的內(nèi)容輸出到鏈表中

IAEPss();

//將存賬單的文件里的內(nèi)容輸出到鏈表中

voidsignin();

//登陸或注冊

voidlogin();

//注冊賬號

voidlogon();

//賬號登陸

voidmenu();

//菜單

voidover();

//退出系統(tǒng)

voidcolor(shortx);

//控制顏色

voidHideCursor();

//隱藏光標(biāo)

voidtoxy(intx,inty);

//將光標(biāo)移動到X,Y坐標(biāo)處

voidamend_password();

//修改密碼

voidadd_information();

//添加信息

voidprint_information();

//賬單明細(xì)

voidfind_information();

//查找信息

voiddelete_information();

//刪除信息

voidamend_information();

//修改信息

voidsave_account(Accpp);

//保存賬號

voidsave_information(IAEPp);//保存信息

char_name[20],_password[18];

//全局變量記住當(dāng)前登陸賬戶

/*voidcolor(shortx)

if(x=0x=15)

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);

}

else

{

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);

}

voidHideCursor()

//隱藏光標(biāo)

CONSOLE_CURSOR_INFOcursor_info={1,0};

SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),cursor_info);

voidtoxy(intx,inty)

//將光標(biāo)移動到X,Y坐標(biāo)處

COORDpos={x,y};

HANDLEOut=GetStdHandle(STD_OUTPUT_HANDLE);

SetConsoleCursorPosition(Out,pos);

Accpff()

//將存賬號的文件里的內(nèi)容輸出到鏈表中

FILE*fp;

//文件指針

intn=0;

Accphead=NULL;

Accpp2,p;

fp=fopen("account","a+");

//以只讀的方式打開文件

if(fp==NULL)

{

printf("cannotopenfile\n");

}

else

{

while(!feof(fp))

//判斷文件位置標(biāo)志是否移動到文件末尾

{

n++;

p=(Accp)malloc(N);

fread(p,N,1,fp);

if(n==1)

{

head=p;

p2=p;

}

else

//創(chuàng)建鏈表

{

p2-next=p;

p2=p;

}

}

p2-next=NULL;

}

fclose(fp);

returnhead;

voidmenu()

//菜單

system("cls");

//清屏

system("color70");

do{

chart;

toxy(50,5);

printf("個人財(cái)務(wù)管理軟件");

toxy(50,6);

printf("當(dāng)前賬戶為:%s",_name);

toxy(48,8);

printf("|

1.添加信息

|");

toxy(48,10);

printf("|

2.修改信息

|");

toxy(48,12);

printf("|

3.刪除信息

|");

toxy(48,14);

printf("|

4.賬單明細(xì)

|");

toxy(48,16);

printf("|

5.查找信息

|");

toxy(48,18);

printf("|

6.修改密碼

|");

toxy(48,20);

printf("|

7.退出系統(tǒng)

|");

t=getch();

//利用不回顯函數(shù),輸入t,可以不用手動按回車鍵

switch(t)

{

case'1':add_information();break;

case'2':amend_information();break;

case'3':delete_information();break;

case'4':print_information();break;

case'5':find_information();break;

case'6':amend_password();break;

case'7':over();break;

default:;break;

}

}while(1);

//永遠(yuǎn)為真

voidsignin()

//登陸或注冊

system("cls");

HideCursor();

//隱藏光標(biāo)

chart;

system("color72");

toxy(50,5);

printf("個人財(cái)務(wù)管理軟件");

toxy(44,8);

printf("****************************");

toxy(45,10);

printf("請輸入(1:登陸;2:注冊.)");

toxy(44,12);

printf("****************************");

while(1)

{

t=getch();

switch(t)

{

case'1':logon();break;

case'2':login();break;

default:break;

}

}

voidlogon()

//賬號登陸

system("cls");

HideCursor();

Accpp,head;

head=ff();

do{

HideCursor();

//隱藏光標(biāo)

system("color72");

p=head;

chart,c,k;

inti=0;

toxy(50,5);

printf("個人財(cái)務(wù)管理軟件");

toxy(45,6);

printf("--------------------------");

toxy(45,8);

printf("

登陸狀態(tài)

");

toxy(45,10);

printf("*

請輸入您的賬號:");

gets(_name);

toxy(45,12);

printf("*

請輸入您的密碼:");

for(;;)

//此處為輸入密碼不回顯操作

{

k=getch();

//輸入k

if(k=='\r')

//如果輸入k為回車,則跳出循環(huán)

{

break;

}

elseif(k=='\b')

//如果輸入k為刪除鍵

{

if(i0)

//如若密碼還沒完全刪除

{

printf("\b");

printf("");

printf("\b");

i--;

}

}

else

//如果輸入的k既不是刪除鍵,也不是回車鍵

{

_password[i]=k;

//把k的值賦給_password[i];

printf("*");

//輸出*號,保護(hù)用戶隱私

i++;

//密碼位數(shù)加1

}

}

_password[i]='\0';

while(p!=NULLstrcmp(p-name,_name)!=0)

//遍歷鏈表,尋找當(dāng)前輸入的賬戶的賬號

{

p=p-next;

}

if(p!=NULL)

//如果p不為空

{

if(strcmp(p-password,_password)==0)

//如果輸入的密碼正確

{

toxy(48,16);

printf("正在登陸....");

Sleep(500);

//暫停0.5秒

system("cls");

system("color72");

toxy(48,10);

printf("登陸成功!");

break;

//跳出循環(huán)

}

else

//如果輸入的密碼錯誤

{

toxy(48,16);

printf("正在登陸....");

Sleep(500);

system("cls");

system("color72");

toxy(46,8);

printf("-------------------------");

toxy(46,9);

printf("|

|");

toxy(46,10);

printf("|密碼錯誤!是否繼續(xù)?

|");

toxy(46,12);

printf("|1.是

2.否|");

toxy(46,13);

printf("|

|");

toxy(46,14);

printf("-------------------------");

while(1)

{

t=getch();

//輸入t

if(t=='1')

{

system("cls");

//清屏

system("color72");

break;

}

elseif(t=='2')

//如果輸入t為n,進(jìn)入開始界面

{

signin();break;

}

}

}

}

else

//如果p為空,即輸入的賬號不正確

{

toxy(48,16);

printf("正在登陸....");

Sleep(500);

system("cls");

system("color72");

toxy(46,8);

printf("-------------------------");

toxy(46,9);

printf("|

|");

toxy(46,10);

printf("|

賬號錯誤!是否繼續(xù)?|");

toxy(46,11);

printf("|

|");

toxy(46,12);

printf("|

1.是

2.否|");

toxy(46,13);

printf("|

|");

toxy(46,14);

printf("-------------------------");

while(1)

{

c=getch();

if(c=='1')

{

system("cls");

system("color72");

break;

}

elseif(c=='2')

{

signin();break;

}

}

}

}while(1);

//永遠(yuǎn)為真

Sleep(500);

//暫停0.5秒

menu();

//賬號密碼均正確,進(jìn)入主菜單

voidlogin()

//注冊賬號

system("cls");

HideCursor();

//隱藏光標(biāo)

Accpp1;

p1=(Accp)malloc(N);

//向內(nèi)存申請一段空間

do{

HideCursor();

system("color72");

charname[20],password[18],againpassword[18],c,k;

inti=0;;

toxy(50,5);

printf("個人財(cái)務(wù)管理軟件");

toxy(45,6);

printf("-------------------------");

toxy(45,8);

printf("

正在注冊");

toxy(45,10);

printf("*

請輸入賬號:");

gets(name);

toxy(45,12);

printf("*

請輸入密碼:");

for(;;)

//此處為輸入密碼不回顯操作

{

k=getch();

//輸入k

if(k=='\r')

//如果輸入k為回車,則跳出循環(huán)

{

break;

}

elseif(k=='\b')

//如果輸入k為刪除鍵

{

if(i0)

//如若密碼還沒完全刪除

{

printf("\b");

printf("");

printf("\b");

i--;

}

}

else

//如果輸入的k既不是刪除鍵,也不是回車鍵

{

password[i]=k;

//把k的值賦給_password[i];

printf("*");

//輸出*號,保護(hù)用戶隱私

i++;

//密碼位數(shù)加1

}

}

password[i]='\0';

i=0;

toxy(45,14);

printf("*

請確認(rèn)您的密碼:");

for(;;)

//此處為輸入密碼不回顯操作

{

k=getch();

//輸入k

if(k=='\r')

//如果輸入k為回車,則跳出循環(huán)

{

break;

}

elseif(k=='\b')

//如果輸入k為刪除鍵

{

if(i0)

//如若密碼還沒完全刪除

{

printf("\b");

printf("");

printf("\b");

i--;

}

}

else

//如果輸入的k既不是刪除鍵,也不是回車鍵

{

againpassword[i]=k;

//把k的值賦給_password[i];

printf("*");

//輸出*號,保護(hù)用戶隱私

i++;

//密碼位數(shù)加1

}

}

againpassword[i]='\0';

if(strcmp(password,againpassword)==0)

//如果輸入的兩次密碼均正確

{

strcpy(p1-name,name);

strcpy(p1-password,password);

toxy(48,16);

printf("正在注冊....");

Sleep(500);

system("cls");

system("color72");

toxy(48,10);

printf("注冊成功!");

Sleep(500);

//暫停0.5秒

break;

//跳出循環(huán)

}

else

//如果輸入的兩次密碼不同

{

toxy(48,16);

printf("正在注冊....");

Sleep(500);

system("cls");

system("color72");

toxy(46,8);

printf("-----------------------------");

toxy(46,9);

printf("|

|");

toxy(46,10);

printf("|

注冊失?。∈欠窭^續(xù)注冊?|");

toxy(46,11);

printf("|

|");

toxy(46,12);

printf("|

1.是

2.否

|");

toxy(46,13);

printf("|

|");

toxy(46,14);

printf("-----------------------------");

while(1)

{

c=getch();

if(c=='1')

{

system("cls");

system("color72");

break;

}

elseif(c=='2')

{

signin();

break;

}

}

}

}while(1);

//永遠(yuǎn)為真

save_account(p1);

//調(diào)用函數(shù),將p1所指向的內(nèi)容存儲到文件中

toxy(48,12);

printf("正在自動為您登陸....");

Sleep(500);

menu();

//注冊成功后進(jìn)入主菜單

/*修改密碼

方法比較笨,這里是先將儲存在文件中的賬戶信息

輸出在一個鏈表中,遍歷鏈表,尋找當(dāng)前登陸的賬戶賬號,修改該節(jié)點(diǎn)的p-password,

再將修改后的鏈表存到文件中,需要注意的是修改之后再存到文件中需要將該文件中的內(nèi)容

清空*/

voidamend_password()

//修改密碼

system("cls");

//清屏

system("color74");

//看著舒服的顏色

HideCursor();

Accpp,head;

//隱藏光標(biāo),看著更舒服

head=ff();

FILE*fp;

do

{

HideCursor();

//隱藏光標(biāo),看著舒服

p=head;

charpassword[18],newpassword[18],t,k;

inti=0;

toxy(50,5);

//將光標(biāo)移動到坐標(biāo)為(50,5)的位置

printf("個人財(cái)務(wù)管理軟件");

toxy(50,8);

printf("修改密碼");

toxy(48,10);

printf("請輸入舊密碼:");

for(;;)

//此處為輸入密碼不回顯操作

{

k=getch();

//輸入k

if(k=='\r')

//如果輸入k為回車,則跳出循環(huán)

{

break;

}

elseif(k=='\b')

//如果輸入k為刪除鍵

{

if(i0)

//如若密碼還沒完全刪除

{

printf("\b");

printf("");

printf("\b");

i--;

}

}

else

//如果輸入的k既不是刪除鍵,也不是回車鍵

{

password[i]=k;

//把k的值賦給_password[i];

printf("*");

//輸出*號,保護(hù)用戶隱私

i++;

//密碼位數(shù)加1

}

}

password[i]='\0';

i=0;

toxy(48,12);

printf("請輸入新密碼:");

for(;;)

//此處為輸入密碼不回顯操作

{

k=getch();

//輸入k

if(k=='\r')

//如果輸入k為回車,則跳出循環(huán)

{

break;

}

elseif(k=='\b')

//如果輸入k為刪除鍵

{

if(i0)

//如若密碼還沒完全刪除

{

printf("\b");

printf("");

printf("\b");

i--;

}

}

else

//如果輸入的k既不是刪除鍵,也不是回車鍵

{

newpassword[i]=k;

//把k的值賦給_password[i];

printf("*");

//輸出*號,保護(hù)用戶隱私

i++;

//密碼位數(shù)加1

}

}

newpassword[i]='\0';

while(p!=NULLstrcmp(p-name,_name)!=0)//遍歷鏈表,尋找當(dāng)前登陸賬戶的賬號

{

p=p-next;

}

if(p!=NULL)

//如果p不為空

{

if(strcmp(p-password,password)==0)

//如果舊密碼輸入正確

{

strcpy(p-password,newpassword);

//將舊密碼改為新密碼

break;

//跳出循環(huán)

}

else

//如果舊密碼輸入錯誤

{

system("cls");

system("color72");

toxy(46,8);

printf("--------------------------");

toxy(46,9);

printf("|

|");

toxy(46,10);

printf("|

密碼錯誤!是否繼續(xù)?

|");

toxy(46,11);

printf("|

|");

toxy(46,12);

printf("|

1.是

2.否

|");

toxy(46,13);

printf("|

|");

toxy(46,14);

printf("--------------------------");

while(1)

{

t=getch();

//輸入t

if(t=='1')

{

system("cls");

system("color72");

break;

}

elseif(t=='2')

menu();

}

}

}

}while(1);

//永遠(yuǎn)為真

p=head-next;

//使p指向第二個結(jié)點(diǎn)

fp=fopen("account","w");

//先清空原文件內(nèi)容再將修改后的信息寫入文件

if(fp==NULL)

{

printf("cannotopenfile\n");

}

if(fwrite(head,N,1,fp)!=1)

//將head所指向的數(shù)據(jù)寫入fp所指向的文件

{

printf("filewriteerror\n");

}

fclose(fp);

//關(guān)閉文件

fp=fopen("account","a");

//打開account文件,方式為追加

while(p!=NULL)

//p不為空就執(zhí)行循環(huán)體

{

if(fwrite(p,N,1,fp)!=1)

//將p所指向的1個大小為N的數(shù)據(jù)結(jié)構(gòu)寫入fp所指向的文件

{

printf("filewriteerror\n");

}

p=p-next;

//使p指向下一個結(jié)點(diǎn)

}

fclose(fp);

//關(guān)閉文件

toxy(48,14);

printf("修改成功!正在跳轉(zhuǎn)...");

Sleep(500);

//暫停0.5秒

voidsave_account(Accpp1)

//將p1所指向的內(nèi)容存儲到文件中

FILE*fp;

//文件指針

fp=fopen("account","a");

//以追加的方式打開文件

if(fp==NULL)

{

printf("cannotopenfile\n");

}

if(fwrite(p1,N,1,fp)!=1)

//將p1所指向的1個大小為N的數(shù)據(jù)結(jié)構(gòu)寫入fp所指向的文件中

{

printf("filewriteerror\n");

}

fclose(fp);

//關(guān)閉文件

IAEPss()

//將存賬單的文件里的內(nèi)容輸出到鏈表中

FILE*fp;

//文件指針

intn=0;

IAEPhead=NULL;

IAEPp,p2,pr=NULL;

fp=fopen(_name,"ab+");//打開文件,方式為只讀

if(fp==NULL)

//如果打開為空

{

printf("cannotopenfile\n");

}

else

{

while(!feof(fp))

//feof函數(shù)可以檢查文件讀寫位置標(biāo)志是否移動到文件末尾,feof(fp)檢查fp所指向的文件是否結(jié)束,如果是

{

//則函數(shù)值為真,否則為假,即“!feof(fp)”為真,在while循環(huán)中檢查“!feof(fp)”為真,就執(zhí)行循環(huán)體

n++;

p=(IAEP)malloc(M);

//向內(nèi)存申請一段空間

fread(p,M,1,fp);

//從fp所指向的文件讀入1個大小為M的數(shù)據(jù),存儲到p所指向的空間中

if(n==1)

{

head=p;

p2=p;

head-pre=NULL;

}

else

//創(chuàng)建雙向鏈表

{

pr=p2;

//pr是p的前驅(qū)結(jié)點(diǎn)

p-pre=p2;

p2-next=p;

p2=p;

}

}

if(pr!=NULL)

{

pr-next=NULL;

}

}

fclose(fp);

if(n==1)

head=NULL;

returnhead;

voidadd_information()

//添加信息

do

{

system("cls");

//清屏

system("color75");

//顏色

HideCursor();

//隱藏光標(biāo)

IAEPp;

chart;

toxy(50,5);

printf("個人賬戶管理軟件");

p=(IAEP)malloc(M);

//申請一段大小為M的空間

toxy(44,8);

printf("請輸入金額:");

scanf("%f",p-iae);

getchar();

//吸收回車鍵

toxy(44,10);

printf("請輸入收支類型(-代表支出,+代表收入):");

scanf("%c",p-

getchar();

toxy(44,12);

printf("請輸入時間(年月日):");

scanf("%d%d%d",p-year,p-month,p-day);

getchar();

toxy(44,14);

printf("請輸入收入來源或支出目的:");

gets(p-source_or_aim);

save_information(p);

//保存p到文件中

toxy(44,16);

printf("正在保存....");

Sleep(500);

//暫停0.5秒

system("cls");

system("color73");

toxy(46,8);

printf("-------------------------");

toxy(46,9);

printf("|

|");

toxy(46,10);

printf("|保存成功!是否繼續(xù)?

|");

toxy(46,12);

printf("|1.是

2.否|");

toxy(46,13);

printf("|

|");

toxy(46,14);

printf("-------------------------");

while(1)

{

t=getch();

//輸入t

if(t=='1')

{

break;

}

elseif(t=='2')

//如果輸入t為2,進(jìn)入菜單

{

menu();break;

}

}

}while(1);

//永遠(yuǎn)為真

voidprint_information()

//輸出賬單

system("cls");

//清屏

system("color76");

//看著舒服的顏色

HideCursor();

//隱藏光標(biāo),看著更舒服

FILE*fp;

//文件指針

intn=0;

inti=12;

chart;

floatsum=0,sum1=0,sum2=0;

IAEPhead=NULL;

IAEPp,p2,pr=NULL;

fp=fopen(_name,"ab+");//打開文件,方式為只讀

if(fp==NULL)

//如果打開為空

{

printf("cannotopenfile\n");

}

while(!feof(fp))

//feof函數(shù)可以檢查文件讀寫位置標(biāo)志是否移動到文件末尾,feof(fp)檢查fp所指向的文件是否結(jié)束,如果是

{

//則函數(shù)值為真,否則為假,即“!feof(fp)”為真,在while循環(huán)中檢查“!feof(fp)”為真,就執(zhí)行循環(huán)體

n++;

p=(IAEP)malloc(M);

//向內(nèi)存申請一段空間

fread(p,M,1,fp);

//從fp所指向的文件讀入1個大小為M的數(shù)據(jù),存儲到p所指向的空間中

if(n==1)

{

head=p;

p2=p;

head-pre=NULL;

}

else

//創(chuàng)建雙向鏈表

{

pr=p2;

//pr是p的前驅(qū)結(jié)點(diǎn)

p-pre=p2;

p2-next=p;

p2=p;

}

//printf("%d.%d.%-12d%c%-24f%s\n",p-year,p-month,p-day,p-ch,p-iae,p-source_or_aim);

}

fclose(fp);

//關(guān)閉fp所指向的文件

toxy(50,5);

printf("個人賬戶管理軟件");

toxy(54,7);

printf("賬單明細(xì)(按0返回)");

toxy(30,8);

printf("----------------------------------------------------------------");

toxy(30,9);

printf("時

收入來源或支出目的");

toxy(30,10);

printf("----------------------------------------------------------------");

if(pr!=NULL)

{

pr-next=NULL;

p=pr;

while(p!=NULL)

{

toxy(30,i);

printf("%d.%d.%-12d%c%-24f%s\n",p-year,p-month,p-day,p-ch,p-iae,p-source_or_aim);

if(p-ch=='+')

{

sum1+=p-

}

elseif(p-ch=='-')

{

sum2-=p-

}

sum=sum1+sum2;

i++;

p=p-

}

toxy(30,11);

printf("總

計(jì):%f

總支出:%f

總收入:%f",sum,sum2,sum1);

}

elseif(pr==NULL)

{

toxy(50,11);

printf("您還沒記錄任何信息哦~");

}

while(1)

{

t=getch();

if(t=='0')

{

menu();break;

}

}

voidfind_information()

//查找信息

system("cls");

//清屏

system("color77");

//看著舒服的顏色

HideCursor();

//隱藏光標(biāo),看著更舒服

inti=15;

chart;

intyear,month,day;

IAEPp=NULL;

p=ss();

toxy(50,5);

printf("個人賬戶管理軟件");

toxy(54,7);

printf("查找信息");

toxy(40,9);

printf("請輸入您要查找的信息(輸入年月日,空格隔開):");

toxy(50,10);

scanf("%d%d%d",year,month,day);

getchar();

toxy(30,12);

printf("----------------------------------------------------------------");

toxy(30,13);

printf("時

收入來源或支出目的");

toxy(30,14);

printf("----------------------------------------------------------------");

if(p!=NULL)

{

//printf("\n%s\n",p-source_or_aim);

while(p!=NULL)

{

if(p-year==yearp-month==monthp-day==day)

{

toxy(30,i);

printf("%d.%d.%-12d%c%-24f%s\n",p-year,p-month,p-day,p-ch,p-iae,p-source_or_aim);

i++;

}

p=p-next;

}

}

elseif(p==NULL)

{

toxy(50,i);

printf("沒有找到相應(yīng)的信息~");

}

toxy(54,i+1);

printf("按0返回主菜單!");

while(1)

{

t=getch();

if(t=='0')

{

menu();break;

}

}

voiddelete_information()

//刪除信息

do{

system("cls");

system("color79");

HideCursor();

//隱藏光標(biāo)

FILE*fp;

//文件指針

intyear,month,day,i,j;

intc;

chart,k,ch;

IAEPp,head,pr=NULL;

head=ss();

//調(diào)用ss()函數(shù),將該函數(shù)的返回值賦給head

toxy(50,5);

printf("個人賬戶管理軟件");

toxy(54,7);

printf("刪除信息");

toxy(40,9);

printf("請輸入您要查找的信息(輸入年月日,空格隔開):");

toxy(50,10);

scanf("%d%d%d",year,month,day);

//輸入年月日

toxy(30,12);

printf("----------------------------------------------------------------");

toxy(30,13);

printf("時

收入來源或支出目的");

toxy(30,14);

printf("----------------------------------------------------------------");

i=15;j=0;

//給i,j初始化

p=head;

//注意,再次使p重新指向第一個結(jié)點(diǎn),不要忘了

while(p!=NULL)

{

if(p-year==yearp-month==monthp-day==day)

{

toxy(28,i);

j++;

//j是標(biāo)記被搜索的信息

printf("%d:%d.%d.%-12d%c%-24f%s\n",j,p-year,p-month,p-day,p-ch,p-iae,p-source_or_aim);

p-num=j;

//將j賦值給p-num

i++;

}

p=p-next;

}

if(j==0)

//如果j=0,即沒有進(jìn)入前面的搜索循環(huán),也就是沒有找到相應(yīng)的信息

{

toxy(50,i);

printf("沒有找到相應(yīng)的信息!(按0返回,按1重新搜索)");

while(1)

//死循環(huán)是為了防止除0和1的其他按鍵干擾

{

ch=getch();

if(ch=='0')

{

menu();break;

}

elseif(ch=='1')

{

break;

}

}

if(ch=='1')

//如果輸入的ch等于1,則結(jié)束本次循環(huán)

continue;

}

while(1)

{

toxy(50,i);

printf("請輸入您要刪除的信息的標(biāo)號:");

scanf("%d",

getchar();

i++;

if(c=j)

//如果c=j,即輸入正確

break;

elseif(cj)

//否則,輸入錯誤

{

toxy(50,i);

printf("沒有找到您所要刪除的信息,請重新輸入!");

i++;

Sleep(500);

//暫停0.5秒

}

}

toxy(46,16);

printf("-------------------------");

toxy(46,17);

printf("|

|");

toxy(46,18);

printf("|

確認(rèn)刪除?

|");

toxy(46,19);

printf("|1.確認(rèn)

2.取消|");

toxy(46,20);

printf("|

|");

toxy(46,21);

printf("-------------------------");

while(1)

{

p=head;

//每一次遍歷鏈表之前,記得將p指向頭結(jié)點(diǎn)

pr=NULL;

t=getch();

//輸入t

if(t=='1')

//如果輸入t=1,即選擇確認(rèn)刪除選項(xiàng)

{

while(p!=NULLp-num!=c)

{

pr=p;

//pr記錄p的前驅(qū)結(jié)點(diǎn)

p=p-next;

//p指向下一節(jié)點(diǎn)

}

if(p!=NULL)

{

if(pr==NULL)

//如果pr=NULL,即刪除的結(jié)點(diǎn)為第一個結(jié)點(diǎn)

{

head=p-next;

}

else

//否則,刪除其他結(jié)點(diǎn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論