本文实例为大家分享了C语言实现财务管理系统的具体代码,供大家参考,具体内容如下
包括
1.录入班级成员信息
2.排序
3.修改学生信息
4.删除指定学号学生
5.查找学生
6.添加财务信息
7.查询详细表
8.显示所有学生信息
9.退出
详细事项:本系统包括管理员登录和普通同学登录,两种登录方式的权限不一样,例如:同学登录只能修改自己学号的信息。初次使用(本地文件为空)需要初始化系统。每次使用完一个功能,会自动返回主函数。使用时需要注意本地文件是否齐全,包括:student.txt(储存学生信息),account.txt(储存财务信息),zh1.txt(储存账户信息),zh2.txt(储存账户信息),file2.txt(储存密码信息),file1.txt(储存密码信息)。本代码使用链表和文件系系统。本代码只是抱砖引玉。
/*首次使用,进行系统初始化 */
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<stdbool.h>
#include<windows.h>
#include<conio.h>
char password[9]; //记录密码
char password2[9]; //记录密码
int log; //登录状态函数
int ac;
struct student
{
char num[15]; //学号
char name[20]; //姓名
char sex; //性别
int age; //年龄
int clas; //班级
char mail[20]; //邮箱
char number[13]; //电话号码
};
typedef struct node{ //定义一个结构体
struct student data;
struct node *next;
}s;
void in(s *head); //信息的读取
void menu(); //菜单函数
void add(s *head); //录入函数
void dele(s *head); //删除函数
void mod(s *head); //修改函数
void query(s *head); //查询函数
void sort(s *head); //排序函数
void account(); //财务收入
void print() ; //显示总财务
void printall(); //显示所有学生信息
void out(s *head); //信息的存储
void in(s *head)
{
FILE *fp;
s *p;
fp = fopen("student.txt","r");
while (!feof(fp))
{
p= (s*)malloc(sizeof(s));
fscanf(fp,"%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,&p->data.sex,&p->data.age,&p->data.clas,p->data.mail,p->data.number);
p->next=NULL;
s *last=head->next;
if(last!=NULL){ //当链表不为空时 ,才可以让last=head
while(last->next){ //当last不为空时 ,当while结束时,这个last指向的就是最后一个结点
last=last->next;
}
last->next=p;
}else{
head->next=p; //链表为空
}
}
fclose(fp);
}
void out(s *head)
{
s *p;
FILE *fp;
if((fp=fopen("student.txt","w"))==NULL){
printf("File open error!\n");
exit(0);
}
for(p=head->next;p;p=p->next) //把学生信息存进文件中
fprintf(fp,"%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number);
fclose(fp);
}
void menu()
{
char ch[6],*m,ch2;
system("cls"); /*实现清屏操作,即清除之前输入的东西*/
s *head=(s*)malloc(sizeof(s));
head->next=NULL;
int i;
if(log==1)
{
printf("1.录入班级成员信息\n");
printf("2.排序\n");
printf("3.修改学生信息\n");
printf("4.删除指定学号学生\n");
printf("5.查找学生\n");
printf("6.添加财务信息\n");
printf("7.查询详细表\n");
printf("8.显示所有学生信息\n");
printf("9.退出\n");
for(i=1;i<=50;i++) //分割线
printf("-");
printf("\n请选择(可多选):");
scanf("%s",ch);
m=ch;
for(;*m!='\0';m++) //用数组指针实现多函数操作
{
switch(*m){
case '1':system("cls");add(head);break;
case '2':system("cls");sort(head);break;
case '3':system("cls");mod(head);break;
case '4':system("cls");dele(head);break;
case '5':system("cls");query(head);break;
case '6': account();break;
case '7': print();break;
case '8':printall();break;
case '9':exit(0);
}
}
system("cls");
}
if(log==2)
{
printf("因为权限问题,您只能使用一下功能\n");
printf("3.修改学生信息\n");
printf("4.查询信息\n");
printf("6.添加财务信息\n");
printf("7.查询详细表\n");
printf("8.显示所有学生信息\n");
printf("9.退出\n");
for(i=1;i<=50;i++) //分割线
printf("-");
printf("\n请选择(可多选):");
scanf("%s",ch);
m=ch;
for(;*m!='\0';m++) //用数组指针实现多函数操作
{
switch(*m){
case '3':system("cls");mod(head);break;
case '4':system("cls");dele(head);break;
case '6': account();break;
case '7': print();break;
case '8':printall();break;
case '9':return;
}
}
system("cls");
}
}
void add(s *head)
{ //录入函数
FILE *fp;
int i,temp=0,sum; //temp用来标记邮箱 sum用来标记电话号码的位数
int x;
system("cls");
s *p;
do{
p=(s*)malloc(sizeof(s)); //申请一个内存;
printf("请输入学号:\n");
scanf("%s",p->data.num); //获取学号
s *q;
q=head->next; //指针指向下一个
while(q!=NULL){ //p已经指向尾部了,所以要定义一个别的指针来做for循环遍历
if(strcmp(p->data.num,q->data.num)==0){
getchar();
printf("学号重复,请重新输入:\n");
scanf("%s",p->data.num);
}
q=q->next;
}
getchar();
printf("\n请输入姓名:\n");
scanf("%s",p->data.name);
getchar();
printf("\n请输入性别(男生填m,女生填w):\n");
scanf("%c",&p->data.sex);
while(1){
if((p->data.sex=='w')||(p->data.sex=='m'))
break;
else{
getchar(); //要在每一项输入之后,读入任意一个字符才能下一步操作
printf("性别符号输入错误,请重新输入:\n"); //防止出入其他符号
scanf("%c",&p->data.sex);
}
}
getchar();
printf("\n请输入年龄:\n");
scanf("%d",&p->data.age);
getchar();
printf("\n请填入班级,仅数字:\n");
scanf("%d",&p->data.clas);
getchar();
printf("\n请输入邮箱(必须有@):\n");
scanf("%s",p->data.mail);
while(1){
for(i=0;p->data.mail[i]!='\0';i++){
if(p->data.mail[i]=='@'){
temp=1;
}
}
if(temp==0){
printf("邮箱中不包含@,请重新输入:\n");
scanf("%s",p->data.mail);
}else break;
}
getchar();
printf("\n请输入电话号码,必须是11位:\n");
scanf("%s",p->data.number);
while(1){
sum=0;
for(i=0;p->data.number[i]!='\0';i++){
sum+=1;
}
if(sum!=11){
getchar();
printf("号码位数超过11位或者少于11位,请重新输入:\n");
scanf("%s",p->data.number);
}else break;
}
p->next=NULL;
s *last=head->next;
if(last!=NULL){ //当链表不为空时 ,才可以让last=head
while(last->next){ //当last不为空时 ,当while结束时,这个last指向的就是最后一个结点
last=last->next;
}
last->next=p;
}else{
head->next=p; //链表为空
}
getchar();
printf("\n是否还要继续录入,是请输入1,否请输入0\n");
scanf("%d",&x);
if(x==0) break;
if(x==1)
system("cls"); //清空屏幕
}while(1);
if((fp=fopen("student.txt","a"))==NULL){
printf("File open error!\n");
exit(0);
}
for(p=head->next;p;p=p->next) //把学生信息存进文件中
fprintf(fp,"%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number);
fclose(fp);
printf("\n信息已经存入文件\n");
system("pause");
s *k;
p=head->next;
while(p!=NULL){ //清空链表,只剩head,方便之后的操作
k=p->next;
free(p);
p=k;
}
head->next=NULL;
if(x==0)
menu();
}
void dele(s *head)
{ //删除函数
int temp=0,i,flag2;
in(head); //信息的读取
s *p,*q;
char numb[15];
FILE *fpw=fopen("tmp.txt","w");
char ch1;
ch1='-';
system("cls");
printf("请输入学号:");
scanf("%s",numb);
for(q=head,p=head->next;p;q=p,p=p->next){ //遍历链表,条件是p存在
if(strcmp(numb,p->data.num)==0){
temp=1;
system("cls");
printf("学生信息如下:");
printf("学号:%s\n",p->data.num);
printf("姓名:%s\n",p->data.name);
printf("性别:%c\n",p->data.sex);
printf("年龄:%d\n",p->data.age);
printf("班级:%d\n",p->data.clas);
printf("邮箱:%s\n",p->data.mail);
printf("电话号码:%s\n",p->data.number);
for(i=1;i<=50;i++){ //分割线
printf("%c",ch1);
}
printf("\n");
printf("是否要删除此学生信息?(1或2)\n");
scanf("%d",&flag2);
if(flag2==2)
{
printf("取消删除,三秒后返回主菜单");
Sleep(3000);
menu();
}
if(flag2==1){
if(q){
q->next=p->next; //将前一个指针指向要删除的后一个结点
out(head);
}
else{
head->next=p->next;
out(head);
}
free(p);
printf("信息已删除");
printf("三秒后返回主菜单");
Sleep(3000);
menu();
}
}
}
if(temp==1){ //如果temp等于一说明信息已经删除,把改过后的链表重新写入文件中
out(head);
}
if(temp==0){ //没有找到学生的信息
for(i=1;i<=50;i++)
printf("%c",ch1);
printf("\n没有找到此学生信息,按任意键退出\n");
printf("三秒后返回主菜单");
Sleep(3000);
menu();
}
s *k;
p=head->next;
while(p!=NULL){ //清空链表,只剩head,方便之后的操作
k=p->next;
free(p);
p=k;
}
head->next=NULL;
}
void mod(s *head)
{ //修改函数
int nums;
FILE *fp;
system("cls"); //清空屏幕
s *p,*q; //作为链表中的指针
in(head);
char *m; //用来控制修改的信息编号
int temp=0;
int i,sui,ban,j=1;//代表修改的年龄班级
char num1[15];
char ch[8];
char xuehao[15],ming[20],xingbie,youxiang[20],haoma[20];//代表要修改的信息名
printf("请输入要修改的学生的学号:\n");
getchar();
scanf("%s",num1);
nums= atoi(num1);
// printf("%d",nums);
if(log==2)
{
if(nums != ac)
{
while(j)
{
printf("您只能修改自己的信息,请输入正确信息");
scanf("%s",num1);
nums= atoi(num1);
if(ac==nums)
{
j=0;
}
}
}
}
for(p=head->next;p;p=p->next){ //遍历列表,寻找与输入相同的学号
if(strcmp(num1,p->data.num)==0){
temp=1; //找到信息后的标记
printf("1.学号:%s\n",p->data.num); //找到后显示出完整信息
printf("2.姓名:%s\n",p->data.name);
printf("3.年龄:%d\n",p->data.age);
printf("4.班级:%d\n",p->data.clas);
printf("5.邮箱:%s\n",p->data.mail);
printf("6.电话号码:%s\n",p->data.number);
printf("0.退出\n");
for(i=1;i<=50;i++){ //分割线
printf("-");
}
printf("\n");
printf("请输入要修改信息的相应序号(可多选):\n");
scanf("%s",ch);
getchar();
m=ch;
for(;*m!='\0';m++){ //用循环来解决修改多个学生信息的问题
switch(*m){
case '1':printf("请输入要修改学号的内容:\n");
scanf("%s",xuehao);
strcpy(p->data.num,xuehao);break;
case '2':printf("\n请输入要修改姓名的内容:\n");
scanf("%s",ming);
strcpy(p->data.name,ming);break;
case '3':printf("\n请输入要修改年龄的内容:\n");
scanf("%d",&sui);
p->data.age=sui;break;
case '4':printf("\n请输入要修改班级的内容:\n");
scanf("%d",&ban);
p->data.clas=ban;break;
case '5':printf("\n请输入要修改邮箱的内容:\n");
scanf("%s",youxiang);
strcpy(p->data.mail,youxiang);break;
case '6':printf("\n请输入要修改电话号码的内容:\n");
scanf("%s",haoma);
strcpy(p->data.number,haoma);break;
case '0':break;
}
}
getchar();
printf("修改后的信息如下:\n");
printf("%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number);//输出修改后的信息
system("pause");//防止闪屏
}
}
if(temp==1){ //如果temp等于一说明信息已经删除,把改过后的链表重新写入文件中
out(head);
}
if(temp==0){ //没找到学生信息
printf("没有此学生的信息\n");
system("pause");
}
s *k;
p=head->next;
while(p!=NULL){ //清空链表,只剩head,方便之后的操作
k=p->next;
free(p);
p=k;
}
head->next=NULL;
printf("三秒后返回主菜单");
Sleep(3000);
menu();
}
void query(s *head)
{ //查询函数
s *p; //p用来遍历查找的内容
in(head);
p=head->next;
system("cls");
int i,sui,ban,temp=0; //temp用来标记是否找到信息
char ch;
char xuehao[15],ming[20],xingbie,youxiang[20],haoma[20]; //用来输入查找的信息
printf("1.学号\n");
printf("2.姓名\n");
printf("3.年龄\n");
printf("4.班级\n");
printf("5.邮箱\n");
printf("6.电话号码\n");
printf("7.显示所有学生的信息\n");
printf("0.退出\n");
for(i=1;i<=50;i++){
printf("-"); //分割线
}
printf("\n");
printf("请选择输入要查询的信息编号:\n");
getchar();
ch=getchar();
if(ch=='1'){
getchar();
printf("请输入要查找的信息内容:\n");
scanf("%s",xuehao);
temp=1;
while(p){
if(strcmp(xuehao,p->data.num)==0){ //找到的话输出
printf("%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number);
system("pause");
}
p=p->next;
}
}
if(ch=='2'){
getchar();
printf("请输入要查找的信息内容:\n");
scanf("%s",ming);
temp=1;
while(p){
if(strcmp(ming,p->data.name)==0){
printf("%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number);
system("pause");
}
p=p->next;
}
}
if(ch=='3'){
getchar();
printf("请输入要查找的信息内容:\n");
scanf("%c",&xingbie);
temp=1;
while(p){
if(xingbie==p->data.sex){
printf("%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number);
system("pause");
}
p=p->next;
}
}
if(ch=='4'){
getchar();
printf("请输入要查找的信息内容:\n");
scanf("%d",&sui);
temp=1;
while(p){
if(sui==p->data.age){
printf("%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number);
system("pause");
}
p=p->next;
}
}
if(ch=='5'){
getchar();
printf("请输入要查找的信息内容:\n");
scanf("%d",&ban);
temp=1;
while(p){
if(ban==p->data.clas){
printf("%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number);
system("pause");
}
p=p->next;
}
}
if(ch=='6'){
getchar();
printf("请输入要查找的信息内容:\n");
scanf("%s",youxiang);
temp=1;
while(p){
if(strcmp(youxiang,p->data.name)==0){
printf("%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number);
system("pause");
}
p=p->next;
}
}
if(ch=='7'){
getchar();
printf("请输入要修查找的信息内容:\n");
scanf("%s",haoma);
temp=1;
while(p){
if(strcmp(haoma,p->data.name)==0){
printf("%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number);
system("pause");
}
p=p->next;
}
}
if(ch=='8'){
getchar();
temp=1;
while(p){
printf("%s\t%s\t%c\t%d\t%d\t%s\t%s\n",p->data.num,p->data.name,p->data.sex,p->data.age,p->data.clas,p->data.mail,p->data.number);
system("pause");
p=p->next;
}
}
if(temp==0)
{
printf("没有找到此学生的信息\n");
printf("三秒后返回主菜单");
Sleep(3000);
menu();
}
s *k;
p=head->next;
while(p!=NULL){ //清空链表,只剩head,方便之后的操作
k=p->next;
free(p);
p=k;
}
head->next=NULL;
printf("查询完毕\n");
printf("三秒后返回主菜单");
Sleep(3000);
menu();
}
void sort(s *head)
{ //排序函数
system("cls"); //清空屏幕
s *p,*q;
in(head);
q=head;
p=head->next;
s *w;
w=head->next;
char ch;
printf("请输入要排序的内容(1是学号、2是年龄):\n");
getchar();
scanf("%c", &ch);
if (ch == '1'){
s *temp = (s*)malloc(sizeof(s));
while (p != NULL)
{
while (p->next != NULL) //按照学号大小排序
{
if (strcmp(p->data.num, p->next->data.num)<0)
{
temp->data = p->data;
p->data = p->next->data;
p->next->data = temp->data;
}
p = p->next;
}
p = q->next;
q = p;
}
}
else{
s *temp = (s*)malloc(sizeof(s));
while (p != NULL)
{
while (p->next != NULL) //按照年龄大小排序
{
if (p->data.age < p->next->data.age)
{
temp->data = p->data;
p->data = p->next->data;
p->next->data = temp->data;
}
p = p->next;
}
p = q->next;
q = p;
}
}
printf("\n排序后的信息如下:\n");
while (w != NULL){ //将排序后的链表输出
printf("%s\t%s\t%c\t%d\t%d\t%s\t%s\n",w->data.num,w->data.name,w->data.sex,w->data.age,w->data.clas,w->data.mail,w->data.number);
w = w->next;
}system("pause");
out(head);
s *k;
p=head->next;
while(p!=NULL){ //清空链表,只剩head,方便之后的操作
k=p->next;
free(p);
p=k;
}
head->next=NULL;
printf("三秒后返回主菜单");
Sleep(3000);
menu();
}
void account()
{
int n;
char date[25];
char item[40];
char s1[45];
char count[12];
FILE *fp;
if((fp=fopen("account.txt","at"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
printf("请输入次数");
scanf("%d",&n);
while(n)
{
printf("请输入姓名\n");
scanf("%s",&s1);
fputs(s1,fp);
printf("请输入日期\n");
scanf("%s",&date);
fputs(date,fp);
printf("请输入名称\n");
scanf("%s",&item);
fputs(item,fp);
printf("请输入金额");
scanf("%s",&count);
fputs(count,fp);
n--;
}
fclose(fp);
printf("三秒后返回主菜单");
Sleep(3000);
menu();
}
void print()
{ //打印所有财务数据
char str[10000];
FILE *fp;
int qq;
if((fp=fopen("account.txt","rt"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1);
}
fgets(str,1000,fp); //获取文件内容
printf("%s",str); //打印内容
printf("\n");
printf("1返回主菜单");fclose(fp); //关闭文件
scanf("%d",&qq);
if(qq==1)
{
menu();
}
}
void printall()
{ //打印所有是学生信息函数
char str[1000];
FILE *fp;
int qq;
if((fp=fopen("student.txt","rt"))==NULL)
{
printf("Cannot open file strike any key exit!");
getch();
exit(1); //找不到文件退出程序
}
while((fgets(str,1024,fp))!=NULL)
{
printf(str);
} //打印内容
fclose(fp); //关闭文件
printf("1返回主菜单");
scanf("%d",&qq);
if(qq==1)
{
menu();
}
}
void first()
{ //读取文件
FILE *fp,*fp1; /*定义文件指针*/
char s[9],s1[9],s2[9],s3[9],ch,n;
int i;
ch='_';
if((fp=fopen("file.txt","r"))==NULL)
{
printf("\n 请进行初始化操作!\n");
for(i=1;i<=50;i++)/*用来做分割线*/
printf("%c",ch);
getch(); /*是输入一个字符,但不显示在屏幕上*/
do{
printf("\n 设置密码,不得超过八位数 \n");
for(i=0;i<8&&((s[i]=getch())!=13);i++) /*13代表的是回车*/
putch('*'); /*显示字符*/
printf("\n 再确认一次密码 \n");
for(i=0;i<8&&((s1[i]=getch())!=13);i++)
putch('*');
s[i]='\0';
s1[i]='\0';
if(strcmp(s,s1)!=0) /*判断两次密码输入是否一致*/
printf("\n 两次密码输入不一致,请重新输入 \n");
else break;
} while(1); /*当括号里是1时表示无限循环*/
if((fp1=fopen("file.txt","w"))==NULL){
printf("\n 系统创建失败,请按任意键退出 \n"); /*打开文件,把密码存进去*/
getch();
exit(1);
}
for(i=0;s[i]!='\0';i++)
putw(s[i],fp1); /*将数组元素(即密码)放入文件中*/
fclose(fp1); /*关闭文件*/
printf("\n 系统初始化成功,按任意键退出后,再重新进入 \n");
getch();
exit(1);
}
else{
i=0;
while(!feof(fp)&&i<8)
s2[i++]=getw(fp); /*从文件读出字符赋给数组*/
s2[i]='\0';
strcpy(password,s2); /*将数组s2的字符复制给password*/
// enroll();
}
if((fp=fopen("file2.txt","r"))==NULL)
{
printf("\n 请进行初始化操作!\n");
for(i=1;i<=50;i++)/*用来做分割线*/
printf("%c",ch);
getch(); /*是输入一个字符,但不显示在屏幕上*/
do{
printf("\n 设置密码,不得超过八位数 \n");
for(i=0;i<8&&((s[i]=getch())!=13);i++) /*13代表的是回车*/
putch('*'); /*显示字符*/
printf("\n 再确认一次密码 \n");
for(i=0;i<8&&((s1[i]=getch())!=13);i++)
putch('*');
s[i]='\0';
s1[i]='\0';
if(strcmp(s,s1)!=0) /*判断两次密码输入是否一致*/
printf("\n 两次密码输入不一致,请重新输入 \n");
else break;
} while(1); /*当括号里是1时表示无限循环*/
if((fp1=fopen("file2.txt","w"))==NULL){
printf("\n 系统创建失败,请按任意键退出 \n"); /*打开文件,把密码存进去*/
getch();
exit(1);
}
for(i=0;s[i]!='\0';i++)
putw(s[i],fp1); /*将数组元素(即密码)放入文件中*/
fclose(fp1); /*关闭文件*/
printf("\n 系统初始化成功,按任意键退出后,再重新进入 \n");
getch();
exit(1);
}
else{
i=0;
while(!feof(fp)&&i<8)
s3[i++]=getw(fp); /*从文件读出字符赋给数组*/
s2[i]='\0';
strcpy(password2,s3); /*将数组s2的字符复制给password*/
}
// enroll();
}
void enroll()
{ //登录函数
int flag=0;
int i,n=5;
char str[9];
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf("\n");
printf(" ---------------------------------------------------------------- \n");
printf(" | 欢迎使用财务管理系统 | \n");
printf(" | | \n");
printf(" | 请选择登录方式:1管理员登录 2班级成员登录 | \n");
printf(" ---------------------------------------------------------------- \n");
if(getch()=='1')
{
log=1;
}else
{
log=2;
}
switch(log)
{
case 1:
printf("请输入账号\n");
scanf("%d",&ac);
while(n)
{
printf("\n");
printf("请输入密码");
for(i=0;i<8&&((str[i]=getch())!=13);i++)
putch(str[i]); //获取键盘输入的内容
str[i]='\0';
for(int j=0;j<i;j++)
{
if(str[j]!=password[j])
{
flag=1; //判断输入的密码和本地文件内的密码是否相同
}
else{
flag=0;
}
}
if(flag)
{
printf("输入错误密码");
n--; //密码错误可用次数减一
}
if(flag==0)
{
break; //密码正确退出循环
}
}
if(n=0 )
{
printf("你输入五次错误密码,请退出");
getch();
exit(1); /*非正常运行导致退出程序*/
}
break;
case 2:
printf("请输入账号\n");
scanf("%d",&ac);
while(n)
{
printf("\n");
printf("请输入密码");
for(i=0;i<8&&((str[i]=getch())!=13);i++)
putch(str[i]); //获取键盘输入的内容
str[i]='\0';
for(int j=0;j<i;j++)
{
if(str[j]!=password2[j])
{
flag=1; //判断输入的密码和本地文件内的密码是否相同
}
else{
flag=0;
}
}
if(flag)
{
printf("你输入错误密码");
n--; //密码错误可用次数减一
}
if(flag==0)
{
break; //密码正确退出循环
}
}
if(n=0)
{
printf("你输入五次错误密码,请退出");
getch();
exit(1); /*非正常运行导致退出程序*/
}
break;
default: printf("您输入了无效数字");
break;
}
}
int main()
{
first(); //启动初始化函数
enroll(); //启动登录函数
menu(); //启动菜单函数
}