❶ 編寫一個c語言程序模擬銀行ATM機的賬戶管理功能,系統主要實現以下功能
按照你的願意把空都填好了,VC++ 6.0下編譯能通過,有警告信息,運行基本上能用,不過個人認為這個系統有很大的不足,比如輸入賬號的時候沒有輸出反饋信息,以及沒有對誤操作的處理等等。需要的話可以幫你改改!
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
#define AN 9 //表示賬號8位
#define PN 7 //表示密碼6位
#define ASN 3 //表示系統中共有3個賬戶信息
struct Account
{
char accountnumber[AN]; //表示賬號信息
char password[PN]; //表示賬戶的密碼信息
double balance; //表示賬戶的余額
};
struct Account ats[ASN]={{"00000001","123456",100},{"00000002","123456",200},{"00000003","123456",300}};
//ats數組用於存儲系統中三個賬戶的信息
int isCorrect(char *an,char *psd)
{
int i;
for(i=0;i<ASN;i++)
if(strcmp(ats[i].accountnumber,an)==0 && strcmp(psd,ats[i].password)==0)
return 1;
return 0;
}
double getBalance(char *an)
{
int i;
for(i=0;i<ASN;i++)
if(strcmp(an,ats[i].accountnumber)==0)
return ats[i].balance;
}
void deposit(char *an,int amount)
{
int i;
for(i=0;i<ASN;i++)
if(strcmp(an,ats[i].accountnumber)==0)
ats[i].balance+=amount;
}
int withdraw(char *an,int amount)
{
int i;
for(i=0;i<ASN;i++)
if(strcmp(an,ats[i].accountnumber)==0)
return ats[i].balance-=amount;
}
void main()
{
char AccountNumber[AN]={'\0'};
char psd[PN]={'\0'};
int i,errorcount=0;
while(1)
{
printf("\n請輸入8位賬號:");
for(i=0;i<8;i++)
AccountNumber[i]=getch();
printf("\n請輸入6為密碼:");
for(i=0;i<6;i++)
{
psd[i]=getch();
putchar('*');
}
if(isCorrect(AccountNumber,psd)==1)
{
int tag,amount;
while(1)
{
printf("\n歡迎登錄銀行賬戶管理系統,請選擇您要的服務:1、查詢余額;2、存款操作;3、取款操作;4、退出系統\n");
scanf("%d",&tag);
switch(tag)
{
case 1:
printf("您現在的余額為%f元\n",getBalance(AccountNumber));
break;
case 2:
printf("請輸入您的存款金額:");
scanf("%d",&amount);
deposit(AccountNumber,amount);
printf("存款成功!您的當前余額為:%f元\n",getBalance(AccountNumber));
break;
case 3:
printf("請輸入您的取款金額:");
scanf("%d",&amount);
if(amount<=getBalance(AccountNumber))
printf("取款成功!您的當前余額為:%f元\n",withdraw(AccountNumber,amount));
else
printf("取款失敗!\n");
break;
case 4:
break;
}
if(tag==4)
break;
}
}
else
{
errorcount++;
if(errorcount==3)
{
printf("您已經連續三次輸入錯誤,系統將自動關閉\n");
break;
}
}
}
}
❷ 急!!!求一C語言程序 關於存款和利息
main(){
flaot year8=8,year5=5,year3=3,year2=2,year1=1,rate,accrual,monye,max=0.0;
int saveyear,year;
printf("手裡有多少元錢:");
scanf("%f",&monye);
printf("存款期限:");
scanf("%d",&year);
printf("月息利率");
scanf("%f",rate);
printf("");
year8=monye*(rate+rate*year8/10)*12*year;//year8/10為區分不同年限月息利率不同,保證期限越長利率越高.
if(year8>max){
max=year8;//得到最多利息。
saveyear=8;//得到最多利息的年限。
}
year5=monye*(rate+rate*year5/10)*12*year;
if(year5>max){
max=year5;
saveyear=5;
}
year3=monye*(rate+rate*year3/10)*12*year;
if(year3>max){
max=year3;
saveyear=3;
}
year2=monye*(rate+rate*year2/10)*12*year;
if(year2>max){
max=year2;
saveyear=2;
}
year1=monye*(rate+rate*year1/10)*12*year;
if(year1>max){
max=year1;
saveyear=1;
}
printf("%f元存入銀行%d年後得到的利息最多是%f",monye,saveyear,max);
}
❸ 用c語言編寫ATM的程序,實現開戶、存款、取款、查詢余額、轉賬的業務邏輯。
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
void regist();
void login();
void quite();
void inputpassword(char mima[]);
void service();
struct bank
{
char name[20];
char password[7];
int account;
double money;
}kehu;
int find;
int a[10];
struct bank one;
FILE *fp;
void main()
{
int i;
int t=1;
for(i=0;i<100;i++)
{
printf("\t\t\t\t\t\t歡迎使用青軟ATM系統\n");
printf("\t\t\t\t\t\t正在進入主界面,請稍等");
int j;
for(j=1;j<t;j++)
{
printf(".");
}
t++;
if(t==10)
{
t=1;
}
printf("\n\t\t\t\t\t\t%d%%",i);
system("cls");
}
while(1)
{
printf("\t\t\t\t\t\t服務類型: \n");
printf("\t\t\t\t\t\t[a]: 用戶注冊\n");
printf("\t\t\t\t\t\t[b]: 用戶登錄\n");
printf("\t\t\t\t\t\t[c]: 退出系統\n");
printf("\t\t\t\t\t\t請選擇服務: ");
fflush(stdin);
char xz;
scanf("%c",&xz);
if(xz=='a'||xz=='A')
{
regist();
} else if (xz=='b'||xz=='B')
{
login();
} else if(xz=='c'||xz=='C')
{
quite();
} else
{
printf("輸入有誤,請重新輸入");
}
getch();
system("cls");
}
}
void inputpassword(char mima[])
{
int i=0;
char ch;
while(1)
{
ch=getch();
if(ch!='\r')
{
if(ch!='\b'){
mima[i]=ch;
i++;
printf("*");
}else{
if(i>0){
i--;
printf("\b \b");
}
}
}else{
break;
}
}
mima[i]='\0';
printf("\n");
}
void regist()
{
fp=fopen("atm.txt","ab+");
if(fp==NULL)
{
printf("\n\t\t\t文件打開失敗!");
return;
}
system("cls");
printf("\t\t\t現在執行的是注冊函數的使用\n");
printf("\t\t請輸入用戶名: ");
fflush(stdin);
gets(kehu.name);
char password1[7];
while(1)
{
while(1)
{
printf("\n\n\t\t請輸入密碼:");
fflush(stdin);
inputpassword(kehu.password);
int n=strlen(kehu.password);
if(n==6)
{
break;
}else
{
printf("\n\t\t密碼必須為6位!");
}
}
printf("\n\t\t請輸入正確密碼!: ");
fflush(stdin);
inputpassword(password1);
if(strcmp(kehu.password,password1)==0)
{
break;
}else{
printf("\n\n\t\t兩次密碼必須相同!");
}
}
rewind(fp);
struct bank k;
if(fread(&k,sizeof(struct bank),1,fp)==1)
{
fseek(fp,-sizeof(k),2);
fread(&k,sizeof(k),1,fp);
kehu.account=k.account+1;
}else{
kehu.account=20170001;
}
kehu.money=0;
fseek(fp,0,2);
fwrite(&kehu,sizeof(struct bank),1,fp);
fclose(fp);
printf("\n\n\t\t開戶成功! ");
printf("\n\t\t您的賬號為%d!",kehu.account);
printf("\n\t\t現在請您重新登錄!");
}
void searchmoney()
{
system("cls");
printf("您現在使用的是查詢余額功能: \n");
printf("\n\n\t\t您的余額是%0.2lf",one.money);
}
void savemoney()
{
system("cls");
double inmoney;
printf("請您選擇您要存款的金額 \n");
scanf("%lf",&inmoney);
int q;
int r=1;
for(q=0;q<100;q++)
{
int w;
for(w=1;w<r;w++)
{
printf(".");
}
r++;
if(r==10)
{
r=1;
}
printf("\n\t\t\t\t\t\t正在存款%d%%",q);
system("cls");
}
one.money=one.money+inmoney;
fseek(fp,-sizeof(one),1);
fwrite(&one,sizeof(one),1,fp);
printf("\n\n\t\t\t\t\t\t您已存款成功!");
}
void withdrawalmoney()
{
system("cls");
double outputsomemoney;
printf("請您選擇您要取款的金額 \n");
scanf("%lf",&outputsomemoney);
if(one.money<outputsomemoney){
printf("您的余額已不足,請您注意!");
}else {
int q;
int r=1;
for(q=0;q<100;q++)
{
int w;
for(w=1;w<r;w++)
{
printf(".");
}
r++;
if(r==10)
{
r=1;
}
printf("\n\t\t\t\t\t\t正在取款%d%%",q);
system("cls");
}
one.money=one.money-outputsomemoney;
fseek(fp,-sizeof(one),1);
fwrite(&one,sizeof(one),1,fp);
printf("\n\n\t\t\t\t\t\t您已取款成功!請點清鈔票!");
printf("\n\n\t\t\t\t\t\t您現在的余額為%lf",one.money);
}
}
void transfermoney()
{
system("cls");
int ifang;
int qian;
fflush(stdin);
printf("\n\n\n\t\t您現在使用的是轉賬功能");
printf("\n\t\t\t請輸入您要轉賬的賬戶:");
scanf("%d",&ifang);
int n=ftell(fp);
rewind(fp);
int flag=0;
struct bank temp;
while(fread(&temp,sizeof(temp),1,fp)==1)
{
if(temp.account==ifang)
{
flag=1;
break;
}
}
if(flag==1)
{
printf("請輸入轉賬金額:");
scanf("%d",&qian);
if(one.money>=qian)
{
int q;
int r=1;
for(q=0;q<100;q++)
{
int w;
for(w=1;w<r;w++)
{
printf(".");
}
r++;
if(r==10)
{
r=1;
}
printf("\n\t\t\t\t\t\t正在轉賬,請稍後!%d%%",q);
system("cls");
}
temp.money=temp.money+qian;
fseek(fp,-sizeof(temp),1);
fwrite(&temp,sizeof(temp),1,fp);
one.money=one.money-qian;
fseek(fp,n-sizeof(one),0);
fwrite(&one,sizeof(one),1,fp);
printf("\n\t\t\t\t轉賬成功!");
}else{
printf("\n\t\t\t\t您的余額已不足!");
}
}
}
void xiugai(){
system("cls");
printf("\n\n\t\t 現在進行的是修改密碼功能\n");
char oldpassword[7];
char newpassword[7];
char newpassword1[7];
int i;
for(i=0;i<3;i++){
printf("\n\t\t\t 請輸入舊密碼:\n");
inputpassword(oldpassword);
if(strcmp(oldpassword,one.password)==0){
printf("\n\t\t\t 輸入成功!\n");
break;
}else{
printf("\n\t\t\t 密碼輸入有誤,請重新輸入!\n");
}
}
if(i<3){
while(1){
printf("\n\t\t\t 請輸入您的新密碼:\n");
inputpassword(newpassword);
printf("\n\t\t\t 請輸入您的確認密碼:\n ");
inputpassword(newpassword1);
if(strcmp(newpassword,newpassword1)==0){
strcpy(one.password,newpassword);
fseek(fp,-sizeof(one),1);
fwrite(&one,sizeof(one),1,fp);
printf("\n\t\t\t 密碼修改成功!");
break;
}else{
printf("\n\t\t\t 兩次密碼輸入不一致!");
}
}
}else{
printf("\n\t\t\t 密碼輸入錯誤!");
}
}
int zhuxiaozhanghao()
{
system("cls");
int zhuxiaoxitong;
char sf;
printf("你要注銷的賬號是%d",one.account);
printf("你是否要對此賬號進行注銷?\n\n\t\t請您選擇:注銷(Y)or不注銷(N):");
fflush(stdin);
scanf("%c",&sf);
if(sf=='y'||sf=='Y')
{
printf("正在為您注銷!\n",one.account);
zhuxiaoxitong=1;
}else{
printf("不注銷系統!\n",one.account);
}
return zhuxiaoxitong;
}
void service()
{
while(1){
system("cls");
printf("\n\n\n\t\t\t\t\t\t現在是服務系統,本系統有以下服務");
printf("\n\t\t\t\t\t\t[a] 查詢余額\n");
printf("\n\t\t\t\t\t\t[b] 存款服務\n");
printf("\n\t\t\t\t\t\t[c] 轉賬服務\n");
printf("\n\t\t\t\t\t\t[d] 取款服務\n");
printf("\n\t\t\t\t\t\t[e] 修改密碼\n");
printf("\n\t\t\t\t\t\t[f] 注銷 \n");
printf("\n\t\t\t\t\t\t[g] 退出系統\n");
char e;
printf("\n\t\t\t\t\t\t您要選擇的服務是:");
fflush(stdin);
scanf("%c",&e);
switch(e)
{ case'A':
case'a': searchmoney() ;break;
case'B':
case'b': savemoney() ;break;
case'C':
case'c': transfermoney() ;break;
case'D':
case'd': withdrawalmoney() ;break;
case'E':
case'e': xiugai() ;break;
case'F':
case'f': {int zhuxiaoxitong=zhuxiaozhanghao();{if(zhuxiaoxitong==1) return;}break;}
case'G':
case'g': quite();break;
}
printf("\n\n\n\t\t\t\t按任意鍵繼續......\n");
getch();
}
}
void login()
{
fp=fopen("atm.txt","rb+");
if(fp==NULL)
{
printf("\n\n\n\t\t\t\t文件打開失敗!");
return;
}
system("cls");
printf("\n\t\t\t\t\t\t現在執行的是登錄函數的使用\n");
int zhanghao;
printf("\n\t\t\t\t\t\t請輸入賬號:");
scanf("%d",&zhanghao);
int flag=0;
while(fread(&one,sizeof(one),1,fp)==1)
{
if(zhanghao==one.account){
flag=1;
break;
}
}
char password2[7];
if(flag==1){
int h;
for(h=0;h<3;h++){
printf("\n\t\t\t\t\t\t請輸入密碼:");
fflush(stdin);
inputpassword(password2);
if(strcmp(password2,one.password)==0)
{
printf("\n\t\t\t\t\t\t登陸成功!");
service();
break;
}else{
printf("密碼不正確!");
}
}
if(h==3){
printf("\n\t\t\t您的密碼三次輸入有誤,返回");
}
}else{
printf("無此賬號!");
}
fclose(fp);
}
void quite()
{
system("cls");
printf("\t\t\t現在執行的是退出函數的使用\n");
exit(0);
}
❹ 文件的新建保存另存C語言代碼怎麼寫
這問題擱著這么久都木有人回答 ... 悲催啊 ...
fopen( pszFileName, pszOpenMode ) 函數可以打開一個文件,其中參數 pszFileName 指定需要打開的文件的文件名,支持相對路徑和絕對路徑,參數 pszOpenMode 指定打開模式,這個可以不管 。
如果需要以讀取的模式打開當前目錄下的 text.txt 文件,可以這樣寫 :
FILE *pFile = fopen( ".\\text.txt", "r" );
如果需要以寫入的模式打開當前目錄下的 text.txt 文件,可以這樣寫 :
FILE *pFile = fopen( ".\\text.txt", "w" );
在這種模式下,如果不存在 text.txt 文件的話,就會新建一個名為 text.txt 文件,如果存在 text.txt 文件的話,裡面的內容將會被全部銷毀 。
用完之後,必須使用 fclose( ) 函數來關閉已經打開的文件 。
至於你說的新建、保存、另存為,估計是高級 Shell 裡面的文件操作對話框吧 。
在 C 語言裡面,自身是沒有這樣子功能的,C 語言的底層,提供了一系列的文件操作函數,例如:fopen( )、fclose( )、fwrite( )、fread( )、fseek( ) 這樣子的函數 。
新建文件的方法,上面已經說了,保存文件的話,其實就是用 fwrite( ) 函數將內容寫入到文件裡面 。
至於另存為嘛,就是先打開一個文件,讀取裡面的所有數據,然後新建一個文件,再將數據寫入到新建的文件裡面,就可以了 。
============================================
高級另存為功能需要我們自己手動實現,什麼是高級另存為呢 ?
比如我們用 Windows 自帶的圖片編輯器編輯一個圖片文件,然後選擇另存為之後,可以保存為 Windows 支持的多種圖片格式,例如:png、jpeg、bmp 等,但是,C 語言自身不提供這樣子的功能,甚至 Win32 SDK API 也沒有這樣子的功能,這些功能,是藉助第三方庫來實現的 。
希望能夠幫到樓主 !!
❺ 用C語言寫一個類似於ATM機的程序,有開戶(姓名,密碼),存款,取款,查詢余額,轉賬的功能,
packagecom.efounder.pub.util;
importjava.util.ArrayList;
importjava.util.Vector;
/**
*字元串處理工具類
*@authorxiewan
*/
publicclassStringFunction{
(String[]stringArray,charsymbol){
StringBuffersb=newStringBuffer();
for(inti=0;i<stringArray.length;i++){
sb.append(stringArray[i]);
sb.append(symbol);
}
returnsb.toString();
}
publicstaticString[](Stringstring,Stringsymbol){
VectorstringVector=(string,symbol);
String[]stringArray=newString[stringVector.size()];
for(inti=0;i<stringVector.size();i++)
stringArray[i]=(String)(stringVector.elementAt(i));
returnstringArray;
}
publicstaticString[]NO(Stringstring,Stringsymbol){
VectorstringVector=NO(string,symbol);
String[]stringArray=newString[stringVector.size()];
for(inti=0;i<stringVector.size();i++)
stringArray[i]=(String)(stringVector.elementAt(i));
returnstringArray;
}
publicstaticVector(Stringstring,Stringsymbol){
VectorstringVector=newVector();
String[]array=string.split(symbol);
for(inti=0;i<array.length;i++){
stringVector.addElement(array[i]);
}
returnstringVector;
}
publicstaticVectorNO(Stringstring,Stringsymbol){
VectorstringVector=newVector();
String[]array=string.split(symbol);
for(inti=0;i<array.length;i++){
stringVector.addElement(array[i]);
}
returnstringVector;
}
(VectorstringVector,charsymbol){
StringBuffersb=newStringBuffer();
for(inti=0;i<stringVector.size();i++){
sb.append(stringVector.elementAt(i));
sb.append(symbol);
}
returnsb.toString();
}
publicstaticStringfillString(StringpsStr,charpsC,intpsLen){
if(psStr.length()>psLen){
returnpsStr.substring(0,psLen);
}else{
char[]vcTemp=newchar[psLen];
for(inti=0;i<psLen;i++){
vcTemp[i]=psC;
}
StringvsTemp=newString(vcTemp);
StringvsResult=psStr.concat(vsTemp);
returnvsResult.substring(0,psLen);
}
}
publicstaticStringformatValue(doublevalue,intsep,charch,intround){
return"";
}
publicstaticStringGB2Uni(Stringoriginal){
if(original!=null){
try{
returnnewString(original.getBytes("GBK"),"ISO8859_1");
}catch(Exceptione){
e.printStackTrace();
returnnull;
}
}else
returnnull;
}
publicstaticStringUni2GB(Stringoriginal){
if(original!=null){
try{
returnnewString(original.getBytes("ISO8859_1"),"GBK");
}catch(Exceptione){
e.printStackTrace();
returnnull;
}
}else
returnnull;
}
publicstaticStringgenerateID(Stringpre,intvalue,intnum){
charchs[]=newchar[num];
for(inti=0;i<num;i++){
chs[num-i-1]=(char)(48+value%10);
value=value/10;
}
returnpre.trim()+newString(chs);
}
publicstaticStringgetTempStr(){
returnString.valueOf(System.currentTimeMillis());
}
(StringpsStr,StringpsS){
intviPos=psStr.indexOf(psS);
returnviPos>=0;
}
(StringpsStr,StringpsS,StringpsD){
intviPos=psStr.indexOf(psS);
if(viPos<0)
returnpsStr;
intviLength=psS.length();
StringBuffervsValue=newStringBuffer();
while(viPos>=0){
vsValue.append(psStr.substring(0,viPos));
vsValue.append(psD);
psStr=psStr.substring(viPos+viLength);
viPos=psStr.indexOf(psS);
}
vsValue.append(psStr);
returnvsValue.toString();
}
publicstaticString[]splitStringByToken(StringvsStr,Stringsymbol){
StringvsString[]={"",""};
intviPos1;
viPos1=vsStr.indexOf(symbol);
if(viPos1<0){
vsString[0]=vsStr;
vsString[1]="";
returnvsString;
}
vsString[0]=vsStr.substring(0,viPos1);
vsString[1]=vsStr.substring(viPos1+symbol.length(),vsStr.length());
returnvsString;
}
(Stringstring,Stringsymbol){
VectorstringVector=newVector();
StringvsStr=string.trim();
StringvsTemp=null;
String[]st=null;
while((!vsStr.equals(""))&&isIncludeString(vsStr,symbol)){
st=splitStringByToken(vsStr,symbol);
vsTemp=st[0].trim();
if(!vsTemp.equals(""))
stringVector.addElement(vsTemp);
vsStr=st[1].trim();
}
if(!vsStr.equals(""))
stringVector.addElement(vsStr);
returnstringVector;
}
publicstaticStringgetTempStr(intlength){
Stringstr=String.valueOf(System.currentTimeMillis());
returnstr.substring(str.length()-length);
}
WithNull(Stringstring,Stringsymbol){
VectorstringVector=newVector();
StringvsStr=string.trim();
StringvsTemp=null;
String[]st=null;
while((!vsStr.equals(""))&&isIncludeString(vsStr,symbol)){
st=splitStringByToken(vsStr,symbol);
vsTemp=st[0].trim();
stringVector.addElement(vsTemp);
vsStr=st[1].trim();
}
if(!vsStr.equals(""))
stringVector.addElement(vsStr);
returnstringVector;
}
(StringBm,intJs,StringStruct){
inti,Len,Length;
Len=Bm.length();
Length=GetStructLength(Struct,Js);
if(Len>=Length){
Bm=Bm.substring(0,Length);
}
returnBm;
}
(StringBm,StringStruct){
inti,Len,Length;
Len=Bm.length();
Length=GetStructLength(Struct,0);
for(i=0;i<Length-Len;i++){
Bm+="0";
}
returnBm;
}
(Stringcode,Stringstruct){
intcodeLength=code.length();
intstructLength=struct.length();
inttempLength=0;
for(intjs=1;js<=structLength;js++){
tempLength=GetStructLength(struct,js);
if(codeLength==tempLength)
returnjs;
}
return0;
}
(StringStruct,intJS){
inti,Length=0;
Stringsub;
Integerii;
if(JS==0)
JS=Struct.trim().length();
for(i=0;i<JS;i++){
sub=Struct.substring(i,i+1).trim();
ii=Integer.decode("0x"+sub);
//Length+=Integer..parseInt(sub);
Length+=ii.intValue();
}
returnLength;
}
(StringBM,StringStruct,intSJS){
StringRes="";
intLen;
Len=GetStructLength(Struct,SJS);
if(BM.length()>=Len)
Res=BM.substring(0,Len);
returnRes;
}
(intnum,intleng){
returnFillTagFromBegin(String.valueOf(num),leng,"0");
}
(Stringnum,intleng,StringTag){
StringRes="",tempStr1="",tempStr2="";
tempStr1=String.valueOf(num);
for(inti=0;i<(leng-tempStr1.length());i++){
tempStr2+=Tag;
}
Res=tempStr2+tempStr1;
returnRes;
}
publicstaticStringClearBMZero(StringBM,StringBMStruct){
returnClearBMTag(BM,BMStruct,"0");
}
publicstaticStringClearBMTag(StringBM,StringBMStruct,StringTag){
intJSLen=BMStruct.length();
Stringbm="",ZERO,Tmp;
intLen;
for(inti=1;i<=JSLen;i++){
Tmp=BMStruct.substring(i-1,i);
Len=Integer.parseInt(Tmp);
ZERO=RepeatChar(Tag,Len);
if(!BM.startsWith(ZERO)){
bm+=BM.substring(0,Len);
BM=BM.substring(Len);
}else
break;
}
returnbm;
}
publicstaticStringRepeatChar(Stringc,intlen){
StringRes="";
for(inti=0;i<len;i++){
Res+=c;
}
returnRes;
}
/**
*key1=value1;key2=value2;key3=value3
*
*@paraminputStringString
*@paramhashMapMap
*/
(StringinputString,java.util.MaphashMap){
String[]keyValues=StringFunction.NO(inputString,";");
String[]keyValue;
Stringkey,value;
for(inti=0;i<keyValues.length;i++){
if(!"".equals(keyValues[i])){
keyValue=StringFunction.NO(keyValues[i],"=");
if(keyValue.length<2)
continue;
key=keyValue[0];
value="";
for(intk=1;k<keyValue.length;k++){
value+=keyValue[k];
}
hashMap.put(key,value);
}
}
}
/**
*
*@paramhashMap
*Map
*@returnString
*/
(java.util.MaphashMap){
Object[]keys=hashMap.keySet().toArray();
Stringkey,value,keyValue="";
for(inti=0;i<keys.length;i++){
key=(String)keys[i];
value=(String)hashMap.get(key);
keyValue+=key+"="+value+";";
}
if(keyValue.length()>0){
keyValue=keyValue.substring(0,keyValue.length()-1);
}
returnkeyValue;
}
/**
*
*@paramvalue
*String
*@parammark
*String
*@returnString[]
*/
publicstaticString[]split(Stringvalue,Stringmark){
intindex=value.indexOf(mark);
java.util.Listlist=newArrayList();
while(index>=0){
list.add(value.substring(0,index));
value=value.substring(index+mark.length());
index=value.indexOf(mark);
}
list.add(value);
String[]rtn=newString[list.size()];
System.array(list.toArray(),0,rtn,0,rtn.length);
returnrtn;
}
publicstaticvoidmain(String[]args){
Stringvalue="a;;;;";
String[]rtn=split(value,";;");
System.out.println(rtn);
}
}
❻ 用c語言如何寫一個銀行存取款管理設計
功能:能夠輸入和查詢客戶存款取款記錄。在客戶文件中,每個客戶是一條記錄,包括編號、客戶姓名、支取密碼、客戶地址、客戶電話、賬戶總金額;在存取款文件中,每次存取款是一條記錄,包括編號、日期、類別、存取數目、經辦人。類別分為取款和存款兩種。本系統能夠輸入客戶存款或取款記錄;根據客戶姓名查詢存款和取款記錄。分步實施:1、初步完成總體設計,搭好框架,確定人機對話界面,確定函數個數;2、建立一個文件,輸入客戶的必要信息,能對文件進行顯示、輸入、修訂、刪除等。3、進一步要求:完成客戶姓名查詢存款和取款記錄,並能得到每次帳戶總金額。要求:1、用C語言實現系統;2、利用結構體數組實現信息的數據結構設計;3、系統的各個功能模塊要求用函數的形式實現;4、界面友好(良好的人機交互),程序加必要的注釋。課程設計實驗報告要求:1、預習報告:題目、課程設計任務、數據結構、程序的總體設計(演算法)、模塊劃分 。2、實驗總結報告:流程圖、主要源程序代碼(需列印)、測試情況及調試中問題與解決方案、小結等要求:標明所用函數的用途和目的,簡單敘述製作思路。
❼ c語言編程中怎麼用文件存儲數據具體一點,謝謝
主要用C語言的庫函數,有open write read 或者是fopen fwrite fread這幾個函數,迅速就是先open 然後write,具體函數的用法可自行網路,如果你是問存儲數據的格式的話,自己定義結構體存儲的方式是最方便直接的
❽ C語言新手存錢
#
include
#
include
void
main()
{
/*
已知銀行整存整取存款不同期限的月息利率分別為:
0.315%(期限一年);0.330%(期限二年);
0.345%(期限三年);0.375%(期限五年);0.420%(期限八年)。
要求:輸入存錢的本金和期限,求到期的利息與本金的合計。*/
int
n;
float
money;
printf("請輸入存錢本金和期限\n");
scanf("%f%d",&money,&n);
switch(n)
{case
1:money=money+0.315*0.01*money;break;
case
2:money=money+0.330*0.01*money;break;
case
3:money=money+0.345*0.01*money;break;
case
5:money=money+0.375*0.01*money;break;
case
8:money=money+0.420*0.01*money;break;
default:printf("輸入錯誤");break;
}
printf("%f",money);
}
我%不會輸入就換成0.01了,其餘的都對
❾ 編寫一個關於「ATM系統」c語言程序。 要求,1功能:存錢,取錢,轉賬,修改密碼,只要現實中有的都得有,
下面的是我自己寫的一個, 裡面很多細節都沒有進行細致的處理, 只是粗略的實現了基本的功能
後面有我的測試數據, 希望能有幫助
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct _account
{
char * UID;
char * pwd;
int balance;
char * UName;
}ACCOUNT, * PACCOUNT;
void InitAccount(PACCOUNT pA); // 初始化賬戶
void showAccount(ACCOUNT A, bool flag); // 顯示賬戶信息, flag表示是否顯示全部信息. 如果是true則需要輸入用戶密碼
bool deposite(PACCOUNT pA); // 存錢, 內部需要密碼驗證並輸入金額
bool withDraw(PACCOUNT pA); // 取錢, 內部需要密碼驗證並輸入金額
bool transfer(PACCOUNT pA, PACCOUNT pB); // 轉賬, 需要密碼驗證, 並輸入金額
bool conct(PACCOUNT pA, int chose, PACCOUNT pB); // 處理, 就是根據菜單項處理用戶的操作選擇
void modifyPwd(PACCOUNT pA); // 更改用戶密碼
bool Authentication(PACCOUNT pA); // 密碼認證, 3次機會輸入密碼
void memFree(PACCOUNT pA, PACCOUNT pB); // 在堆上分配的內存的釋放
int main(void)
{
// 建立兩個賬戶, 分別是操作賬戶和接受轉賬的賬戶
PACCOUNT pMainAcc = (PACCOUNT)malloc(sizeof(ACCOUNT));
PACCOUNT pAssistAcc = (PACCOUNT)malloc(sizeof(ACCOUNT));
// 初始化兩個賬戶的信息
InitAccount(pMainAcc);
InitAccount(pAssistAcc);
// 進行菜單控制, 提供用戶操作
int chose = -1;
while(chose != 0)
{
printf("\n1. 存錢\t2. 取錢\t3. 轉賬\t4. 更改密碼\t5. 顯示賬戶信息\t0.退出\n");
scanf("%d", &chose);
conct(pMainAcc, chose, pAssistAcc);
}
return 0;
}
bool conct(PACCOUNT pA, int chose, PACCOUNT pB)
{
bool rtnflag = true;
switch(chose)
{
case 1:
if(!deposite(pA))
printf("操作失敗!");
else
printf("操作成功!");
break;
case 2:
if(!withDraw(pA))
printf("操作失敗!");
else
printf("操作成功!");
break;
case 3:
if(!transfer(pA, pB))
printf("操作失敗!");
else
printf("操作成功!");
break;
case 4:
modifyPwd(pA);
break;
case 5:
showAccount(*pA, true);
break;
case 0:
rtnflag = false;
memFree(pA, pB);
break;
}
return rtnflag;
}
void InitAccount(PACCOUNT pA)
{
printf("請初始化賬戶名, 密碼, 姓名, 賬戶余額.\n");
pA->UID = (char *)malloc(sizeof(char)*20);
pA->pwd = (char *)malloc(sizeof(char)*20);
pA->UName = (char *)malloc(sizeof(char)*20);
gets(pA->UID);
gets(pA->pwd);
gets(pA->UName);
scanf("%d", &pA->balance);
getchar();
return ;
}
void showAccount(ACCOUNT A, bool flag)
{
if(flag)
{
int i = 0;
getchar();
char * tmpPwd = (char *)malloc(sizeof(char)*20);
while(strcmp(tmpPwd, A.pwd))
{
printf("請輸入賬戶%s的密碼:\n", A.UID);
gets(tmpPwd);
if(++i > 3)
{
printf("對不起, 密碼輸入錯誤!只能顯示部分信息!\n");
showAccount(A, false);
free(tmpPwd);
return ;
}
}
printf("賬戶信息如下:\n賬戶名\t賬戶密碼\t賬戶余額\t姓名\n");
printf("%6s\t%8s%8d\t%8\ts\n", A.UID, A.pwd, A.balance, A.UName);
free(tmpPwd);
}
else
{
printf("賬戶信息如下:\n賬戶名\t賬戶余額\t姓名\n");
printf("%6s\t%8d\t%4s\n", A.UID, A.balance, A.UName);
}
return ;
}
bool deposite(PACCOUNT pA)
{
if(!Authentication(pA))
return false;
int val = 0;
printf("請輸入金額:\n");
scanf("%d", &val);
pA->balance += val;
return true;
}
bool withDraw(PACCOUNT pA)
{
if(!Authentication(pA))
return false;
printf("請輸入金額");
int val = 0;
scanf("%d", &val);
if(pA->balance >= val)
{
pA->balance -= val;
}
else
{
printf("對不起, 余額不足!");
return false;
}
return true;
}
bool transfer(PACCOUNT pA, PACCOUNT pB)
{
if(!Authentication(pA))
return false;
printf("請輸入金額");
int val = 0;
scanf("%d", &val);
if(pA->balance >= val)
{
pA->balance -= val;
pB->balance += val;
}
else
{
printf("對不起, 余額不足!");
return false;
}
return true;
}
void modifyPwd(PACCOUNT pA)
{
if(Authentication(pA))
{
printf("請輸入新的密碼!");
free(pA->pwd);
pA->pwd = (char *)malloc(sizeof(char)*20);
gets(pA->pwd);
}
else
{
printf("對不起, 您沒有許可權進行密碼修改!");
}
}
bool Authentication(PACCOUNT pA)
{
getchar();
int i = 0;
char * tmpPwd = (char *)malloc(sizeof(char)*20);
while(strcmp(tmpPwd, pA->pwd))
{
printf("請輸入%s的密碼, 3次機會:\n", pA->UID);
gets(tmpPwd);
if(++i == 3)
{
return false;
}
}
return true;
}
void memFree(PACCOUNT pA, PACCOUNT pB)
{
free(pA);
free(pB);
return ;
}
/*
運行環境: VC6.0
請初始化賬戶名, 密碼, 姓名, 賬戶余額.
wed
qweasd
wednesday
800
請初始化賬戶名, 密碼, 姓名, 賬戶余額.
hu
sad
huni
200
1. 存錢 2. 取錢 3. 轉賬 4. 更改密碼 5. 顯示賬戶信息 0.退出
1
請輸入wed的密碼, 3次機會:
qwe
請輸入wed的密碼, 3次機會:
qweasd
請輸入金額:
54
操作成功!
1. 存錢 2. 取錢 3. 轉賬 4. 更改密碼 5. 顯示賬戶信息 0.退出
5
請輸入賬戶wed的密碼:
qwe
請輸入賬戶wed的密碼:
qweasd
賬戶信息如下:
賬戶名 賬戶密碼 賬戶余額 姓名
wed qweasd 854 s
1. 存錢 2. 取錢 3. 轉賬 4. 更改密碼 5. 顯示賬戶信息 0.退出
4
請輸入wed的密碼, 3次機會:
123
請輸入wed的密碼, 3次機會:
qweasd
請輸入新的密碼!123qwe
1. 存錢 2. 取錢 3. 轉賬 4. 更改密碼 5. 顯示賬戶信息 0.退出
1
請輸入wed的密碼, 3次機會:
qweasd
請輸入wed的密碼, 3次機會:
123qwe
請輸入金額:
43
操作成功!
1. 存錢 2. 取錢 3. 轉賬 4. 更改密碼 5. 顯示賬戶信息 0.退出
5
請輸入賬戶wed的密碼:
123qwe
賬戶信息如下:
賬戶名 賬戶密碼 賬戶余額 姓名
wed 123qwe 897 s
1. 存錢 2. 取錢 3. 轉賬 4. 更改密碼 5. 顯示賬戶信息 0.退出
0
Press any key to continue
*/