bank

#include<stdio.h>
#include<stdlib.h>
#include<string.h> 
/*
 demo_v2 : �������ݣ� �ڵ�����һ���ַ������͵����� 
*/ 
// �����ļ��洢 ��  
// ���ļ��ж�ȡ���ݣ���������
// д���������ݵ��ļ� 
struct node{
	char name[20];// ������������һ���ַ�������name 
	float data;
	struct node *next;
};
struct node *head,*tail, *temp; 

// �����ڵ� 
// ���ݴ����nm��d�����������½ڵ�   
struct node *  create_node(char nm[], float d){
	struct node * t;
	t = (struct node*) malloc(sizeof(struct node));
	strcpy(t->name, nm);
	t ->data = d;
	t ->next = NULL;
	return t;
} 

// ��ij���ڵ���뵽����
void link_node(struct node* t ){
	// ���ڵ���뵽������
	if(head==NULL){ // ����Ϊ�յ�ʱ�� 
		head = tail = t; 
	}else{ //������Ϊ�յ�ʱ�� 
		tail -> next = t;
		tail = t;
	}
} 

void manu_create_link(){
	float d; 
	struct node * t;
	char name[20];
	printf("\n    ===== ��ʼ�������� ====  \n");
	for( ; ;){
		printf("������һ����������-1�˳��� ");
		scanf("%f", &d);
		if(d==-1){
			printf("�˳�");
			break;
		}else{
			printf("������һ��������");
			scanf("%s",name);
			t = create_node(name,d);
			link_node(t);
		}
	}
	printf("    ===== ������������ ====  \n"); 
}
// ������� 
void print_link(){
	//2 ��������� 
	temp = head;
	printf("\n    ===== ��ʼ������� ====  \n");
	while(temp!=NULL){
		printf("%s %f \n",temp->name,temp->data);
		temp = temp->next;
	}
	printf("    ===== ����������� ====  \n");
}

// �����������ļ�
void save_link(){
	FILE *fp = fopen("d:/a.txt","w"); 
	temp = head;
	printf("\n    ===== ��ʼ�������� ====  \n");
	while(temp!=NULL){
		fprintf(fp,"%s %f \n",temp->name, temp->data);
		temp = temp->next;
	}
	printf("    ===== ������������ ====  \n");
	fclose(fp);
} 

// ��ȡ�ļ����ݵ�����
void read_file_to_link(){
	char name[20];
	float d;
	FILE *fp = fopen("d:/a.txt","r"); 
	
	while(  fscanf(fp,"%s",name) != EOF ){ // EOF end of file
		fscanf(fp,"%f",&d);
		link_node( create_node(name,d) );  
	}
	
	fclose(fp);
} 
// 
void printUsage(){
	printf(" ====== ��ӭ��������demo ===== \n");
	printf("   �ֶ����������� 		1  \n");
	printf("   ���ļ����ݵ������� 	2  \n");
	printf("   ��ӡ��������� 		3  \n");
	printf("   д�������ݵ��ļ��� 	4  \n");
	printf("   ���������    		5  \n");
	printf("   �˳��� 				-1  \n");
	printf("  ѡ�ɣ� "); 
}
void init_link(){
	head = NULL;
	tail = NULL;
	temp = NULL;
}
void main(){ 
	int op;
	init_link();
	while(1){
		printUsage();
		scanf("%d",&op);
		if(op==-1) 
			break;
		switch(op){
			case 1:
				manu_create_link();
				break;
			case 2:
				read_file_to_link();
				break;
			case 3:
				print_link();
				break;
			case 4:
				save_link();
				break;
			case 5:
				init_link();
				break;
			default:
				printf("****�Ƿ�����****\n");
		}
		
	}
}

#include<stdio.h>
#include<stdlib.h>
#include<string.h> 
/*
 demo_v2 : 新增内容, 节点增加一个字符串类型的属性 
*/ 
// 增加文件存储 ;  
// 从文件中读取数据,到链表中
// 写链表的数据到文件 
struct card{
	char name[20];
	char cardno[20];
	char pwds[20];
	double balance;
	struct card*next;
};
struct card *head,*tail, *temp; 

// 创建节点 
// 根据传入的nm和d属性来创建新节点   
struct card *  create_card(char cdn[],char nm[], char pwd[],float b){
	struct card * t;
	t = (struct card*) malloc(sizeof(struct card));
	strcpy(t->cardno,cdn);
	strcpy(t->name,nm);
	strcpy(t->pwds,pwd);
	t ->balance = b;
	t ->next = NULL;
	return t;
} 

