first commit

master
2394092142@qq.com 7 years ago
commit e4cff1e8ac

@ -0,0 +1,16 @@
李又立 002 18 w 2000/1/4 山东省 13598637452 1149687745@qq.com
韩勇 008 18 w 2000/4/6 广西省 15119876357 2352147968@qq.com
王中 121 19 m 1999/1/9 湖北省 15274638596 968574135@qq.com
钱星 110 18 m 2000/3/9 山西省 16452489635 875412052@qq.com
夏天 098 18 m 2000/11/1 安徽省 13598635214 698541278@qq.com
刘振 011 18 m 2000/9/5 河南省 13896357425 365874669@qq.com
马文 017 18 w 2000/2/1 山东省 13654785965 432658896@qq.com
孙斌 101 18 m 2000/1/5 甘肃省 15424789635 986523147@qq.com
李天 201 18 m 2000/7/6 河南省 13985745215 1169857421@qq.com
赵和 087 18 w 2000/9/4 江苏省 13874569325 1965874325@qq.com
杜康 211 19 m 1999/1/9 贵州省 13698547258 2547962569@qq.com
谭家祥 109 19 m 1999/11/2 湖南省 13562478965 3658741223@qq.com
林智 276 18 w 2000/3/3 福建省 15897542136 569874662@qq.com
左华 180 18 m 2000/4/2 湖南省 13985475223 2654789625@qq.com
邓鹏 045 19 m 1999/2/19 北京市 13952487694 2416985475@qq.com
陶龙 100 18 m 2000/10/1 广东省 13589653214 2369548554@qq.com

