当前位置:首页 » 编程语言 » c语言登陆系统

c语言登陆系统

发布时间: 2024-08-03 11:58:40

㈠ 多用户登录系统c语言程序

#include<stdio.h>
#include<stdlib.h>
#include"string.h"
#include"windows.h"

inttotal=0;

structu_p
{
charuser[20];
charpass[20];
}s[50];

voidread()
{
total=GetPrivateProfileInt("INFO","count",0,"d:\Info.dat");
inti;
chart[5]={""};
for(i=0;i<total;i++)
{
sprintf(t,"%d",i+1);
GetPrivateProfileString(t,"USER","",s[i].user,20,"d:\Info.dat");
GetPrivateProfileString(t,"PASSWORD","",s[i].pass,20,"d:\Info.dat");
}
}

voidinput()
{
intp,i=0,count=0,f_u=0,f_p=0;
charuser[20]={""};
charpassword[20]={""};
while(1)
{
f_u=0;
f_p=0;
system("cls");
printf("当前共有%d个注册用户",total);
printf(" 请输入用户名:");
memset(user,'',20);
scanf("%s",user);
printf(" 请输入密码:");
memset(password,'',20);
i=0;
while(1)
{
p=_getch();
if(p==10||p==13)
{
break;
}
password[i++]=p;
printf("*");
}
for(i=0;i<total;i++)
{
if(strcmp(s[i].user,user)==0)
{
f_u=1;
if(strcmp(s[i].pass,password)==0)
{
f_p=1;
printf(" 欢迎%s",user);
fflush(stdin);
_getche();
continue;
}
}
}
if(f_u==0)
{
printf(" 不存在该用户名!选1重新输入,选2注册新用户");
intc=0;
fflush(stdin);
c=_getche();
if(c=='1')
{
continue;
}
elseif(c=='2')
{
system("cls");
printf("注册新用户");
printf(" 请输入用户名:");
memset(user,'',20);
scanf("%s",user);
printf(" 请输入密码:");
chartemp[20]={""};
i=0;
while(1)
{
p=_getch();
if(p==10||p==13)
{
break;
}
temp[i++]=p;
printf("*");
}
printf(" 请再次输入密码:");
i=0;
memset(password,'',20);
while(1)
{
p=_getch();
if(p==10||p==13)
{
break;
}
password[i++]=p;
printf("*");
}
if(strcmp(temp,password)==0)
{
total++;
chart[5]={""};
sprintf(t,"%d",total);
WritePrivateProfileString("INFO","count",t,"d:\Info.dat");
WritePrivateProfileString(t,"USER",user,"d:\Info.dat");
WritePrivateProfileString(t,"PASSWORD",password,"d:\Info.dat");
printf(" 注册成功,请重新登录");
fflush(stdin);
_getch();
count=0;
read();
continue;
}
else
{
printf(" 两次密码不一致,注册失败");
fflush(stdin);
_getch();
count=0;
continue;
}
}
}
elseif(f_p==0)
{
count++;
if(count>=3)
{
printf(" 连续输入3次错误,程序将退出");
fflush(stdin);
_getche();
return;
}
printf(" 密码输入错误,请重新输入");
fflush(stdin);
_getche();
}
}
return;
}

intmain(intargc,char*argv[])
{
read();
input();

return0;
}

㈡ C语言用户登录系统账户密码比对

#include<stdio.h>
#include<string.h>

typedefstructaccount{
charname[32];
characc[16];
charpsw[16];
}Acc;

//data是结构体数组,filename是文件绝对地址,n保存读入的结构体数量
voidGetDataFromTxt(Acc*data,constchar*filename,int*n)
{
FILE*fp=fopen(filename,"r");
if(NULL==fp){
printf("Openfilefailedornothisfile! ");
return;
}

inti=0;
while(!feof(fp))
{
fscanf(fp,"%s%s%s",data[i].name,data[i].acc,data[i].psw);
i++;
}
*n=i;
}

