c語言createaccount,愛心代碼編程C語言

本文目錄一覽:

一道c語言 題目望大蝦幫助

我的課程設計和你的類似,但我用的是文本形式,沒關係,你只需要修改存儲類型就可以了.放心絕對可以運行!

#include stdio.h

#include conio.h

#include ctype.h

#includeiostream.h

#include string.h

#define PF printf

#define SIZE 20/*成員人數上限*/

#include stdlib.h

int count=0;/*用於存儲已有的成員個數*/

int num=0;/*用於存儲此時登陸成員的編號*/

struct family/*定義結構體*/

{ int user;/*賬號*/

char mima[10];/*密碼*/

char name[20];/*姓名*/

int income;/*收入*/

int payout;/*支出*/

int total;/*餘額*/

}people[SIZE];

void menu()/*普通成員菜單*/

{

PF(” ******************************%s ,歡迎您登陸******************************\n”,people[num].name);

PF(” 1. 創建新用戶 \n”);

PF(” 2. 查詢本人收支情況 \n”);

PF(” 3. 查詢其他成員收支情況 \n”);

PF(” 4. 查詢收支排行 \n”);

PF(” 5. 修改自己的信息 \n”);

PF(” 6. 修改密碼 \n”);

PF(” 0. 返回登陸界面 \n”);

}

void MAXmenu()/*最高特權者菜單*/

{

PF(” ******************************%s,歡迎您登陸******************************\n”,people[num].name);

PF(” 1. 創建新用戶 \n”);

PF(” 2. 查詢本人收支情況 \n”);

PF(” 3. 查詢其他成員收支情況 \n”);

PF(” 4. 查詢收支排行 \n”);

PF(” 5. 修改自己的信息 \n”);

PF(” 6. 修改密碼 \n”);

PF(” 7. 刪除用戶(只能刪除成員) \n”);

PF(” 0. 返回登陸界面 \n”);

}

void openf()/*打開文件,並以結構體存在內存中*/

{ count=0;

int c;

FILE *fp;

fp=fopen(“family_list5.txt”,”r”);

PF(“已存在賬號 密碼 姓名\n”);

while( !feof(fp) )/*輸出已存在賬號和密碼,姓名*/

{

fscanf(fp,”%d %s %s %d %d %d”,people[count].user,people[count].mima,people[count].name,people[count].income,people[count].payout,people[count].total);

printf(“%10d%15s%15s\n”,people[count].user,people[count].mima,people[count].name);

count++;

}fclose(fp);

printf(“count為:%d”,count);/*用於測試count是否正確*/

}

void save()/*存儲成文件*/

{

FILE *fp;

int i=0;

if((fp=fopen(“family_list5.txt”,”w”))==NULL)

{

printf(“不能打開文件\n”);

return;

}

for(i=0;icount-1;i++)

{ fprintf(fp,”%d %s %s %d %d %d\n”,people[i].user,people[i].mima,people[i].name,people[i].income,people[i].payout,people[i].income-people[i].payout);}

fprintf(fp,”%d %s %s %d %d %d”,people[i].user,people[i].mima,people[i].name,people[i].income,people[i].payout,people[i].income-people[i].payout);

/*由於循環最後有『\n』不能將最後一行也置於循環中,否則文件將多一行亂碼*/

fclose(fp);/*關閉文件*/

}

void newuser()/*創建新用戶函數*/

{ FILE *fp;

int i=count; PF(“請輸入新用戶信息:”);

if((fp=fopen(“family_list5.txt”,”a”))==NULL)/*以追加的形式打開文件*/

{

printf(“不能打開文件\n”);

return;

}

PF(“請輸入賬號名:”);

scanf(“%d”,people[i].user);

PF(“請輸入密碼:”); fflush(stdin);/*清除鍵盤緩衝區*/

scanf(“%s”,people[i].mima);

PF(“請輸入您的姓名:”); fflush(stdin);/*同上*/

scanf(“%s”,people[i].name);

PF(“請輸入您的月收入:”); fflush(stdin);

scanf(“%d”,people[i].income);

PF(“請輸入您的月支出:”); fflush(stdin);

scanf(“%d”,people[i].payout);

fprintf(fp,”\n%d %s %s %d %d %d”,people[i].user,people[i].mima,people[i].name,people[i].income,people[i].payout,people[i].income-people[i].payout);

fclose(fp);

PF(“恭喜您,創建成功!\n”);

}

void user()/*輸入賬號函數*/