// 将某个节点加入到链表
void link_card(struct card* t ){
	// 将节点加入到链表中
	if(head==NULL){ // 链表为空的时候 
		head = tail = t; 
	}else{ //链表不为空的时候 
		tail -> next = t;
		tail = t;
	}
} 

void manu_create_link(){
	char cdn[20];
	char pwd[20];
	char name[20];
	struct card * t;
	double b;
	printf("\n    ===== 开始创建链表 ====  \n");
	for( ; ;){
		printf("请输入卡号、密码、姓名:\n");
		scanf("%s %s %s",cdn,name,pwd);
		if(strcmp(cdn,"0")==0||strcmp(name,"0")==0||strcmp(pwd,"0")==0){
			printf("退出");
			break;
		}else{
			printf("请输入余额:\n");
			scanf("%f",&b);
			t = create_card(cdn,name,pwd,b);
			link_card(t);
		}
	}
	printf("    ===== 创建链表结束 ====  \n"); 
}
// 输出链表 
void print_link(){
	//2 输出该链表 
	temp = head;
	printf("\n    ===== 开始输出链表 ====  \n");
	while(temp!=NULL){
		printf("%s %s %s %f \n",temp->cardno,temp->pwds,temp->name,temp->balance);
		temp = temp->next;
	}
	printf("    ===== 输出链表结束 ====  \n");
}

// 保存链表到文件
void save_link(){
	FILE *fp = fopen("d:/a.txt","w"); 
	temp = head;
	printf("\n    ===== 开始保存链表 ====  \n");
	while(temp!=NULL){
		fprintf(fp,"%s %s %s %f \n",temp->cardno,temp->pwds,temp->name,temp->balance);
		temp = temp->next;
	}
	printf("    ===== 保存链表结束 ====  \n");
	fclose(fp);
} 

// 读取文件内容到链表
void read_file_to_link(){
	char name[20];
	float b;
	char cardno[20];
	char pwds[20];
	FILE *fp = fopen("d:/a.txt","r"); 
	
	while(  fscanf(fp,"%s",cardno) != EOF ){ // EOF end of file
		fscanf(fp,"%s %s %f",name,pwds,&b);
		link_card( create_card(cardno,name,pwds,b) );  
	}
	
	fclose(fp);
} 
// 
void printUsage(){
	printf(" ====== 欢迎来到链表demo ===== \n");
	printf("   手动创建链表: 		1  \n");
	printf("   读文件数据到链表: 	2  \n");
	printf("   打印输出链表: 		3  \n");
	printf("   写链表内容到文件: 	4  \n");
	printf("   清空链表:    		5  \n");
	printf("   退出: 				-1  \n");
	printf("  选吧: "); 
}
void init_link(){
	head = NULL;
	tail = NULL;
	temp = NULL;
}
void main(){ 
	int op;
	init_link();
	while(1){
		printUsage();
		scanf("%d",&op);
		if(op==-1) 
			break;
		switch(op){
			case 1:
				manu_create_link();
				break;
			case 2:
				read_file_to_link();
				break;
			case 3:
				print_link();
				break;
			case 4:
				save_link();
				break;
			case 5:
				init_link();
				break;
			default:
				printf("****非法输入****\n");
		}
		
	}
}

#include<stdio.h>
#include<stdlib.h>
#include<string.h> 
/*
 demo_v2 : 新增内容, 节点增加一个字符串类型的属性 
*/ 
// 增加文件存储 ;  
// 从文件中读取数据,到链表中
// 写链表的数据到文件 
struct node{
	char name[20];// 比如我们增加一个字符串类型name 
	float data;
	struct node *next;
};
struct node *head,*tail, *temp; 

// 创建节点 
// 根据传入的nm和d属性来创建新节点   
struct node *  create_node(char nm[], float d){
	struct node * t;
	t = (struct node*) malloc(sizeof(struct node));
	strcpy(t->name, nm);
	t ->data = d;
	t ->next = NULL;
	return t;
} 

// 将某个节点加入到链表
void link_node(struct node* t ){
	// 将节点加入到链表中
	if(head==NULL){ // 链表为空的时候 
		head = tail = t; 
	}else{ //链表不为空的时候 
		tail -> next = t;
		tail = t;
	}
} 

