c语言通讯录管理系统的总结
c语言通讯录管理系统的总结
c语言课设管理系统总结
完成情况
防暴力输入
密码加密输入并删除
管理员和用户端两个端
管理员对用户的账号删除
注册用户
用户的账户名及密码修改
用户基本操作
管理员基本操作
存在的问题
管理员无法对用户的数据进行修改
未使用链表
由于给每一个用户都创建了一个文件,导致当用户过多时不好操作
一些写管理系统前的建议
在着手写代码之前一定先将思路理清楚,比如分为几个端,数据的如何存储,然后再按照数据存储的方式去写代码
对一些重复性较高的代码将其打包为函数,比如密码输入,界面等等你觉得重复率较高的的代码块,多用函数可以让你的代码看起来更加的简介易懂
先将一些与“整体性”关联不大的,但又经常遇到的函数写出来,界面,防暴力输入了等等,方便以后写的时候直接用、
下面是我的几个比较重要的代码块
密码输入函数
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语言通讯录管理系统的总结相关教程