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_t
4、eacher_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
5、vaild_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的学生的信息函数*/ v
8、oid print_stu_score(int count_stu); /*声明 输出账号为num的学生的成绩函数*/ void show_menu(); /*声明 初始化界面函数*/ void input(); /*声明 输入函数*/ void menu1(); /*声明 教师录入课程表主菜单函数*/ void menu2(); /*声明 学生查询课程表主菜单函数*/ void rank(); /*声明 显示时间顺序函数*/ void querymenu3(); /*声明 查询函数*/ void loo
9、ktime(); /*声明 按照时间查询函数*/ 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); /*声明 按要求查询学生成绩函数*/
11、void paixu_score(int count); /*声明 学生成绩排序函数*/ void tongji_score(int count); /*声明 学生成绩统计函数*/ float chinese(int count); /*声明 计算语文成绩最大值函数*/ int chr(int count); /*声明 计算语文成绩及格人数的函数*/ float english(int count); /*声明 计算英语成绩最大值函数*/ int ehr(int count); /*声明 计算英语成绩及格人数的函数*/ float ma
12、th(int count); /*声明 计算数学成绩最大值函数*/ int mhr(int count); /*声明 计算数学成绩及格人数的函数*/ float computer(int count); /*声明 计算计算机成绩最大值函数*/ int thr(int count); /*声明 计算计算机成绩及格人数的函数*/ float PE(int count); /*声明 计算体育成绩最大值函数*/ int phr(int count); /*声明 计算体育成绩及格人数的函数*/ float sum_score(int cou
13、nt); /*声明 计算总分成绩最大值函数*/ 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号*/ cha
14、r tel[12]; /*电话*/ int grade; /*年级*/ /*各科成绩*/ float chinese; /*语文分数*/ float english; /*英语分数*/ float math; /*数学分数*/ float computer; /*计算机分数*/ float PE; /*体育分数*/ float sum; /*总分*/ /*课程表*/ char time[10]; /*时间*/ char lessonname[20]; /*课程名*/ char tea
15、cher[20]; /*授课老师*/ 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];
16、 struct teacher our_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; /*指向学生人数和老
17、师人数的指针*/ int correct_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,
18、count1)) { printf("\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_re
19、turn(); system("cls"); 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");
20、 load_teacher(a); } 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("c
21、ls"); } } } void 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=
22、yes_no_return(); system("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退
23、出学生查询界面,按N返回学生查询界面!!!\n"); 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");
24、 while(flag) { switch(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_m
25、enu(a); system("cls"); 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;
26、case 4: /*选择4,退出管理界面*/ 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)
27、 /*判断用户名是否有效*/
{
int i=0;
int len=strlen(p);
if((*p>='a'&&*p<='z')||(*p>='A'&&*p<='Z')) /*判断首字母是不是字母*/
{
for(i=0;i
28、turn 0; } int length_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'&&
29、p<='9'))) return 0; } 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==s
30、tudent_num) { puts(" ◆注册人数已满!"); 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_na
31、me))) { printf(" ◆您输入的姓名无效,学生姓名在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,repassw
32、ord)) { printf("\n №:两次输入的密码不一致!!!"); 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位之间,密码只能包含字母和数字!!
33、"); printf("\n"); return 0; } printf(" ★您的编号为:%d,这将是您的登录账号!!!",ptr_student[*size].student_id=20150000+*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"); pr
34、intf(" ★请输入您的账号:"); scanf("%d",&zhanghao); 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) /*显示学生信息*/
35、 { printf("\n ★您的账号是:%d\n",stu.student_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'&&
36、p<='Z')) /*判断首字母是不是字母*/
{
for(i=0;i
37、strlen(p); if(len<6||len>16) return 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 *p
38、tr_teacher,int *size) /*完成注册功能*/ { char 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_te
39、acher_name(ptr_teacher[*size].teacher_name)&&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("
40、 ★请再次输入注册密码:"); fflush(stdin); gets(repassword); 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].passwo
41、rd)&&vaild_teacher_password(ptr_teacher[*size].password))) { printf(" ◆您输入的密码无效,密码应在6-16位之间,密码只能包含字母和数字!!!"); printf("\n"); return 0; } printf(" ★您的编号为:%d,这将是您的登录账号。",ptr_teacher[*size].teacher_id=20150+*size); return 1; } int is_my_teacher(struct teacher *p,int *size) /*如果登录成功则
42、返回第i+1个老师的信息,否则返回0*/ { int i; int zhanghao; 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]
43、password)==0)) return i+1; } return 0; } 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_
44、register(our_student,count1)) { (*count1)++; printf("\n"); printf("\n ★注册成功!\n"); printf(" "); system("pause"); system("cls"); } break; case 2: if(teacher_register(our_teacher,count2)) { (*count2)++; printf("\n")
45、 printf("\n ★注册成功!\n"); printf(" "); system("pause"); system("cls"); } break; case 3: i=0; system("cls"); break; default: printf("请正确输入:\n"); printf(" "); system("pause"); system("cls");
46、
}
}
}
void input_information(int count)
{
int k;
system("cls");
for(k=0;k 47、Q号:",our_student[k].student_id);
scanf("%s",our_student[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);
pri 48、ntf("\n");
printf("\t\t您已经成功将学号为%d的学生的信息录入!!!\n",our_student[k].student_id);
}
}
void input_score_menu(int count)
{
int number,i=1;
system("cls");
printf("\n\n");
printf("\t*************************学生成绩管理*************************\n");
printf("\t* 49、 *\n");
printf("\t* 1. ☆ 添加学生成绩 ☆ *\n");
printf("\t* 2. ☆ 修改学生成绩 ☆ *\n");
printf("\t* 3. ☆ 删除学生成绩 ☆ *\n");
printf("\t* 4. ☆ 按要求查询学生成绩 ☆ 50、 *\n");
printf("\t* 5. ☆ 按要求排序 ☆ *\n");
printf("\t* 6. ☆ 按要求统计成绩 ☆ *\n");
printf("\t* 7. ☆ 退出学生成绩管理 ☆ *\n");
printf("\t*