{

int i,b;

PF(“請輸入賬號:”);

scanf(“%d”,b);

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

if(b==people[i].user) {num=i;}/*核心演算法,順序查找符合輸入值的賬號*/

}

int password()/*密碼輸入函數*/

{ char c;

char mima[10];PF(“%s”,people[num].mima);PF(“請輸入密碼(以回車結束):”);

loop: int i=0;

while((c=getch())!=’\r’) /*輸入值只要不為回車則循環*/

{

if(c ==’\b’ i==0)/*如果按BACKSPACE並且之前沒有輸入任何值*/

{

putchar(7);/*發出鳴叫*/

}

else if(c == ‘\b’)/*如果按BACKSPACE*/

{ mima[–i]=c; PF(“\b \b”); }//覆蓋上一個『*』

else if(i10)//密碼範圍小於10則輸出『*』

{putchar(‘*’);

mima[i]=c;

i++;

}

if(i=10)

{PF(“\n密碼輸入超出範圍,請重新輸入:”);

goto loop;/*重新輸入,返回此函數開頭*/

}

} mima[i]=’\0′;/*定義密碼結束標準*/

if(strcmp(mima,people[num].mima)==0) {return(1);}/*如果密碼正確返回函數值1*/

else/*否則重新輸入密碼*/

{system(“cls”);/*清屏*/

PF(“\n密碼錯誤!請重新輸入:”);

goto loop;

return(0);

}

}

void PXTO()/*對餘額排序*/

{

int n=count;/*n賦值為結構體個數*/

struct family *p;/*定義結構體指針*/

struct family t;/*定義另一個結構體,用於暫時存儲數據,起到交換目的*/

openf();/*打開文件*/

system(“cls”);/*清屏*/

p=people;

int i=0,j,k;

while(in)/*當i結構體個數時執行循環*/

{

for(j=i+1;jn;j++)/*用選擇法對餘額排序*/

{

if(((p+j)-total)((p+i)-total))

{t.user=(p+i)-user;strcpy(t.mima,(p+i)-mima);strcpy(t.name,(p+i)-name);t.income=(p+i)-income;t.payout=(p+i)-payout;t.total=(p+i)-total;

(p+i)-user=(p+j)-user;strcpy((p+i)-mima,(p+j)-mima);strcpy((p+i)-name,(p+j)-name);(p+i)-income=(p+j)-income;(p+i)-payout=(p+j)-payout;(p+i)-total=(p+j)-total;

(p+j)-user=t.user;strcpy((p+j)-mima,t.mima);strcpy((p+j)-name,t.name);(p+j)-income=t.income;(p+j)-payout=t.payout;(p+j)-total=t.total;

}

}

i++;

}

PF(“******************************節餘排行榜**********************************\n”);

PF(“名次 姓名 節餘\n”);

if(num==0||num==1)/*如果是最高特權者,則能看見全部信息*/

{for(k=0;kn;k++)

PF(“\n%5d%10s%15d\n”,k+1,(p+k)-name,(p+k)-total);

}else/*如果不是最高特權者,只能看見成員信息*/

{

for(k=2;kn;k++)/*最高特權者是0和1號分別是爸爸媽媽*/

PF(“\n%5d%10s%15d\n”,k-1,(p+k)-name,(p+k)-total);

}

}

void PXIN()/*對收入排序*/

{

int n=count;/*n賦值為結構體個數*/

struct family *p;/*定義結構體指針*/

struct family t;/*定義另一個結構體,用於暫時存儲數據,起到交換目的*/

openf();/*打開文件*/

system(“cls”);/*清屏*/

p=people;int i=0,j,k;

while(in)/*當i結構體個數時執行循環*/

{

for(j=i+1;jn;j++)/*用選擇法對收入排序*/

{

if(((p+j)-income)((p+i)-income))

{t.user=(p+i)-user;strcpy(t.mima,(p+i)-mima);strcpy(t.name,(p+i)-name);t.income=(p+i)-income;t.payout=(p+i)-payout;t.total=(p+i)-total;

(p+i)-user=(p+j)-user;strcpy((p+i)-mima,(p+j)-mima);strcpy((p+i)-name,(p+j)-name);(p+i)-income=(p+j)-income;(p+i)-payout=(p+j)-payout;(p+i)-total=(p+j)-total;

(p+j)-user=t.user;strcpy((p+j)-mima,t.mima);strcpy((p+j)-name,t.name);(p+j)-income=t.income;(p+j)-payout=t.payout;(p+j)-total=t.total;

}

}

i++;

}

PF(“******************************收入排行榜**********************************\n”);

PF(“名次 姓名 收入 \n”);

if(num==0||num==1)/*如果是最高特權者,則能看見全部信息*/

{

for(k=0;kn;k++)

PF(“\n%5d%10s%15d\n”,k+1,(p+k)-name,(p+k)-income,(p+k)-payout);

}

else

{for(k=2;kn;k++)/*如果不是最高特權者,只能看見成員信息*/

PF(“\n%5d%10s%15d\n”,k-1,(p+k)-name,(p+k)-income,(p+k)-payout);

}/*最高特權者是0和1號分別是爸爸媽媽*/

}