@ -0,0 +1,373 @@
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
/*函数声明部分*/
void luru();
void liulan();
void xiugai();
void chaxun();
void shanchu();
void chongxie();
void paixu();
/*记录学生人数*/
int student=0;
/*学生信息储存结构体*/
struct student { //用于储存学生信息的结构体
char xuehao[12]; //储存11位学号
char ming[10]; //储存名字
char xingbie; //储存性别f为女性m为男性
char chusheng[8]; //储存出生年月格式为yyyy.mm若要设为隐私则输入****.**
int nianling; //储存年龄根据出生年月来计算00表示隐私
char dizhi[6]; //储存寝室号 格式为x(栋)-yyy
char dianhua[12]; //储存电话号码
char email[31]; //储存邮箱地址 若要设为隐私则输入*
};
#define size 10 //最多储存学生数
struct student stu[size]; //定义结构体数组
int i=0; //用于判断你是否为第一次运行程序
int main() {
int a;
while(1) { //开始循环
printf("|--------------------------|\n");
printf("|请输入一个数字选择以下功能|\n");
printf("| 输入1:录入学生信息 |\n");
printf("| 输入2:浏览学生信息 |\n");
printf("| 输入3:修改学生信息 |\n");
printf("| 输入4:查询学生信息 |\n");
printf("| 输入5:删除学生信息 |\n");
printf("| 输入6:对学生信息排序 |\n");
printf("| 输入7:关闭程序 |\n");
printf("|--------------------------|\n");
scanf("%d",&a);
fflush(stdin); //fflush(stdin);防止输入的回车键影响到数据输入
switch(a) {
case 1:
system("cls"); //system("cls");清屏
luru();
break;
case 2:
system("cls");
liulan();
break;
case 3:
system("cls");
xiugai();
break;
case 4:
system("cls");
chaxun();
break;
case 5:
system("cls");
shanchu();
break;
case 6:
system("cls");
paixu();
break;
case 7:
return 0; //强行关闭程序
default: {
system("cls");
printf("警告!数据错误!请重新输入!\n");
break;
}
}
}
return 0;
}
void chongxie() {
int j; //用于for循环
FILE *fp=fopen("student.txt","w+"); //更新学生信息储存文件
if(fp==NULL) //判断能否正常打开文件
printf("系统崩溃!");
for(j=0; j<student; j++)
fprintf(fp,"%s %s %c %s %d %s %s %s\n",stu[j].xuehao,stu[j].ming,stu[j].xingbie,stu[j].chusheng,stu[j].nianling,stu[j].dizhi,stu[j].dianhua,stu[j].email);
fclose(fp);
}
void luru() {
printf("|---------已加入录入程序----------|\n");
if(i==0) { //判断你是否为第一次打开
FILE *fp;
printf("由于你是第一次运行该程序,正在上传样本信息\n");
i++;
fp=fopen("f1.txt","r");
if(fp==NULL) //判断文件能否正常打开
printf("系统崩溃!\n");
while(!feof(fp)&&student<size) { //将文件中的信息一个个录入结构体,直到达到最大存储量
fscanf(fp,"%s %s %c %s %d %s %s %s",stu[student].xuehao,stu[student].ming,&stu[student].xingbie,stu[student].chusheng,&stu[student].nianling,stu[student].dizhi,stu[student].dianhua,stu[student].email);
student++; //学生数+1
}
fclose(fp); //关闭文件
printf("|-----------程序结束--------------|\n");
return;
} else {
int c; //c=1则添加学生信息
printf("确定要录入新的学生信息输入1选择是否则选择退出程序\n");
scanf("%d",&c);
while(c==1) { //输入1添加学生信息
if(student==size) {
printf("数据已满!无法添加\n");
return;
} else {
printf("请输入11位学号\n");
scanf("%s",stu[student].xuehao); //fflush(stdin);防止输入的回车键影响到数据输入
fflush(stdin);
printf("请输入学生姓名\n");
scanf("%s",stu[student].ming);
fflush(stdin);
printf("请输入该学生性别\n");
scanf("%c",&stu[student].xingbie);
fflush(stdin);
printf("请输入该学生出生年月\n");
scanf("%s",stu[student].chusheng);
printf("请输入该学生年龄\n");
scanf("%d",&stu[student].nianling);
printf("请输入该学生地址\n");
scanf("%s",stu[student].dizhi);
fflush(stdin);
printf("请输入该学生电话号码\n");
scanf("%s",stu[student].dianhua);
fflush(stdin);
printf("请输入该学生邮箱地址\n");
scanf("%s",stu[student].email);
fflush(stdin);
student++; //学生数+1
printf("是否继续录入新的学生信息输入1选择是否则选择退出程序\n");
scanf("%d",&c);
}
}
}
chongxie(); //更新学生信息储存文件
system("cls");
return;
}
void liulan() {
char g;
printf("|---------已进入浏览程序----------|\n");
int j; //用于for循环
printf("学号 姓名 性别 出生年月 年龄 地址 电话号码 E-mail邮箱\n"); //制表
for(j=0; j<student; j++) //以行为单位输出
printf("%s\t%s\t\t%c\t%s\t\t%d\t%s\t%s\t%s\n",stu[j].xuehao,stu[j].ming,stu[j].xingbie,stu[j].chusheng,stu[j].nianling,stu[j].dizhi,stu[j].dianhua,stu[j].email);
printf("|-----------程序结束--------------|\n");
printf("|--------按任意键退出-------------|\n");
g=getchar(); //输入g程序结束
system("cls");
return;
}
void xiugai() {
printf("|---------已进入修改程序----------|\n");
int a,j; //a用于功能选择j用于for循环
char g;
printf("请输入要修改信息的学生的学号\n");
char x[12]; //储存学号
scanf("%s",x);
if(strlen(x)!=11) { //不是11位直接判定为格式错误结束程序
printf("格式错误!\n");
printf("|-----------程序结束--------------|\n");
return;
}
for(j=0; j<student; j++)
if(strcmp(x,stu[j].xuehao)==0) {
printf("已找到该同学,请输入\n1:修改学号\n2:修改姓名\n3:修改性别\n4:修改出生年月\n5:修改年龄\n6:修改地址\n7:修改电话号码\n8:修改邮箱\n其他:退出程序\n");
while(scanf("%d",&a)!=EOF)
switch(a) {
case 1:
printf("请输入新的学号\n");
scanf("%s",stu[j].xuehao);
printf("请输入\n1:修改学号\n2:修改姓名\n3:修改性别\n4:修改出生年月\n5:修改年龄\n6:修改地址\n7:修改电话号码\n8:修改邮箱\n其他:退出程序\n");
break;
case 2:
printf("请输入新的名字\n");
scanf("%s",stu[j].ming);
printf("请输入\n1:修改学号\n2:修改姓名\n3:修改性别\n4:修改出生年月\n5:修改年龄\n6:修改地址\n7:修改电话号码\n8:修改邮箱\n其他:退出程序\n");
break;
case 3:
printf("请输入新的性别\n");
fflush(stdin); //fflush(stdin);防止输入的回车键影响到数据输入
scanf("%c",&stu[j].xingbie);
printf("请输入\n1:修改学号\n2:修改姓名\n3:修改性别\n4:修改出生年月\n5:修改年龄\n6:修改地址\n7:修改电话号码\n8:修改邮箱\n其他:退出程序\n");
break;
case 4:
printf("请输入新的出生年月\n");
scanf("%s",stu[j].chusheng);
printf("请输入\n1:修改学号\n2:修改姓名\n3:修改性别\n4:修改出生年月\n5:修改年龄\n6:修改地址\n7:修改电话号码\n8:修改邮箱\n其他:退出程序\n");
break;
case 5:
printf("请输入新的年龄\n");
scanf("%d",&stu[j].nianling);
printf("请输入\n1:修改学号\n2:修改姓名\n3:修改性别\n4:修改出生年月\n5:修改年龄\n6:修改地址\n7:修改电话号码\n8:修改邮箱\n其他:退出程序\n");
break;
case 6:
printf("请输入新的地址\n");
scanf("%s",stu[j].dizhi);
printf("请输入\n1:修改学号\n2:修改姓名\n3:修改性别\n4:修改出生年月\n5:修改年龄\n6:修改地址\n7:修改电话号码\n8:修改邮箱\n其他:退出程序\n");
break;
case 7:
printf("请输入新的电话号码\n");
scanf("%s",stu[j].dianhua);
printf("请输入\n1:修改学号\n2:修改姓名\n3:修改性别\n4:修改出生年月\n5:修改年龄\n6:修改地址\n7:修改电话号码\n8:修改邮箱\n其他:退出程序\n");
break;
case 8:
printf("请输入新的邮箱\n");
scanf("%s",stu[j].email);
printf("请输入\n1:修改学号\n2:修改姓名\n3:修改性别\n4:修改出生年月\n5:修改年龄\n6:修改地址\n7:修改电话号码\n8:修改邮箱\n其他:退出程序\n");
break;
default:
chongxie(); //更新学生信息储存文件
system("cls");
return;
}
}
if(j==student) //说明查无此人
printf("查无此人!\n");
printf("|-----------程序结束--------------|\n");
printf("|--------按任意键退出-------------|\n");
fflush(stdin);
g=getchar(); //输入g程序结束
system("cls");
return;
}
void chaxun() {
printf("|---------已进入查询程序----------|\n");
int a,j; //a=1按学号查询a=2按姓名查询否则退出
char g;
char x[12]; //储存学号
char m[10]; //储存姓名
printf("输入1按学号查询输入2按姓名查询\n");
scanf("%d",&a);
fflush(stdin); //fflush(stdin);防止输入的回车键影响到数据输入
if(a==1) {
printf("请输入学号\n");
scanf("%s",x);
fflush(stdin); //fflush(stdin);防止输入的回车键影响到数据输入
if(strlen(x)!=11) { //不是11位直接判定为格式错误结束程序
printf("格式错误!\n");
return;
}
for(j=0; j<student; j++)
if(strcmp(x,stu[j].xuehao)==0) {
printf("学号 姓名 性别 出生年月 年龄 地址 电话号码 E-mail邮箱\n"); //制表
printf("%s\t%s\t\t%c\t%s\t\t%d\t%s\t%s\t%s\n",stu[j].xuehao,stu[j].ming,stu[j].xingbie,stu[j].chusheng,stu[j].nianling,stu[j].dizhi,stu[j].dianhua,stu[j].email);
break;
}
} else if(a==2) {
printf("请输入姓名\n");
scanf("%s",m);
fflush(stdin); //fflush(stdin);防止输入的回车键影响到数据输入
for(j=0; j<student; j++)
if(strcmp(m,stu[j].ming)==0) {
printf("学号 姓名 性别 出生年月 年龄 地址 电话号码 E-mail邮箱\n"); //制表
printf("%s\t%s\t\t%c\t%s\t\t%d\t%s\t%s\t%s\n",stu[j].xuehao,stu[j].ming,stu[j].xingbie,stu[j].chusheng,stu[j].nianling,stu[j].dizhi,stu[j].dianhua,stu[j].email);
break;
}
}
if(j==student) //说明查不到此人
printf("查无此人!\n");
printf("|-----------程序结束--------------|\n");
printf("|--------按任意键退出-------------|\n");
g=getchar(); //输入g程序结束
system("cls");
return;
}
void shanchu() {
printf("|---------已进入删除程序----------|\n");
int j,t; //用于for循环
char g;
char a[12]; //储存学号
printf("请输入要删除学生的学号\n");
scanf("%s",a);
fflush(stdin); //fflush(stdin);防止输入的回车键影响到数据输入
if(strlen(a)!=11) { //不是11位直接判定为格式错误结束程序
printf("格式错误!\n");
return;
}
for(j=0; j<student; j++) //开始一个个查询
if(strcmp(a,stu[j].xuehao)==0) {
if(j!=student-1) {
for(t=j; t<student-1; t++) { //从后往前将要删除的同学信息覆盖
strcpy(stu[t].xuehao,stu[t+1].xuehao); //strcpy覆盖字符串
strcpy(stu[t].ming,stu[t+1].ming);
stu[t].xingbie=stu[t+1].xingbie;
strcpy(stu[t].chusheng,stu[t+1].chusheng);
stu[t].nianling=stu[t+1].nianling;
strcpy(stu[t].dizhi,stu[t+1].dizhi);
strcpy(stu[t].dianhua,stu[t+1].dianhua);
strcpy(stu[t].email,stu[t+1].email);
}
student--; //学生数-1
printf("成功删除该学生信息\n");
}
else {
j--; //如果该学生排在最后一个 ,删除会比较麻烦
student--; //学生数-1
printf("成功删除该学生信息\n");
}
break;
}
if(j==student) //说明查无此人
printf("查无此人!\n");
else
chongxie(); //更新学生信息储存文件
printf("|-----------程序结束--------------|\n");
printf("|--------按任意键退出-------------|\n");
g=getchar(); //输入g程序结束
system("cls");
return;
}
void paixu() {
printf("|---------已进入排序程序----------|\n");
printf("正在排序请稍等\n");
int j,t,z,y; //j,z,y用于for循环t用于交换年龄
char jiaohuan[50],xing,g; //jiaohuan[50]用于交换各种字符串xing用于交换性别
for(j=0; j<student-1; j++)
for(z=j; z<student-1; z++) //以学号为标准,采用从上到下,从小到大方式替换
if(strcmp(stu[j].xuehao,stu[z+1].xuehao)>0) {
strcpy(jiaohuan,stu[j].xuehao);
strcpy(stu[j].xuehao,stu[z+1].xuehao);
strcpy(stu[z+1].xuehao,jiaohuan);
strcpy(jiaohuan,stu[j].ming);
strcpy(stu[j].ming,stu[z+1].ming);
strcpy(stu[z+1].ming,jiaohuan);
xing=stu[j].xingbie;
stu[j].xingbie=stu[z+1].xingbie;
stu[z+1].xingbie=xing;
strcpy(jiaohuan,stu[j].chusheng);
strcpy(stu[j].chusheng,stu[z+1].chusheng);
strcpy(stu[z+1].chusheng,jiaohuan);
t=stu[j].nianling;
stu[j].nianling=stu[z+1].nianling;
stu[z+1].nianling=t;
strcpy(jiaohuan,stu[j].dizhi);
strcpy(stu[j].dizhi,stu[z+1].dizhi);
strcpy(stu[z+1].dizhi,jiaohuan);
strcpy(jiaohuan,stu[j].dianhua);
strcpy(stu[j].dianhua,stu[z+1].dianhua);
strcpy(stu[z+1].dianhua,jiaohuan);
strcpy(jiaohuan,stu[j].email);
strcpy(stu[j].email,stu[z+1].email);
strcpy(stu[z+1].email,jiaohuan);
}
chongxie();
printf("排序完毕\n");
printf("|-----------程序结束--------------|\n");
printf("|--------按任意键退出-------------|\n");
g=getchar(); //输入g程序结束
system("cls");
return;
}
Loading…
Cancel
Save