1.在写程序之前,我想告诉大家,这个程序初学者很可能可能看不懂,但是这很正常,因为这是我在学习完C语言之后写的。所以大家好好学习吧!
由于这是在我大一刚学到数组时编写的程序,有许多冗余的部分,但当时做出来还是很高兴的。
#include<stdio.h> #include<string.h> \注意老师登录的密码是123456 \注意管理员登陆的密码是654321 struct kecheng { long int num; char id[16]; int cj; char name[16]; }; struct student { long int num; char name[20]; int age; char sex[4]; char b[30]; char p[15]; }; int n,w,q; char c1,c2,c3,c4,c5,c6; char n1,n2,n3,n4,n5,n6; struct student stu[100]; struct student *p; struct kecheng ke[100]; struct kecheng *a; void lr(); void ll(); void lls(); void lrs(); void cx(); void cxs(); void xg(); void xgs(); void sc(); void scs(); void jm(); void jms(); void main()\主界面显示 { int m=1; do { int z; m+=1; printf("+------------------------+ "); printf("|欢迎进入学生成绩信息系统| "); printf("+------------------------+ "); printf("提示:请按照提示操作^_^ "); printf("+---------------------+ "); printf("|+[1]---登陆学生界面 | "); printf("|+[2]---登录教师界面 | "); printf("|+[3]---登陆管理员界面| "); printf("|+--------------------+ "); printf("请输入您的选择: "); scanf("%d",&z); if(z==1) { int a; printf("+---------------------------+ "); printf("|+[1]---学生成绩的查询 | "); printf("|+[2]---学生个人信息的查询 | "); printf("|+[3]---学生成绩单的打印 | "); printf("|+[0]---退出 | "); printf("+---------------------------+ "); printf("请输入您想查询功能的编号 "); scanf("%d",&a); switch(a) { case 1:cxs();break; case 2:cx();break; case 3:lls();break; case 0:break; default:printf("无效选项 "); } } if(z==2) { int b,i=0; do { jm(); i+=1; if(w==1)continue; if(w==0)break; }while(i<1); printf(" "); printf("+-------------------------+ "); printf("|+[1]---学生信息的录入 | "); printf("|+[2]---课程成绩信息的录入| "); printf("|+[3]---学生课程成绩单查询| "); printf("|+[4]---学生信息单查询 | "); printf("|+[5]---退出 | "); printf("+-------------------------+ "); printf("请输入您想查询功能的编号 "); scanf("%d",&b); switch(b) { case 1:lr();break; case 2:lrs();break; case 3:lls();break; case 4:ll();break; case 5:break; default:printf("无效选项 "); } } if(z==3) { int c,i=0; do { jms(); i+=1; if(q==1)continue; if(q==0)break; }while(i<1); printf("+------------------------------+ "); printf("|+[1]---学生信息的删除 | "); printf("|+[2]---学生课程成绩信息的删除 | "); printf("|+[3]---初始密码的管理 | "); printf("|+[4]---学生信息的修改 | "); printf("|+[5]---课程成绩信息的修改 | "); printf("|+[0]---退出 | "); printf("+-------------------------+ "); printf("请输入您想查询功能的编号 "); scanf("%d",&c); switch(c) { case 1:sc();break; case 2:scs();break; case 3:break; case 4:xg();break; case 5:xgs();break; case 0:break; default:printf("无效选项 "); } } }while(m<=10); } void jm()\给老师加密的部分 { int i=1; do { printf("请输入您的密码 "); i+=1; c1=getch();printf("*"); c2=getch();printf("*"); c3=getch();printf("*"); c4=getch();printf("*"); c5=getch();printf("*"); c6=getch();printf("*"); if(c1=='1'&&c2=='2'&&c3=='3'&&c4=='4'&&c5=='5'&&c6=='6') { printf("登录成功 "); return w=1; } if(c1!='1'||c2!='2'||c3!='3'||c4!='4'||c5!='5'||c6!='6') { printf("登录失败 "); return w=0; } }while(i<=3); } void jms()\给管理员加密的部分 { int i=1; do { printf("请输入您的密码 "); i+=1; n1=getch();printf("*"); n2=getch();printf("*"); n3=getch();printf("*"); n4=getch();printf("*"); n5=getch();printf("*"); n6=getch();printf("*"); if(n1=='6'&&n2=='5'&&n3=='4'&&n4=='3'&&n5=='2'&&n6=='1') { printf("登录成功 "); return q=1; } if(n1!='6'||n2!='5'||n3!='4'||n4!='3'||n5!='2'||n6!='1') { printf("登录失败 "); return q=0; } }while(i<=3); } void ll() { int i,j; if(n!=0) { printf("学生总数:%d ", n); printf("学号 姓名 年龄 性别 地址 电话 "); printf("----------------------------------------------------- "); for(i=0;i<n;i++) printf("%ld %s %d %s %s %s ",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p); } else printf("提示:无学生数据,请输入数据!"); } void cx()\查询功能 { int c; int w,i,j=0; char name[20]; if(n!=0) { do{ printf(" "); printf("+--------------------+ "); printf("| 按学号查询 请按 1 | "); printf("| 按姓名查询 请按 2 | "); printf("| 取消 请按 0 | "); printf("+--------------------+ "); printf("请输入您的选择:"); scanf("%d", &c); switch(c) { case 0:break; case 1: printf("请输入学生的学号;"); scanf("%ld", &w); printf(" "); for(i=0;i<n;i++) if(stu[i].num==w) { printf(" 学号 姓名 年龄 性别 地址 电话 "); printf("%ld %s %d %s %s %s ",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p); j=1; } if(j==0) printf("提示:没有该学生记录,请核对!"); break; case 2: printf("请输入学生的姓名:"); scanf("%s", name); printf(" "); for(i=0;i<n;i++) if(strcmp(name,stu[i].name)==0) { printf(" 学号 姓名 年龄 性别 地址 电话 "); j=1; printf("%ld %s %d %s %s %s ",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p); } if(j==0) printf("提示:没有该学生记录,请核对!"); break; default: printf(" 提示:无效选项!"); break; } }while(c!= 0); } else printf("提示:无学生数据,请输入数据!"); return; } void lr()\录入功能 { int y; if(n==0) p=stu; do { printf("-------------------- "); printf("请输入学生的学号:"); scanf("%ld",&p->num); printf("请输入学生的姓名:"); scanf("%s",p->name); printf("请输入学生的年龄:"); scanf("%d",&p->age); printf("请输入学生的性别:"); scanf("%s",p->sex); printf("请输入学生的地址:"); scanf("%s",p->b); printf("请输入学生的电话:"); scanf("%s",p->p); n++; p++; printf(" 1.继续输入. 0.输入完毕. "); printf("请选择:"); scanf("%d",&y); } while(y==1); printf("提示:输入完毕!你一共输入%d个 ",n); } void lrs()管理员界面的录入功能 { int y; if(n==0) a=ke; do { printf("-------------------- "); printf("请输入课程的编号:"); scanf("%ld",&a->num); printf("请输入课程名称:"); scanf("%s",&a->id); printf("请输入课程的成绩:"); scanf("%d",&a->cj); printf("请输入课程的代课老师:"); scanf("%s",&a->name); n++; a++; printf(" 1.继续输入. 0.输入完毕. "); printf("请选择:"); scanf("%d",&y); } while(y==1); printf("提示:输入完毕!你一共输入%d个 ",n); } void sc()\删除功能 { long int num; int i,j,e; if(n!=0) { printf("学号 姓名 年龄 性别 地址 电话 "); printf("----------------------------------------------------- "); for(i=0;i<n;i++) printf("%ld %s %d %s %s %s ",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p); printf("请输入您要删除的学生的学号:"); scanf("%ld", &num); printf(" "); for(i=0;i<n;i++) if(num==stu[i].num) j=i; if(j!=(n-1)) { for(e=i-1;e<n;e++,j++) { stu[j].num=stu[j+1].num; strcpy(stu[j].name,stu[j+1].name); strcpy(stu[j].sex,stu[j+1].sex); stu[j].age=stu[j+1].age; strcpy(stu[j].b,stu[j+1].b);\直接将数组中的这个位置跳过,这样就可以实现删除功能 strcpy(stu[j].p,stu[j+1].p); n--;p--; } }else {n--;p--;} printf("提示:删除完毕!"); }else printf("提示:无学生数据,请输入数据!"); } void lls() { int i,j; if(n!=0) { printf("课程总数:%d ", n); printf("课程编号 课程名 成绩 代课老师 "); printf("----------------------------------------------------- "); for(i=0;i<n;i++) printf("%ld %s %d %s ",ke[i].num,ke[i].id,ke[i].cj,ke[i].name); } else printf("提示:无课程成绩数据,请输入数据!"); } void cxs()\查询 { int c; int w,i,j=0; char name[20]; if(n!=0) { do{ printf(" "); printf("+--------------------+ "); printf("| 按学号查询 请按 1 | "); printf("| 按姓名查询 请按 2 | "); printf("| 取消 请按 0 | "); printf("+--------------------+ "); printf("请输入您的选择:"); scanf("%d", &c); switch(c) { case 0:break; case 1: printf("请输入学生的学号;"); scanf("%ld", &w); printf(" "); for(i=0;i<n;i++) if(ke[i].num==w) { printf(" 课程编号 课程名称 成绩 代课老师 "); printf("%ld %s %d %s ",ke[i].num,ke[i].id,ke[i].cj,ke[i].name); j=1; } if(j==0) printf("提示:没有该课程成绩记录,请核对!"); break; case 2: printf("请输入学生的姓名:"); scanf("%s", name); printf(" "); for(i=0;i<n;i++) if(strcmp(name,stu[i].name)==0) { printf(" 学号 姓名 年龄 性别 地址 电话 "); j=1; printf("%ld %s %d %s %s %s ",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p); } if(j==0) printf("提示:没有该学生记录,请核对!"); break; default: printf(" 提示:无效选项!"); break; } }while(c!= 0); }else printf("提示:无课程成绩数据,请输入数据!"); return; } void scs()\在管理员界面实现删除功能 { long int num; int i,j,e; if(n!=0) { printf("课程编号 课程名称 课程成绩 代课老师 "); printf("----------------------------------------------------- "); for(i=0;i<n;i++) printf("%ld %s %d %s ",ke[i].num,ke[i].id,ke[i].cj,ke[i].name); printf("请输入您要删除的课程的编号:"); scanf("%ld", &num); printf(" "); for(i=0;i<n;i++) if(num==ke[i].num) j=i; if(j!=(n-1)) { for(e=i-1;e<n;e++,j++) { ke[j].num=ke[j+1].num; strcpy(ke[j].id,ke[j+1].id); strcpy(ke[j].cj,ke[j+1].cj); strcpy(ke[j].name,ke[j+1].name); n--;a--; } }else {n--;a--;} printf("提示:删除完毕!"); }else printf("提示:无学生数据,请输入数据!"); } void xg()\实现修改功能 { long int num; int i,j,c; if(n!=0) { printf("请输入您要修改的学生的学号:"); scanf("%ld", &num); printf(" "); for(i=0;i<n;i++) if(stu[i].num==num) j=i; do{ printf("请选择您要修改的学生的信息内容: "); printf("+----------------------+ "); printf("| 姓名 请按 1 | "); printf("| 年龄 请按 2 | "); printf("| 性别 请按 3 | "); printf("| 学号 请按 4 | "); printf("| 地址 请按 5 | "); printf("| 电话 请按 6 | "); printf("| 取消 请按 0 | "); printf("+----------------------+ "); printf("请输入您的选择:"); scanf("%d", &c); printf(" "); switch(c) { case 0:break; case 1:printf("请输入新姓名:"); scanf("%s",stu[j].name); break; case 2:printf("请输入新年龄:"); scanf("%d",&stu[j].age); break; case 3:printf("请输入新性别:"); scanf("%s",stu[j].sex); break; case 4:printf("请输入新学号:"); scanf("%ld",&stu[j].num); break; case 5:printf("请输入新地址:"); scanf("%s",stu[j].b); break; case 6:printf("请输入新电话:"); scanf("%s",stu[j].p); break; default: printf(" 无效选项!"); break; } }while(c!= 0); }else printf("提示:无学生数据,请输入数据!"); } void xgs() { long int num; int i,j,c; if(n!=0) { printf("请输入您要修改的课程的编号:"); scanf("%ld", &num); printf(" "); for(i=0;i<n;i++) if(ke[i].num==num) j=i; do{ printf("请选择您要修改的课程成绩的信息内容: "); printf("+----------------------+ "); printf("| 课程编号 请按 1 | "); printf("| 课程名 请按 2 | "); printf("| 成绩 请按 3 | "); printf("| 代课老师 请按 4 | "); printf("+----------------------+ "); printf("请输入您的选择:"); scanf("%d", &c); printf(" "); switch(c) { case 0:break; case 1:printf("请输入新课程编号:"); scanf("%ld",&ke[j].num); break; case 2:printf("请输入新课程名称:"); scanf("%s",ke[j].id); break; case 3:printf("请输入成绩:"); scanf("%d",&ke[j].cj); break; case 4:printf("请输入新代课老师:"); scanf("%s",ke[j].name); break; default: printf(" 无效选项!"); break; } }while(c!= 0); }else printf("提示:无课程成绩数据,请输入数据!"); }
记得曾经有一周每天都是晚上2:00才睡,虽然并不完善但是当程序做出来的时候心里还是很兴奋的,希望与大家共同努力!