void PXPAY()/*對支出排序*/

{

int n=count;/*一下同理*/

struct family *p;

struct family t;

openf();

system(“cls”);

p=people;int i=0,j,k;

while(in)

{

for(j=i+1;jn;j++)

{

if(((p+j)-payout)((p+i)-payout))

{t.user=(p+i)-user;strcpy(t.mima,(p+i)-mima);strcpy(t.name,(p+i)-name);t.income=(p+i)-income;t.payout=(p+i)-payout;t.total=(p+i)-total;

(p+i)-user=(p+j)-user;strcpy((p+i)-mima,(p+j)-mima);strcpy((p+i)-name,(p+j)-name);(p+i)-income=(p+j)-income;(p+i)-payout=(p+j)-payout;(p+i)-total=(p+j)-total;

(p+j)-user=t.user;strcpy((p+j)-mima,t.mima);strcpy((p+j)-name,t.name);(p+j)-income=t.income;(p+j)-payout=t.payout;(p+j)-total=t.total;

}

}

i++;

}

PF(“******************************支出排行榜**********************************\n”);

PF(” 名次 姓名 支出\n”);

if(num==0||num==1)

{for(k=0;kn;k++)

PF(“\n%5d%10s%15d\n”,k+1,(p+k)-name,(p+k)-payout);

}

else

{for(k=2;kn;k++)

PF(“\n%5d%10s%15d\n”,k-1,(p+k)-name,(p+k)-payout);

}

}

int returnm()/*返回主菜單函數*/

{

PF(“按0返回主菜單”);

char c;

c=getch();/*從鍵盤得到一個字元*/

if(c==’0′) {return(1);}/*如果是0則返回1*/

else

return(0);/*否則返回0*/

}

void phmemu()/*排序菜單*/

{

char c;

loop:PF(” 1.查詢收入排行 \n”);

PF(” 2.查詢支出排行 \n”);

PF(” 3.查詢餘額排行 \n”);

PF(” 0.返回上級菜單 \n”);

c=getch();

switch(c)/*選擇功能*/

{

case ‘1’: system(“cls”);PXIN();if(returnm()==1){ system(“cls”);goto loop;}else break;

/*清屏,調用收入排序函數*/

case ‘2’: system(“cls”);PXPAY();if(returnm()==1){ system(“cls”);goto loop;}else break;

/*清屏,調用支出排序函數*/

case ‘3’: system(“cls”);PXTO();if(returnm()==1){ system(“cls”);goto loop;}else break;

/*清屏,調用餘額排序函數*/

case ‘0’: break;

default: break;

}

}

void look()/*查詢其他成員的情況*/

{int k;

openf();/*打開文件*/

system(“cls”);

struct family *p;/*定義結構體指針方便打字*/

p=people;

PF(“賬號 姓名 收入 支出 節餘\n”);

if(num==0||num==1)/*如果是最高特權者則可以看見所以信息*/

{

for(k=0;kcount;k++)

PF(“\n%5d%10s%15d%15d%15d\n”,k+1,(p+k)-name,(p+k)-income,(p+k)-payout,(p+k)-total);

}

else/*如果是普通成員,只能看見普通成員的信息*/

{

for(k=2;kcount;k++)

PF(“\n%5d%10s%15d%15d%15d\n”,k-1,(p+k)-name,(p+k)-income,(p+k)-payout,(p+k)-total);

}

}

void lookmy()/*查詢自己的信息*/

{system(“cls”);

PF(“賬號 姓名 收入 支出 節餘\n”);

PF(“%5d%10s%15d%15d%15d\n”,people[num].user,people[num].name,people[num].income,people[num].payout,people[num].total);

}

void changemima()/*修改密碼*/

