标题:求大神解释
取消只看楼主
qq13008200
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-7-9
结帖率:0
已结贴  问题点数:20 回复次数:0 
求大神解释
如何给这个程序加上记住账号,密码的功能啊!!!求解释啊!!!





//学生学籍管理系统
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#include <conio.h>
#define N 100

void dl(); //主界面
void window(); //功能界面
void cz3(); //查询子模块
void cz4(); //查询子模块
void zr(); //登录
typedef struct student
{
char ID[10];
char name[20];
char sex;
char ming[20];
char mi[20];
int domNum[10];
int tel[15];
float score[5];
float total;
float ag;
} STU;

FILE *fp;
STU stu[N];
STU stu1[N];

void tj(int i)
{
int j,k,m=0,flag=0,n=0,flag1;

printf("请输入第%d个学生信息\n",i+1);
do
{
flag=0;
printf("请输入学生学号\n");
scanf("%s",&stu[i].ID);
for(k=i-1; k>=0; k--) //学号
if(strcmp(stu[k].ID,stu[i].ID)==0)
{
printf("输入错误,请重新输入\n");
flag=1;
break;
}
if(strlen(stu[i].ID)>8)
{
printf("输入错误,请重新输入\n");
flag=1;
}
for(k=0; k<n; k++)
if(strcmp(stu1[k].ID,stu[i].ID)==0)
{
printf("输入错误,请重新输入\n");
flag=1;
break;
}
}
while(flag); // 名字
do
{
flag=0;
printf("请输入学生姓名\n");
scanf("%s",stu[i].name);
}
while(flag); //性别
do
{
getchar();
printf("请输入学生性别(f或m f代表女性 m代表男性)\n");
scanf("%c",&stu[i].sex);
if((stu[i].sex)!='f'&&(stu[i].sex)!='m')
{
printf("输入错误,请重新输入\n");
flag=1;
}
else flag=0;
}
while(flag); // 宿舍号
do
{
flag=0;
printf("请输入宿舍号\n");
 scanf("%s",stu[i].domNum);
}
while(flag); // 电话号码
do
{
flag=0;
printf("请输入电话号码\n");
 scanf("%s",stu[i].tel);
}
while(flag); // 成绩
printf("请输入三门课成绩(0~100)(1平时成绩2实验成绩3卷面成绩)\n");
stu[i].total=0;
for(j=0; j<3; j++)
{
do
{  
printf("输入第%d科:",j+1);
scanf("%f",&stu[i].score[j]);
if(stu[i].score[j]<0.0||stu[i].score[j]>100.0)
{
flag1=1;
printf("第%d科成绩输入错误,请重新输入\n",j+1);
}
else
flag1=0;
stu[i].total=stu[i].total+stu[i].score[j];
}
while(flag1);
stu[i].ag=stu[i].total/5;
}
}