intmain()
{
inti,n;
Accdata[100];
//获取数据
GetDataFromTxt(data,"E:\secret.txt",&n);
printf("n=%d ",n);
printf("姓名账号密码 ");
for(i=0;i<n;++i)
printf("%-4s%-16s%-10s ",data[i].name,data[i].acc,data[i].psw);

//登录示例
putchar(' ');
characc[16],psw[16];
do{
//这里只是粗略地写了一个
//具体的账号错误或者密码错误自行发挥
printf("请输入账号:");
scanf("%s",acc);
printf("请输入密码:");
scanf("%s",psw);
for(i=0;i<n;++i)
{
if(strcmp(acc,data[i].acc)==0&&strcmp(psw,data[i].psw)==0){
printf("登陆成功! ");
break;
}
}
if(i==n){
printf("账号或密码不正确!请重新输入! ");
}else{
break;
}
}while(1);
printf("Byebye!!! ");

return0;
}

㈢ C语言学生管理系统

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>

#define max 20

typedef struct student //学生
{
char sno[max]; // 学号
char sname[max]; //姓名
char sex[max]; //性别
char age[max]; //年龄
char depart[max]; //系
char classs[max]; //班
char grade[max]; //年级

struct student* next;
} student;

student* head;

int LogOn() //登录模块,已实现输入密码不回显,如果中途发现输错某几位,可退格键重输
{
char username[max],password[max];
printf("\n请输入用户名:");
scanf("%s",username);
printf("\n请输入密码(最多15位):");

//开始以不回显且支持退格方式获取输入密码
int i=0;
while((i>=0)&&(password[i++]=getch())!=13)//条件i>=0是用于限制退格的范围
{
if(password[i-1]=='\b')//对退格键的处理
{
printf("%c%c%c",'\b','\0','\b');
i=i-2;
}
else
printf("*");
}
password[--i]='\0';

//已获取密码。验证用户身份
if(!strcmp(username,"zhang")&&!strcmp(password,"8147086"))
{
printf("\n登录成功!");
return 1;
}
else
return 0;

}

void regist()
{
char ch;
student *s,*ptr; //s用来建新结点,ptr用来暂存头结点

do
{

s=(student*)malloc(sizeof(student)); // 新建一个学生结点

printf("\n开始注册..."); //开始注册
printf("\n请输入该学生的学号:");
scanf("%s",s->sno);
printf("\n请输入该学生的姓名:");
scanf("%s",s->sname);
printf("\n请输入该学生的性别:");
scanf("%s",s->sex);
printf("\n请输入该学生的年龄:");
scanf("%s",s->age);
printf("\n请输入该学生的系:");
scanf("%s",s->depart);
printf("\n请输入该学生所在的班:");
scanf("%s",s->classs);
printf("\n请输入该学生所在的年级");
scanf("%s",s->grade);

ptr=head;
head=s;//将新结点插入队头
s->next=ptr;

fflush(stdin);
printf("\n请问是否继续注册?(Y/N)");
scanf("%c",&ch);
}while(ch=='Y'||ch=='y');

return;
}

void ElePrint(char str[]) //输出单个元素
{
if(str==NULL) exit(0);
printf("%s",str);
for(unsigned int i=0;i<12-strlen(str);i++) printf(" ");//为了对齐输出,需插入一些空格
return;
}

int LinePrint(student *ptr) //输出一行
{
if(ptr==NULL) //检查传进来的指针
return 0;

printf("\n");
ElePrint(ptr->sno);
ElePrint(ptr->sname);
ElePrint(ptr->age);
ElePrint(ptr->sex);
ElePrint(ptr->depart);
ElePrint(ptr->classs);
ElePrint(ptr->grade);

return 1;
}

