⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mjrec.c

📁 我搜集到的一个java常用类库的源代码
💻 C
字号:
/* * Server  */#include <stdio.h>#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <sys/time.h>#include <sys/stat.h>#include <string.h>#include <sys/param.h>#include "mjgps.h"char record_file[MAXPATHLEN];struct player_record record;FILE *fp;intread_user_name (char *name){    struct player_record tmp_rec;    if ((fp = fopen (record_file, "r+b")) == NULL)    {	printf ("Cannot open file %s\n", record_file);	exit (1);    }    while (!feof (fp) && fread (&tmp_rec, sizeof (tmp_rec), 1, fp))    {	if (strcmp (name, tmp_rec.name) == 0)	{	    record = tmp_rec;	    fclose (fp);	    return 1;	}    }    fclose (fp);    return 0;}intread_user_id (unsigned int id){    if ((fp = fopen (record_file, "r+b")) == NULL)    {	printf ("Cannot open file %s\n", record_file);	exit (1);    }    fseek (fp, sizeof (record) * id, 0);    fread (&record, sizeof (record), 1, fp);    fclose (fp);}voidwrite_record (){    if ((fp = fopen (record_file, "r+b")) == NULL)    {	printf ("Cannot open file %s\n", record_file);	exit (1);    }    fseek (fp, sizeof (record) * record.id, 0);    fwrite (&record, sizeof (record), 1, fp);    fclose (fp);}voidprint_record (){    char *ctime ();    struct player_record tmprec;    char time1[40], time2[40];    int player_num;    int i;    int id;    char name[40];    long money;    printf ("(1) 以 id 查看特定使用者\n");    printf ("(2) 以名称查看特定使用者\n");    printf ("(3) 查看所有使用者\n");    printf ("(4) 查看此金额以上的使用者\n");    printf ("(5) 查看此金额以下的使用者\n");    printf ("\n请输入你的选择:");    scanf ("%d", &i);    switch (i)    {    case 1:	printf ("请输入你要查看的 id:");	scanf ("%d", &id);	if (id < 0)	    return;	break;    case 2:	printf ("请输入你要查看的名称:");	gets (name);	gets (name);	break;    case 3:	break;    case 4:    case 5:	printf ("请输入金额:");	scanf ("%D", &money);	break;    default:	return;    }    player_num = 0;    if ((fp = fopen (record_file, "rb")) == NULL)    {	printf ("Cannot open file %s\n", record_file);	exit (1);    }    while (!feof (fp) && fread (&tmprec, sizeof (tmprec), 1, fp))    {	if (i == 1)	{	    if (id != tmprec.id)		continue;	}	if (i == 2)	{	    if (strcmp (name, tmprec.name) != 0 || name[0] == 0)		continue;	}	if (i == 4)	{	    if (tmprec.money <= money || tmprec.name[0] == 0)		continue;	}	if (i == 5)	{	    if (tmprec.money >= money || tmprec.name[0] == 0)		continue;	}	printf ("%d %10s %15s %ld %d %d %d  %s\n", tmprec.id, tmprec.name,	    tmprec.password, tmprec.money, tmprec.level, tmprec.login_count,		tmprec.game_count, tmprec.last_login_from);	strcpy (time1, ctime (&tmprec.regist_time));	strcpy (time2, ctime (&tmprec.last_login_time));	time1[strlen (time1) - 1] = 0;	time2[strlen (time2) - 1] = 0;	printf ("              %s    %s\n", time1, time2);	if (tmprec.name[0] != 0)	    player_num++;    }    printf ("--------------------------------------------------------------\n");    if (i == 3)	printf ("共 %d 人注册\n", player_num);    fclose (fp);}voidmodify_user (){    int i, id;    char name[40];    long money;    printf ("请输入使用者代号:");    scanf ("%d", &id);    if (id < 0)	return;    read_user_id (id);    printf ("\n");    printf ("(1) 更改名称\n");    printf ("(2) 重设密码\n");    printf ("(3) 更改金额\n");    printf ("(4) 取消更改\n");    printf ("\n请输入你的选择:");    scanf ("%d", &i);    printf ("\n");    switch (i)    {    case 1:	printf ("请输入要更改的名称:");	gets (name);	gets (name);	strcpy (record.name, name);	printf ("改名为 %s\n", name);	break;    case 2:	record.password[0] = 0;	printf ("密码已重设!\n");	break;    case 3:	printf ("请输入要更改的金额:");	scanf ("%D", &money);	record.money = money;	printf ("金额更改为 %ld\n", money);	break;    default:	return;    }    write_record ();}intmain (int argc, char **argv){    int i, id;    strcpy (record_file, argc < 2 ? DEFAULT_RECORD_FILE : argv[1]);    while (1)    {	printf ("\n");	printf ("(1) 列出所有使用者资料\n");	printf ("(2) 删除使用者\n");	printf ("(3) 更改使用者资料\n");	printf ("(4) 离开\n\n");	printf ("请输入你的选择:");	scanf ("%d", &i);	switch (i)	{	case 1:	    print_record ();	    break;	case 2:	    printf ("请输入使用者代号:");	    scanf ("%d", &id);	    if (id >= 0)	    {		read_user_id (id);		record.name[0] = 0;		write_record ();	    }	    break;	case 3:	    modify_user ();	    break;	default:	    return 0;	}    }    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -