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("+------------------------+\n"); printf("|欢迎进入学生成绩信息系统|\n"); printf("+------------------------+\n"); printf("提示:请按照提示操作^_^\n"); printf("+---------------------+\n"); printf("|+[1]---登陆学生界面 |\n"); printf("|+[2]---登录教师界面 |\n"); printf("|+[3]---登陆管理员界面|\n"); printf("|+--------------------+\n"); printf("请输入您的选择:\n"); scanf("%d",&z); if(z==1) { int a; printf("+---------------------------+\n"); printf("|+[1]---学生成绩的查询 |\n"); printf("|+[2]---学生个人信息的查询 |\n"); printf("|+[3]---学生成绩单的打印 |\n"); printf("|+[0]---退出 |\n"); printf("+---------------------------+\n"); printf("请输入您想查询功能的编号\n"); scanf("%d",&a); switch(a) { case 1:cxs();break; case 2:cx();break; case 3:lls();break; case 0:break; default:printf("无效选项\n"); } } if(z==2) { int b,i=0; do { jm(); i+=1; if(w==1)continue; if(w==0)break; }while(i<1); printf("\n"); printf("+-------------------------+\n"); printf("|+[1]---学生信息的录入 |\n"); printf("|+[2]---课程成绩信息的录入|\n"); printf("|+[3]---学生课程成绩单查询|\n"); printf("|+[4]---学生信息单查询 |\n"); printf("|+[5]---退出 |\n"); printf("+-------------------------+\n"); printf("请输入您想查询功能的编号\n"); 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("无效选项\n"); } } if(z==3) { int c,i=0; do { jms(); i+=1; if(q==1)continue; if(q==0)break; }while(i<1); printf("+------------------------------+\n"); printf("|+[1]---学生信息的删除 |\n"); printf("|+[2]---学生课程成绩信息的删除 |\n"); printf("|+[3]---初始密码的管理 |\n"); printf("|+[4]---学生信息的修改 |\n"); printf("|+[5]---课程成绩信息的修改 |\n"); printf("|+[0]---退出 |\n"); printf("+-------------------------+\n"); printf("请输入您想查询功能的编号\n"); 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("无效选项\n"); } } }while(m<=10); } void jm()\\给老师加密的部分 { int i=1; do { printf("请输入您的密码\n"); 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("登录成功\n"); return w=1; } if(c1!='1'||c2!='2'||c3!='3'||c4!='4'||c5!='5'||c6!='6') { printf("登录失败\n"); return w=0; } }while(i<=3); } void jms()\\给管理员加密的部分 { int i=1; do { printf("请输入您的密码\n"); 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("登录成功\n"); return q=1; } if(n1!='6'||n2!='5'||n3!='4'||n4!='3'||n5!='2'||n6!='1') { printf("登录失败\n"); return q=0; } }while(i<=3); } void ll() { int i,j; if(n!=0) { printf("学生总数:%d\n", n); printf("学号\t姓名\t年龄\t性别\t地址\t\t电话\n"); printf("-----------------------------------------------------\n"); for(i=0;i<n;i++) printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",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("\n"); printf("+--------------------+\n"); printf("| 按学号查询 请按 1 |\n"); printf("| 按姓名查询 请按 2 |\n"); printf("| 取消 请按 0 |\n"); printf("+--------------------+\n"); printf("请输入您的选择:"); scanf("%d", &c); switch(c) { case 0:break; case 1: printf("请输入学生的学号;"); scanf("%ld", &w); printf("\n"); for(i=0;i<n;i++) if(stu[i].num==w) { printf("\n学号\t姓名\t年龄\t性别\t地址\t\t电话\n"); printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",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("\n"); for(i=0;i<n;i++) if(strcmp(name,stu[i].name)==0) { printf("\n学号\t姓名\t年龄\t性别\t地址\t\t电话\n"); j=1; printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",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("\n提示:无效选项!"); break; } }while(c!= 0); } else printf("提示:无学生数据,请输入数据!"); return; } void lr()\\录入功能 { int y; if(n==0) p=stu; do { printf("--------------------\n"); 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("\n1.继续输入.\n0.输入完毕.\n"); printf("请选择:"); scanf("%d",&y); } while(y==1); printf("提示:输入完毕!你一共输入%d个\n",n); } void lrs()管理员界面的录入功能 { int y; if(n==0) a=ke; do { printf("--------------------\n"); printf("请输入课程的编号:"); scanf("%ld",&a->num); printf("请输入课程名称:"); scanf("%s",&a->id); printf("请输入课程的成绩:"); scanf("%d",&a->cj); printf("请输入课程的代课老师:"); scanf("%s",&a->name); n++; a++; printf("\n1.继续输入.\n0.输入完毕.\n"); printf("请选择:"); scanf("%d",&y); } while(y==1); printf("提示:输入完毕!你一共输入%d个\n",n); } void sc()\\删除功能 { long int num; int i,j,e; if(n!=0) { printf("学号\t姓名\t年龄\t性别\t地址\t\t电话\n"); printf("-----------------------------------------------------\n"); for(i=0;i<n;i++) printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",stu[i].num,stu[i].name,stu[i].age,stu[i].sex,stu[i].b,stu[i].p); printf("请输入您要删除的学生的学号:"); scanf("%ld", &num); printf("\n"); 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", n); printf("课程编号\t课程名\t成绩\t代课老师\n"); printf("-----------------------------------------------------\n"); for(i=0;i<n;i++) printf("%ld\t%s\t%d\t%s\n",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("\n"); printf("+--------------------+\n"); printf("| 按学号查询 请按 1 |\n"); printf("| 按姓名查询 请按 2 |\n"); printf("| 取消 请按 0 |\n"); printf("+--------------------+\n"); printf("请输入您的选择:"); scanf("%d", &c); switch(c) { case 0:break; case 1: printf("请输入学生的学号;"); scanf("%ld", &w); printf("\n"); for(i=0;i<n;i++) if(ke[i].num==w) { printf("\n课程编号\t课程名称\t成绩\t代课老师\n"); printf("%ld\t%s\t%d\t%s\n",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("\n"); for(i=0;i<n;i++) if(strcmp(name,stu[i].name)==0) { printf("\n学号\t姓名\t年龄\t性别\t地址\t\t电话\n"); j=1; printf("%ld\t%s\t%d\t%s\t%s\t\t%s\n",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("\n提示:无效选项!"); break; } }while(c!= 0); }else printf("提示:无课程成绩数据,请输入数据!"); return; } void scs()\\在管理员界面实现删除功能 { long int num; int i,j,e; if(n!=0) { printf("课程编号\t课程名称\t课程成绩\t代课老师\n"); printf("-----------------------------------------------------\n"); for(i=0;i<n;i++) printf("%ld\t%s\t%d\t%s\n",ke[i].num,ke[i].id,ke[i].cj,ke[i].name); printf("请输入您要删除的课程的编号:"); scanf("%ld", &num); printf("\n"); 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("\n"); for(i=0;i<n;i++) if(stu[i].num==num) j=i; do{ printf("请选择您要修改的学生的信息内容:\n"); printf("+----------------------+\n"); printf("| 姓名 请按 1 |\n"); printf("| 年龄 请按 2 |\n"); printf("| 性别 请按 3 |\n"); printf("| 学号 请按 4 |\n"); printf("| 地址 请按 5 |\n"); printf("| 电话 请按 6 |\n"); printf("| 取消 请按 0 |\n"); printf("+----------------------+\n"); printf("请输入您的选择:"); scanf("%d", &c); printf("\n"); 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("\n无效选项!"); break; } }while(c!= 0); }else printf("提示:无学生数据,请输入数据!"); } void xgs() { long int num; int i,j,c; if(n!=0) { printf("请输入您要修改的课程的编号:"); scanf("%ld", &num); printf("\n"); for(i=0;i<n;i++) if(ke[i].num==num) j=i; do{ printf("请选择您要修改的课程成绩的信息内容:\n"); printf("+----------------------+\n"); printf("| 课程编号 请按 1 |\n"); printf("| 课程名 请按 2 |\n"); printf("| 成绩 请按 3 |\n"); printf("| 代课老师 请按 4 |\n"); printf("+----------------------+\n"); printf("请输入您的选择:"); scanf("%d", &c); printf("\n"); 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("\n无效选项!"); break; } }while(c!= 0); }else printf("提示:无课程成绩数据,请输入数据!"); }
记得曾经有一周每天都是晚上2:00才睡,虽然并不完善但是当程序做出来的时候心里还是很兴奋的,希望与大家共同努力!