void print() //输出全部学生信息
{
student *ptr=head;
printf("\n学号 姓名 年龄 性别 系 班 年级 ");
while(ptr)
{
LinePrint(ptr);
ptr=ptr->next;
}
printf("\n");
return;
}
void search()//查询模块
{
int method;//查询方式
char no[max],name[max],departm[max],clss[max],grades[max]; //用来接收查询关键字
while(1)
{
printf("\n请选择查询方式");
printf("\n1.按学号查询");
printf("\n2.按姓名查询");
printf("\n3.按所在系查询");
printf("\n4.按所在班级查询");
printf("\n5.按所在年级查询");
printf("\n6.打印全部学生信息");
printf("\n7.返回主菜单\n");

scanf("%d",&method);

student *p=head,*temp;

switch(method)
{
case 1:
printf("\n请输入要查询的学号:");
scanf("%s",no);
while(p)
{
if(!strcmp(p->sno,no))
break;
else
{
temp=p;
p=p->next;
}
}
printf("\n学号 姓名 年龄 性别 系 班 年级 ");
LinePrint(p);
break;
case 2:
printf("\n请输入要查询的姓名:");
scanf("%s",name);
printf("\n学号 姓名 年龄 性别 系 班 年级 ");
while(p)
{
if(!strcmp(p->sname,name))
LinePrint(p);
p=p->next;
}
break;
case 3:
printf("\n请输入学生所在的系:");
scanf("%s",departm);
printf("\n学号 姓名 年龄 性别 系 班 年级 ");
while(p)
{
if(!strcmp(p->depart,departm))
LinePrint(p);
p=p->next;
}
break;
case 4:
printf("\n请输入学生所在的班:");
scanf("%s",clss);
printf("\n请输入学生所在的年级:");
scanf("%s",grades);
printf("\n学号 姓名 年龄 性别 系 班 年级 ");
while(p)
{
if(!strcmp(p->classs,clss)&&!strcmp(p->grade,grades))
LinePrint(p);
p=p->next;
}
break;

case 5:
printf("\n请输入学生所在的年级:");
scanf("%s",grades);
printf("\n学号 姓名 年龄 性别 系 班 年级 ");
while(p)
{
if(!strcmp(p->grade,grades))
LinePrint(p);
p=p->next;
}
break;

case 6:
print();
break;

case 7:
return;
default:
printf("很抱歉,暂无此查询方式!");
break;
}
}

}

void modify()//修改学生信息
{
char num[max];
student *p=head;
printf("\n请输入要修改的学生的学号:");
scanf("%s",num);
while(p)
{
if(!strcmp(p->sno,num))
break;
else
p=p->next;
}
if(p==NULL)
{
printf("\n错误:没有此学生的信息!\n");
return;

}
LinePrint(p);

printf("\n请输入要修改的该学生的信息:");
printf("\n1.姓名");
printf("\n2.性别");
printf("\n3.年龄");
printf("\n4.所在的系");
printf("\n5.所在的班");
printf("\n6.所在的年级");

char name1[max],sex1[max],age1[max],depart1[max],class1[max],grade1[max];
int select;
fflush(stdin);
scanf("%d",&select);
printf("\n请输入新的信息:");

switch(select)
{
case 1:
scanf("%s",name1);
strcpy(p->sname,name1);
break;
case 2:
scanf("%s",sex1);
strcpy(p->sex,sex1);
break;
case 3:
scanf("%s",age1);
strcpy(p->age,age1);
break;
case 4:
scanf("%s",depart1);
strcpy(p->depart,depart1);
break;
case 5:
scanf("%s",class1);
strcpy(p->classs,class1);
break;
case 6:
scanf("%s",grade1);
strcpy(p->grade,grade1);
break;
default:
printf("\nError!");
break;
}

LinePrint(p);
return;
}

