网吧管理系统------C语言课设

1.课程设计报告的要求

开发一个简单的网吧管理系统,实现以下基本功能:
【基本功能】
1.网吧会员信息包括:会员号、会员姓名、手机号、身份证号、积分等。
2.上网信息包括:会员号、电脑编号、上网开始时间等。
3.能够添加、删除、修改会员信息,并将修改后的信息再次写入文件。
4.能够按给定会员号、姓名等信息进行查找并显示相关信息。
5.能够按照姓名或会员号对会员信息进行排序,并存入文件中。
6.结算时,需将对应上网信息删除,并添加相应会员积分。
【扩展功能】
可以按照自己对网吧管理系统的需求理解进行扩展。比如:(1)权限处理 (2)模糊查询(3)综合查询(4)统计等功能。总之,可以根据自己的需求分析进行功能扩展。

2.实现管理员注册和登录模块的代码

部分函数声明及功能简介

#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
//#include "user_vip.h"
void menu();
//打印菜单以供用户选择

void menu_choice(int choice);
//对用户菜单的选项来调用函数

void sign_in();
//设置登陆系统,默认账号12345678
//默认密码admin
//第一次输入需要用户更新账号密码存于名为key的文本文档中
//运用fopen函数

void registe();
/*注册函数
* 先判断是否是默认函数(sign_flag是否为0)
* 如果是则可以修改
* 如果不是则需要输入任意一位管理员账号密码才能注册
*/

void add_administrator_menu();
//打印添加管理员菜单

void add_administrator(int choice);
/*在默认账号密码已经被使用过之后 
* 使用的添加管理员的函数
* 需要输入之前任意一位管理员的账号密码
才能注册新的管理员账号密码
*/

//建立所需文件
void OpenFile();

各个函数具体内容

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include "sysytem.h"
#include "user_vip.h"
char id[15];
char key[15];
//int sign_flag;
//FILE* p = fopen("flag.txt", "r");
//fscanf(p,"%d",&sign_flag);
//flag.txt表示注册次数,第一次则直接覆盖默认账号密码

void set_file()
{
   
	FILE *p1=fopen("管理员key.txt", "a+");
	FILE *p2=fopen("管理员id.txt", "a+");
	FILE* p3= fopen("sign_flag.txt", "a+");
	FILE* p4 = fopen("user_somebody.txt", "a+");
	FILE* p5 = fopen("user_vip.txt", "a+");
	//fprintf(p4,"**********************会员号码*****会员名称*****会员手机号*****零钱余额*****积分余额**********************");
	fclose(p1);
	fclose(p2);
	fclose(p3);
	fclose(p4);
	fclose(p5);


}

void menu()
{
   
	//int sign_flag = 0;//表示注册次数,第一次则直接覆盖默认账号密码
	int choice;
	printf("\n\n\n\n");
	printf("           ****************************************************************           \n");
	printf("           *                        网吧管理系统                          *           \n");
	printf("           *                                                              *           \n");
	printf("           *                                                              *           \n");
	printf("           *              请输入账号密码来进入管理员后台!                 *           \n");
	printf("           *                                                              *           \n");
	printf("           *                   ( 默认账号:12345678                        *           \n");
	printf("           *                                                              *           \n");
	printf("           *                    默认密码:admin )                          *           \n");
	printf("           *       1.登录                                                 *           \n");
	printf("           *       2.注册账号                                             *           \n");
	printf("           *       3.退出系统                                             *           \n");
	printf("           *                                                              *           \n");
	printf("           *                                                              *           \n");
	printf("           *    [默认账号密码仅用于注册第一位管理员,使用一次之后会失效]   *           \n");

	printf("           *                                                              *           \n");
	printf("           *                                                              *           \n");
	printf("           *                                                              *           \n");
	printf("           *                                                              *           \n");
	
	printf("           ****************************************************************           \n");
	printf("\n\n\n");
	printf("请输入对应菜单选项!\n");
	scanf("%d", &choice);
	menu_choice(choice);
	
}

/*
* 1.登录(未完成)
* 2.注册账号
* 3.退出系统
*/

//默认密码登录不安全提示?直接跳注册界面?
//显示当前已有多少管理员?
void menu_choice(int choice)
{
   
	switch (choice)
	{
   
	case 1:
		sign_in();
		break;
	case 2:
		registe();
		break;
	case 3:

		printf("\n\n谢谢使用本管理系统,系统已退出!\n\n");
		exit(0);
		break;
	default:
		printf("输入错误,请重新输入!\n");
		menu();
	}
}