{

char xmima[10];char c;

//一下這段是調用變*用法

PF(“請輸入新密碼:”);

loop: int i=0;

while((c=getch())!=’\r’)

{

if(c ==’\b’ i==0)

{

putchar(7);

}

else if(c == ‘\b’)

{ xmima[–i]=c; PF(“\b \b”); }

else if(i10)

{putchar(‘*’);

xmima[i]=c;

i++;

}

if(i=10)

{PF(“\n密碼輸入超出範圍,請重新輸入:”);

goto loop;

}

} xmima[i]=’\0′;

//變*用法結束

strcpy(people[num].mima,xmima);/*將新密碼賦值給內存中當前用戶的密碼*/

save();/*此函數需要修改*/

PF(“\n密碼修改成功!\n”);

}

void changeinfromation()/*修改個人信息*/

{

lop:PF(” 1.修改收入 \n”);

PF(” 2.修改支出 \n”);

PF(” 3.修改姓名 \n”);

PF(” 0.返回主菜單 \n”);

int in,out;

char xname[20];

char c;

c=getch();

switch(c)

{

case’1′:system(“cls”);PF(” 1.請輸入收入(按回車鍵結束):”);scanf(“%d”,in);people[num].income=in;save();system(“cls”);goto lop;

case’2′:system(“cls”);PF(” 1.請輸入支出(按回車鍵結束):”);scanf(“%d”,out);people[num].payout=out;save();system(“cls”);goto lop;

case’3′:system(“cls”);PF(” 1.請輸入姓名(按回車鍵結束):”);scanf(“%s”,xname);strcpy(people[num].name,xname);save();system(“cls”);goto lop;

/* case’0′:returnm()*/

}

}

void deletezh()/*刪除用戶*/

{

int zh,i,j;FILE *fp;

PF(“請輸入需要刪除的賬戶名:”);

scanf(“%d”,zh);

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

{ if(zh==people[i].user icount-1 i1)

{

fp=fopen(“family_list5.txt”,”w”);

for(j=0;ji;j++)

{fprintf(fp,”%d %s %s %d %d %d\n”,people[j].user,people[j].mima,people[j].name,people[j].income,people[j].payout,people[j].income-people[j].payout);}

for(j=j+1;jcount-1;j++)

{fprintf(fp,”%d %s %s %d %d %d\n”,people[j].user,people[j].mima,people[j].name,people[j].income,people[j].payout,people[j].income-people[j].payout);}

fprintf(fp,”%d %s %s %d %d %d”,people[j].user,people[j].mima,people[j].name,people[j].income,people[j].payout,people[j].income-people[j].payout);/*將最後一行單獨賦值,以免多一個\n*/

}

else if(zh==people[i].user i==count-1)

{

fp=fopen(“family_list5.txt”,”w”);

for(j=0;ji-1;j++)

{fprintf(fp,”%d %s %s %d %d %d\n”,people[j].user,people[j].mima,people[j].name,people[j].income,people[j].payout,people[j].income-people[j].payout);}

fprintf(fp,”%d %s %s %d %d %d”,people[j].user,people[j].mima,people[j].name,people[j].income,people[j].payout,people[j].income-people[j].payout);/*將最後一行單獨賦值,以免多一個\n*/

}else {PF(“刪除對象錯誤!不能刪除特權用戶!”);goto lp;}

}PF(“刪除成功!”);

lp: fclose(fp);

}

void main()

{ char c;

openf();

lop:user();

if(password()==1num1)

{system(“cls”);menu();

loop:c=getch();

switch(c)

{

case ‘0’:system(“cls”);goto lop;

case ‘1’:system(“cls”);newuser();if(returnm()==1){ system(“cls”);menu();goto loop;}

case ‘2’:lookmy();if(returnm()==1){ system(“cls”);menu();goto loop;}else break;

case ‘3’:system(“cls”);look();if(returnm()==1){ system(“cls”);menu();goto loop;}else break;

case ‘4’:openf();system(“cls”);phmemu(); system(“cls”);menu();goto loop;

case ‘5’:system(“cls”);changeinfromation();system(“cls”);menu();goto loop;

case ‘6’:system(“cls”);changemima();if(returnm()==1){ system(“cls”);menu();goto loop;}else break;

default: break;

}

}

else

{system(“cls”);MAXmenu();

lp:c=getch();

switch(c)

{

case ‘0’:system(“cls”);goto lop;

case ‘1’:system(“cls”);newuser();if(returnm()==1){ system(“cls”);menu();goto lp;}

case ‘2’:lookmy();if(returnm()==1){ system(“cls”);menu();goto lp;}else break;

case ‘3’:system(“cls”);look();if(returnm()==1){ system(“cls”);menu();goto lp;}else break;

case ‘4’:openf();system(“cls”);phmemu(); system(“cls”);menu();goto lp;

case ‘5’:system(“cls”);changeinfromation();system(“cls”);menu();goto lp;

case ‘6’:system(“cls”);changemima();if(returnm()==1){ system(“cls”);menu();goto lp;}else break;

case ‘7’:system(“cls”);MAXmenu();deletezh();

default: break;

}

}

}