void del()// 删除某学生的信息
{
student *p=head,*temp=head,*s;
char num1[max];
printf("\n请输入要删除的学生的学号:");
scanf("%s",num1);
while(p)//查找该学生所在的结点
{
if(!strcmp(p->sno,num1))
break;
else
{
temp=p;
p=p->next;
}

}//while
if(!p)
{
printf("\n不存在此学生的信息.");
return;
}
LinePrint(p);//输出该学生的信息
printf("\n请问真的要删除该学生的信息吗?(Y/N)");
char ch;
fflush(stdin);
scanf("%c",&ch);
if(ch=='Y'||ch=='y')
{
s=p->next;
temp->next=s;
free(p);
printf("\n已经删除该学生的信息.");
}
return;
}

void sort() //排序模块。将学生记录按学号从小到大排列。用起泡排序算法实现
{

student *ptr,*s=head,*p;
int count=0,count1;
while(s)//统计链表结点个数
{
count++;
s=s->next;
}

for(int i=1;i<count;i++)
{
ptr=head;
p=NULL;
count1=count-i; //用来控制每轮起泡排序的终点,即每次把学号最小的结点移到倒数第i个结点
while(ptr&&ptr->next&&(count1--))
{
if(strcmp(ptr->sno,ptr->next->sno)>0)
{
s=ptr->next;
ptr->next=s->next;
if(p==NULL) //ptr处于队头时
head=s;
else
p->next=s;
s->next=ptr;
p=s;
}
else
{
ptr=ptr->next;
if(p==NULL) //ptr处于队头时
p=head;
else
p=p->next;
}
}
}
return;
}

void quit()
{
char ch;
printf("\n真的要退出?(Y/N)");
fflush(stdin);
scanf("%c",&ch);
if(ch=='Y'||ch=='y')
exit(0);
return;
}

int main()
{
int option;

printf("\nCopyright@2005 KongXinCai All rights reserved.");
printf("\n欢迎使用学生信息管理系统!\n");

//登录模块
int icheck=0;
while(icheck<3)
{
if(LogOn()==0)
icheck++;
else
break;

}
if(icheck==3)
{
printf("\n连续登录三次不成功,退出!");
exit(0);
}

//系统界面

while(1)
{
printf("\n\n请选择需要的服务:");
printf("\n1.注册");
printf("\n2.查询");
printf("\n3.修改");
printf("\n4.删除");
printf("\n5.排序");
printf("\n7.求平均");
printf("\n6.退出\n");

scanf("%d",&option);

switch(option)
{
case 1:
regist();
break;
case 2:
search();
break;
case 3:
modify();
break;
case 4:
del();
break;
case 5:
sort();
break;
case 6:
quit();
break;
}

}

return 0;

}

㈣ c语言编写,自定义一个函数,要求如下功能:判断系统的登录账号密码是否正确,并输出登录结果

是三种不同的函数验证登陆吧,check1、check2、check3三类函数分别如下:

void check1()输入输出功能全部在函数完成;

void check2(name,pass)输入在main中传入函数进行判断输出;

int check3(name,pass)输入输出均在main函数完成,函数只做判断返回结果。

#include "stdafx.h"

#include <iostream>

#include <string>

void check1()

{

char name[10], pass[10];

printf("请输入账号和密码: ");

scanf_s("%s%s", name, 10, pass, 10);

if (!strcmp(name,"admin")&&!strcmp(pass,"123"))

printf("账号密码正确! ");

else

printf("账号或密码错误! ");

}

void check2(char *n, char *p)

{

if (!strcmp(n, "admin") && !strcmp(p, "123"))

printf("账号密码正确! ");

else

printf("账号或密码错误! ");

}

int check3(char *n, char *p)

{

if (!strcmp(n, "admin") && !strcmp(p, "123"))

return 1;

else

return 2;

}

int main()

{

char name[10], pass[10];

check1();

printf("请输入账号和密码: ");

scanf_s("%s%s", name, 10, pass, 10);

check2(name, pass);

printf("请输入账号和密码: ");

scanf_s("%s%s", name, 10, pass, 10);

if(check3(name,pass)==1)

printf("账号密码正确! ");

if(check3(name,pass)==2)

printf("账号或密码错误! ");


system("pause");

return 0;

}