//第一个管理员允许才能创建第二个管理员?[已完成]
//注册函数要注意思考用户名重复问题[已完成]
//"\n"是否读入?[已完成fseek解决,读入\n]
//时间动感?颜色?
void sign_in()
//登录
{
   
	FILE* fp1=fopen("管理员id.txt","r" );
	FILE* fp2 = fopen("管理员key.txt", "r");
//r表示只读
	int sign_flag;
	FILE* p = fopen("sign_flag.txt", "r");
	fscanf(p, "%d", &sign_flag);
	int flag = 0;
	char library_id[15];
	char library_key[15];
			int count = 0;
		printf("           ****************************************************************           \n");
		printf("           *                                                              *           \n");
		printf("           *                                                              *           \n");

		printf("                          账号:");
		scanf("%s", &id);
		while (strlen(id) > 15)
		{
   
			printf("账号长度过大,请重新输入\n");
			scanf("%s", id);

		}
		printf("           *                                                              *           \n");
		printf("           *                                                              *           \n");
		puts("");
		printf("                          密码:");
		scanf("%s", &key);
		while (strlen(key) > 15)
		{
   
			printf("密码长度过大,请重新输入\n");
			scanf("%s", key);

		}
		printf("           *                                                              *           \n");
		printf("           *                                                              *           \n");

		printf("           ****************************************************************           \n");

		puts("");
		if (sign_flag == 0 && strcmp(id, "12345678") == 0 && strcmp(key, "admin") == 0)
		{
   
			printf("请勿用默认管理员账号密码进入系统!仅用来注册使用!\n");
			printf("\n即将返回上一层菜单!\n");
			menu();
		}
		else
		{
   
			while (strcmp(library_id, id) != 0)
			{
   
				fscanf(fp1, "%s", library_id);
				if (strcmp(library_id, id) == 0)
					flag = 1;
				count++;
				if (count > sign_flag)
				{
   
					printf("\n\n您暂无管理员权限,请重新输入!\n\n");
					menu();
					break;
				}
			}


			if (flag == 1)
			{
   
				count = 0;
				while (strcmp(library_key, key) != 0)
				{
   

					fscanf(fp2, "%s", library_key);//不能换行输入的话,"内加空格试试
					if (strcmp(library_key, key) == 0)
						flag = 2;

					count++;
					if (count > sign_flag)
					{
   
						printf("\n密码错误,请重新输入!\n");
						sign_in();

						break;
					}
				}
			}

			if (flag == 2)
			{
   
				pr_vip_menu();
			}
		}

}

void registe()
{
   
	int sign_flag;
	FILE* p = fopen("sign_flag.txt", "r");

	fscanf(p, "%d", &sign_flag);
	fclose(p);
	printf("           ****************************************************************           \n");
	printf("           *                      新管理员后台注册系统                    *           \n");	
	printf("           *                                                              *           \n");

	printf("           *                                                              *           \n");

	printf("           *                                                              *           \n");
	printf("                        请输入新管理员账号:");
	scanf("%s", &id);
	while (strlen(id) > 15)
	{
   
		printf("账号过长,请输入0-15位字符作为账号密码,\n请重新输入账号");
		scanf("%s", &id);
	}
	
	printf("                        请输入新管理员密码:");
	scanf("%s", &key);
	while (strlen(key) > 15)
	{
   
		printf("账号过长,请输入0-15位字符作为账号密码\n请重新输入密码");
		scanf("%s", &key);
	}
	
	printf("           *                                                              *           \n");
	
	printf("           *            [第一次注册请使用默认账号密码注册!]               *           \n");
	printf("           *                                                              *           \n");
	printf("           *                                                              *           \n");
	printf("           ****************************************************************           \n");

	if (sign_flag > 0)
	{
   
		printf("\n\n\n");
		printf("您暂无注册管理员权限!请联系任意一位管理员获取权限!!\n");
		printf("\n\n\n");
		add_administrator_menu();
	}
	else if (sign_flag == 0)
	{
   
		if (strcmp(id, "12345678") == 0 && strcmp("admin", key) == 0)
		{
   
			FILE* fp1=NULL; 
			FILE* fp2=NULL;

			FILE* fp3=NULL;
			FILE* fp4=NULL;
			fp1 = fopen("管理员id.txt", "w");
			fp2 = fopen("管理员key.txt", "w");

			fclose(fp1);
			fclose(fp2);

			fp3 = fopen("管理员id.txt", "r+");
			fp4 = fopen("管理员key.txt", "r+");
			printf("                       请输入新的管理员账号:\n");
			scanf("%s", &id);
			while (strlen(id) > 15)
			{
   
				printf("账号过长,请输入0-15位字符作为账号密码,\n请重新输入账号");
				scanf("%s", &id);
			}

			printf("                        请输入新管理员密码:");
			scanf("%s", &key);
			while (strlen(key) > 15)
			{
   
				printf("账号过长,请输入0-15位字符作为账号密码\n请重新输入密码");
				scanf("%s", &key);
			}
			

			fputs(key, fp4);

			fputs(id,fp3);
			fclose(fp3);
			fclose(fp4);

			sign_flag++;
		}
		
		else
		{
   
			printf("默认账号密码有误,请重新尝试!\n");
			registe();
		}
		p = fopen("sign_flag.txt", "w");
		fclose(p);
		p = fopen("sign_flag.txt", "r+");

		fprintf(p, "%d", sign_flag);
		fclose(p);
	printf("\n\n\n您已注册成功,即将返回主菜单!!\n");
	menu();

	}



}

