1、C语言教务管理系统
一、程序结构图
二、程序运行截图
1. 个人信息介绍
2. 修改颜色
3. 注册界面
4. 信息保留至文件
5. 登录界面
6. 管理员录入信息
7. 学生信息录入
8. 学生成绩录入
9. 学生课程表录入
10. 学生信息查询界面
11学生信息查询
12. 学生成绩查询
13. 学生课表查询
三、代码(一个cpp)
#include
2、
#include
3、 /*申明 验证用户名函数*/ int length_student_password(char *p); /*申明 验证密码长度函数*/ int length_teacher_name(char *p); /*申明 验证用户名函数*/ int length_teacher_password(char *p); /*申明 验证密码长度函数*/ int show_menu_login(); /*申明 登录菜单函数*/ int show_menu_register(); /*申明 注册菜单函数*/ int show_tea
4、cher_select(); /*申明 老师录入菜单函数*/ int show_student_select(); /*申明 学生查询菜单函数*/ int student_register(struct student *ptr_student,int *size); /*申明 学生注册函数*/ int teacher_register(struct teacher *ptr_teacher,int *size); /*申明 老师注册函数*/ int vaild_student_name(char *p); /*申明 验证用户名函数*/ int va
5、ild_student_password(char *p); /*申明 验证密码函数*/ int vaild_teacher_name(char *p); /*申明 验证用户名函数*/ int vaild_teacher_password(char *p); /*申明 验证密码函数*/ int vaild_two_password(char *p1,char *p2); /*申明 验证两次密码是否相同函数*/ int yes_no_return(); /*申明 选择是否返回上一层函数*/ void load(); /*申明 加载函数*/
6、void register_(int *count1,int *count2); /*申明 注册函数*/ void display_student(struct student stu); /*申明 显示学生信息函数*/ void display_teacher(struct teacher tea); /*申明 显示老师信息函数*/ void student_file1(); /*将保留学生账号密码存入文件中*/ void student_file2(); /*将保留学生个人信息存入文件中*/ void student_file3(); /*将保
7、留学生成绩存入文件中*/ void teacher_file(); /*将保留老师账号密码存入文件中*/ void input_information(int count); /*申明 输入学生信息函数*/ void input_score_menu(int count); /*申明 输入学生成绩函数*/ void color(); /*申明 选择窗体颜色函数*/ void print_stu_information(int count_stu); /*申明 输出账号为num学生信息函数*/ void print_st
8、u_score(int count_stu); /*申明 输出账号为num学生成绩函数*/ void show_menu(); /*申明 初始化界面函数*/ void input(); /*申明 输入函数*/ void menu1(); /*申明 老师录入课程表主菜单函数*/ void menu2(); /*申明 学生查询课程表主菜单函数*/ void rank(); /*申明 显示时间次序函数*/ void querymenu3(); /*申明 查询函数*/ void looktime();
9、/*申明 根据时间查询函数*/ void looklessonname(); /*申明 根据课程名查询函数*/ void add(); /*申明 保留函数*/ void amend(); /*申明 修改课程函数*/ void amend1(); /*申明 修改课程子函数*/ void amendnews(int i); /*申明 修改整个课程信息函数*/ void amendtime(int i); /*申明 修改课程时间函数*/ void amendlessonname(int i); /*申明 修改课程课程名函
10、数*/ void amendclassroom(int i); /*申明 修改课程教室函数*/ void deleted(); /*申明 删除函数*/ void add_score(int count); /*申明 添加学生成绩函数*/ void xiugai_score(int count); /*申明 修改学生成绩函数*/ void shanchu_score(int count); /*申明 删除学生成绩函数*/ void chaxun_score(int count); /*申明 按要求查询学生成绩函数*/ void paixu_sco
11、re(int count); /*申明 学生成绩排序函数*/ void tongji_score(int count); /*申明 学生成绩统计函数*/ float chinese(int count); /*申明 计算语文成绩最大值函数*/ int chr(int count); /*申明 计算语文成绩及格人数函数*/ float english(int count); /*申明 计算英语成绩最大值函数*/ int ehr(int count); /*申明 计算英语成绩及格人数函数*/ float math(int count);
12、 /*申明 计算数学成绩最大值函数*/ int mhr(int count); /*申明 计算数学成绩及格人数函数*/ float computer(int count); /*申明 计算计算机成绩最大值函数*/ int thr(int count); /*申明 计算计算机成绩及格人数函数*/ float PE(int count); /*申明 计算体育成绩最大值函数*/ int phr(int count); /*申明 计算体育成绩及格人数函数*/ float sum_score(int count); /*申明 计算总分成绩
13、最大值函数*/ void load_student(int a); /*申明 开启学生函数*/ void load_teacher(int a); /*申明 开启老师函数*/ struct student /*学生结构体*/ { /*个人信息*/ int student_id; /*账号*/ char student_name[20]; /*姓名*/ char password[16]; /*密码*/ int age; /*年纪*/ char qq[12]; /*QQ号*/ char tel[12]; /*电话*/
14、 int grade; /*年级*/ /*各科成绩*/ float chinese; /*语文分数*/ float english; /*英语分数*/ float math; /*数学分数*/ float computer; /*计算机分数*/ float PE; /*体育分数*/ float sum; /*总分*/ /*课程表*/ char time[10]; /*时间*/ char lessonname[20]; /*课程名*/ char teacher[20]; /*讲
15、课老师*/ char classroom[10]; /*教室*/ char hours[10]; /*第几节课*/ int weeks; /*周时*/ }; struct teacher /*老师结构体*/ { int teacher_id; /*账号*/ char teacher_name[20]; /*姓名*/ char password[16]; /*密码*/ }; struct student our_student[student_num]; struct teacher ou
16、r_teacher[teacher_num]; void main() /*主函数*/ { system("color f0"); /*初始化背景颜色*/ show_menu(); /*制作人信息介绍*/ load(); } void load() /*开启函数*/ { int flag=1; /*控制循环结束变量*/ int a=0,b=0; /*统计已注册学生人数 a为学生个数 b为老师个数*/ int *count1=&a,*count2=&b; /*指向学生人数和老师人数指针*/ int correct_
17、student,correct_teacher; color(); register_(count1,count2); /*注册学生和老师帐号*/ student_file1(); teacher_file(); while(flag) { switch(show_menu_login()) /*显示登录菜单*/ { case 1: /*选择1,进入学生登录*/ if(correct_student=is_my_student(our_student,count1)) { prin
18、tf("\n ◆学生登录成功!\n"); display_student(our_student[correct_student-1]); printf("\n"); printf(" "); system("pause"); load_student(a); } else printf("\n登录失败!\n"); printf("\n"); printf(" 提醒:按Y退出登录界面,按N返回登录界面!!!\n"); flag=yes_no_return(); system("cls"
19、); break; case 2: /*选择2,进入老师登录,即管理员登录*/ if(correct_teacher=is_my_teacher(our_teacher,count2)) { printf("\n ◆管理员登录成功!\n"); display_teacher(our_teacher[correct_teacher-1]); printf("\n"); printf(" "); system("pause"); load_teacher(a);
20、} else printf("\n登录失败!\n"); printf("\n"); printf(" 提醒:按Y退出登录界面,按N返回登录界面!!!\n"); flag=yes_no_return(); system("cls"); break; case 3: /*选择3,退出登录*/ system("cls"); flag=0; break; default: printf("请正确输入1-3:"); system("cls"); } } } vo
21、id load_student(int a) /*开启学生函数*/ { int flag=1; system("cls"); while(flag) { switch(show_student_select()) { case 1: /*选择1,学生信息查询*/ system("cls"); print_stu_information(a); printf("\n"); printf(" 提醒:按Y退出学生查询界面,按N返回学生查询界面!!!\n"); flag=yes_no_return(); sys
22、tem("cls"); break; case 2: /*选择2,学生成绩查询*/ system("cls"); print_stu_score(a); printf("\n"); printf(" 提醒:按Y退出学生查询界面,按N返回学生查询界面!!!\n"); flag=yes_no_return(); system("cls"); break; case 3: /*选择3,学生课表查询*/ menu2(); printf(" 提醒:按Y退出学生查询界面,按N返回学生查询界面!!!\n"
23、); flag=yes_no_return(); system("cls"); break; case 4: /*选择4,退出查询界面*/ system("cls"); flag=0; break; default: printf("请正确输入1-4:"); system("cls"); } } } void load_teacher(int a) /*开启老师函数*/ { int flag=1; system("cls"); while(flag) { swit
24、ch(show_teacher_select()) { case 1: /*选择1,学生信息录入*/ input_information(a); system("cls"); student_file2(); printf("\n 提醒:按Y退出老师录入界面,按N返回老师录入界面!!!\n"); flag=yes_no_return(); system("cls"); break; case 2: /*选择2,学生成绩录入*/ input_score_menu(a); system("cls"
25、); student_file3(); printf("\n 提醒:按Y退出老师录入界面,按N返回老师录入界面!!!\n"); flag=yes_no_return(); system("cls"); break; case 3: /*选择3,学生课表录入*/ menu1(); printf(" 提醒:按Y退出老师录入界面,按N返回老师录入界面!!!\n"); flag=yes_no_return(); system("cls"); break; case 4: /*选择4,退出管理界面*
26、/ system("cls"); flag=0; break; default: printf("请正确输入1-4:"); system("cls"); } } } int length_student_name(char *p) /*验证用户名是否正当*/ { int l; l=strlen(p); if(l>20||l<1) return 0; else return 1; } int vaild_student_name(char *p) /*判定用户名是否有效*/ { int
27、i=0;
int len=strlen(p);
if((*p>='a'&&*p<='z')||(*p>='A'&&*p<='Z')) /*判定首字母是不是字母*/
{
for(i=0;i
28、student_password(char *p) /*密码长度有效性验证*/ { int len; len=strlen(p); if(len<6||len>16) return 0; else return 1; } int vaild_student_password(char *p) /*密码有效性验证*/ { int i=0; for(;*p!='\0';p++) { if(!((*p>='a'&&*p<='z')||(*p>'A'&&*p<'Z')||(*p>='0'&&*p<='9'))) return 0;
29、 } return 1; } int vaild_two_password(char *p1,char *p2) /*验证两次密码是否相同*/ { if(strcmp(p1,p2)==0) return 1; else return 0; } int student_register(struct student *ptr_student,int *size) /*完成注册功效*/ { char password[16]; char repassword[16]; if(*size==student_num) { puts("
30、◆注册人数已满!"); printf("\n"); return 0; } system("cls"); printf("\n\n"); printf(" ★请输入注册学生姓名:"); fflush(stdin); gets(ptr_student[*size].student_name); if(!(length_student_name(ptr_student[*size].student_name)&&vaild_student_name(ptr_student[*size].student_name))) { printf(" ◆您输入
31、姓名无效,学生姓名在1-20之间,首字符为字母,后面必需为字母、数字或下划线!!!"); return 0; } printf("\n"); printf(" ★请输入注册密码:"); fflush(stdin); gets(password); printf("\n"); printf(" ★请再次输入注册密码:"); fflush(stdin); gets(repassword); printf("\n"); if(!vaild_two_password(password,repassword)) { printf("\n №:
32、两次输入密码不一致!!!"); printf("\n"); return 0; } else strcpy(ptr_student[*size].password,password); if(!(length_student_password(ptr_student[*size].password)&&vaild_student_password(ptr_student[*size].password))) { printf(" ◆您输入密码无效,密码应在6-16位之间,密码只能包含字母和数字!!!"); printf("\n"); retu
33、rn 0; } printf(" ★您编号为:%d,这将是您登录账号!!!",ptr_student[*size].student_id=0000+*size); return 1; } int is_my_student(struct student *p,int *size) /*假如登录成功则返回第i+1个学生信息,不然返回0*/ { int i; int zhanghao; char mima[18]; system("cls"); printf("\n\n"); printf(" ★请输入您账号:"); scanf("%d",&zha
34、nghao); fflush(stdin); printf("\n"); printf(" ★请输入您密码:"); gets(mima); for(i=0;i<*size;i++) { if((zhanghao==p[i].student_id)&&(strcmp(mima,p[i].password)==0)) return i+1; } return 0; } void display_student(struct student stu) /*显示学生信息*/ { printf("\n ★您账号是:%d\n",stu.stud
35、ent_id); } int length_teacher_name(char *p) /*验证用户名是否正当*/ { int l; l=strlen(p); if(l>20||l<1) return 0; else return 1; } int vaild_teacher_name(char *p) /*判定用户名是否有效*/ { int i=0; int len=strlen(p); if((*p>='a'&&*p<='z')||(*p>='A'&&*p<='Z')) /*判定首字母是不是字母*/ { for(i=
36、0;i
37、 0; else return 1; } int vaild_teacher_password(char *p) /*密码有效性验证*/ { int i=0; for(;*p!='\0';p++) { if(!((*p>='a'&&*p<='z')||(*p>'A'&&*p<'Z')||(*p>='0'&&*p<='9'))) return 0; } return 1; } int teacher_register(struct teacher *ptr_teacher,int *size) /*完成注册功效*/ { cha
38、r password[16]; char repassword[16]; if(*size==teacher_num) { puts(" ◆注册人数已满!"); printf("\n"); return 0; } system("cls"); printf("\n\n"); printf(" ★请输入注册老师姓名:"); fflush(stdin); gets(ptr_teacher[*size].teacher_name); if(!(length_teacher_name(ptr_teacher[*size].teacher_nam
39、e)&&vaild_teacher_name(ptr_teacher[*size].teacher_name))) { printf(" ◆您输入姓名无效,老师姓名在1-20之间,首字符为字母,后面必需为字母、数字或下划线!!!"); printf("\n"); return 0; } printf("\n"); printf(" ★请输入注册密码:"); fflush(stdin); gets(password); printf("\n"); printf(" ★请再次输入注册密码:"); fflush(stdin); gets(re
40、password); printf("\n"); if(!vaild_two_password(password,repassword)) { printf("\n №:两次输入密码不一致!!!"); printf("\n"); return 0; } else strcpy(ptr_teacher[*size].password,password); if(!(length_teacher_password(ptr_teacher[*size].password)&&vaild_teacher_password(ptr_teacher[*si
41、ze].password))) { printf(" ◆您输入密码无效,密码应在6-16位之间,密码只能包含字母和数字!!!"); printf("\n"); return 0; } printf(" ★您编号为:%d,这将是您登录账号。",ptr_teacher[*size].teacher_id=0+*size); return 1; } int is_my_teacher(struct teacher *p,int *size) /*假如登录成功则返回第i+1个老师信息,不然返回0*/ { int i; int zhanghao;
42、char mima[18]; system("cls"); printf("\n\n"); printf(" ★请输入您账号:"); scanf("%d",&zhanghao); fflush(stdin); printf("\n"); printf(" ★请输入您密码:"); gets(mima); for(i=0;i<*size;i++) { if((zhanghao==p[i].teacher_id)&&(strcmp(mima,p[i].password)==0)) return i+1; } return 0; }
43、 void display_teacher(struct teacher tea) /*显示老师信息*/ { printf("\n ★您账号是:%d\n",tea.teacher_id); } void register_(int *count1,int *count2) /*注册函数*/ { int i=1; while(i) { switch(show_menu_register()) { case 1: if(student_register(our_student,count1)) { (*count1)++;
44、 printf("\n"); printf("\n ★注册成功!\n"); printf(" "); system("pause"); system("cls"); } break; case 2: if(teacher_register(our_teacher,count2)) { (*count2)++; printf("\n"); printf("\n ★注册成功!\n"); printf("
45、 "); system("pause"); system("cls"); } break; case 3: i=0; system("cls"); break; default: printf("请正确输入:\n"); printf(" "); system("pause"); system("cls"); } } } void input_information(int count) {
46、int k;
system("cls");
for(k=0;k 47、k].qq);
printf("\n");
printf("\t\t请录入学号为%d学生电话:",our_student[k].student_id);
scanf("%s",our_student[k].tel);
printf("\n");
printf("\t\t请录入学号为%d学生年级:",our_student[k].student_id);
scanf("%d",&our_student[k].grade);
printf("\n");
printf("\t\t您已经成功将学号为%d学生信息录入!!!\n",our_student[k 48、].student_id);
}
}
void input_score_menu(int count)
{
int number,i=1;
system("cls");
printf("\n\n");
printf("\t*************************学生成绩管理*************************\n");
printf("\t* *\n");
printf("\t* 1. ☆ 49、 添加学生成绩 ☆ *\n");
printf("\t* 2. ☆ 修改学生成绩 ☆ *\n");
printf("\t* 3. ☆ 删除学生成绩 ☆ *\n");
printf("\t* 4. ☆ 按要求查询学生成绩 ☆ *\n");
printf("\t* 5. ☆ 按要求排序 50、 ☆ *\n");
printf("\t* 6. ☆ 按要求统计成绩 ☆ *\n");
printf("\t* 7. ☆ 退出学生成绩管理 ☆ *\n");
printf("\t* *\n");
printf("\t******************请输入选择功效编号(1-7):********