㈤ c语言 商品销售系统登入界面该怎么写

登录包括检查数据文件,检测输入格式,检查数据重复性,验证用户名密码。

根据读取写入追加数据的不同要求,fopen选项不同参数,比如"r","w","a"。注意每次用完后用fclose函数关闭数据流。

下面是演示代码:(文件不存在自动创建,登录失败提示注册,输入验证,你自己写,比如:用户名包含几字母数字等)。

#include <stdio.h>

#include <string.h>

#define UFPATH "C:\user.data" //文件路径

#define SMAX 20

typedef struct USER

{

char uName[SMAX];

char pwd[SMAX];

}UR;

UR *logon(char *uName,char *pwd);

int main()

{

UR *ur=NULL;

char uName[SMAX],pwd[SMAX];

printf("请输入用户名及密码: ");

scanf("%s",uName);

scanf("%s",pwd);

if((ur=logon(uName,pwd))==NULL)

printf("登陆失败");

else

printf("欢迎登录!%s ",ur->uName);

return 0;

}

UR *logon(char *uName,char *pwd)

{

int isExcept=1;//标识变量,1:该用户不存在。0:用户名存在

FILE *fp=NULL;

static UR ur;

char c[2];

if((fp=fopen(UFPATH,"r"))==NULL)

{

printf("该路径未发现记录文件,新建文件! ");

if((fp=fopen(UFPATH,"wt"))==NULL)

{

printf("异常!新建文件失败! ");

return NULL;

}

isExcept=1;

}

else

{

while(fscanf(fp,"%s%s",ur.uName,ur.pwd)!=-1)

{

if(strcmp(ur.uName,uName)==0 && strcmp(ur.pwd,pwd)==0)

{

printf("身份验证通过! ");

fclose(fp);

return &ur;

}

}

printf("用户密码不正确,或用户不存在! ");

fclose(fp);

isExcept=1;

}

if(isExcept==1)

{

printf("是否注册用户?(Y/N) ");

scanf("%s",c);

if(c[0]=='N')

return NULL;

if(c[0]=='Y')

{

while(isExcept)

{

printf("请输入要注册的用户名及密码: ");

scanf("%s",uName);

scanf("%s",pwd);//输入验证在这里添加!!!!!!!!!

//------------验证新建的用户名是否重名-------

if((fp=fopen(UFPATH,"r"))==NULL)

{

printf("异常!,文件打开失败! ");

return NULL;

}

isExcept=0;

while(fscanf(fp,"%s%s",ur.uName,ur.pwd)!=-1)

{

if(strcmp(ur.uName,uName)==0)

{

printf("用户名已存在,请重新输入! ");

fclose(fp);

isExcept=1;

break;

}

}

fclose(fp);

//-------------------------------------------------------

}


if((fp=fopen(UFPATH,"a"))==NULL)

{

printf("异常!,文件打开失败! ");

return NULL;

}

fprintf(fp,"%s %s%s",uName,pwd," ");

printf("用户注册成功! ");

strcpy(ur.uName,uName);

strcpy(ur.pwd,pwd);

}

}

fclose(fp);

return &ur;

}

//ps:代码是按照你问题写成一个登录函数,但在一个项目中,对文件的读写改,应写成独立函数调用。其它函数调用这些函数。

㈥ 用C语言编写一个学生管理系统。

学生信息管理系统

#include<stdio.h>

#inelude<stdlib.h>

#include<stnng.h

#define BUFLEN 100

#define LEN 15

#define N 100

#strucet record