/*	用户名重复问题[已完成]
* \n读入问题[已完成]
* 是否要限制用户名和密码位数?
* 是否密码复杂度?修改密码?
打印菜单供选择[已完成]
*/

void add_administrator_menu()
{
   
	int choice;
	printf("\n\n\n");

	printf("           ****************************************************************           \n");
	printf("           *                您正在申请注册新的管理员权限                  *           \n");
	printf("           *                                                              *           \n");
	printf("           *            请输入以下菜单编号来获取功能                      *           \n");
	printf("           *                                                              *           \n");
	printf("           *           1.注册新的管理员权限                               *           \n");
	printf("           *                                                              *           \n");
	printf("           *           2.返回登陆界面                                     *           \n");
	printf("           *                                                              *           \n");
	printf("           *           3.退出系统                                         *           \n");
	printf("           *                                                              *           \n");
	printf("           *                                                              *           \n");
	printf("           *                                                              *           \n");
	printf("           *                                                              *           \n");
	printf("           ****************************************************************           \n");

	printf("\n\n");
	printf("请输入菜单编号:\n");
	scanf("%d", &choice);
	add_administrator(choice);


}

/*
* 1.注册新管理
* 2.返回登陆
* 3.退出系统
*/

void add_administrator(int choice)
{
   
	char id[15];
	char key[15];
	int sign_flag;
	FILE* p = fopen("sign_flag.txt","r");
	fscanf(p,"%d",&sign_flag);
	fclose(p);
	FILE* fp1 = fopen("管理员id.txt", "r");
	FILE* fp2 = fopen("管理员key.txt", "r");
	char id_tem[15];
	int flag = 0;
	char key_tem[15];

	//媒介用于对比
	switch (choice)
	{
   
	case 1:
		printf("\n\n\n");
		printf("           ****************************************************************           \n");
		printf("           *                                                              *           \n");
		printf("           *                                                              *           \n");
		printf("                 请输入已注册管理员的账号:");
		scanf("%s", id);
		while (strlen(id) > 15)
		{
   
			printf("账号长度过大,请重新输入\n");
			scanf("%s", id);

		}
		printf("           *                                                              *           \n");
		printf("           *                                                              *           \n");
		printf("                 请输入已注册管理员的密码:");
		scanf("%s", key);
		while (strlen(key) > 15)
		{
   
			printf("密码长度过大,请重新输入\n");
			scanf("%s", key);

		}
		printf("           *                                                              *           \n");
		printf("           *                                                              *           \n");

		printf("           *                                                              *           \n");
		printf("           ****************************************************************           \n");


		//接下来核对管理员账号密码是否正确
		for (int i = 0; i < sign_flag; i++)
		{
   
			fscanf(fp1, "%s", id_tem);
			fscanf(fp2, "%s", key_tem);
			

				if (strcmp(id_tem, id) == 0)
				{
   
					flag = 1;
					if (strcmp(key_tem, key) == 0)
					{
   
						flag = 2;
					}
				}
					//fp1 += strlen(id_tem);
					//fp2 += strlen(key_tem);
				fseek(fp1, strlen(id_tem), SEEK_CUR);
				fseek(fp1, strlen(key_tem), SEEK_CUR);
				
			}
		fp1 = fopen("管理员id.txt", "r");
		 fp2 = fopen("管理员key.txt", "r");
		 
		if (flag == 0)
		{
   
			printf("无此管理员权限信息!请检查是否账号输入错误\n");
			printf("\n\n\n");
			add_administrator_menu();
			}
		if (flag == 1)
		{
   
			printf("管理员密码错误!\n"
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熟人看不到

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值