电影院管理系统

电影院管理系统

上周我做了一个简易版的电影院管理系统,内容包括链表的创建,链表节点的增加、删除、修改、查找。
此电影系统还包含了文件的操作,例如将链表中的数据存到文件中去,也可将文件中的数据赋给链表。
先定义一个链表的结点(因为链表结点需多次使用,所以将其定义在头文件中):

#ifndef _STRUCT_H_
#define _STRUCT_H_ 


typedef struct Node{
   
	int number;
	char name[20];
	char date[20];
	char time[20];
	int price;
	int people;
	struct Node *next;		
}LinkList;


#endif

(将其后缀需改成.h)

文件操作

这是将链表中的数据存放到文件中:

#include<stdio.h>
#include<stdlib.h>
#include"struct.h"

void enter_file(LinkList *head)
{
   
	FILE *fp;
	LinkList *p;
	p = head->next;
	fp = fopen("D:\\电影院管理系统\\电影信息.txt","wt");
	if(!fp){
   
		printf("打开文件失败!\n");
		exit(1);
	}
	while(p){
   
		fprintf(fp,"%d %s %s %s %d %d\n",p->number,p->name,p->date,p->time,p->price,p->people); 
		p = p->next;
	}
	fclose(fp);
}	
	

这是将文件中的数据存放到链表当中:

#include<stdio.h>
#include<stdlib.h>
#include"struct.h"
#include<conio.h> 

LinkList *file_to_link()
{
   
	LinkList *head, *p, *temp;
	head = (LinkList *)malloc(sizeof(LinkList));
	head->next = NULL;
	temp = head;
	FILE *fp;
	fp = fopen("D:\\电影院管理系统\\电影信息.txt","rt");
	if(!fp){
   
		printf("打开文件失败!\n");
		printf("按任意键进入菜单!\n");
		getch();
		return NULL;
	}

	while(!feof(fp)){
   
		p = (LinkList *)malloc(sizeof(LinkList)); 
		fscanf(fp,"%d %s %s %s %d %d\n",&p->number,p->name,p->date,p->time,&p->price,&p->people); 
		//此处需加上\n,如果不加,将会在文件中出现乱码
		temp->next = p;
		temp = p; 
		temp->next = NULL;		
	}

	fclose(fp);
	return head;
}

注册与登录

这里将注册信息存放到文件中,同时在登陆时从文件中调取(此处只能存放一个人的信息)。
注册:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

void register_()
{
   
	printf("请输入用户名:");
	char s[20];
	scanf("%s",s);
	printf("请输入密码:");
	char a[20],p[20];
	int i = 0;
	do{
   
		a[i] = getch();
		if(a[i] == '\r') break;
		if(a[i] == '\b'){
   
			if(!i){
   
				printf("\a");
				continue;
			}
			i = i -1;
			printf("\b");
		}
		else{
   
			i = i + 1;
			printf("*");	
		}	
	}while(a[i] != '\n');
	a[i] = '\0';
	i = 0; 
	printf("\n");
	printf("请确认密码:");
		do{
   
		p[i] = getch();
		if(p[i] == '\r') break;
		if(p[i] == '\b'){
   
			if(!i){
   
				printf("\a");
				continue;
			}
			i = i -1;
			printf("\b");
		}
		else{
   
			i = i + 1;
			printf("*");	
		}	
	}while(p[i] != '\n');
	p[i] = '\0';
	i = 0;
	printf("\n");
	while(strcmp(a,p)){
   
		printf("请重新确认密码:");
		i =
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值