char codc[LEN+I J;

char name[LEN-1];

int age:

char sex 13l:

char timc[1.KN-I J;

char add[301;

char tcl [l.EN+1 J:

char mail[30]:

}stu[N]:

int k=1.n,m.

void readfilcO;

void seekO;

void modify(;

void insert();

void del();

void display(;

void save();

void menu(;

int main(

While(k)

menu();

system("pause");

一℃himl 0:

}

void help()

{

printf(" nO.欢迎使用系统帮助, );

printf(" 1.进入系统后,先制新学生信息,再查询: ’);

printf(" 2.按照菜单提示键入数字代号

printf(" 3. 增加学生信息后,切记保存按;.n”

printf(" 4. 谢谢您的仗用! ");

}

void n:adlilcO

r

r

char *p-"studcnt.txt'

FILE *fp,

hit i-0;

if ((fp=fopen("studcnt.txt","r" ))`=NULL)

{

printf("Open file %s error' Strike any key to exit! P);

system("pause");

exit(0);

}

while(fscanf(fp,"%s 0os0od0,os 0os %s %s 0os",stu[i].code,stu[i1.name,&stu(i1.age,

stu[i].sex,stuLiJ.time,stuLiJ.add,stu[iJ.tel.stu [iJ.mail)"==8)

{

i++;

i-i;

}

char codc[LEN+1 J;

char name[LEN-1 ];

nit age;

char sex [3I;

char timc[LEN-I J;

char add[30];

char tcl[LEN+I I;

char mail[30J;

)stu[N];

int k=1.n,m;

void readfilcO;

void seek();

void modify();

void insert();

void delO;

void display();

void save();

void menu();

int main()

{

while(k)

menu();

systcm("pause");

return 0:

}

void help()

{

printf(" nO.欢迎仗用系统帮助, ");

printf(" }n1.进入系统后,先刷新学生信息,再查询: );

printf("in2.按照菜单提示键入数字代号加 );

printf("1n,. t}加学生信息后,切记保存按钮 ”

printf("'nd. i$:41您的使用 );

}

void readfile()

{

char *p-"studcnLtxt";

FILE*fp

int i=0;

if ((fp=fopcn("student. tx t","r'' )卜=NULL)

{

printf("Open file %s error' Strike any key to exit!".p);

systcm("pause");

exit(0);

}

i++;

i=i;

}

printf("请选择菜单编号:’’);

scanf("%d",&num);

switch(num)

{

case 0:help();break;

cast 1:readflic();break;

case 2:seek();break;

case 3:modify();break;

case 4:insert();break;

case 5:del();break:

case 6:display();break;

case 7:savc();break;

case 8:k=0,break:

defaalt:prinf(”请在一8之间选择 "):

}

}

拓展资料

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。

㈦ c语言设计用户登录系统,在登录界面中,如果第一次密码错误,第二次明明输入密码正确为什么还是显示错误

请把原码全部贴出来,这个截图太模糊。
我从模糊的图片中,看到类似fread的字样。那么你的账户密码信息是从一个文件中读取出来。
那么:
一、检查你文件中的原始数据是否有写错。
二、用于存储的变量空间是否够存储全部读取的数据。
三、对一个文件多次读写后,文件指针不在初始位置,确认是否需要fseek设置文件指针初始位置。
四、检查fopen是否执行成功。比如:多次fopen同一个文件,但前一次没有用fclose关闭文件流。

热点内容
网易数据库 发布:2024-11-26 00:39:49 浏览:810
旧电脑用什么安卓模拟器 发布:2024-11-26 00:34:41 浏览:533
印度编程员 发布:2024-11-26 00:34:29 浏览:486
mac下php编译器 发布:2024-11-26 00:25:18 浏览:863
cmcc怎么改密码 发布:2024-11-26 00:21:52 浏览:958
初学python的书籍 发布:2024-11-26 00:03:56 浏览:52
php大写转小写 发布:2024-11-25 23:52:55 浏览:46
安卓哪里下载游戏安全 发布:2024-11-25 23:51:08 浏览:284
白加黑源码 发布:2024-11-25 23:48:25 浏览:388
上传的壁纸 发布:2024-11-25 23:47:47 浏览:569