c语言通讯录管理系统的总结

c语言课设管理系统总结

完成情况

  • 防暴力输入

  • 密码加密输入并删除

  • 管理员和用户端两个端

  • 管理员对用户的账号删除

  • 注册用户

  • 用户的账户名及密码修改

  • 用户基本操作
    c语言通讯录管理系统的总结_第1张图片

  • 管理员基本操作
    c语言通讯录管理系统的总结_第2张图片

存在的问题

  • 管理员无法对用户的数据进行修改
  • 未使用链表
  • 由于给每一个用户都创建了一个文件,导致当用户过多时不好操作

一些写管理系统前的建议

  1. 在着手写代码之前一定先将思路理清楚,比如分为几个端,数据的如何存储,然后再按照数据存储的方式去写代码
  2. 对一些重复性较高的代码将其打包为函数,比如密码输入,界面等等你觉得重复率较高的的代码块,多用函数可以让你的代码看起来更加的简介易懂
  3. 先将一些与“整体性”关联不大的,但又经常遇到的函数写出来,界面,防暴力输入了等等,方便以后写的时候直接用、

下面是我的几个比较重要的代码块

  • 密码输入函数

    char* InputPassword()
    {
    	char* password = (char*)malloc(20);
    	int c;
    	char c1;
    	int i = 0;
    
    	while (i < 6) {
    		while ((c = getch()) != '\r') {
    			if (c == 224) {
    				c1 = getch();
    				continue;
    			}
    			if (i < 20 && isprint(c)) {
    				password[i] = c;
    				i++;
    				putchar('*');
    			}
    			else if (i > 0 && c == '\b') {
    				i--;
    				putchar('\b');
    				putchar(' ');
    				putchar('\b');
    			}
    		}
    		password[i] = '\0';
    	}
    	return password;
    }
    

这里由于password是用malloc分配的, 所以 使用这个函数时直接定义一个指针去接收函数返回值就可以啦

eg:

char * password = intputpassowrd();
  • 判断选项函数

    int judgeselect(int mix, int max)  // min 和 max 为可选择的区间
    {
    	char num[100];    //防止输入字符而导致程序崩溃
    	printf("请输入选项\n>");
    	fflush(stdin);
    	scanf("%s", num);
    	while (!inputjudge(num[0], mix, max) || num[1] != '\0') {
    		printf("输入有误!请重新输入\n>");
    		fflush(stdin);
    		scanf("%s", num);
    	}
    	return num[0] - '0';
    }
    
    • 顺便附上inputjudge
    int inputjudge(char n, int min, int max) {
    	n -= '0';
    	if (n >= min && n <= max) {
    		return 1;
    	}
    	return 0;
    }
    
    • 这个是利用scanf返回值
    int judgeselect(int min, int max)  // min 和 max 为可选择的区间
    {
    	int select;
    	printf("请输入选项\n>");
    	int n = scanf("%d", &select);
    	while(n == 0 || n < min || n > max){
    		printf("您的输入有误,请重新输入!\n");
    		fflush(stdin);
    		n = scanf("%d", &select);
    	}
    	return select;
    }
    
    

你可能感兴趣的:(c语言基础)