c语言教务管理系统
- 格式:docx
- 大小:40.63 KB
- 文档页数:22
C语言学生管理系统代码
简介
学生管理系统是一个用于管理学生信息的简单程序,它可以实现添加学生信息、显示学生信息、修改学生信息和删除学生信息等功能。
通过这个系统,学校或机构可以更方便地管理和维护学生的相关数据。
功能
1.添加学生信息:通过输入学生的姓名、学号、年龄和性别等信息,将
学生信息存储在系统中。
每个学生信息包括学号、姓名、年龄和性别等关键信息。
2.显示学生信息:可以显示系统中所有学生的信息,包括学号、姓名、
年龄和性别。
3.修改学生信息:通过输入学生的学号,可以修改该学生的姓名、年龄
和性别等信息。
4.删除学生信息:通过输入学生的学号,可以删除该学生的信息。
实现
下面是一个简单的C语言学生管理系统代码示例:
```c #include <stdio.h> #include <string.h>
#define MAX_STUDENTS 100
// 定义学生结构体 struct Student { int id; char name[100]; int age; char
gender[10]; };
// 定义全局变量,用于存储学生信息和统计学生数量 struct Student
students[MAX_STUDENTS]; int num_students = 0;
// 添加学生 void addStudent() { if (num_students >= MAX_STUDENTS) { printf(。
毕业设计(论文)题目(中文):基于C++语言的教务管理系统的设计与实现(英文):Educational Administration Management System Designand Implementation Based on C++ language学院专业班级学生姓名学号指导教师学院负责人(签章)完成日期2015年 5月上海师范大学天华学院本科毕业设计(论文)诚信声明本人郑重声明:所呈交的毕业设计(论文),题目《基于C++语言的教务管理系统的设计与实现》是本人在指导教师的指导下,进行研究工作所取得的成果。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式注明。
除此之外,本设计(论文)不包含任何其他个人或集体已经发表或撰写过的作品成果。
本人完全意识到本声明应承担的法律责任。
作者(签名):日期:年月日毕业设计(论文)任务书(2015 届)题目(中文):基于C++语言的教务管理系统的设计与实现(英文):Educational Administration Management System Designand Implementation Based on C++ language学院工学院专业班级学生姓名学号指导教师学院负责人(签章)日期:2014年12月 5 日一、毕业设计(论文)的主要内容与具体要求(任务及背景、工作环境、成果形式、着重培养的能力、有实验环节的要提出主要技术指标、要求)(一)、毕业设计(论文)主要内容及主要技术指标、要求1. 主要内容本课题基于C++语言的教务管理系统的设计与实现。
课题研究内容如下:本课题是利用C++语言来实现学校学生信息的管理。
研究目标是将本课题的成果应用于学校学生信息以及学年成绩的管理。
课题的最终应该实现现代化、与校园网紧密相连的教务管理系统,该系统应可以便捷、简单的对学生信息进行录入以及修改,对学生信息进行更加优化的管理。
在程序上,运用了Microsoft Visual Studio2005软件进行编写主要程序代码,设计实现了三个教务管理系统管理模块功能以及三个模块功能下的多个子功能模块,涉及了系统的管理人员、老师、学生三个全体的全部人员的使用。
教务管理系统c语言课程设计一、教学目标本课程的教学目标是使学生掌握教务管理系统的基本原理和设计方法,能够运用C语言进行简单的教务管理系统开发。
具体分为以下三个部分:1.知识目标:使学生掌握C语言的基本语法、数据结构、算法和面向对象编程思想,了解教务管理系统的功能和结构。
2.技能目标:培养学生具备运用C语言进行程序设计的能力,能够独立完成简单的教务管理系统模块设计与实现。
3.情感态度价值观目标:培养学生对编程事业的热爱,提高学生解决实际问题的积极性,培养学生的团队协作精神和自主学习能力。
二、教学内容本课程的教学内容主要包括以下几个部分:1.C语言基础知识:数据类型、运算符、表达式、语句、函数等。
2.数据结构:数组、链表、栈、队列、树、图等。
3.算法:排序算法、查找算法、常用算法分析等。
4.面向对象编程:类、对象、封装、继承、多态等。
5.教务管理系统设计:系统需求分析、系统架构设计、模块划分、功能实现等。
三、教学方法为了达到本课程的教学目标,我们将采用以下几种教学方法:1.讲授法:通过讲解知识点,使学生掌握基本概念和原理。
2.案例分析法:分析实际案例,使学生了解教务管理系统的应用场景和设计方法。
3.实验法:让学生动手编写代码,培养实际编程能力。
4.讨论法:分组讨论问题,培养学生的团队协作精神和解决问题的能力。
四、教学资源为了支持本课程的教学内容和教学方法,我们将准备以下教学资源:1.教材:《C程序设计语言》(K&R)、《C Primer Plus》等。
2.参考书:《数据结构与算法分析》(C语言版)、《深度探索C++对象模型》等。
3.多媒体资料:教学PPT、视频教程、在线编程练习等。
4.实验设备:计算机、网络环境、编程调试工具等。
五、教学评估本课程的评估方式包括以下几个部分:1.平时表现:通过课堂参与、提问、讨论等环节,评估学生的学习态度和积极性。
2.作业:布置课后作业,评估学生的编程能力和对知识的理解程度。
课程信息管理系统(C语言)课程信息管理系统(C语言)一、引言在现代教育管理中,课程信息的管理和统计是一项非常重要的任务。
为了提高学校教学的效率和管理的科学性,开发一个完善的课程信息管理系统非常必要。
本文将介绍一个基于C语言开发的课程信息管理系统的设计与实现。
二、需求分析课程信息管理系统需要满足以下需求:1. 学生信息管理:包括学生的基本信息、选课信息、成绩信息等;2. 教师信息管理:包括教师的基本信息、教授的课程信息等;3. 课程信息管理:包括课程的基本信息、上课时间地点、授课教师等;4. 成绩管理:包括学生的考试成绩和平时成绩的管理;5. 查询与统计:方便用户查询学生信息、教师信息、课程信息和成绩信息,并能够进行相关统计分析。
三、系统设计基于以上需求分析,我们设计了如下功能模块:1. 学生信息管理模块:包括学生基本信息录入、学生选课、成绩查询等功能;2. 教师信息管理模块:包括教师基本信息录入、课程信息管理等功能;3. 课程信息管理模块:包括课程基本信息录入、课程成绩录入等功能;4. 成绩管理模块:包括学生成绩录入、成绩查询、成绩统计等功能;5. 查询与统计模块:包括学生信息查询、课程信息查询、成绩统计等功能。
四、系统实现在C语言的基础上,我们利用数据结构与算法来实现课程信息管理系统。
1. 学生信息管理模块的实现:- 定义学生结构体,包括学生姓名、学号、性别等信息;- 实现学生基本信息录入功能,将学生信息存储在文件中;- 实现学生选课功能,将选课信息关联到学生的记录中;- 实现成绩查询功能,根据学号查找相应学生的成绩信息。
2. 教师信息管理模块的实现:- 定义教师结构体,包括教师姓名、教师工号等信息;- 实现教师基本信息录入功能,将教师信息存储在文件中;- 实现课程信息管理功能,将所教授课程信息与教师信息关联。
3. 课程信息管理模块的实现:- 定义课程结构体,包括课程名称、上课时间地点等信息;- 实现课程基本信息录入功能,将课程信息存储在文件中;- 实现课程成绩录入功能,将学生的成绩与课程关联。
课程信息管理系统c语言课程信息管理系统(C语言)一、引言课程信息管理系统是一种用来管理和组织课程信息的软件系统。
它能够对教学计划、课程表、学生选课等进行管理,帮助学校、教育机构或教师高效地管理课程信息。
本文将通过介绍课程信息管理系统的功能、特点和实施过程,详细阐述C语言在该系统中的应用。
二、功能介绍1. 学生管理:该系统能够记录学生的个人信息,如学号、姓名、班级等,并能进行学生选课管理,包括选课、退课等操作。
2. 课程管理:系统可以管理各门课程的信息,如课程编号、课程名称、学分等,并能进行课程安排,制定教学计划。
3. 教师管理:系统可以记录教师的基本信息,提供教师选课、授课安排等功能。
4. 成绩管理:系统能够记录学生的各科成绩,并提供成绩查询、统计等功能,方便学生和教师进行学业评估。
5. 课程评价:系统可以记录学生对课程的评价和反馈,帮助学校和教师改进教学质量。
三、特点和优势1. 数据集中管理:课程信息管理系统将学生、教师、课程等信息集中管理,方便快捷,减少重复工作。
2. 数据安全性高:系统采用数据库来存储和管理数据,确保数据的安全性和完整性。
3. 操作简便:系统界面友好,操作简单明了,即使对计算机操作不熟悉的教师和学生也能够轻松上手。
4. 信息共享:系统支持信息共享,学生、教师和管理者可以通过系统查询相关信息,提高工作效率。
5. 数据分析功能:系统能够对学生选课情况、成绩分布等进行统计和分析,为教学改革提供数据支持。
四、实施过程1. 需求分析:通过与学校、教师和学生的沟通,明确系统的需求和功能。
2. 系统设计:根据需求分析的结果,设计系统的数据库结构、界面和功能模块。
3. 编码实现:使用C语言编写相应的代码,实现系统的各个功能模块。
4. 测试调试:对系统进行功能测试和性能测试,确保系统的稳定性和可靠性。
5. 上线部署:将系统部署到服务器上,并进行相关的数据迁移和备份工作。
6. 培训和维护:对教师和学生进行系统培训,并进行后期的系统维护和更新。
C语言教务管理系统一、程序结构图二、程序运行截图1. 个人信息简介2.修改颜色3.注册界面4. 信息保存至文件5.登录界面6.管理员录入信息7. 学生信息录入8.学生成绩录入9.学生课程表录入10.学生信息查询界面11学生信息查询12.学生成绩查询13.学生课表查询三、代码(一个cpp)#include<stdio.h> #include<stdlib.h> #include<string.h> #include<ctype.h> #include <conio.h>#include"windows.h"#define student_num 1000 /*定义1000个学生*/#define teacher_num 5 /*定义5个老师(管理员)*/int is_my_student(struct student *p,int *size); /*声明返回第i+1个学生的函数*/ int is_my_teacher(struct teacher *p,int *size); /*声明返回第i+1个老师的函数*/ int length_student_name(char *p); /*声明验证用户名函数*/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_teacher_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 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(); /*声明加载函数*/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(); /*将保存的学生的成绩存入文件中*/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_stu_score(int count_stu); /*声明输出账号为num的学生的成绩函数*/void show_menu(); /*声明初始化界面函数*/void input(); /*声明输入函数*/void menu1(); /*声明教师录入课程表主菜单函数*/void menu2(); /*声明学生查询课程表主菜单函数*/void rank(); /*声明显示时间顺序函数*/void querymenu3(); /*声明查询函数*/void looktime(); /*声明按照时间查询函数*/void looklessonname(); /*声明按照课程名查询函数*/void add(); /*声明保存函数*/void amend(); /*声明修改课程函数*/void amend1(); /*声明修改课程子函数*/void amendnews(int i); /*声明修改整个课程信息函数*/void amendtime(int i); /*声明修改课程时间函数*/void amendlessonname(int i); /*声明修改课程课程名函数*/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_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 math(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 count); /*声明计算总分成绩最大值函数*/ 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]; /*电话*/int grade; /*年级*//*各科成绩*/float chinese; /*语文分数*/float english; /*英语分数*/float math; /*数学分数*/float computer; /*计算机分数*/float PE; /*体育分数*/float sum; /*总分*//*课程表*/char time[10]; /*时间*/char lessonname[20]; /*课程名*/char teacher[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]; 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; /*指向学生人数和老师人数的指针*/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,count1)){printf("\n ◆学生登录成功!\n");display_student(our_student[correct_student-1]);printf("\n");printf(" ");system("pause");load_student(a);}elseprintf("\n登录失败!\n");printf("\n");printf(" 提示:按Y退出登录界面,按N返回登录界面!!!\n");flag=yes_no_return();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");load_teacher(a);}elseprintf("\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");}}}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=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退出学生查询界面,按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");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_menu(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;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;elsereturn 1;}int vaild_student_name(char *p) /*判断用户名是否有效*/{int i=0;int len=strlen(p);if((*p>='a'&&*p<='z')||(*p>='A'&&*p<='Z')) /*判断首字母是不是字母*/ {for(i=0;i<len;i++){if(!(p[i]='_'||(p[i]>='a'&&p[i]<='z')||(p[i]>='A'&&p[i]<='Z')||(p[i]>='0'&&p[i]<=' 9'))) /*判断后面的字符是否有效*/return 0;}return 1;}elsereturn 0;}int length_student_password(char *p) /*密码长度有效性验证*/{int len;len=strlen(p);if(len<6||len>16)return 0;elsereturn 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;}return 1;}int vaild_two_password(char *p1,char *p2) /*验证两次密码是否相同*/{if(strcmp(p1,p2)==0)return 1;elsereturn 0;}int student_register(struct student *ptr_student,int *size) /*完成注册功能*/{char password[16];char repassword[16];if(*size==student_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_name))){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,repassword)){printf("\n №:两次输入的密码不一致!!!");printf("\n");return 0;}elsestrcpy(ptr_student[*size].password,password);if(!(length_student_password(ptr_student[*size].password)&&vaild_student_pa ssword(ptr_student[*size].password))){printf(" ◆您输入的密码无效,密码应在6-16位之间,密码只能包含字母和数字!!!");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");printf(" ★请输入您的账号:");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) /*显示学生信息*/{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;elsereturn 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=0;i<len;i++){if(!(p[i]='_'||(p[i]>='a'&&p[i]<='z')||(p[i]>='A'&&p[i]<='Z')||(p[i]>='0'&&p[i]<=' 9'))) /*判断后面的字符是否有效*/return 0;}return 1;}elsereturn 0;}int length_teacher_password(char *p) /*密码长度有效性验证*/{int len;len=strlen(p);if(len<6||len>16)return 0;elsereturn 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) /*完成注册功能*/{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_teacher_name(ptr_teacher[*size].teacher_name)&&vaild_teacher_na me(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(repassword);printf("\n");if(!vaild_two_password(password,repassword)){printf("\n №:两次输入的密码不一致!!!");printf("\n");return 0;}elsestrcpy(ptr_teacher[*size].password,password);if(!(length_teacher_password(ptr_teacher[*size].password)&&vaild_teacher_password(ptr_teacher[*size].password))){printf(" ◆您输入的密码无效,密码应在6-16位之间,密码只能包含字母和数字!!!");printf("\n");return 0;}printf(" ★您的编号为:%d,这将是您的登录账号。
课程信息管理系统C语言1. 简介本文将详细探讨课程信息管理系统的设计与实现,使用C语言作为开发语言。
课程信息管理系统是一种用于管理学校或机构的课程信息的软件系统,通过该系统可以实现课程的增删改查、学生选课、教师管理等功能。
为了更好地组织和管理课程信息,该系统需要一套完整的数据结构和相应的算法来实现各项功能。
2. 功能需求基于C语言的课程信息管理系统应具备以下功能: 1. 学生管理:包括学生的基本信息、选课信息、成绩管理等。
2. 教师管理:包括教师的基本信息、授课课程、教学评价等。
3. 课程管理:包括课程的基本信息、选课限制、课程评价等。
4. 成绩管理:包括成绩录入、成绩查询、成绩统计分析等。
5. 选课管理:包括选课限制、选课时间、选课冲突等。
6. 系统设置:包括管理员账户管理、密码修改、系统日志等。
3. 系统设计3.1 数据结构设计课程信息管理系统需要设计合适的数据结构来存储和管理学生、教师、课程和成绩等信息。
下面是各个实体的数据结构设计示例:3.1.1 学生数据结构设计typedef struct Student {int id; // 学号char name[20]; // 姓名int gender; // 性别(0表示男,1表示女)char major[20]; // 专业struct Student* next; // 指向下一个学生结点的指针} Student;3.1.2 教师数据结构设计typedef struct Teacher {int id; // 工号char name[20]; // 姓名int gender; // 性别(0表示男,1表示女)char department[20]; // 部门struct Teacher* next; // 指向下一个教师结点的指针} Teacher;3.1.3 课程数据结构设计typedef struct Course {int id; // 课程号char name[20]; // 课程名称int credit; // 学分struct Course* next; // 指向下一个课程结点的指针} Course;3.1.4 成绩数据结构设计typedef struct Score {int studentId; // 学生学号int courseId; // 课程号float score; // 分数struct Score* next; // 指向下一个成绩结点的指针} Score;3.2 功能模块设计课程信息管理系统可以划分为以下功能模块: #### 3.2.1 学生管理模块学生管理模块负责学生信息的录入、修改和查询等功能。
功能说明:实现两种权限的身份登陆的教务管理系统*/#include "stdio.h"#include "stdlib.h"#include "string.h"#include "time.h"#include "memory.h"#define share "d:\\share.dat" //定义邮件地址#define manager "d:\\manager.dat" //定义管理员邮件地址#define outmsg "d:\\outmsg.dat" //定义公告邮件地址#define logtimemsg "d:\\used login time.dat" //定义用户登录时间信息#define star_stu "d:\\stu_scname.dat" //定义学生起始文件信息#define stu_msg "d:\\stu.dat" //定义学生成绩信息地址#define mass_key "3110008758" //定义文件头部密码typedef struct student stu;#define sc_num 4 //只设定4门科目,不允许改动#define uint unsigned int/*学生成绩管理系统结构*/struct student{char num[10]; /*学生学号*/char name[10]; /*学生姓名*/uint score[sc_num]; /*科目分数*/uint average; /*科目平均分*/stu *next;}st;char gettemp=0;/*管理员身份识别结构*/typedef struct username user;struct username{char username[20];//char password[20];}use;/*时间登录信息*/struct Logtime{char userlogin[20];struct tm;};char logc;//登录次数typedef struct Logtime logtime;//========================================================== //定义通讯协议//==========================================================#define mass_max 200 //定义信息量struct Massage{int cont; //文件数量char username[15]; //发送人char mass[mass_max];//信息}mas;typedef struct Massage massage;//========================================================== //========================================================== char userlogin[10];char sc_name[sc_num][10];/*以上是学生信息*/char welcome(void);/*用户界面,返回0,则表示退出系统*//*==================================================================== 学生信息操作==================================================================== */stu*creat();/*建立链表*/void display(stu *head);/*显示用户信息*/void insert(stu *head);/*增加学生信息*/stu* delname(stu*head,char *stu_name);/*根据学生姓名删除用户信息*/stu* delnum(stu *head,char *stu_num);/*根据学生学号删除用户信息*/stu* checkname(stu *head,char *stu_name);/*输出指定学生的信息*/stu* checknum(stu *head,char *stu_num);/*输出指定学生学号的学生信息*/ void changsc_name(stu *head,char *name);/*修改用户成绩*/void changsc_num(stu *head,char *num);/*修改用户成绩*/void waring(void);/*产生警告信息*/char cheknum(char *num);/*检查学生学号是否符合格式*/char chekname(char *name);/*检查学生姓名是否符合格式*/char chekscore(char score);/*检查学生分数是否符合格式*/stu* sortscore(stu *head);/*学生按平均成绩排序*/stu* sortnum(stu *head);/*学生信息按学号排序*//*==================================================================== 学生用户登录==================================================================== */char stulogin(void);/*进入普通用户登录界面*/char stucheck(char *nam,char *stnum);/*查找是否存在该学生信息*/char newlogin(char *nam,char *stnum);/*注册学生信息*/void disnewst(void);/*获得学生信息*//*==================================================================== 系统管理选择,管理员权限==================================================================== */void stu_system(void);/*对各种操作集中管理*/void sentmsg(void);/*发送公告*/char readmsg(void);/*浏览信息*/char delemsg(void);//删除信息void chagesbject(void);/*修改课程信息*//*==================================================================== 用户登录信息==================================================================== */void setlogintime(void);/*记录用户登录时间*/void dislogintime(void);/*显示用户登录信息*/void setused(void);/*注册新用户资料*/char usedcheckname(char *name);/*用户信息检查,若存在用户,则返回1,否则返回0*/ char usedcheckpass(char *name,char *password);/*查看用户名密码是否符合*//*====================================================================存储操作====================================================================*/char save(stu *head);/*保存用户数据*/char disload();/*显示用户信息*/stu* load(void);/*加载用户数据*/void clrtxt(char *str);/*清除文本信息*/char* creat_txt(char *username);/*根据用户名,创建一个用户文件*/FILE* chekuser(char *username);/*根据用户名,查找是否有此用户信息,若无,返回NULL*/ /*====================================================================---------------main函数----------====================================================================*/void main(){FILE *fp;char i,j;char name[15];system("color b5");memset(name,'\0',sizeof(name));if((fp=fopen(star_stu ,"r+"))==NULL){printf("将新建文件!\n");fp=fopen(star_stu ,"w+");}fread(name,sizeof(name),1,fp);if(strcmp(name,mass_key)!=0){printf("文件载入出错!\t N为退出回车键继续...:");i=getchar();if((i=='n')||(i=='N')){fclose(fp);exit(1);}else{printf("\n\n数据将重新初始化!\n");printf("\n\n请输入4门科目名称\n");memset(name,'\0',sizeof(name));fwrite(name,sizeof(name),5,fp);strcpy(name,mass_key);rewind(fp);fwrite(name,sizeof(name),1,fp);for(i=0;i<sc_num;i++){printf("\n\n第%d门科目名称: ",i+1);scanf("%s",sc_name[i]);if(fwrite(sc_name[i],sizeof(sc_name[i]),1,fp)!=1){printf("\n\n\t\t\t\t保存出错!\n");getchar();exit(1);}}}}else{if(fp==NULL)printf("\n文件错误!");fscanf(fp,"%s%s%s%s",sc_name[0],sc_name[1],sc_name[2],sc_name[3]);}fclose(fp);fp=fopen(share,"w"); //为防止文件在后面打开错误fclose(fp);fp=fopen(manager,"w");fclose(fp);fp=fopen(outmsg,"w");fclose(fp);do{j=welcome();if(j==1){system("cls");printf("\t\t欢迎进入学生用户中心系统!");setlogintime();j=stulogin();}else if(j==2){setlogintime();stu_system();}}while(j!=0);fp=fopen(share,"w"); //为防止文件未关闭,倒置文件内容丢失fclose(fp);fp=fopen(manager,"w");fclose(fp);fp=fopen(outmsg,"w");fclose(fp);fp=fopen(logtimemsg,"w");fclose(fp);fp=fopen(star_stu,"w");fclose(fp);fp=fopen(stu_msg,"w");fclose(fp);}/*====================================================================---------------------------初始化用户界面---------------------------====================================================================*///返回1,则进入stu用户界面//返回0,则表示退出//返回2,则表示进入管理员界面char welcome(void){char username[20];char userpass[20];char i,wrong_cont=0,key=0,weling=1,back=0;char temp;system("color b5");while(weling){do{system("cls");printf("\t*********************欢迎进入教务管理系统********************\n");printf("\t* *\n");printf("\t* 1.用户登录*\n");printf("\t* *\n");printf("\t* 2.用户注册*\n");printf("\t* *\n");printf("\t* 3.管理员登陆*\n"); printf("\t* *\n"); printf("\t* 4.管理员注册*\n"); printf("\t* *\n"); printf("\t* 5.退出系统*\n"); printf("\t* *\n"); printf("\t=============================================================\n"); printf("\t 请按命令提示操作\n"); printf("\n\n\n");printf("\n\n\n");printf("您输入的命令为:\t");i=getchar();if((i!='1')&&(i!='2')&&(i!='3')&&(i!='4')&&(i!='5')){printf("\n输入错误的指令!请按命令提示操作1-3\n");getchar();}}while((i!='1')&&(i!='2')&&(i!='3')&&(i!='4')&&(i!='5'));switch(i){case '1':{system("cls");memset(username,'\0',sizeof(username));memset(userpass,'\0',sizeof(userpass));printf("\n\t请输入用户名:\t");scanf("%s",username);printf("\n\t请输入学号:\t");scanf("%s",userpass);temp=stucheck(username,userpass);if(temp==0){printf("没有学生档案信息!请注册...\n");getchar();break;}else if(temp==1){memset(userlogin,'\0',sizeof(userlogin));strcpy(userlogin,username);printf("\n\t学生成绩登录有效!");getchar();return 1;}getchar();//=======================break;}case '2':{system("cls");memset(username,'\0',sizeof(username));memset(userpass,'\0',sizeof(userpass));printf("\n\t请输入用户名:\t");scanf("%s",username);printf("\n\t请输入学号:\t");scanf("%s",userpass);while(cheknum(userpass)!=1){printf("您的输入格式有误,请重新输入!\n");printf("按回车键继续...\n");getchar();memset(userpass,'\0',sizeof(userpass));printf("\n\t请输入学号:\t");scanf("%s",userpass);}if(newlogin(username,userpass))printf("\n\t注册成功!用户名:%s\t学号:%s",username,userpass);getchar();break;}case '3':{do{system("cls");memset(username,'\0',sizeof(username));memset(userpass,'\0',sizeof(userpass));printf("\n\t请输入用户名:\t");scanf("%s",username);printf("\n\t请输入密码:\t");scanf("%s",userpass);if(usedcheckpass(username,userpass)==0){wrong_cont++;if(wrong_cont==3){printf("\n\t输入次数大于3次!请按回车键退出系统!\n");getchar();weling=0;return 0;}key=1;printf("\n\t按1选择返回主菜单\n\t按0继续输入用户验证码\n");do{back=getchar();if((back!='1')&&(back!='0')){printf("\n\t输入错误!按回车键继续...");getchar();}}while((back!='1')&&(back!='0'));if(back=='1')key=0;}else{key=0;weling =0;system("cls");printf("\n\n\t\t欢迎%s进入学生管理系统\n",username);memset(userlogin,'\0',sizeof(userlogin));strcpy(userlogin,username); //记录用户登录信息return 2;}}while(key);back=0;weling=1;break;return 2;}case '4':{setused();/*注册新管理员资料*/weling=1;break;}case '5':{weling=0;return 0;}}}return 1;}/*==================================================================== ---------------建立链表----------==================================================================== */stu*creat()/*建立链表*/{char i,j;char stu_num;stu *p1, *p2;stu *head;FILE *fp;fp=fopen(stu_msg,"w+");head=(stu*)malloc(sizeof(stu));head->next=NULL;p1=p2=(stu*)malloc(sizeof(stu));i=0,j=0;system("cls");printf("\n\n请输入要录入的学生人数: ");scanf("%d",&stu_num);for(i=0;i<stu_num;i++){system("cls");p1->average=0;printf("\n\n请输入学生学号: ");scanf("%s",p1->num);while(!cheknum(p1->num)){printf("\n\n输入格式错误!请重新输入学号: ");scanf("%s",p1->num);}printf("\n\n请输入学生姓名: ");scanf("%s",p1->name);while(!chekname(p1->name)){printf("\n\n输入格式出错!不能带数字或下划线!\n");printf("\n\n请重新输入学生姓名: ");scanf("%s",p1->name);}do{printf("\n\n请输入学生%s成绩:",sc_name[j]);scanf("%d",&p1->score[j]);while((100<p1->score[j])||(p1->score[j]<0)){printf("\n\n成绩格式出错!\n ");getchar();printf("\n\n请重新输入学生成绩: ");scanf("%d",&p1->score[j]);}p1->average+=p1->score[j];j++;}while(j<sc_num);j=0;p1->average=p1->average/4;if(i==0){head->next=p1; /*分清楚是head->next=p还是head=p*/p2=p1;p1->next=NULL;}else{p2->next=p1;p2=p1;p2->next=NULL; /*产生新的节点*/}fwrite(p1,sizeof(stu),1,fp);p1=(stu*)malloc(sizeof(stu));}display(head);getchar();fclose(fp);return head;}/*====================================================================检查学生学号是否符合格式,若正确,则返回1,否则返回0==================================================================== */char cheknum(char *num)/*检查学生学号是否符合格式*/{char i; /*获取字符串长度*/char j=strlen(num);for(i=0;i<j;i++){if(('0'>num[i])||('9'<num[i])){return 0;exit(1);}}return 1;}/*==================================================================== 检查学生姓名是否符合格式,若正确,则返回1,否则返回0==================================================================== */char chekname(char *name)/*检查学生姓名是否符合格式*/{char i;for(i=0;i<strlen(name);i++){/*if(('A'>name[i])||(('Z'<name[i])&&('a'>name[i]))||('z'<name[i]))/if(name[i]<18){return 0;exit(1);}*/}return 1;}/*==================================================================== 显示学生成绩情况==================================================================== */void display(stu *head)/*显示用户信息*/{stu *p1;char i=0;p1=head->next;system("cls");if(p1!=NULL){while(p1!=NULL){if(i==0){printf("姓名\t学号\t %s\t %s\t %s\t%s\t平均分\n",sc_name[0],sc_name[1],sc_name[2],sc_name[3]);i++;}printf("%s\t%s\t %d\t %d\t%d\t%d\t%d\n",\p1->name,p1->num,p1->score[0],p1->score[1],p1->score[2],p1->score[3],p1->average);p1=p1->next;}getchar();}else{printf("\t\t\t链表为空!\n\n\n请按回车键继续...\n");getchar();}}/*====================================================================插入学生信息====================================================================*/void insert(stu *head)/*增加学生信息*/{stu *p1,*p2;char j=0;p1=head->next;p2=(stu*)malloc(sizeof(stu)); /*创建新的学生信息*/p2->average=0;system("cls");printf("\n\n请输入要增加的学生学号: ");scanf("%s",p2->num);while(!cheknum(p2->num)){printf("\n\n输入格式错误!请重新输入学号: ");scanf("%s",p2->num);}printf("\n\n请输入学生的姓名: ");scanf("%s",p2->name);while(!chekname(p2->name)){printf("\n\n输入格式出错!不能带数字或下划线!\n");printf("\n\n请重新输入学生姓名: ");scanf("%s",p2->name);}do{printf("\n\n请输入学生%s成绩:",sc_name[j]);scanf("%d",&p2->score[j]);while((100<p2->score[j])||(p2->score[j]<0)){printf("\n\n成绩格式出错!\n ");getchar();printf("\n\n请重新输入学生成绩: ");scanf("%d",&p2->score[j]);}p2->average+=p2->score[j];j++;}while(j<sc_num);p2->average=p2->average/4;if(head->next==NULL){printf("\n原链表为空!");getchar();head->next=p2;}else{while(p1->next!=NULL)p1=p1->next;p1->next=p2;p2->next=NULL;}display(head);getchar();}/*====================================================================删除学生信息====================================================================*/stu* delname(stu*head,char *stu_name)/*根据学生姓名删除用户信息*/{stu *p1,*p2;char i,j=0;system("cls");if(head->next==NULL){printf("\n\n没有学生信息!\t操作错误!\n");return head;}p1=head->next;p2=p1;while(p1!=NULL){if(strcmp(p1->name,stu_name)==0){printf("\n\n你所删除的学生姓名为: %s\t学号为:%s\n",p1->name,p1->num);printf("\n\n确定为:y,取消为n\t:");i=getchar();while(!((i=='y')||(i=='Y')||(i=='n')||(i=='N'))){printf("\n\n输入错误!\t请重新输入:");i=getchar();}if((i=='y')||(i=='Y')){if(j==0){head->next=p1->next;/*删除头部接点*/}else{p2->next=p1->next;}printf("\n\n\t\t\t\t成功删除用户信息!\n\n\t\t\t按回车键继续...\n");free(p1);return head;}else{return head;}}j++;p2=p1;p1=p1->next;}printf("\n\n\t\t没有此用户记录信息!\n按回车键继续\n");getchar();system("cls");display(head);getchar();return head;}/*====================================================================删除学生信息(以学号为对象)====================================================================*/stu* delnum(stu *head,char *stu_num)/*根据学生学号删除用户信息*/{stu *p1,*p2;char i,j=0;system("cls");if(head->next==NULL){printf("\n\n\t\t没有存储学生信息!\n\n\t\t操作错误!\n");return head;}p1=head->next;p2=p1;while(p1->next!=NULL){if(strcmp(p1->num,stu_num)==0){printf("\n\n你所删除的学生姓名为: %s\t学号为:%s\n",p1->name,p1->num);printf("\n\n确定为:y,取消为n\t:");i=getchar();while(!((i=='y')||(i=='Y')||(i=='n')||(i=='N'))){printf("\n\n输入错误!\t请重新输入:");i=getchar();}if((i=='y')||(i=='Y')){if(j==0){head->next=p1->next;}else{p2->next=p1->next;}printf("\n\n\t\t\t\t成功删除用户信息!\n\n\t\t\t按回车键继续...\n");free(p1);return head;}elsereturn head;}p2=p1;p1=p1->next;j++;}printf("\n\n没有此用户信息!\n按回车键继续...\n");getchar();system("cls");display(head);getchar();return head;}/*====================================================================输出指定学生信息(以学生姓名为对象)====================================================================*/stu* checkname(stu *head,char *stu_name)/*输出指定学生的信息*/{stu *p1;system("cls");if(head==NULL){printf("\n\n\t\t没有存储学生信息!\t操作错误!\n");getchar();return head;}p1=head;while(p1->next!=NULL){if(strcmp(p1->name,stu_name)==0){printf("\n\n你所查找的学生信息如下\n");printf(" \n\n%s\t学号为:%s\n",p1->name,p1->num);printf("姓名\t学号\t\t %s\t %s\t %s\t%s\t平均分\n",\sc_name[0],sc_name[1],sc_name[2],sc_name[3]);printf("%s\t%s\t\t %d\t %d\t%d\t%d\t%d\n",\p1->name,p1->num,p1->score[0],p1->score[1],p1->score[2],p1->score[3],p1->average);getchar();return p1;}p1=p1->next;}printf("\n\n\t\t找不到相关用户信息!\n按回车键继续...\n");getchar();system("cls");display(head);getchar();return (stu*)NULL;}/*====================================================================输出指定学生信息(以学生学号为对象)====================================================================*/stu* checknum(stu *head,char *stu_num)/*输出指定学生学号的学生信息*/{stu *p1,*p2;p2=(stu*)malloc(sizeof(stu));system("cls");if(head==NULL){printf("\n\n\t\t没有存储学生信息!\t操作错误!\n");return head;}p1=head;while(p1->next!=NULL){if(strcmp(p1->num,stu_num)==0){printf("\n\n你所查找的学生信息如下\n");printf(" %s\t学号为:%s\n",p1->name,p1->num);printf("姓名\t学号\t\t %s\t %s\t %s\t%s\t平均分\n",\sc_name[0],sc_name[1],sc_name[2],sc_name[3]);printf("%s\t%s\t\t %d\t %d\t%d\t%d\t%d\n",\p1->name,p1->num,p1->score[0],p1->score[1],p1->score[2],p1->score[3],p1->average);getchar();return p1;}p1=p1->next;}printf("\n\n\t\t找不到相关用户信息!\n按回车键继续...\n");getchar();return (stu*)NULL;}/*====================================================================修改指定学生信息(以学生姓名为对象)====================================================================*/void changsc_name(stu *head,char *name)/*修改用户成绩*/{stu *p;char j=0;system("cls");p=checkname(head,name);if(p!=NULL){p->average=0;printf("\n\n请输入学生新的学号: ");scanf("%s",p->num);while(!cheknum(p->num)){printf("\n\n输入格式错误!请重新输入学号:\n ");scanf("%s",p->num);}do{printf("\n\n请输入学生成绩%s :",sc_name[j]);scanf("%d",&p->score[j]);while((100<p->score[j])||(p->score[j]<0)){printf("\n\n成绩格式出错!\n ");getchar();printf("\n\n请重新输入学生成绩: ");scanf("%d",&p->score[j]);}p->average+=p->score[j];j++;}while(j<sc_num);p->average=p->average/4;printf("\n\n\t\t用户数据更新完毕!\n请按回车键退出...\n");getchar();system("cls");display(head);getchar();}}/*==================================================================== 修改指定学生信息(以学生学号为对象)==================================================================== */void changsc_num(stu *head,char *num)/*修改用户成绩*/{stu *p2;char j=0;system("cls");p2=checknum(head,num);if(p2!=NULL){p2->average=0;printf("\n\n请输入学生姓名: ");scanf("%s",p2->name);while(!chekname(p2->name)){printf("\n\n输入格式错误!请重新输入学号: ");scanf("%s",p2->name);}do{printf("\n\n请输入学生成绩%s :",sc_name[j]);scanf("%d",&p2->score[j]);while((100<p2->score[j])||(p2->score[j]<0)){printf("\n\n成绩格式出错!\n ");getchar();printf("\n\n请重新输入学生成绩: ");scanf("%d",&p2->score[j]);}p2->average+=p2->score[j];j++;}while(j<sc_num);p2->average=p2->average/4;printf("\n\n\t\t用户数据更新完毕!请按回车键退出...\n");getchar();}}/*==================================================================== ==================================================================== ============================存储操作类函数========================== ==================================================================== ==================================================================== *//*==================================================================== 加载学生信息==================================================================== */stu* load(void)/*加载用户数据*/{FILE *fp;stu *p,*head,*p1;char i=0,j=0;fp=fopen(stu_msg,"r");rewind(fp);head=(stu*)malloc(sizeof(stu));p1=p=(stu *)malloc(sizeof(stu));while(fread(p,sizeof(stu),1,fp)==1){if(i==0){head->next=p;p1=p;}else{p1->next=p;p1=p;p1->next=NULL;}i++;p=(stu*)malloc(sizeof(stu));j++;}if(j==0){printf("\n\n\t\t\t没有数据信息可载入!\n");head=NULL;free(p);getchar();}fclose(fp);return head;}/*====================================================================显示学生信息====================================================================*/char disload()/*显示用户信息*/{FILE *fp;stu *p1;char i=0;p1=(stu*)malloc(sizeof(stu));if((fp=fopen(stu_msg,"r+"))==NULL)fp=fopen(stu_msg,"w+");rewind(fp);while(fread(p1,sizeof(stu),1,fp)==1){printf("%s\t%s\t %d\t %d\t%d\t%d\t%d\n",\p1->name,p1->num,p1->score[0],p1->score[1],p1->score[2],p1->score[3],p1->average);i++;//fread(p1,sizeof(stu),1,fp);}fclose(fp);if(i==0){printf("\n\t\t\t文件中不含学生信息!\n\t\t\t按回车键继续...\n");getchar();}else{printf("\n\t\t\t一共记录了%d名学生信息!\n\t\t\t按回车键继续...\n",i);getchar();}}/*==================================================================== 保存学生信息==================================================================== */char save(stu *head)/*保存用户数据*/{stu *p;FILE *fp;stu stt;char i=0;p=head->next;system("cls");clrtxt(stu_msg);fp=fopen(stu_msg,"w");rewind(fp);//if(head->next!=NULL){while(p!=NULL){fwrite(p,sizeof(stu),1,fp);p=p->next;i++;}if(i==0){printf("没有保存数据!\n");getchar();fclose(fp);return 0;}else{fclose(fp);return 1;}}else{fclose(fp);return 0;}fclose(fp);return 0;}/*==================================================================== 创建文本信息==================================================================== */char* creat_txt(char *username)/*根据用户名,创建一个用户文件*/{char name[20];FILE *fp;strcpy(name,"d:\\");strcat(name,username);strcat(name,".txt");fp=fopen(name,"w+");system("cls");if(fp!=NULL){//printf("\n\n文件路径为:%s\n\n",name);//printf("\n\n\t\t用户文件创建成功!\n\n\t\t请按回车键继续...\n");//getchar();fclose(fp);return name;}else{printf("\n\n\t\t无法创建用户文件!\n\n\t\t请按回车键继续...\n");getchar();fclose(fp);return name;}}/*====================================================================清除文本信息====================================================================*/FILE* chekuser(char *username)/*根据用户名,查找是否有此用户信息,若无,返回NULL*/ {}/*====================================================================清除文本信息====================================================================*/void clrtxt(char *str)/*清除文本信息*/{char clrmem[10];char semem[40];FILE *fp;int i=0,j=0;if((fp=fopen(str,"r"))==NULL){printf("\n\t无此文件!");getchar();}else{fclose(fp);fp=fopen(str,"w");memset(clrmem,'\0',sizeof(clrmem));rewind(fp);for(i=0;i<40;i++){if(fwrite(clrmem,sizeof(clrmem),1,fp)!=1){if(j==0){printf("\n\n\t\t文件清除失败!\n\n\t\t请按回车键继续...\n");getchar();break;}else{//printf("\n\n\t\t文件清除成功!\n\n\t\t请按回车键继续...\n");//getchar();break;}}elsej++;}fclose(fp);}}/*====================================================================用户登录信息====================================================================*/void setlogintime(void)/*记录用户登录时间*/{FILE *fp;int y,m,d,hour,min,sec;time_t T; // 一个可以包含时间信息的长整型struct tm *timeinfo;time( &T ); // 得到机器的日历时间if((fp=fopen(logtimemsg,"a+"))==NULL){fp=fopen(logtimemsg,"w");}time( &T ); // 得到机器的日历时间timeinfo = localtime( &T ); // 将日历时间转换为当地时间,timeinfo 是一个时间格式的指针y=timeinfo->tm_year + 1900; // 年份m=timeinfo->tm_mon + 1; // 月份d=timeinfo->tm_mday; // 日期hour=timeinfo->tm_hour;min=timeinfo->tm_min;sec=timeinfo->tm_sec;fwrite(userlogin,sizeof(userlogin),1,fp);fwrite(timeinfo,sizeof(struct tm),1,fp);//写入用户登陆信息printf("\n\n\n\t\t登陆时间为:\n\t\t%d年%d月%d日%d时%d分%d秒\n\n\n", y, m, d,hour,min,sec);fclose(fp);}/*====================================================================用户登录信息====================================================================*/void dislogintime(void)/*显示用户登录信息*/{FILE *fp;int y,m,d,hour,min,sec;struct tm *timeinfo;char name[10];int i=0;timeinfo=(struct tm*)malloc(sizeof(struct tm));fp=fopen(logtimemsg,"r+");if(fp==NULL){printf("\n\n\t\t找不到文件信息!\n\n\t\t按回车键继续...\n");getchar();}else{memset(name,'\0',sizeof(name));while(fread(name,sizeof(name),1,fp)==1){fread(timeinfo,sizeof(struct tm),1,fp);y=timeinfo->tm_year + 1900; // 年份insm=timeinfo->tm_mon + 1; // 月份d=timeinfo->tm_mday; // 日期hour=timeinfo->tm_hour;min=timeinfo->tm_min;sec=timeinfo->tm_sec;i++;printf("\n\t第%d次登陆时间为:%d年%d月%d日%d时%d分%d秒\t%s用户登录",i,y, m, d,hour,min,sec,name);memset(name,'\0',sizeof(name));}if(i==0)printf("\n没有记录用户登录时间!\n");getchar();free(timeinfo);fclose(fp);}}/*====================================================================用户登录信息====================================================================*/。
C语言课程信息管理系统介绍C语言是一门被广泛使用的编程语言,其应用范围广泛且具有高效的执行效率,适合开发各种应用软件,如操作系统、编译器、数据库等。
C语言的学习是计算机科学专业必备技能之一,同时也是其他相关专业必要的编程语言。
因此,针对C语言课程开发一款课程信息管理系统,能够方便地管理学生、课程和教师信息,提供辅助教学和学习的功能,是非常有必要的。
功能•学生信息管理:包括学生的基本信息,如姓名、学号、班级等。
•教师信息管理:包括教师的基本信息,如姓名、职称、联系方式等。
•课程信息管理:包括课程的基本信息,如课程名、授课教师、上课时间等。
•成绩管理:记录学生的作业和考试成绩,方便教师评分和学生查询。
•作业管理:发布和管理学生作业,方便教师布置和学生提交。
•考试管理:发布和管理考试信息,方便教师安排和学生查询。
系统架构本系统采用C/S(Client/Server)架构,并使用SQLite数据库进行本地数据存储。
系统主要有以下几个模块:登录在登录页输入用户名和密码,系统进行验证后,将用户的身份信息存储在客户端,以便于后续操作。
登录成功后,跳转到系统主页。
学生信息管理学生信息管理模块允许教师管理学生的基本信息,如姓名、学号、班级等。
教师可以添加、修改和删除学生信息,并可以进行查询操作。
学生信息以表格形式显示,可以以不同方式进行排序和搜索。
教师信息管理教师信息管理模块允许管理员管理教师的基本信息,如姓名、职称、联系方式等。
管理员可以添加、修改和删除教师信息,并可以进行查询操作。
教师信息以表格形式显示,可以以不同方式进行排序和搜索。
课程信息管理课程信息管理模块允许教师管理课程的基本信息,如课程名、授课教师、上课时间等。
教师可以添加、修改和删除课程信息,并可以进行查询操作。
课程信息以表格形式显示,可以以不同方式进行排序和搜索。
成绩管理成绩管理模块允许教师记录学生的作业和考试成绩,方便教师评分和学生查询。
成绩信息以表格形式显示,可以以不同方式进行排序和搜索。
c语言课程设计课程管理系统一、教学目标本课程旨在通过C语言编程实现一个简单的课程管理系统。
通过本课程的学习,学生将掌握C语言的基本语法和编程技巧,能够熟练使用C语言进行程序设计。
同时,学生将学会如何运用面向过程的编程思想解决实际问题,培养逻辑思维能力和解决问题的能力。
此外,通过课程管理系统的开发,学生将了解软件开发的基本流程,提高团队合作和沟通的能力。
具体来说,知识目标包括:1.掌握C语言的基本语法和数据结构。
2.理解面向过程的编程思想和程序设计的基本原则。
3.了解软件开发的基本流程和项目管理的方法。
技能目标包括:1.能够使用C语言编写简单的程序,解决实际问题。
2.具备团队合作和沟通的能力,能够在团队中发挥自己的作用。
3.能够运用C语言进行课程管理系统的开发,实现系统的功能。
情感态度价值观目标包括:1.培养对计算机科学和编程的兴趣和热情。
2.培养积极主动的学习态度,养成良好的学习习惯。
3.培养责任心和团队精神,明白团队合作的重要性。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构、程序设计方法和课程管理系统的开发。
具体安排如下:1.C语言的基本语法:介绍C语言的数据类型、运算符、表达式、语句等基本语法知识。
2.数据结构:讲解常用的数据结构,如数组、链表、栈和队列等,以及如何在C语言中实现和应用这些数据结构。
3.程序设计方法:介绍程序设计的基本原则和方法,如顺序结构、分支结构、循环结构等,以及如何运用这些方法解决实际问题。
4.课程管理系统的开发:讲解如何使用C语言开发一个简单的课程管理系统,包括系统的需求分析、设计、实现和测试等步骤。
三、教学方法为了提高学生的学习兴趣和主动性,本课程将采用多种教学方法相结合的方式进行教学。
包括:1.讲授法:通过讲解C语言的基本语法、数据结构和程序设计方法,让学生掌握课程的基本知识。
2.案例分析法:通过分析实际案例,让学生学会如何运用C语言解决实际问题。
教学计划管理系统c语言代码教学计划管理系统C语言代码在现代教育中,教学计划管理是非常重要的一项工作。
教学计划管理系统可以帮助学校和教师更好地组织和管理教学过程,提高教学效果。
本文将介绍一个基于C语言开发的教学计划管理系统的代码实现。
一、系统功能设计教学计划管理系统主要包括以下功能:1. 教师信息管理:包括教师的基本信息、教授课程等;2. 课程信息管理:包括课程的基本信息、授课教师等;3. 教学计划管理:包括教学计划的编制、修改、查询等;4. 学生信息管理:包括学生的基本信息、选课情况等;5. 成绩管理:包括成绩的录入、查询、统计等。
二、系统代码实现下面是一个简化版的教学计划管理系统的C语言代码实现:```c#include <stdio.h>#include <stdlib.h>// 定义结构体typedef struct {char name[20]; // 姓名int age; // 年龄char gender[10]; // 性别} Teacher;typedef struct {char name[30]; // 课程名称Teacher teacher; // 授课教师} Course;typedef struct {Course course; // 课程int year; // 学年int semester; // 学期} TeachingPlan;typedef struct {char name[20]; // 姓名int age; // 年龄char gender[10]; // 性别TeachingPlan teachingPlan; // 教学计划} Student;// 教师信息管理函数void teacherInfoManagement() {// 实现教师信息的增删改查等操作printf("教师信息管理\n");}// 课程信息管理函数void courseInfoManagement() {// 实现课程信息的增删改查等操作printf("课程信息管理\n");}// 教学计划管理函数void teachingPlanManagement() {// 实现教学计划的编制、修改、查询等操作 printf("教学计划管理\n");}// 学生信息管理函数void studentInfoManagement() {// 实现学生信息的增删改查等操作printf("学生信息管理\n");}// 成绩管理函数void scoreManagement() {// 实现成绩的录入、查询、统计等操作 printf("成绩管理\n");}int main() {int choice;// 主菜单while (1) {printf("欢迎使用教学计划管理系统\n"); printf("1. 教师信息管理\n");printf("2. 课程信息管理\n");printf("3. 教学计划管理\n");printf("4. 学生信息管理\n");printf("5. 成绩管理\n");printf("0. 退出系统\n");printf("请输入您的选择:");scanf("%d", &choice);switch (choice) {case 1:teacherInfoManagement();break;case 2:courseInfoManagement();break;case 3:teachingPlanManagement();break;case 4:studentInfoManagement();break;case 5:scoreManagement();break;case 0:printf("感谢使用教学计划管理系统,再见!\n"); exit(0);default:printf("输入有误,请重新输入!\n");}}return 0;}```三、系统使用说明使用该教学计划管理系统,用户可以根据需要选择相应的功能进行操作。
#include"stdio.h"#include"stdlib.h"#include"string.h"struct stu_info1{char num[13];//学号char name[10];//姓名char sex[5];//性别char cls[20];//班级}stu1[6];struct stu_info2{char counum[6];//课程号char counam[20];//课程名称int credit;//学分}stu2[6];struct stu_info3{char num[13];//学号char counum[6];//课程号float results;//分数}stu3[12];struct stu_info4{char num[13];//学号char counum[6];//课程号float results;//分数}stu4[12];int n=11;void main(){void gengxin();void input1();void input2();void input3();void output();void xianshi();void chaxun();void printf1();void printf2();input1();input2();output();int i;loop: ;printf("*************欢迎使用分数查询系统*************\n");printf("** 请选择**\n");printf("** 1.录入2.删除无用信息(管理员功能) **\n");printf("** 3.显示4.查询(学生功能) **\n");printf("** 5.显示学生信息6.显示课程信息**\n");printf("** 7.退出**\n");printf("**********************************************\n");scanf("%d",&i);switch(i){case 1: input3();break;case 2:gengxin();break;case 3:xianshi();goto loop;case 4: chaxun();goto loop;case 5: printf1();goto loop;case 6: printf2();goto loop;case 7:break;default:printf("error");break;}}void input1()//录入结构体stu1[]{int i;FILE *fp;if((fp=fopen("A.txt","r"))==NULL){printf("can not open file\n");exit(0);}/* printf(" 学号姓名性别班级\n");*/for(i=0;i<=5;i++){fscanf(fp,"%s%s%s%s",&stu1[i].num,&stu1[i].name,&stu1[i].sex,&stu1[i].cls);/*printf("%-13s %-10s %-5s %-20s\n",stu1[i].num,stu1[i].name,stu1[i].sex,stu1[i] .cls);*/}fclose(fp);}void input2()//录入结构体stu2[]{int i;FILE *fp;if((fp=fopen("B.txt","r"))==NULL){printf("can not open file\n");exit(0);}for(i=0;i<=5;i++){fscanf(fp,"%s%s%d",&stu2[i].counum,&stu2[i].counam,&stu2[i].credit);}fclose(fp);}void input3()//录入成绩{FILE *fp;fp=fopen("C.txt","w");int a,i,j,k;float cetss;char number[13],cnum[6],mima[10];printf("请输入管理员密码\n");scanf("%s",mima);if(strcmp(mima,"abc111")==0){printf("请输入要录入学生成绩的个数\n");scanf("%d",&a);for(i=1;i<=a;i++){printf("请输入要录入的第%d同学的学号:",i);scanf("%s",number);printf("请输入要录入的第%d同学的课程号:",i);scanf("%s",cnum);for(j=0;j<=5;j++)//学号{if((strcmp(number,stu1[j].num)==0))break;}if(j<=5){for(k=0;k<=5;k++)//课程号{if(strcmp(cnum,stu2[k].counum)==0){printf("请输入要录入同学的成绩:");scanf("%f",&cetss);fprintf(fp,"%s %s %f\n",number,cnum,cetss);break;}}}if(j>5||k>5){printf("Error,please input again");i=i-1;}printf("录入成功\n");}}else{printf("密码错误\n");}}void output()// 录入结构体stu3[]{int i;FILE *fp=fopen("C.txt","r");for(i=0;i<n;i++){fscanf(fp,"%s%s%f",&stu3[i].num,&stu3[i].counum,&stu3[i].results);/*printf("%s%s%f\n",stu3[i].num,stu3[i].counum,stu3[i].results);*/ }fclose(fp);}void xianshi()// 显示成绩{int i,j;for(i=0;i<n;i++){for(j=0;j<6;j++){if((strcmp(stu3[i].num,stu1[j].num))==0)printf("%s\t",stu1[j].name);}for(j=0;j<6;j++){if(strcmp(stu3[i].counum,stu2[j].counum)==0)printf("%s\t",stu2[j].counam);}printf("%3.1f\n",stu3[i].results);}}void chaxun()//查询功能{char number[13],c;int i,j,k,a,b,d;while((c=getchar())!='Q'){a=0,b=0;//a记录学分b记录学科printf("请输入要查询同学的学号\n");scanf("%s",number);for(i=0;i<n;i++){if(strcmp(number,stu3[i].num)==0){printf("学号:%s\t",stu3[i].num);for(j=0;j<6;j++){if(strcmp(stu3[i].num,stu1[j].num)==0){printf("姓名:%s\n",stu1[j].name);}}break;}}d=i;for(i=0;i<n;i++)if(strcmp(number,stu3[i].num)==0){b=b+1;for(j=0;j<6;j++){if(strcmp(stu3[i].num,stu1[j].num)==0){for(k=0;k<6;k++){if(strcmp(stu3[i].counum,stu2[k].counum)==0)break;}break;}}if(stu3[i].results>=60){a=a+stu2[k].credit;printf("课程号:%s\t课程名称:%s\t成绩:%3.1f\t实得学分:%d\n",stu3[i].counum,stu2[k].counam,stu3[i].results,stu2[k].credit);}elseprintf("课程号:%s\t课程名称:%s\t成绩:%3.1f\t实得学分:%d\n",stu3[i].counum,stu2[k].counam,stu3[i].results,0);}if(d<n){printf("共修%d科\t\t实得总学分:%d\n",b,a);}else{printf("学号输入错误\n");}getchar();printf("退出请按Q+回车,继续查询请按回车键");}}void gengxin()//更新信息,删除C.txt中无用信息{FILE *fp;int i,j,k;char mima[10];printf("请输入管理员密码\n");scanf("%s",mima);if(strcmp(mima,"abc111")==0){fp=fopen("C.txt","w");for(i=0;i<n;i++){for(j=0;j<6;j++)if(strcmp(stu3[i].num,stu1[j].num)==0){for(k=0;k<=5;k++)if(strcmp(stu3[i].counum,stu2[k].counum)==0)break;if(k<=5){fprintf(fp,"%s %s %f\n",stu3[i].num,stu3[i].counum,stu3[i].results);}}}printf("更新C.txt成功\n");fclose(fp);}else{printf("密码错误\n");}}void printf1()//显示学生信息{int i;printf(" 学号姓名性别班级\n");for(i=0;i<=5;i++){printf("%-13s%-10s%-5s %-20s\n\n",stu1[i].num,stu1[i].name,stu1[i].sex,stu1[i].cls);}}void printf2()//显示课程信息{int i;printf(" 课程编号课程名称学分\n");for(i=0;i<=5;i++){printf("%-6s%-20s %-4d\n\n",stu2[i].counum,stu2[i].counam,stu2[i].credit);}}。
c 课程设计教务管理系统引言一、教学目标本节课的教学目标是使学生掌握教务管理系统的引言部分的内容。
知识目标包括:了解教务管理系统的定义、功能和作用;掌握教务管理系统的发展历程;理解教务管理系统在现代教育管理中的重要性。
技能目标包括:能够正确使用教务管理系统的基本功能;能够分析教务管理系统的优势和局限性。
情感态度价值观目标包括:培养学生对新技术的兴趣和好奇心;培养学生对教育管理的热爱和责任感。
二、教学内容本节课的教学内容主要包括教务管理系统的定义、功能和作用,教务管理系统的发展历程,以及教务管理系统在现代教育管理中的重要性。
具体包括以下几个方面:1.教务管理系统的定义:介绍教务管理系统的概念,解释教务管理系统是如何帮助学校和教育机构进行教学管理和运营的。
2.教务管理系统的发展历程:讲解教务管理系统从传统的手工操作到现代的信息化发展过程,以及我国教务管理系统的发展现状。
3.教务管理系统的作用和功能:详细介绍教务管理系统的主要功能,如课程安排、成绩管理、学生信息管理等,以及教务管理系统对教育管理的重要作用。
三、教学方法为了提高学生的学习兴趣和主动性,本节课将采用多种教学方法。
包括:1.讲授法:教师讲解教务管理系统的定义、功能和作用,以及发展历程。
2.案例分析法:通过分析具体的教务管理系统案例,使学生更好地理解教务管理系统在实际应用中的重要性。
3.讨论法:学生进行小组讨论,分享对教务管理系统的认识和看法,激发学生对教育管理的热爱和责任感。
四、教学资源为了支持教学内容和教学方法的实施,丰富学生的学习体验,我们将准备以下教学资源:1.教材:提供一本关于教务管理系统的教材,用于学生学习和参考。
2.多媒体资料:制作PPT等多媒体资料,展示教务管理系统的功能和实际应用场景。
3.实验设备:如果条件允许,可以安排学生实际操作教务管理系统,加深对教务管理系统的理解和掌握。
五、教学评估本节课的教学评估将采用多种方式,以全面、客观、公正地评价学生的学习成果。
教务系统摘要随着社会的发展,知识的指数级增长,各行各业都在寻求一种能够降低成本,提高办事效率,提高业务水平的途径,本软件正是基于对这种的考虑才开发出来的。
教务管理是学校管理学生的主要工具,对教务的管理有着非常重要的意义,教务的管理包含有很多的信息及数据的管理。
数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找,如果缺乏系统、规范的信息管理手段,将对教务的管理工作带来很多麻烦。
基于目前计算机的普遍流行,如果使用计算机教务管理软件来管理各类信息,应相对轻松得多。
现代教务管理系统的开发就是在于提高教务管理的工作效率,加强教务的管理,以全面实行计算机管理,这样以来,不但可以提高管理人员的工作效率,而且能安全、长期地存储教师和学生信息等,便于信息的查找与管理。
目录摘要 (I)第1章引言 (3)1.1目的 (3)1.2文档约定 (3)1.3预期读者和阅读建议 (3)1.4项目范围 (4)1.5参考文献 (4)第2章可行性分析 (4)2.1人员安排 (4)2.2技术要求 (5)2.3开发环境 (5)2.3.1.软件环境 (5)2.3.2.硬件环境 (5)2.4运行环境 (5)2.4.1.软件环境 (5)2.4.2.硬件环境 (5)第3章需求分析 (5)3.1用户类别 (5)3.1.1学生 (6)3.1.2教师 (8)3.1.3管理员 (7)3.1.4教务人员 (9)3.2功能需求 (10)3.2.1学生端 (11)3.2.2教师端 (12)3.2.3管理员端 (13)3.2.4教务人员端 (14)第4章数据库设计 (15)4.1数据表 (16)第5章界面分析 (9)5.1 管理员界面 (17)5.2 教务处界面 (18)第6章结束语 (18)附录A: 主要源程序 (19)第1章引言本文档第一章为引言部分,介绍本项目的开发目的和本文档的格式约定以及阅读群和阅读建议。
第二章到第五章分别介绍了本项目的功能需求以及系统设计。
#i nclude"stdio.h"#i nclude"stdlib.h"#i nclude"c on io.h"#i nclude"stri ng.h"#i nclude"wi ndows.h"// 登陆界面函数void load();void backgro un d1();void choice1();void fan hui1();void den glu();void zhuce();int chazhao();// 目录界面函数void mulu();void backgro un d();void choice();void add();void xiugai();void sha nchu();void del();void chax un();void paixu();void ton gji();void output();void fini sh();void fan hui2();void shuchu();int zongren();int chr();int en r();int mar();void back();float chin ese();float en glish();float math();float zon gmax();// 登陆界面结构体struct self{char a[10];char b[10];int flg;}s[100]={{"admi n","admi n",1},{"1","1",1}};//目录界面结构体小明",12,18,20,50,1},{"1101","// 小样",20,80,60,160,1}}; 登陆界面void mai n(){load();}void load(){backgro un d1(); choice1();}void backgro un d1(){ puts("");puts("");printf (”********************************************\n"); printf (” 欢迎登录学生管理系统puts("");printf (”********************************************\n"); printf (”1. 登录2. 注册 \n "); printf (”请选择:");}void choice1(){int a;scan f("%d",&a); fflush(stdi n);switch(a){case 1:de nglu();break;case 2:zhuce();break; default:fa nhui1();break; }void fan hui1(){printf (”输入错误!\n"); printf (”请重新输入!\n");system("cls");struct stude nt { char num[10]; char n ame[10]; float chi nese;float en glish; float math;float sum; int a; }stu[5]={{"1100","load();}void den glu(){struct self s2;char c;int i=0;int j=0;printf(" 请输入用户名:\n");scan f("%s",s2.a);fflush(stdi n);puts("");printf(" 请输入密码:");c=getch();while(c!=13){prin tf("*");s2.b[i]=c;i++;while((c=getch())==8){if(i==0)con ti nue;putchar('\b');putchar('');putchar('\b');s2.b[--i]=0;}}s2.b[i]=0;s2.flg=1;puts("");puts(s2.b);for(i=0;i<100;i++){if(!strcmp(s[i].a,s2.a)&&!strcmp(s[i].b,s2.b)) {printf("成功!");system("cls");欢迎进入学生管理系统\n\n\n");prin tf("\n\n\n\n\n\n\n\n\n\t\t\tSleep(2000); system("cls");mulu();}else{j++;}}if(j==100){fan hui1();}}void zhuce(){struct self s3;char c,d;int i,j;i=0;printf(" 请输入帐号:”);gets(s3.a);puts(s3.a);printf(" 请输入密码:");c=getch();while(c!=13){prin tf("*");s3.b[i]=c;i++;while((c=getch())==8){if(i==0) con ti nue;putchar('\b');putchar('');putchar('\b'); s3.b[--i]=0;}}s3.b[i]=0;s3.flg=1;printf (” 确定'y' 取消'n'");scan f("%c", &d);fflush(stdi n);if(d=='y'||d=='Y'){j=chazhao();s[j]=s3;printf (” 注册成功!");shuchu();system("cls");fan hui1();}else{fan hui1();}}int chazhao(){int a,i;for(i=0;i<100;i++){if(s[i].flg==0){a=i;break;}} return i;}//void mulu(){backgro un d(); choice();} void backgro un d(){ prin tf("/////////////////////A_ A \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \n");puts("");printf (” 欢迎进入学生成绩管理系统 ");puts(""); prinprintf (” 请输入业务:\n");puts("");prin tf("1. 查看所有记录显示\n");printf(" *************************************** **\n"); 目录界面printf(" **************************************** **\n");prin tf("2. 添加学生成绩\n");prin tf("3. 修改学生成绩\n");prin tf("4. 删除学生成绩\n");prin tf("5. 清空记录\n");prin tf("6. 按要求查询学生成绩\n");prin tf("7. 按要求排序\n");prin tf("8. 按要求统计成绩\n");prin tf("9. 退出\n");printf(”请选择:");}void choice(){int a;scan f("%d",&a);fflush(stdi n);prin tf("%d\n",a);switch(a){case 1: output();break;case 2: add();break;case 3: xiugai();break;case 4: sha nchu();break;case 5:del();break;case 6: chax un( );break;case 7: paixu();break;case 8: ton gji();break;case 9:fi ni sh();break;default:system("cls");mulu();break;}}void add(){system("cls");int i;char c,a;shuchu();printf("1 输入2 返回主界面\n");scan f("%d",&a);fflush(stdi n);if(a==1){for(i=0;i<5;i++){if(stu[i].a==O)break;}printf(”请输入学号:");scan f("%s",stu[i]. num);fflush(stdi n);printf("\n 请输入姓名:");scan f("%s",stu[i]. name); fflush(stdi n);printf("\n 请输入语文成绩:");scan f("%f", &stu[i].chi nese);fflush(stdi n);printf("\n 请输入英语成绩:");scan f("%f", &stu[i].e nglish);fflush(stdi n);printf("\n 请输入数学成绩:");scan f("%f", &stu[i].math); fflush(stdi n);stu[i].a=1;stu[i].sum=stu[i].ch in ese+stu[i].e nglish+stu[i].math;shuchu();printf("y 返回主界面");scan f("%c",&c);if(c=='Y'||c=='y'){system("cls");mulu();}else{add();}}else if(a==2){system("cls");mulu();}else{prin tf(”输入错误,请重新输入!”);system("cls");add();}}void xiugai(){char a;system("cls");shuchu();printf("1 修改2返回主界面");scan f("%d",&a);fflush(stdi n);if(a==1){char b[10];char c;int i;int j=0;prin tf(" 请输入需要修改的人的姓名或者学号:”);gets(b);fflush(stdi n);puts("");puts(b);for(i=0;i<5;i++){if(!strcmp(stu[i]. name,b)||!strcmp(stu[i]. nu m,b)){prin tf("\n 请输入需要修改的学号:");scan f("%s",stu[i]. num);fflush(stdi n);prin tf("\n 请输入需要修改的姓名:”);scan f("%s",stu[i]. name);fflush(stdi n);prin tf("\n 请输入需要修改的语文成绩:”);scan f("%f", &stu[i].chi nese);fflush(stdi n);prin tf("\n 请输入需要修改的英语成绩:”);scan f("%f", &stu[i].e nglish);fflush(stdi n);prin tf("\n 请输入需要修改的数学成绩成绩:”);scan f("%f", &stu[i].math);fflush(stdi n);stu[i].sum=stu[i].ch in ese+stu[i].english+stu[i].math;break;}else{j++;}}if(j==5){printf(”输入错误,请重新输入!”);system("cls");xiugai();}system("cls");shuchu();printf("y 返回主界面");scan f("%c",&c);if(c=='Y'||c=='y'){system("cls");mulu();}else{xiugai();}}else if(a==2){system("cls");mulu();}else{prin tf(" 输入错误,请重新输入!");system("cls");xiugai();}}void sha nchu(){char a;int j=0;char c;system("cls");shuchu();printf("1 删除2返回主界面:”);scan f("%d",&a);fflush(stdi n);if(a==1){int i;char b[10];printf(" 请输入需要删除的人的学号或者姓名:”);gets(b);fflush(stdi n);for(i=0;i<5;i++){if(!strcmp(stu[i]. name,b)||!strcmp(stu[i]. nu m,b)) {stu[i].a=0;printf(" 删除成功!");break;}else{j++;}}if(j==5){printf(”输入错误,请重新输入!”);sha nchu();}printf(" 是否返回主界面:(y是)");scan f("%c",&c);if(c=='y'||c=='Y'){system("cls");mulu();}else{sha nchu();}}else if(a==2){system("cls"); mulu();}{sha nchu();}}void del(){char a;system("cls");shuchu();printf("1 清空2 返回主界面");scan f("%d",&a);fflush(stdi n);if(a==1){char c;printf("确定?(y 确定)"); scan f("%c",&c);fflush(stdi n); if(a=='Y'||a=='y'){int i;for(i=0;i<5;i++){stu[i].a=0;}system("cls");del();}else{del();}}else if(a==2){system("cls"); mulu();}else{printf(”输入错误,请重新输入!”);del();}}void chax un(){int j=0;system("cls");printf("1 查询2 返回主界面");printf("请选择;");scan f("%d",&a);fflush(stdi n);if(a==1){char b[10];char c;int i;printf(”请输入需要查询的人的学号或者姓名:”);gets(b);for(i=0;i<5;i++){if(!strcmp(stu[i]. name,b)||!strcmp(stu[i]. nu m,b)){prin tf("\n 学号:%-6s",stu[i].num);prin tf("\n 姓名:%-6s",stu[i].name);prin tf("\n 语文成绩:%-6.2f',stu[i].chinese);prin tf("\n 英语成绩:%-6.2f",stu[i].english);prin tf("\n 数学成绩:%-6.2f",stu[i].math);prin tf("\n 总成绩:%-6.2f",stu[i].sum);break;}else{j++;}}if(j==5){printf(”输入错误,请重新输入!");chax un();}printf(”是否返回主页面:(y是)");scan f("%c",&c);fflush(stdi n);if(c=='y'||c=='Y'){system("cls"); mulu();}else{printf(”继续查找!");chax un();}}else if(a==2){system("cls");mulu();}else{printf(" 输入错误,请重新输入!");chax un();}}void paixu(){char a; char c;system("cls");shuchu();printf("1 排序2返回主界面");scan f("%d",&a);fflush(stdi n);if(a==1){int i,j;int aa;struct stude nt s;printf("1 降序排列2 升序排列");printf("请选择:");scan f("%d", &aa);fflush(stdi n);for(i=0;i<5;i++)for(j=0;j<4;j++){if(aa==1){if(strcmp(stu[j]. nu m,stu[j+1]. nu m)<0) {s=stu[j];stu[j]=stu[j+1];stu[j+1]=s;}}if(aa==2){if(strcmp(stu[j]. nu m,stu[j+1]. nu m)>0) {s=stu[j];stu[j]=stu[j+1]; stu[j+1]=s;}}}}if(aa!=1 &&aa!=2){printf(”输入错误,请重新输入!”);system("cls");paixu();}shuchu();printf(" 是否返回主界面:(y是)");scan f("%c",&c);fflush(stdi n);if(c=='Y'||c=='y'){system("cls");mulu();}else{printf("继续!");paixu();}else if(a==2){system("cls"); mulu();}else{prin tf(" 输入错误,请重新输入!");paixu();}}void ton gji(){system("cls");char a;printf("1 统计2 返回主界面");scan f("%d",&a);fflush(stdi n);if(a==1){char c;printf(" 请输入统计条件:\n");printf(” 1. 参加考试的学生人数\n");printf(" 2. 语文最高分\n");printf(" 3 语文及格的人数\n");printf(" 4. 语文及格率\n");printf(" 5. 英语最高分\n");printf(" 6. 英语及格的人数\n");printf(" 7. 英语及格率\n");printf(" 8. 数学最高分\n");printf(" 9. 数学及格人数\n");printf(" 10. 数学及格率\n");printf(" 11. 总成绩最高\n");printf(" 请选择:");scan f("%d", &c);fflush(stdi n);if(c==1){{int j;j=z on gre n();printf(" 参加考试的人数是:%d",j);back();}else if(c==2)float a;a=ch in ese();printf(" 语文最高分为:%.2f",a);back();}else if(c==3){int a;a=chr();printf(”语文及格的人数为:%d",a);back();}else if(c==4){int a,b;a=z ongren();b=chr();printf(" 语文的及格率为:%d",b/a);back();}else if(c==5){float a;a=e nglish();printf(" 英语的最高分为%.2f:",a);back();}else if(c==6){int a;a=e nr();printf(" 英语及格的人数为:%d",a);back();}else if(c==7){int a,b;a=z ongren();b=e nr();printf(" 英语的及格率为:%.2f",b/a);back();}else if(c==8)float a;a=math();printf(”数学的最高分为%.2f:",a);back();}else if(c==9){int a;a=mar();printf(”数学及格的人数为:%d",a);back();}else if(c==10){int a,b;a=z ongren();b=e nr();printf(" 数学的及格率为:%.2f",b/a);back();}else if(c==11){float a;a=z on gmax();printf("总分最高为:.2f",a); back();}else{printf(" 输入错误,请重新输入!”); system("cls");ton gji();}}else if(a==2){system("cls");mulu();}else{prin tf(" 输入错误,请重新输入!");ton gji();}int zongren(){int i,a=O; for(i=0;i<5;i++){if(stu[i].a==1){a++;}}return a;}float chin ese(){float max;int i;max=stu[O].ch in ese;for(i=0;i<5;i++){if(stu[i].a==1){if(max<stu[i].ch in ese){max=stu[i].chi nese;}}}return ma x;}float en glish(){float max;int i;max=stu[0].e nglish;for(i=0;i<5;i++){if(stu[i].a==1){if(max<stu[i].e nglish){max=stu[i].e nglish;} return ma x;}float math(){float max;int i;max=stu[O].math;for(i=0;i<5;i++){if(stu[i].a==1){ if(max<stu[i].math) {max=stu[i].math;}}} return ma x;}float zon gmax(){float max;int i;}for(i=0;i<5;i++){if(stu[i].a==1){if(max<stu[i].sum){max=stu[i].sum;}}} return ma x;}int chr(){int i,a=0;for(i=0;i<5;i++){if(stu[i].a==1) {范文if(stu[i].chi nese>=60) {a++;}}}return a;}int enr(){int i,a=0;for(i=0;i<5;i++){if(stu[i].a==1){if(stu[i].e nglish>=60) {a++;}}}return a;}int mar(){int i,a=0;for(i=0;i<5;i++){if(stu[i].a==1){if(stu[i].math>=60){a++;}}}return a;}/*void fan hui2(){char c;printf(" 是否返回主界面:”);scan f("%c",&c);if(c=='Y'||c=='y')}*/void shuchu()int i;printf(”学号");printf(”姓名”printf(”语文”printf(”英语”printf(”数学”printf(”总分”puts(” "); for(i=0;i<5;i++){if(stu[i].a==1){prin tf("%-6s",stu[i]. nu m);prin tf("%-6s",stu[i]. name);prin tf("%-6.2f',stu[i].chi nese);prin tf("%-6.2f',stu[i].e nglish);prin tf("%-6.2f',stu[i].math);prin tf("%-6.2f',stu[i].sum); puts("");}}} void output(){char c='a';system("cls");shuchu();printf(" 是否返回主界面:(y是)");scan f("%c",&c);if(c=='y'||c=='Y'){system("cls");mulu();}else{printf(”输入错误,请重新输入!");output。