void add() //添加学生信息
{
int i=0,j,n=0,be;
char ch;
if((fp=fopen("d:\\A.TXT","a+"))==NULL)
{
printf("打开文件失败\n");
system("pause");
window();
}
for(i=0; fread(&stu1[i],sizeof(STU),1,fp)!=0; i++);
be=n=i;
fclose(fp);
while(1)
{
tj(n++);
printf("是否继续添加(是-输入 y或Y,否-按任意键)\n");
getchar();
scanf("%c",&ch);
if(ch!='y'&&ch!='Y') break;
}
if((fp=fopen("d:\\A.TXT","a"))==NULL)
{
printf("打开失败\n");
exit(0);
}
for(i=be; i<n; i++)
if (fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("文件保存失败\n");
fclose(fp);
window();
}

void delete_one() //删除学生信息
{
int i,j,flag,n;
char s[10];
char ch;
if ((fp=fopen("d:\\A.TXT","r"))==NULL)
{
printf("打开文件失败!");
system("pause");
window();
}
for(i=0; fread(&stu[i],sizeof(STU),1,fp)!=0; i++);
n=i;
fclose(fp);
do
{
printf("\n请输入要删除的学生学号:");
scanf("%s",s);
for(flag=1,i=0; flag&&i<n; i++)
{
if(strcmp(s,stu[i].ID)==0)
{
printf("删除学生原信息:\n");
printf("%6s%8s%7s%8s%11s%10s%10s%10s%8s\n","学号","名字","性别","宿舍号","电话号码","平时成绩","实验成绩","卷面成绩","总分");
printf("%6s%6s%7c%8s%13s",stu[i].ID,stu[i].name,stu[i].sex,stu[i].domNum,stu[i].tel);
for(j=0; j<3; j++)
printf("%10.2f",stu[i].score[j]);
printf("%9.2f",stu[i].total);
printf("\n");
if(i==n-1)
{
n--;
flag=1;
}
else
{
for(j=i; j<n-1; j++)
stu[j]=stu[j+1];
flag=0;
n--;
}
}
}
if (flag==0)
printf("\n 学生信息已删除\n");
else
printf("\n 要删除学生不存在\n");
printf("是否继续删除?(是-输入 y或Y,否-按任意键)\n");
getchar();
ch=getchar();
}
while(ch=='y'||ch=='Y'); //删除后保存
if((fp=fopen("d:\\A.TXT","w"))==NULL)
{
printf("打开文件失败!\n");
exit(0);
}
for(i=0; i<n; i++)
fwrite(&stu[i],sizeof(struct student),1,fp);
fclose (fp);
window();
}

void px2() //按总分排列
{
int a,b,c,d,i=0,n=0,j;
STU stu2;
if((fp=fopen("d:\\A.TXT","r"))==NULL)
{
printf("文件打开失败!\n");
system("pause");
window();
}
for(i=0; fread(&stu[i],sizeof(STU),1,fp)!=0; i++);
n=i;
fclose(fp);
for(a=0; a<n; a++)
for(b=0; b<n-a-1; b++)
if(stu[b].total<stu[b+1].total)
{
stu2=stu[b];
stu[b]=stu[b+1];
stu[b+1]=stu2;
}
for(i=0; i<n; i++)
{
printf("%6s%8s%7s%8s%11s%10s%10s%10s%8s\n","学号","名字","性别","宿舍号","电话号码","平时成绩","实验成绩","卷面成绩","总分");
printf("%6s%6s%7c%8s%13s",stu[i].ID,stu[i].name,stu[i].sex,stu[i].domNum,stu[i].tel);
for(j=0; j<3; j++)
printf("%10.2f",stu[i].score[j]);
printf("%9.2f",stu[i].total);
printf("\n");
}
system("pause");
window();
}
//基本信息查询
void cz1() //查找学生(按学号)
{
int flag,i,j,n,flag1;
char ch,str[10];
if((fp=fopen("d:\\A.TXT","r"))==NULL)
{
printf("打开文件失败!\n");
system("pause");
window();
}
for(i=0; fread(&stu[i],sizeof(STU),1,fp)!=0; i++);
n=i;
do
{
flag1=0;
printf("请输入学号:\n");
scanf("%s",str);
for(i=0; i<n; i++)
if(strcmp(stu[i].ID,str)==0)
{
printf("已找到!\n");
printf("该学生信息:\n");
flag1=1;
printf("%8s%8s%8s%8s%11s\n","学号","名字","性别","宿舍号","电话号码");
printf("%7s%7s%8c%8s%15s\n",stu[i].ID,stu[i].name,stu[i].sex,stu[i].domNum,stu[i].tel);

}
if(flag1==0)
printf("学生信息不存在!\n");
printf("是否继续查找?(是-输入 y或Y,否-按任意键)\n");
getchar();
scanf("%c",&ch);
if((ch=='Y')||(ch=='y'))
flag=1;
else
flag=0;
}
while(flag);
fclose(fp);
window();
}

void cz2() //查找学生(按姓名)
{
int flag,i,j,n,flag1;
char ch,str[10];
if((fp=fopen("d:\\A.TXT","r"))==NULL)
{
printf("打开文件失败!\n");
system("pause");
window();
}
for(i=0; fread(&stu[i],sizeof(STU),1,fp)!=0; i++);
n=i;
do
{
flag1=0;
printf("请输入学生姓名:\n");
scanf("%s",str);
for(i=0; i<n; i++)
if(strcmp(stu[i].name,str)==0)
{
printf("已找到!\n");
printf("该学生信息:\n");
flag1=1;
printf("%8s%8s%8s%8s%11s\n","学号","姓名","性别","宿舍号","电话号码");
printf("%7s%8s%8c%8s%15s\n",stu[i].ID,stu[i].name,stu[i].sex,stu[i].domNum,stu[i].tel);

}
if(flag1==0)
printf("学生信息不存在!\n");
printf("是否继续查找?(是-输入 y或Y,否-按任意键)\n");
getchar();
scanf("%c",&ch);
if((ch=='Y')||(ch=='y'))
flag=1;
else
flag=0;
}
while(flag);
fclose(fp);
window();
}

void window()
{
dl();
system("cls");
printf("\n\t\t***********************************************\n");
printf("\n\t\t***********************************************\n");
printf("\t\t\t 学生学籍管理系统\n\n");
printf("\t\t功能列表:\n\n");
printf("\t\t1、添加学生信息\n\n");
printf("\t\t2、按总分排列\n\n");
printf("\t\t3、基本查询\n\n");
printf("\t\t4、成绩查询\n\n");
printf("\t\t5、删除学生信息\n\n");
printf("\t\t6、退出\n");
printf("\n\t\t***********************************************\n");
printf("\n\t\t***********************************************\n");
int a,c;
scanf("%d",&a);
if(a==1)
add();
if(a==2)
px2();
if(a==3)
{int a;
 printf("\t\t1、查找学生(按姓名)\n\n");
printf("\t\t2、查找学生(按学号)\n\n");
scanf("%d",&a);
if(a==1)
cz2();
if(a==2)
cz1();
}
if(a==4)
{int a;
 printf("\t\t1、查找学生(按姓名)\n\n");
printf("\t\t2、查找学生(按学号)\n\n");
scanf("%d",&a);
if(a==1)
cz4();
if(a==2)
cz3();
}
if(a==5)
delete_one();
if(a==6)
{
printf("\t\t 是否退出本系统?\n\n\t\t1、是 2、否\n");//询问并确定
scanf("%d",&c);
if(c==2)
window();
}
return;
}
int main()
{
window();
}
//成绩查询
void cz3() //查找学生(按学号)
{
int flag,i,j,n,flag1;
char ch,str[10];
if((fp=fopen("d:\\A.TXT","r"))==NULL)
{
printf("打开文件失败!\n");
system("pause");
window();
}
for(i=0; fread(&stu[i],sizeof(STU),1,fp)!=0; i++);
n=i;
do
{
flag1=0;
printf("请输入学号:\n");
scanf("%s",str);
for(i=0; i<n; i++)
if(strcmp(stu[i].ID,str)==0)
{
printf("已找到!\n");
printf("该学生信息:\n");
flag1=1;
printf("%8s%10s%10s%10s%8s\n","姓名","平时成绩","实验成绩","卷面成绩","总分");
printf("%7s",stu[i].name);
for(j=0; j<3; j++)
printf("%10.2f",stu[i].score[j]);
printf("%8.2f",stu[i].total);
printf("\n");
}
if(flag1==0)
printf("学生信息不存在!\n");
printf("是否继续查找?(是-输入 y或Y,否-按任意键)\n");
getchar();
scanf("%c",&ch);
if((ch=='Y')||(ch=='y'))
flag=1;
else
flag=0;
}
while(flag);
fclose(fp);
window();
}

void cz4() //查找学生(按姓名)
{
int flag,i,j,n,flag1;
char ch,str[10];
if((fp=fopen("d:\\A.TXT","r"))==NULL)
{
printf("打开文件失败!\n");
system("pause");
window();
}
for(i=0; fread(&stu[i],sizeof(STU),1,fp)!=0; i++);
n=i;
do
{
flag1=0;
printf("请输入学生姓名:\n");
scanf("%s",str);
for(i=0; i<n; i++)
if(strcmp(stu[i].name,str)==0)
{
printf("已找到!\n");
printf("该学生信息:\n");
flag1=1;
printf("%8s%10s%10s%10s%8s\n","学号","平时成绩","实验成绩","卷面成绩","总分");
printf("%7s",stu[i].ID);
for(j=0; j<3; j++)
printf("%10.2f",stu[i].score[j]);
printf("%8.2f",stu[i].total);
printf("\n");
}
if(flag1==0)
printf("学生信息不存在!\n");
printf("是否继续查找?(是-输入 y或Y,否-按任意键)\n");
getchar();
scanf("%c",&ch);
if((ch=='Y')||(ch=='y'))
flag=1;
else
flag=0;
}
while(flag);
fclose(fp);
window();
}

void dl()
{
system("cls");
int a,c;
printf("\n\t\t***********************************************\n");
printf("\n\t\t***********************************************\n");
printf("\t\t欢迎进入学生学籍管理系统\n\n");
printf("\t\t1、登录 2、退出\n\n\n\n\n");
printf("\t\t\t\t\t制作:孟凡垚 黄庆盼 房贝\n");
printf("请输入选项:");
scanf("%d",&a);
if(a==1)
 zr();
if(a==2)
{
printf("\t\t 是否退出?\n\n\t\t1、是 2、否\n");//询问并确定
scanf("%d",&c);
if(c==2)
 dl();}
return;
}
void zr()
{
int ming,mi;
printf("请输入登录名(仅限三位以内):\n");
scanf("%s",&ming);
printf("请输入密码:\n");
scanf("%s",&mi);
printf("\n");
return;
}
搜索更多相关主题的帖子: void 查询 include 学籍管理 window 
2012-07-09 15:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-373031-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.932406 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved