Бой проекта разработки языка C:
Язык C — это язык компьютерного программирования общего назначения, который широко используется в низкоуровневой разработке. Целью разработки языка C является предоставление языка программирования, который может быть легко скомпилирован, поддерживает низкоуровневую память, генерирует небольшой объем машинного кода и может работать без какой-либо поддержки операционной среды. Хотя язык C предоставляет множество низкоуровневых функций обработки, он по-прежнему поддерживает хорошую кросс-платформенную функцию.Программа на языке C, написанная в стандартной спецификации, может быть скомпилирована и нормально работать на многих платформах.
Язык C — это процессно-ориентированный язык. Его неотъемлемые характеристики определяют, что он не подходит для написания красивого графического интерфейса. В этом месте автор решил использовать язык C для реализации дизайна входа пользователя, чтобы каждый мог почувствовать C языковой проект Собственно процесс разработки. Следовательно, последующее описание не будет таким официальным и точным, как фактическое описание документации по разработке проекта в компании.
один. Требования к проекту:
1. Консоль пользователя;
2. Функциональные требования, возможность регистрации, хранения и сравнения паролей учетных записей пользователей;
два. Дизайн проекта:
По требованиям мы можем знать:
1. Макет интерфейса должен иметь ввод учетной записи и пароля, а это значит, что нам нужна идентификация пользователя и пароля в коде.Мы можем использовать функцию printf, предоставляемую стандартной библиотекой C, для печати на терминале, в то же время интерфейс который требует ввода пользователя и пароля, мы можем использовать функцию scanf или gets, предоставляемую стандартной библиотекой C, чтобы реализовать это; аналогично, параметры входа, регистрации и выхода также могут быть реализованы напрямую с использованием вышеуказанных функций и конкретных планировку можно определить индивидуально.
2. В соответствии с функциональными требованиями лучше использовать существующую зрелую базу данных для реализации сравнения пользовательских данных, но здесь мы говорим только о практическом применении языка C, поэтому мы можем использовать некоторые существующие типы данных языка C для реализовать такую функцию. Конечно, это также ограничит производительность нашей программы. Мы можем обнаружить, что связь между пользователем и паролем должна быть взаимно однозначной, поэтому мы можем использовать форму структуры для реализации «привязки» пользователя и соответствующего ему пароля. И у нас не должно быть только одного пользователя, поэтому мы можем использовать форму массива структур для хранения пользовательских данных. (У такого дизайна будет неизбежная проблема. Когда программа завершается, память освобождается, и все данные внутри массива структур исчезают. Если вы также изучите файловый ввод-вывод, я думаю, вы уже сможете решить эту проблему.)
3. Когда пользователь входит в систему, сравнение данных В настоящее время мы можем реализовать функцию входа в систему путем обхода и сравнения. В будущем, когда масштаб проблемы станет большим, базу данных по-прежнему следует использовать для управления соответствующими данными и достижения оптимизации.
три. Код изделия:
1.Можно использовать более профессиональный подход к разделению файла на несколько исходных файлов.Это относительно элементарно и удобно для последующего отображения.Автор решил взять на вооружение самый "НИЗКИЙ" способ,просто и грубо поместить все в один файл посередине;
2. Конкретная реализация кода:
#включать
#включать
#включать
#включать
данные структуры typedef{
char name[20]; //сохраняем имя пользователя
char pass[20];//сохраняем пароль
}данные пользователя;
user_data user[20] = {0}; // Массив структур, способный сохранить 20 пользователей
int last = 0; // бит флага, помечающий количество зарегистрированных аккаунтов
логическое значение reg_string (недействительно)
{
int i = 0, n;
если (последнее >= 20){
вернуть ложь;
}
имя символа[20] = {0}, пароль[20] = {0};
printf("пожалуйста, введите ваше имя пользователя:\n");
ххх:
scanf("%s", имя);
getchar(); // читаем грязные символы
for(i = 0; i <последний; i++){
n = strcmp(имя, пользователь[i].имя);
если (0 == п) {
printf("Пользователь зарегистрирован\n");
goto xxx; //Если имя пользователя такое же, переходим к повторному вводу
}
}
printf("пожалуйста, введите ваш пароль:\n");
scanf("%s", пройти);
strcpy(пользователь[фамилия].имя, имя);
strcpy (пользователь [последний]. пароль, пароль);
последний++;
printf("Успешная регистрация\n");
вернуть истину;
}
bool log_string(void)
{
если (0 == последний) {
вернуть ложь;
}
инт я, н, м;
имя символа[20] = {0}, пароль[20] = {0};
printf("пожалуйста, введите ваше имя пользователя:\n");
scanf("%s", имя);
получитьсимвол();
printf("пожалуйста, введите ваш пароль:\n");
scanf("%s", пройти);
получитьсимвол();
for(i = 0; i <последний; i++){
// функция strcmp возвращает значение "0" означает, что две строки одинаковы
n = strcmp(пользователь[i].имя, имя);
m = strcmp(user[i].pass, pass);
если (n == 0 && m == 0){
//В будущем могут быть предоставлены другие интерфейсы для реализации различных пользовательских функций
printf("Успешный вход!\n");
вернуть истину;
}
}
//Когда программа доходит до этого шага, это означает, что массив структур был пройден и не было найдено ни одного соответствующего пользователя и //пароля
printf("Ошибка пользователя или пароля\n");
вернуть ложь;
}
основной ()
{
инт н;
в то время как (1) {
//Реализуем макет интерфейса
printf("******************************************\n");
printf("*****1. Зарегистрироваться*****2. Войти*****3. Выйти*****\n"); printf("********** *******************************\n");
ххх:
сканф("%d", &n);
получитьсимвол();
переключатель (п) {
Дело 1:
// Вы должны правильно оценить возвращаемое значение при вызове, чтобы убедиться, что соответствующая функция вызывается правильно
reg_string();
перерыв;
случай 2:
log_string();//логин
перерыв;
случай 3:
вернуть 0;
по умолчанию:
перейти на ххх;
}
}
}
Примечание:
На этот раз мы в основном познакомимся с фактическим процессом разработки проектов на языке C, поэтому выбор проектов относительно прост, а код не оптимален. Если вы хотите получить глубокое и профессиональное понимание, пожалуйста, свяжитесь с нами.
Встроенному Интернету вещей нужно многому научиться.
Поделитесь пакетом данных со всеми, около 150 G. Учебное содержание, личные писания и проекты в нем относительно новые и законченные! (Нажмите, чтобы найти маленького помощника для получения)