c語言結構鏈表指針問題。為什麼我的指針不能指向數組?

字元串是數組,不能用等號賦值,需要採用strcpy()函數

#include

//引用字元串函數頭文件

。。。

strcpy(

pnew-name,

name

);

strcpy(

pnew-address,

address);

strcpy(

pnew-car_num,

car_num);

用C語言編一個程序,建立一個簡單的銀行帳戶管理系統

#include stdio.h #include string.h struct information { char account[20]; char IDcardNum; char workUint; char homeAddress; float money; char cardNum; long int password; }; void openAccount(); { cardNum++; user[cardNum].cardNum = cardNum; printf(“請輸入您的姓名:”); gets(user[cardNum].account); printf(“請輸入您的身份證號:”); gets(user[cardNum].IDcardNum); printf(“請輸入您的工作單位:”); gets(user[cardNum].workUnit); print(“請輸入您的家庭住址:”); gets(user[cardNum].homeAddress); printf(“請輸入您的密碼:”); gets(user[cardNum].password); printf(“請輸入您要存入的金額:”); scanf(“%d”,user[cardNum].money); //寫入文件out.txt中,寫入後,游標移至下一行 read();//讀取文件 write(); //寫入文件 cardNum++; } void deposit(); { int money; printf(“請輸入您的卡號:”); scanf(“%d”,cardNum); printf(“請輸入您要存入的金額:”); scanf(“%f”,money); user[cardNum].money = user[cardNum].money + money; printf(“您現在賬戶中的餘額是¥%f”,user[cardNum].money); } void withdraw(); { int money; printf(“請輸入您的卡號:”); scanf(“%d”,cardNum); printf(“請輸入您要存入的金額:”); scanf(“%f”,money); user[cardNum].money = user[cardNum].money – money; printf(“您現在賬戶中的餘額是¥%f”,user[cardNum].money); } void changeInformation(); { printf(“請輸入您的卡號:”); scanf(“%d”,cardNum); user[cardNum].cardNum = cardNum; printf(“請輸入您的姓名:”); gets(user[cardNum].account); printf(“請輸入您的身份證號:”); gets(user[cardNum].IDcardNum); printf(“請輸入您的工作單位:”); gets(user[cardNum].workUnit); print(“請輸入您的家庭住址:”); gets(user[cardNum].homeAddress); printf(“請輸入您的密碼:”); gets(user[cardNum].password); printf(“請輸入您要存入的金額:”); scanf(“%d”,user[cardNum].money); //寫入文件out.txt中,寫入後,游標移至下一行 read();//讀取文件 write(); //寫入文件 } void reportLoss(); { } void closeAccount(); { } void read(); { } void write(); { } int main() { int i; unsigned long int cardNum = 00001; information user[cardNum]; printf(“請您選擇要進行的操作:\n”); printf(“——————————————————\n”); printf(“1、開戶/辦卡 2、存款 3、取款 4、修改信息 5、掛失 6、銷戶\n”); printf(“——————————————————\n”); scanf(“%d”,i); if(i 1 || i 6) printf(“ERROR!\n”); else { switch(i) { case 1 : openAccount(); break; case 2 : deposit(); break; case 3 : withdraw(); break; case 4 : changeInformation(); break; case 5 : reportLoss(); break; case 6 : closeAccount(); break; } } return 0; } 沒有寫完,樓主可以參考一下!

c++編程問題(使用vc++編譯) 寫完程序後都是no overloaded function takes 5 parameters類似的錯誤 求相

Customer類沒有你使用的帶5個參數的構造函數,加個自定義的構造函數就可以了,你自己寫的那個方法有6個參數。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/180130.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-22 05:10
下一篇 2024-11-22 05:10

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變數和數…

    編程 2025-04-29
  • 如何用Python寫愛心

    本文將會從多個方面闡述如何用Python語言來畫一個美麗的愛心圖案。 一、準備工作 在開始編寫程序之前,需要先理解一些編程基礎知識。首先是繪圖庫。Python有很多繪圖庫,常見的有…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在著手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29

發表回復

登錄後才能評論