void manu_create_link(){
	float d; 
	struct node * t;
	char name[20];
	printf("\n    ===== 开始创建链表 ====  \n");
	for( ; ;){
		printf("请输入一个浮点数,-1退出: ");
		scanf("%f", &d);
		if(d==-1){
			printf("退出");
			break;
		}else{
			printf("请输入一个姓名:");
			scanf("%s",name);
			t = create_node(name,d);
			link_node(t);
		}
	}
	printf("    ===== 创建链表结束 ====  \n"); 
}
// 输出链表 
void print_link(){
	//2 输出该链表 
	temp = head;
	printf("\n    ===== 开始输出链表 ====  \n");
	while(temp!=NULL){
		printf("%s %f \n",temp->name,temp->data);
		temp = temp->next;
	}
	printf("    ===== 输出链表结束 ====  \n");
}

// 保存链表到文件
void save_link(){
	FILE *fp = fopen("d:/a.txt","w"); 
	temp = head;
	printf("\n    ===== 开始保存链表 ====  \n");
	while(temp!=NULL){
		fprintf(fp,"%s %f \n",temp->name, temp->data);
		temp = temp->next;
	}
	printf("    ===== 保存链表结束 ====  \n");
	fclose(fp);
} 

// 读取文件内容到链表
void read_file_to_link(){
	char name[20];
	float d;
	FILE *fp = fopen("d:/a.txt","r"); 
	
	while(  fscanf(fp,"%s",name) != EOF ){ // EOF end of file
		fscanf(fp,"%f",&d);
		link_node( create_node(name,d) );  
	}
	
	fclose(fp);
} 
// 
void printUsage(){
	printf(" ====== 欢迎来到链表demo ===== \n");
	printf("   手动创建链表: 		1  \n");
	printf("   读文件数据到链表: 	2  \n");
	printf("   打印输出链表: 		3  \n");
	printf("   写链表内容到文件: 	4  \n");
	printf("   清空链表:    		5  \n");
	printf("   退出: 				-1  \n");
	printf("  选吧: "); 
}
void init_link(){
	head = NULL;
	tail = NULL;
	temp = NULL;
}
void main(){ 
	int op;
	init_link();
	while(1){
		printUsage();
		scanf("%d",&op);
		if(op==-1) 
			break;
		switch(op){
			case 1:
				manu_create_link();
				break;
			case 2:
				read_file_to_link();
				break;
			case 3:
				print_link();
				break;
			case 4:
				save_link();
				break;
			case 5:
				init_link();
				break;
			default:
				printf("****非法输入****\n");
		}
		
	}
}

#include<stdio.h>
struct card{
	char name[20];
	char cardno[20];
	char pwds[20];
	double balance;
	struct card*next;
};
void main(){
	struct card*head,*tail,*temp;
	head =NULL;
	tail=NULL;
	temp=NULL;
	char cdn[20];
	char pwd[20];
	char nm[20];
	double b;
	while(1){
		printf("请输入卡号、密码、姓名:\n");
		scanf("%s %s %s",cdn,nm,pwd);
		if(strcmp(cdn,"0")==0||strcmp(nm,"0")==0||strcmp(balance,"0")==0){
			printf("OVER");
			break;
		}else{
			temp=(struct card*)malloc(sizeof(struct card));
			strcpy(temp->cardno,cdn);
			strcpy(temp->name,nm);
			strcpy(temp->pwds,pwd);
			printf("请输入余额:\n");
			scanf("%f",&balance);
			if(balance<0){
				printf("非法输入");
				break; 
			}
		}
	} 
	
}

在IDEA控制台中,"------欢迎使用------请选择需要操作的功能"这行输出是由代码中的日志语句所产生的。根据引用中的代码片段,当点击按钮2时,会执行一个循环读取输入流的操作,并将读取到的字节转换成字符串。具体来说,代码中的inputStream表示输入流,而read方法则用于读取字节,并返回读取的字节数。如果返回值不等于-1,说明还有字节可读,此时将读取到的字节通过new String方法转换成字符串,并指定字符集为gbk。最后,通过Log.i方法将字符串打印出来。因此,"------欢迎使用------请选择需要操作的功能"这行输出很有可能是代码中的一个提示信息。至于1.登录和2.退出选项,用户可以根据需要选择相应的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Java-原生IO通览](https://blog.csdn.net/qq_42711920/article/details/110913607)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [解决IO流获取数据为中文时,为����乱码](https://blog.csdn.net/LiuxXn/article/details/103164301)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值