第22章 C语言实现教学管理系统
- 格式:ppt
- 大小:48.00 KB
- 文档页数:22
通信与信息工程学院高级语言课程设计班级:电子信息工程1503姓名:周阳刘锦谷静霆学号:1507050314 1507050321 1507050334指导教师:刘晓佩李远征王静倪云峰设计时间:2016-07-04 ~ 2016-07-24成绩:评语:通信与信息工程学院二〇一七年一、课程设计要求设计教师工作管理系统,并拥有如下功能。
1.计算并显示每个老师在一个学期中所教课程的总工作量。
2.输入教师姓名可以查询教师信息。
3.可以浏览并删改教师信息。
4.完成教师信息二、程序的功能设计三、程序的数据结构C 语言使用结构体来扩展自定义的数据类型,数据结构如下: #pragma pack (4) //设置结构体的对其方式 typedef struct TEACH {//数据域char ArrTeachNum[10]; //教工号 char ArrTeachName[10]; //姓名 char ArrTeachSex[4]; //性别 char ArrTitle[10]; //职称 char ArrSubject[20]; //所教课程 char ArrClass[36]; //所教班级 unsigned int ClassNum ; //班级数目 unsigned int TheoryClaHour ; //理论课时主函数添加一个教师的信息 VoidAddTeaMsg(TE ACHER Teacher);删除一个教师的信息VoidDeleTeacher(PTEACH pNode);查找一个教师信息PTEACHSearchTeach(char * Name);显示所有教师信息保存voidShowAllTeach er(void );unsigned int practicerClaHour ; //实践课时unsigned int AllClaHour ; //总课时//指针域struct TEACH *pNext; //指向下一个节点}四、程序的函数设计1.函数的功能描述main函数功能:调用菜单函数所示的函数;Menu()函数功能:显示给用户所有的功能AddTeaMsg()函数功能:增一个教师信息SearchTeach()函数功能:查找一个教师信息DeleTeacher()函数功能:删除一个教师信息ShowAllTeacher()函数功能:显示所有老师信息2.函数的调用关系main函数调用所有的子函数来完成相应操作;查找,删除,修改信息函数都必须调用查找函数。
c语言教师信息管理系统设计C语言教师信息管理系统设计,是一项对于教师信息进行管理的系统设计,目的在于提高教师工作的效率和管理的准确性。
该系统的开发主要涉及软件工程、信息管理以及数据库等多方面知识,下面将从以下几个方面进行详细阐述。
1.需求分析系统的需求分析是系统设计中必不可少的一部分。
系统需求的分析包括对所需的功能和性能进行系统性及完整性的描述和定义,主要是围绕教师信息管理所需的功能模块展开,包括教师个人信息、考勤管理、课表管理、教学资源、工资管理等方面,并根据需求分析结果,进一步确定系统设计方向与需求。
2.系统设计在需求分析的基础上,可进行系统设计。
系统设计包含了以下几个方面,包括架构设计、数据设计、接口设计、编码实现等,具体涉及到0号架构、界面设计、算法设计、数据库设计等,不断优化并改善系统架构,以提高系统的灵活性与可维护性。
3.数据库管理数据库管理是系统设计的重要部分。
设计一个合理的数据库,是提高系统运行效率和智能管理的基础。
在教师信息的管理中,数据的存储和查询是一个必要的环节,并且数据中应包括教师姓名、年龄、身份证号码、工资情况等。
因此,在进行数据库管理时,可采用MySQL 等数据库,并通过SQL语句进行数据的增删改查。
4.系统测试系统测试主要是对已经开发的系统进行测试,以验证系统设计和编码是否达到预期要求,并排除系统开发中可能出现的错误和漏洞,保证系统的功能完整性和稳定性。
系统测试主要包括单元测试、集成测试、系统测试等多个环节,同时也应该依据不同的设备和基础环境进行测试,确保系统能够适应不同的运行环境。
综上,C语言教师信息管理系统设计,是一项系统性的工程,要想做好这项工作,需要多专业知识的综合运用,并不断进行系统优化和改进,以满足教学管理的需要。
同时,还需要注意系统的安全性和保密性问题,确保系统开发过程中,教师个人的信息被保护得当。
c课程设计教室管理系统一、教学目标本节课的教学目标是让学生掌握教室管理系统的基本概念、功能和操作方法。
具体包括以下三个方面:1.知识目标:使学生了解教室管理系统的起源、发展及其在教育领域的应用;让学生熟悉教室管理系统的各个功能模块,如课程安排、座位分配、考勤管理等。
2.技能目标:培养学生能够熟练操作教室管理系统,进行课程安排、座位分配、考勤管理等操作;培养学生能够运用教室管理系统进行数据分析,为教育教学提供支持。
3.情感态度价值观目标:培养学生对教室管理系统的认同感,认识到教室管理系统在提高教育教学质量、促进教育教学改革方面的重要作用;培养学生热爱教育事业、服务社会的责任感。
二、教学内容本节课的教学内容主要包括以下几个部分:1.教室管理系统的基本概念:介绍教室管理系统的定义、起源和发展历程,以及其在教育领域的应用。
2.教室管理系统的功能模块:详细讲解教室管理系统的主要功能模块,如课程安排、座位分配、考勤管理等,并通过实例展示各模块的操作方法。
3.教室管理系统的操作方法:对学生进行实际操作训练,使学生熟练掌握教室管理系统的操作技巧。
4.教室管理系统的数据分析与应用:介绍如何运用教室管理系统进行数据分析,为教育教学提供支持。
三、教学方法为了达到本节课的教学目标,我们将采用以下几种教学方法:1.讲授法:通过讲解教室管理系统的基本概念、功能模块和操作方法,使学生掌握相关知识。
2.案例分析法:通过分析实际案例,使学生更好地理解教室管理系统的应用。
3.实验法:对学生进行实际操作训练,使学生熟练掌握教室管理系统的操作技巧。
4.讨论法:学生进行分组讨论,分享学习心得,互相学习,提高学习效果。
四、教学资源为了保证本节课的教学质量,我们将准备以下教学资源:1.教材:选用符合课程标准的教材,为学生提供系统、全面的学习材料。
2.参考书:提供相关领域的参考书籍,丰富学生的知识视野。
3.多媒体资料:制作精美的PPT,直观地展示教室管理系统的功能和操作方法。
C语言课程设计-教材管理系统一、教学目标本课程的目标是使学生掌握C语言的基本语法、数据结构和算法,能够运用C 语言编写简单的应用程序。
通过本课程的学习,学生应达到以下知识目标:1.理解C语言的基本语法,包括数据类型、运算符、控制结构等。
2.掌握C语言的基本数据结构,包括数组、链表、栈和队列。
3.了解常用的算法,包括排序算法、查找算法和动态规划算法。
4.能够使用C语言编写简单的程序,解决实际问题。
5.能够使用C语言进行调试,找出程序中的错误并加以修正。
6.能够阅读和理解C语言的程序代码,进行程序设计。
情感态度价值观目标:1.培养学生的编程兴趣,使学生能够主动学习编程。
2.培养学生的团队协作精神,使学生在团队项目中能够有效合作。
3.培养学生的创新意识,使学生能够尝试使用编程解决实际问题。
二、教学内容本课程的教学内容主要包括C语言的基本语法、数据结构和算法。
具体的教学大纲如下:1.C语言的基本语法:数据类型、运算符、控制结构等。
2.C语言的基本数据结构:数组、链表、栈和队列。
3.常用的算法:排序算法、查找算法和动态规划算法。
每个部分的教学内容都将结合实际的编程案例进行讲解,使学生能够更好地理解和应用所学知识。
三、教学方法本课程将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
通过多样化的教学方法,激发学生的学习兴趣和主动性。
1.讲授法:用于讲解C语言的基本语法、数据结构和算法。
2.讨论法:用于讨论编程问题,促进学生之间的交流和合作。
3.案例分析法:通过分析实际的编程案例,使学生更好地理解和应用所学知识。
4.实验法:通过编写和调试程序,培养学生的编程能力和问题解决能力。
四、教学资源本课程将使用教材《C语言程序设计》作为主要教学资源,同时辅以参考书、多媒体资料和实验设备。
教材和参考书将用于引导学生学习,多媒体资料将用于丰富教学内容,实验设备将用于培养学生的编程能力和问题解决能力。
五、教学评估本课程的评估方式包括平时表现、作业和考试。
功能说明:实现两种权限的身份登陆的教务管理系统*/#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);}}/*====================================================================用户登录信息====================================================================*/。
#include <stdio.h>#include <string.h>#include <stdlib.h>#include <conio.h>/*函数声明*/void input(); // 此函数功能是输入教师信息int menu();//此函数是一个菜单//学号:struct data{int year;int month;int day;};struct teacher{char num[15];char name[30];struct data bir;char sex;float jbgz;float jt;};int menu(){int n;printf("1. 实现教师信息的录入\n");printf("2. 求每个教师的总工资,并输出\n");printf("3. 按总工资从高到低排序,输出教师信息\n");printf("4. 查找指定姓名的教师信息,假设不存在,给出提示信息\n");printf("5. 查找根本工资最高的教师信息\n");printf("6. 修改指定职工号的职工信息\n");printf("7. 程序结束\n");printf("************************************************\n");printf("请输入你要执行的操作:\n");scanf("%d",&n);while( n<1 || n>7){printf("请重新输入\n");scanf("%d",&n);}return n;}//实现教师信息录入void input(struct teacher a[],int n){int i;printf("石家庄经济学院\n");for(i=0;i<n;i++){printf("请输入教师工作号:");scanf("%s",a[i].num);printf("请输入教师姓名:");scanf("%s",a[i].name);printf("请输入教师出生日期:");scanf("%d%d%d",&a[i].bir.year,&a[i].bir.month,&a[i].bir.day);printf("请输入教师性别:");getchar();scanf("%c",&a[i].sex);printf("请输入教师根本工资:");scanf("%f",&a[i].jbgz);printf("请输入教师津贴:");scanf("%f",&a[i].jt);}}//实现教师信息输出void output(struct teacher a[],int n){int i;printf("工作号,姓名,出生日期,性别,根本工资,津贴,总工资:\n");for(i=0;i<n;i++)printf("%s %s %d %d %d %c %f %f %f\n",a[i].num,a[i].name,a[i].bir.year,a[i].bir.month,a[i].bir .day,a[i].sex,a[i].jbgz,a[i].jt,a[i].jbgz+a[i].jt);}//按工资从高到低排序,输出教师信息void sortbyzgz (struct teacher a[],int n){int i,j,k;struct teacher temp;for(i=0;i<n-1;i++){k=i;for(j=i+1;j<n;j++)if((a[j].jbgz+a[j].jt)>(a[i].jbgz+a[i].jt))k=j;if(k!=i){temp=a[i];a[i]=a[k];a[k]=temp;}}output(a,n);}//查找指定姓名的教师信息,假设不存在,给出提示信息void searchbyname(struct teacher a[],int n){char name[20];int flag=0;int i;printf("请输入要查找的教师姓名:\n");getchar();gets(name);for(i=0;i<n;i++){if(strcmp(name,a[i].name)==0){printf("工作号,姓名,出生日期,性别,根本工资,津贴,总工资:\n");printf("%s %s %d %d %d %c %f %f %f\n",a[i].num,a[i].name,a[i].bir.year,a[i].bir.month,a[i].bir.day, a[i].sex,a[i].jbgz,a[i].jt,a[i].jbgz+a[i].jt);flag=1;}}if(flag==0)printf("查无此人!\n");}//查找根本工资最高的教师信息void searchbyjbgz(struct teacher a[],int n){struct teacher temp;int i;temp=a[0];for(i=1;i<n;i++){if(a[i].jbgz>temp.jbgz)temp=a[i];}printf("工作号,姓名,出生日期,性别,根本工资,津贴,总工资:\n");printf("%s %s %d %d %d %c %f %f %f\n",temp.num,,temp.bir.year,temp.bir.month,te mp.bir.day,temp.sex,temp.jbgz,temp.jt,temp.jbgz+temp.jt);}//修改指定职工号得教师信息void repeat(struct teacher a[],int n){char temp[20];int flag=0;int i;printf("请输入要修改的职工号:\n");getchar();gets(temp);for(i=0;i<n;i++){if(strcmp(temp,a[i].num)==0){printf("%s %s %d %d %d %c %f %f %f\n",a[i].num,a[i].name,a[i].bir.year,a[i].bir.month,a[i].bir.day, a[i].sex,a[i].jbgz,a[i].jt,a[i].jbgz+a[i].jt);printf("请重新输入职工号.姓名.出生日期.性别.根本工资.津贴:\n");scanf("%s %s %d %d %d %c %f %f",a[i].num,a[i].name,&a[i].bir.year,&a[i].bir.month,&a[i].bir.day, &a[i].sex,&a[i].jbgz,&a[i].jt);flag=1;}}if(flag==0)printf("查无此人!\n");printf("修改后的教师信息:\n");printf("职工号.姓名.出生日期.性别.根本工资.津贴.总工资:\n");for(i=0;i<n;i++)printf("%s %s %d %d %d %c %f %f %f\n",a[i].num,a[i].name,a[i].bir.year,a[i].bir.month,a[i].bir .day,a[i].sex,a[i].jbgz,a[i].jt,a[i].jbgz+a[i].jt);}void main(){int num;struct teacher tea[3];while(num=menu()){switch(num){case 1: input(tea,3); break;case 2: output(tea,3);break;case 3: sortbyzgz(tea,3);break;case 4: searchbyname(tea,3);break;case 5: searchbyjbgz(tea,3);break;case 6: repeat(tea,3);break;case 7: exit(0);}getch(); //按任意键继续system("cls"); //清屏}}。
C 语言学生教务管理系统代码C++语言学生教务管理系统代码 #include <stdio.h> #include <string.h> struct teacher{char name[30];char teachernumber[30];char birthplace[30];char teacherID[30];char telephone[30];char course[30]; }teacher[100];struct student{char name[30];char studentnumber[30];char birthplace[30];char studentID[30];char telephone[30]; }student[1000];struct manager{char name[30];char managernumber[30];char birthplace[30];char managerID[30];char telephone[30]; }manager[100]; struct grade{char number[30];float math;float ph;float english;float c_language;float practise;float sum;float aver;}grade[30];struct grade_count {float amax;float amin;float mathmax;float cmax;float phmax;float emax;float pmax;float mathmin;float cmin;float phmin;float emin;float pmin;char str1[10];char str2[10];char str3[10];char str4[10];char str5[10];char str6[10];char str7[10];char str8[10];char str9[10];char str10[10];char str11[10];char str12[10];}grade_count;void addteacher(){FILE *fp1;int ch=1;int i=0;while(ch==1){fp1=fopen("teacher.txt","a+");printf("请输入您要添加的教师的名字:\n"); scanf ("%s",teacher[i].name);printf("请输入您要添加的教师的教师号:\n");scanf ("%s",teacher[i].teachernumber);printf("请输入您要添加的教师的出生地:\n");scanf ("%s",teacher[i].birthplace);printf("请输入您要添加的教师的身份证号:\n");scanf ("%s",teacher[i].teacherID);printf("请输入您要添加的教师的联系方式:\n");scanf ("%s",teacher[i].telephone);printf("请输入您要添加的教师的课程:\n");scanf ("%s",teacher[i].course);fwrite(&teacher[i],sizeof(struct teacher),1,fp1);printf("%5s,%5s,%5s,%5s,%5s,%5s\n",teacher[i].name,teacher[i].teachernumber,teacher[i].birthplace,teacher[i].teache rID,teacher[i].telephone,teacher[i].course);printf("是否继续添加,继续添加请输入1,否则输入0\n");scanf ("%d",&ch);fclose(fp1);i++;}}void changeteacher(){FILE *fp,*fp2;char teachername[30];int i;int choice;fp=fopen("teacher.txt","r");fp2=fopen("teacherl.txt","w");printf("------欢迎进入教师修改系统------\n\n");printf("请输入要修改的教师的名字\n");scanf("%s",teachername);for(i=0;fread(&teacher[i],sizeof(struct teacher),1,fp)!=0;i++) {if(strcmp(teacher[i].name,teachername)==0){printf("你所要修改的教师的资料如下:\n\n");printf("姓名:〈%s〉教师号:<%s> 出生地:〈%s〉身份证号: <%s> 联系方式: <%s> 课程:<%s>\n",teacher[i].name,teacher[i].teachernumber,teacher[i].birthplace,teacher[i].teacherID,teacher[i].telephone,teacher[i].course);printf(",请选择你要更新的内容:1:修改教师的姓名\n");printf(" 2:修改教师的教师号\n");printf(" 3:修改教师的出生地\n");printf(" 4:修改教师的身份证号\n");printf(" 5:修改教师的联系方式\n");printf(" 6:修改教师的课程\n");printf("请按照提示选择1-6:");scanf("%d",&choice);switch(choice){case 1:{printf("请输入新的姓名\n");scanf("%s",teacher[i].name);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;case 2:{printf("请输入新的教师号\n");scanf("%s",teacher[i].teachernumber);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;case 3:{printf("请输入新的出生地 \n");scanf("%s",teacher[i].birthplace);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;case 4:{printf("请输入新的身份证号 \n");scanf("%s",teacher[i].teacherID);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;case 5:{printf("请输入新的联系方式 \n");scanf("%d",&teacher[i].telephone);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;case 6:{printf("请输入新的课程 \n");scanf("%d",&teacher[i].course);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;default:printf("Error");break;}continue;}fwrite(&teacher[i],sizeof(struct teacher),1,fp2);}fclose(fp);fclose(fp2);fp=fopen("teacher.txt","w");fp2=fopen("teacherl.txt","r");for(i=0;fread(&teacher[i],sizeof(struct teacher),1,fp2)!=0;i++) {fwrite(&teacher[i],sizeof(struct teacher),1,fp);}fclose(fp);fclose(fp2);fp2=fopen("teacherl.txt","w");fclose(fp2);printf("Enter\n");getchar();return;}void tnamedele(){FILE *fp,*fp1;int i;char teachername[30];char ch1;printf("请输入教师的名字:\n");scanf("%s",teachername);fp=fopen("teacher.txt","r");fp1=fopen("teacher1.txt","w");for(i=0;fread(&teacher[i],sizeof(struct teacher),1,fp)!=0;i++) if(strcmp(teachername,teacher[i].name)!=0){fwrite(&teacher[i],sizeof(struct teacher),1,fp1);fclose(fp);fclose(fp1);}printf("确定删除该教师,\n");printf(" 1.是,请输入Y;\n");printf(" 2.否,请输入N.\n");scanf ("%s",&ch1);if(ch1=='y'||ch1=='Y'){fp=fopen("teacher.txt","w");fp1=fopen("teacher1.txt","r");for(i=0;fread(&teacher[i],sizeof(structteacher),1,fp1)!=0;i++){fwrite(&teacher[i],sizeof(struct teacher),1,fp);}fclose(fp);fclose(fp1);printf("您已经成功删除\n");}}void tnumberdele(){FILE *fp,*fp2;int i;char teachernumber[30];char ch2;printf("请输入教师的教师号:\n");scanf("%s",teachernumber);fp=fopen("teacher.txt","r");fp2=fopen("teacher1.txt","w");for(i=0;fread(&teacher[i],sizeof(structteacher),1,fp)!=0;i++)if(strcmp(teachernumber,teacher[i].teachernumber)!=0) fwrite(&teacher[i],sizeof(struct teacher),1,fp2); fclose(fp);fclose(fp2);printf("确定删除该教师,\n");printf(" 1.是,请输入Y;\n");printf(" 2.否,请输入N.\n");scanf ("%s",&ch2);if(ch2=='y'||ch2=='Y'){fp=fopen("teacher.txt","w");fp2=fopen("teacher1.txt","r");for(i=0;fread(&teacher[i],sizeof(struct teacher),1,fp2)!=0;i++) {fwrite(&teacher[i],sizeof(struct teacher),1,fp);}fclose(fp);fclose(fp2);printf("您已经成功删除\n");}}void deleteteacher(){int i;do{printf("------欢迎进入教师删除系统------\n\n");printf(">>>按照教师的姓名删除按1\n");printf(">>>按照教师的教师号删除按2\n");printf(">>>返回按0\n");scanf("%d",&i);switch(i){case 0:printf("退出\n");break;case 1:tnamedele();break;case 2:tnumberdele();break;default:break;}}while(i!=0);}void countteacher(){FILE *fp;int i,j;int n=0;do{printf("您现在进行的是统计教师的操作\n\n"); printf("请稍等......按1确定,按0退出\n"); scanf("%d",&j);switch(j){case 0:printf("退出\n");break;case 1:{fp=fopen("teacher.txt","r");for(i=0;fread(&teacher[i],sizeof(struct teacher),1,fp)!=0;i++){n=n+1;}fclose(fp);printf("现在教师的总量为:%d\n",n); getchar();return;};break;default:break;}}while(j!=0);}void tnameseek(){FILE *fp1;int i;char tname[30];int ch1;do{printf("--------您现在进入的是教师查询系统--------\n\n");printf("请输入教师的名字:\n");scanf("%s",tname);fp1=fopen("teacher.txt","r");for(i=0;fread(&teacher[i],sizeof(structteacher),1,fp1)!=0;i++){if(strcmp(tname,teacher[i].name)==0)printf("%5s---%5s---%5s---%5s--%5s--%5s\n",teacher[i].name,teacher[i].teachernumber,teacher[i].birthplace,te acher[i].teacherID,teacher[i].telephone,teacher[i].course);}printf("继续请输入1,否则输入0\n");scanf("%d",&ch1);}while(ch1==1);}void tnumberseek(){FILE *fp2;int i;char tnumber[30];int ch2;do{printf("--------您现在进入的是教师查询系统--------\n\n");printf("请输入教师的教师号:\n");scanf("%s",tnumber);fp2=fopen("teacher.txt","r");for(i=0;fread(&teacher[i],sizeof(struct teacher),1,fp2)!=0;i++) {if(strcmp(tnumber,teacher[i].teachernumber)==0)printf("%5s---%5s---%5s---%5s--%5s--%5s\n",teacher[i].name,teacher[i].teachernumber,teacher[i].birthplace,te acher[i].teacherID,teacher[i].telephone,teacher[i].course);}printf("继续请输入1,否则输入0\n");scanf("%d",&ch2);}while(ch2==1);}void seekteacher(){int i;do{printf("------欢迎进入教师查询系统------\n\n"); printf("请选择您要查询的方法\n");printf(" 1:按照教师的名字查询\n");printf(" 2:按照教师的教师号查询\n");printf(" 3:退出\n");scanf("%d",&i);switch(i){case 1: tnameseek();break;case 2: tnumberseek();break;case 3: printf("退出");break;default: printf("您的操作有误");break;}}while(i!=3);}void mteachermanage(){int i;do{printf("请按以下提示进行操作:\n\n");printf("1.<<<<教师添加\n"); printf("2.<<<<教师修改\n"); printf("3.<<<<教师删除\n"); printf("4.<<<<教师统计\n"); printf("5.<<<<教师查询\n"); printf("6.<<<<退出\n");scanf ("%d",&i);switch(i){case 1: addteacher();break; case 2: changeteacher();break; case 3: deleteteacher();break; case 4: countteacher();break; case 5: seekteacher();break; case 6: printf("退出\n");break; default:break;}}while(i!=6);}void addstudent(){FILE *fp1;int ch=1;int i=0;while(ch==1){fp1=fopen("student.txt","a+");printf("请输入您要添加的学生的名字:\n");scanf ("%s",student[i].name);printf("请输入您要添加的学生的学号:\n");scanf ("%s",student[i].studentnumber);printf("请输入您要添加的学生的出生地:\n");scanf ("%s",student[i].birthplace);printf("请输入您要添加的学生的身份证号:\n");scanf ("%s",student[i].studentID);printf("请输入您要添加的学生的联系方式:\n");scanf ("%s",student[i].telephone);fwrite(&student[i],sizeof(struct student),1,fp1);printf("%5s,%5s,%5s,%5s,%5s\n",student[i].name,student[i ].studentnumber,student[i].birthplace,student[i].studentID, student[i].telephone);printf("是否继续添加,继续添加请输入1,否则输入0\n");scanf ("%d",&ch);fclose(fp1);i++;}}void changestudent(){FILE *fp,*fp2;char studentname[30];int i;int choice;fp=fopen("student.txt","r");fp2=fopen("studentl.txt","w");printf("------欢迎进入学生修改系统------\n\n");printf("请输入要修改的学生的名字\n");scanf("%s",studentname);for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) {if(strcmp(student[i].name,studentname)==0){printf("你所要修改的学生的资料如下:\n\n");printf("姓名:〈%s〉学生号:<%s> 出生地:〈%s〉身份证号: <%s> 联系方式:<%s>\n",student[i].name,student[i].studentnumber,student[i].birthplace,student[i].studentID,student[i].telephone);printf(",请选择你要更新的内容:1:修改学生的姓名\n");printf(" 2:修改学生的学号\n");printf(" 3:修改学生的出生地\n");printf(" 4:修改学生的身份证号\n");printf(" 5:修改学生的联系方式\n");printf("请按照提示选择1-5:");scanf("%d",&choice);switch(choice){case 1:{printf("请输入新的姓名\n");scanf("%s",student[i].name);fwrite(&student[i],sizeof(struct student),1,fp2); }break;case 2:{printf("请输入新的学号\n");scanf("%s",student[i].studentnumber);fwrite(&student[i],sizeof(struct student),1,fp2); }break;case 3:{printf("请输入新的出生地 \n");scanf("%s",student[i].birthplace);fwrite(&student[i],sizeof(struct student),1,fp2); }break;case 4:{printf("请输入新的身份证号 \n");scanf("%s",student[i].studentID);fwrite(&student[i],sizeof(struct student),1,fp2); }break;case 5:{printf("请输入新的联系方式 \n");scanf("%d",&student[i].telephone);fwrite(&teacher[i],sizeof(struct teacher),1,fp2); }break;default:printf("Error");break;}continue;}fwrite(&student[i],sizeof(struct student),1,fp2); }fclose(fp);fclose(fp2);fp=fopen("student.txt","w");fp2=fopen("studentl.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++){fwrite(&student[i],sizeof(struct student),1,fp); }fclose(fp);fclose(fp2);fp2=fopen("studentl.txt","w");fclose(fp2);printf("Enter\n");getchar();return;}void snamedele(){FILE *fp,*fp1;int i;char studentname[30];char ch1;printf("请输入学生的名字:\n");scanf("%s",studentname);fp=fopen("student.txt","r");fp1=fopen("student1.txt","w");for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++){if(strcmp(studentname,student[i].name)!=0)fwrite(&student[i],sizeof(struct student),1,fp1); fclose(fp);fclose(fp1);printf("确定删除该学生,\n");printf(" 1.是,请输入Y;\n");printf(" 2.否,请输入N.\n");scanf ("%s",&ch1);if(ch1=='y'||ch1=='Y'){fp=fopen("student.txt","w");fp1=fopen("student1.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp1)!=0;i++){fwrite(&student[i],sizeof(struct student),1,fp); }fclose(fp);fclose(fp1);printf("您已经成功删除\n");}}}void snumberdele(){FILE *fp,*fp2;int i;char studentnumber[30];char ch2;printf("请输入学生的学号:\n");scanf("%s",studentnumber);fp=fopen("student.txt","r");fp2=fopen("student1.txt","w");for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++) {if(strcmp(studentnumber,student[i].studentnumber)!=0)fwrite(&student[i],sizeof(struct student),1,fp2);fclose(fp);fclose(fp2);printf("确定删除该教师,\n");printf(" 1.是,请输入Y;\n");printf(" 2.否,请输入N.\n");scanf ("%s",&ch2);if(ch2=='y'||ch2=='Y'){fp=fopen("student.txt","w");fp2=fopen("student1.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++) {fwrite(&student[i],sizeof(struct student),1,fp);}fclose(fp);fclose(fp2);printf("您已经成功删除\n");}}}void deletestudent(){int i;do{printf("------欢迎进入学生删除系统------\n\n");printf(">>>按照学生的姓名删除按1\n");printf(">>>按照学生的学号删除按2\n");printf(">>>返回按0\n");scanf("%d",&i);switch(i){case 0:printf("退出\n");break;case 1:snamedele();break;case 2:snumberdele();break;default:break;}}while(i!=0);}void countstudent(){FILE *fp;int i,j;int n=0;do{printf("您现在进行的是统计学生的操作\n\n"); printf("请稍等......按1确定,按0退出\n"); scanf("%d",&j);switch(j){case 0:printf("退出\n");break;case 1:{fp=fopen("student.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp)!=0;i++){n=n+1;}fclose(fp);printf("现在学生的总量为:%d\n",n); getchar();return;};break;default:break;}}while(j!=0);}void snameseek(){FILE *fp1;int i;char sname[30];int ch1;do{printf("--------您现在进入的是学生查询系统--------\n\n");printf("请输入学生的名字:\n");scanf("%s",sname);fp1=fopen("student.txt","r");for(i=0;fread(&student[i],sizeof(structstudent),1,fp1)!=0;i++){if(strcmp(sname,student[i].name)==0)printf("%5s---%5s---%5s---%5s--%5s\n",student[i].name,st udent[i].studentnumber,student[i].birthplace,student[i].stu dentID,teacher[i].telephone);}printf("继续请输入1,否则输入0\n");scanf("%d",&ch1);}while(ch1==1);}void snumberseek(){FILE *fp2;int i;char snumber[30];int ch2;do{printf("--------您现在进入的是学生查询系统--------\n\n");printf("请输入学生的学号:\n");scanf("%s",snumber);fp2=fopen("student.txt","r");for(i=0;fread(&student[i],sizeof(struct student),1,fp2)!=0;i++) {if(strcmp(snumber,student[i].studentnumber)==0)printf("%5s---%5s---%5s---%5s--%5s\n",student[i].name,student[i].studentnumber,student[i].birthplace,student[i].stu dentID,student[i].telephone);}printf("继续请输入1,否则输入0\n");scanf("%d",&ch2);}while(ch2==1);}void seekstudent(){int i;do{printf("------欢迎进入学生查询系统------\n\n"); printf("请选择您要查询的方法\n");printf(" 1:按照学生的名字查询\n");printf(" 2:按照学生的学号查询\n");printf(" 3:退出\n");scanf("%d",&i);switch(i){case 1: snameseek();break;case 2: snumberseek();break;case 3: printf("退出");break;default: printf("您的操作有误");break;}}while(i!=3);}void mstudentmanage(){int i;do{printf("请按以下提示进行操作:\n\n");printf("1.<<<<学生添加\n");printf("2.<<<<学生修改\n");printf("3.<<<<学生删除\n"); printf("4.<<<<学生统计\n"); printf("5.<<<<学生查询\n"); printf("6.<<<<退出\n");scanf ("%d",&i);switch(i){case 1: addstudent();break; case 2: changestudent();break; case 3: deletestudent();break; case 4: countstudent();break; case 5: seekstudent();break; case 6: printf("退出\n");break; default:break;}}while(i!=6);}void addmanager(){FILE *fp1;int ch=1;int i=0;while(ch==1){fp1=fopen("manager.txt","a+");printf("请输入您要添加的管理员的名字:\n");scanf ("%s",manager[i].name);printf("请输入您要添加的管理员的证件号:\n");scanf ("%s",manager[i].managernumber);printf("请输入您要添加的管理员的出生地:\n");scanf ("%s",manager[i].birthplace);printf("请输入您要添加的管理员的身份证号:\n");scanf ("%s",manager[i].managerID);printf("请输入您要添加的管理员的联系方式:\n");scanf ("%s",manager[i].telephone);fwrite(&manager[i],sizeof(struct manager),1,fp1);printf("%5s,%5s,%5s,%5s,%5s\n",manager[i].name,manager[i ].managernumber,manager[i].birthplace,manager[i].managerID, manager[i].telephone);printf("是否继续添加,继续添加请输入1,否则输入0\n");scanf ("%d",&ch);fclose(fp1);i++;}}void changemanager(){FILE *fp,*fp2;char managername[30];int i;int choice;fp=fopen("manager.txt","r");fp2=fopen("managerl.txt","w");printf("------欢迎进入管理员修改系统------\n\n");printf("请输入要修改的管理员的名字\n");scanf("%s",managername);for(i=0;fread(&manager[i],sizeof(struct manager),1,fp)!=0;i++) {if(strcmp(manager[i].name,managername)==0){printf("你所要修改的管理员的资料如下:\n\n");printf("姓名:〈%s〉证件号:<%s> 出生地:〈%s〉身份证号: <%s> 联系方式: <%s>\n",manager[i].name,manager[i].managernumber,manager[i].bir thplace,manager[i].managerID,manager[i].telephone);printf(",请选择你要更新的内容:1:修改管理员的姓名\n");printf(" 2:修改管理员的证件号\n");printf(" 3:修改管理员的出生地\n");printf(" 4:修改管理员的身份证号\n");printf("。
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语言实现简单的教材管理系统。
具体目标如下:1.知识目标:–理解C语言的基本语法和数据类型。
–掌握控制结构和函数的定义及使用。
–了解教材管理系统的基本概念和设计原则。
2.技能目标:–能够运用C语言编写简单的程序。
–能够运用面向对象的方法设计教材管理系统。
–具备基本的调试和解决问题的能力。
3.情感态度价值观目标:–培养学生的团队合作意识和沟通能力。
–培养学生的创新思维和问题解决能力。
–培养学生对计算机科学和编程的兴趣和热情。
二、教学内容本课程的教学内容主要包括C语言的基本语法和数据类型、控制结构和函数的定义及使用,以及教材管理系统的设计和实现。
具体内容包括:1.C语言的基本语法和数据类型:介绍C语言的基本语法规则,包括变量、常量、运算符、表达式等,以及基本数据类型如整数、浮点数、字符等。
2.控制结构:介绍条件语句和循环语句的使用,包括if语句、switch语句、for循环、while循环等,以及它们的嵌套和应用。
3.函数的定义及使用:介绍函数的定义、声明和调用,包括返回值、参数传递等,以及函数的递归调用和应用。
4.教材管理系统的设计和实现:介绍教材管理系统的基本概念和设计原则,包括系统的功能模块划分、数据结构设计、算法实现等,以及系统的测试和优化。
三、教学方法本课程的教学方法采用讲授法、讨论法、案例分析法和实验法相结合的方式,以激发学生的学习兴趣和主动性。
具体方法如下:1.讲授法:通过讲解和示例的方式,系统地传授C语言的基本语法和数据类型、控制结构和函数的定义及使用,以及教材管理系统的设计和实现。
2.讨论法:通过小组讨论和课堂讨论的方式,引导学生主动思考和探索问题,培养学生的团队合作意识和沟通能力。
3.案例分析法:通过分析实际案例,让学生了解教材管理系统的设计和实现过程,培养学生的创新思维和问题解决能力。
教学计划管理系统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;}```三、系统使用说明使用该教学计划管理系统,用户可以根据需要选择相应的功能进行操作。
C语言程序设计——教室管理系统(源代码))C语言程序设计——教室管理系统(源代码)非常有用的。
#include#include#include#define szSTR 64#define fileDB "c:\\contact.txt"struct CONTACT {char num[szSTR];/*教室编号*/char site[szSTR];/*教室位置*/char snum[szSTR];/*座位数*/char tv[szSTR];/*有无多媒体*/char use[szSTR];/*是否可用*/};typedef struct CONTACT CON;#define ANUM 1#define ASITE 2#define ASNUM 3#define ATV 4#define AUSE 5#define BFULL 0xFFint OPER[6] = {BFULL, ANUM, ASITE, ASNUM, ATV,AUSE};void input(CON * s, int mask){if(mask & ANUM) { printf("请输入教室编号:"); scanf("%s", s->num); }if(mask & ASITE) { printf("请输入教室位置:"); scanf("%s", s->site); }if(mask & ASNUM) { printf("请输入座位数:"); scanf("%s", s->snum); }if(mask & ATV){printf("请输入是否有多媒体(有/Y*无/N):");scanf("%s",s->tv);}if(mask & AUSE) { printf("请输入是否可用(可/Y*否/N):"); scanf("%s", s->use); } }/*end input*/void show (int id, CON * s){if(!s) return ;if(id)printf("%d\t%s\t\t%s\t%s\t\t%s\t\t%s\n",id, s->num , s->site , s->snum , s->tv,s->use );elseprintf("【编号】%s【教室编号】%s【位置】%s【座位数】%s 【有无多媒体】%s【是否可用】%s\n",s->num , s->site , s->snum , s->tv,s->use );/*end if*/}/*end show*/void regist(void){CON s; FILE * f = 0;input(&s, BFULL);f = fopen(fileDB, "ab");fwrite(&s,sizeof(s),1,f);fclose(f);printf("资料已保存!\n\n\n\n");}/*end regist*/int browse(char * key, fpos_t * p, CON * s){FILE * f =0; int i = 0, r = 0; CON t;char * a = 0, * b = 0; fpos_t q;if(!s) return 0;f = fopen(fileDB, "rb");if(!f) {printf("数据库暂无记录\n\n\n\n");return 0;}/*end if*/printf("编号\t教室编号\t位置\t座位数\t有无多媒体(Y/N)\t是否可用(Y/N)\n");printf("----------------------------------------------------------------------\n");while(!feof(f)) {fgetpos(f, &q);r = fread(&t, sizeof(t), 1, f);if(r<1)break;if(t.num[0]==0) continue;if(key) {a = strstr(t.num , key);b = strstr(t.site , key);if(a == 0 && b == 0) continue;}/*end if*/if(p) *p = q;if(s) memcpy(s, &t, sizeof(t));i++;show(i, &t);}/*end while*/printf("----------------------------------------------------------------------\n\n\n\n\n");return i;}/*end browse*/fpos_t query(CON * s){char key[szSTR]=""; fpos_t p = 0; int r = 0;printf("请输入教室编号或者位置:");scanf("%s", key);r = browse(key, &p, s);return r?p:-1;}/*end query*/void clear(void){FILE * f = 0; CON s;fpos_t p = query(&s);if(p<0) return;f = fopen(fileDB, "rb+");fsetpos(f, &p);memset(&s, 0, sizeof(s));fwrite(&s, sizeof(s),1, f);fclose(f);printf("记录已删除!\n\n\n\n\n");}/*end clear*/void modify(void){FILE * f = 0; CON s; int cmd = 0;fpos_t p = query(&s);if(p<0) return;f = fopen(fileDB, "rb+");fsetpos(f, &p);for(;;) {show(0, &s);printf("请选择:1-编号;2-位置;3-座位数;4-有无多媒体;5-是否可用;6-保存并退出;7-放弃修改并退出\n\n\n\n");scanf("%d", &cmd);switch(cmd) {case 1:case 2:case 3:case 4:input(&s, OPER[cmd]);break;case 6:fsetpos(f, &p);fwrite(&s, sizeof(s), 1, f);case 7:fclose(f);return;default:printf("错误的操作,请重新输入。
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)每一条记录包括一位教师的职工号、姓名、职称、性别、3门主讲课程(课程名称、开课学期、课程性质(学位与非学位课)和教学效果),教学效果综合评分。
(2)输入功能:可以一次完成若干条记录的输入。
(3)显示功能:完成全部教师记录的显示。
(4)查找功能:完成按姓名或课程查找教师的相关记录,并显示。
(5)排序功能:按职工号或教学效果综合评分进行排序。
(6)插入功能:按教学效果综合评分高低插入一条教师记录。
(7)将教师记录存在文件中。
(8)应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观!要求:(1)用C语言实现系统;(2)利用结构体数组实现教学信息的数据结构设计;(3)系统具有增加,查询,插入,排序等基本功能;(4)系统的各个功能模块要求用函数的形式实现;(5)将教学信息存在文件中。
二、总体设计分析题目可知,该程序主要利用结构化的程序设计方法,利用主函数调用若干子函数来实现题目要求的各个功能。
首先,其中的各个变量(职工号、姓名、职称、性别、3门主讲课程(课程名称、开课学期、课程性质(学位与非学位课)和教学效果),教学效果综合评分)存在内在联系,从而利用结构体数组来定义其中的变量,然后,再分析主函数和子函数的调用关系并编辑程序,通过编译使其逐渐完成题目的功能和要求。
三、详细设计1.数据结构的设计:程序要求文档中要求使用结构体数组完成设计,每一条记录包括一位教师的职工号、姓名、职称、性别、3门主讲课程(课程名称、开课学期、课程性质(学位与非学位课)和教学效果),教学效果综合评分。
数据结构设计如下:typedef struct Course{ //课程的定义与描述char courseName[40]; //课程名称int semester; //开课学期char type[8]; //课程性质char teceff; //教学效果}Course;typedef struct Teacher{ //教师的定义与描述char name[8]; //姓名int num; //职工号char sex[2]; //性别int tecscore; //教学效果综合评分char position[8]; //职称Course course[3]; //3门主讲课程}Teacher;2.函数列表和调用关系void InputClassInfor(Course c) //课程输入函数void InputInfor(Teacher T[MAXTEACHERNUM]) //教师信息输入函数void PrintInfor(Teacher T[]) //输出函数void Search_N(Teacher T[], int n) //查找函数void SearchInfor(Teacher T[]) //查找教师信息(总函数)void Sort_N(Teacher T[], int n) //排序函数void InsertInfor(Teacher T[]) //插入函数void SaveFile(Teacher T[]) //文件保存函数void OpenFile(Teacher T[]) //文件打开函数int main(int argc, char* argv[]) //菜单函数函数调用关系如下3.主函数和子函数编辑首先对主函数进行设计,使其以图片的形式输出全部教学信息,主要利用printf,如下所示void PrintInfor(Teacher T[]){ //输出全部教师信息(以卡片形式)printf("--------------------------------------------------------------------------------");printf("| 所有教师记录|");printf("-------------------------------------------------------------------------------+" );printf("| 全院现有在职教师%d名,全部信息如下|",TeacherNum);printf("-------------------------------------------------------------------------------+\n\n");for(int i=0;i<TeacherNum;++i){printf("+------+---------------+----+------------+----+------+------+------------------+" );printf("|职工号| %3d |姓名| %8s |性别| %s |职称| %8s|",T[i].num,T[i].name,T[i].sex,T[i].position);printf("+------+---+-----------+----+------------+----+------+------+------------------+ ");printf("|主讲课程1 | 课程名| %-40s|",T[i].course[0].courseName);printf("+----------+-----------+----------+------------------+------------+------------+") ;printf("| 学期| %d |课程性质| %8s | 教学效果| %c|",T[i].course[0].semester,T[i].course[0].type,T[i].course[0].teceff);printf("+----------+-----------+----------+------------------+------------+------------+") ;printf("|主讲课程2 | 课程名| %-40s|",T[i].course[1].courseName);printf("+----------+-----------+----------+------------------+------------+------------+") ;printf("| 学期| %d |课程性质| %8s | 教学效果| %c|",T[i].course[1].semester,T[i].course[1].type,T[i].course[1].teceff);printf("+----------+-----------+----------+------------------+------------+------------+") ;printf("|主讲课程3 | 课程名| %-40s|",T[i].course[2].courseName);printf("+----------+-----------+----------+------------------+------------+------------+");printf("| 学期| %d |课程性质| %8s | 教学效果| %c|",T[i].course[2].semester,T[i].course[2].type,T[i].course[2].teceff);printf("+----------+-----+-----+----------+------------------+------------+------------+" );printf("|教学效果综合评分| %3d|",T[i].tecscore);printf("+----------------+-------------------------------------------------------------+\n\ n");system("PAUSE"); //输完一个教师信息,等待用户查看确认,确认无误后再打印下一教师的相关信息}//for}//PrintInfor然后逐个完成子函数,其中排序函数利用冒泡法,如下:void Sort_N(Teacher T[],int n){//当n=1时按职工号排序,当n=2时按教学效果综合评分排序if(n==1){ //按职工号排序Teacher temp;for(int i=0;i<TeacherNum-1;i++){ //冒泡法排序for(int j=0;j<TeacherNum-1-i;j++)if(T[j+1].num<T[j].num){temp=T[j];T[j]=T[j+1];T[j+1]=temp;}//if}//forprintf("排序结果如下:\n");for(int i=0;i<TeacherNum;i++){printf(" %8s[%d] ",T[i].name,T[i].num);}//forprintf("\n");}//ifelse{ //按教学效果综合评分排序Teacher temp;for(int i=0;i<TeacherNum-1;++i){ //冒泡法排序for(int j=0;j<TeacherNum-1-i;++j)if(T[j+1].tecscore<T[j].tecscore){temp=T[j];T[j]=T[j+1];T[j+1]=temp;}//if}//forfor(int i=0;i<TeacherNum;i++){printf("\t\t\t第%d名: %-8s 分数:%3d\n",i+1,T[i].name,T[i].tecscore);}//for}//else}//Sort_N而信息插入函数要考虑信息插入的位置,先完成一次排序,在将信息插入指定位置,详情参考源程序。
#include<stdio.h>//头文件#include<string.h>//字符处理头文件struct jiaoshi//定义结构体类型{int num;//定义char name[10];//定义char jop[10];//定义char zhi[10];//定义int year;char ch;//定义}teacher[10000];//定义结构体变量int a;//定义全局变量char y[10];//定义字符数组void caidan()//菜单函数{int c;void input();//输入函数声明************************************void print();//输出函数声明************************************void chaxun();//查询函数声明************************************void paixu();//排序函数声明************************************void tongji();//统计函数声明************************************void cunchu(); //存储函数声明************************************void shanchu();//删除数据函数声明*********************************void charu();//插入数据函数声明***********************************printf(">>>>>>>>>>>>>>>>>>>>>>>>工资管理系统>>>>>>>>>>>>>>>>>>>>>\n");//提示**************************printf("\n");printf(" 输出数据请按1。
#include"stdio.h"#include"stdlib.h"#include"conio.h"#include"string.h"#include"windows.h"//登陆界面函数void load();void background1();void choice1();void fanhui1();void denglu();void zhuce();int chazhao();//目录界面函数void mulu();void background();void choice();void add();void xiugai();void shanchu();void del();void chaxun();void paixu();void tongji();void output();void finish();void fanhui2();void shuchu();int zongren();int chr();int enr();int mar();void back();float chinese();float english();float math();float zongmax();//登陆界面结构体struct self{char a[10];char b[10];int flg;}s[100]={{"admin","admin",1},{"1","1",1}};//目录界面结构体struct student{char num[10];char name[10];float chinese;float english;float math;float sum;int a;}stu[5]={{"1100","小明",12,18,20,50,1},{"1101","小样",20,80,60,160,1}};//登陆界面void main(){load();}void load(){background1();choice1();}void background1(){puts(" ");puts(" ");printf(" ********************************************\n");printf(" 欢迎登录学生管理系统");puts(" ");printf(" ********************************************\n");printf(" 1.登录 2.注册\n ");printf(" 请选择:");}void choice1(){int a;scanf("%d",&a);fflush(stdin);switch(a){case 1:denglu();break;case 2:zhuce();break;default:fanhui1();break;}}void fanhui1(){printf(" 输入错误!\n");printf(" 请重新输入!\n");system("cls");load();}void denglu(){struct self s2;char c;int i=0;int j=0;printf("请输入用户名:\n");scanf("%s",s2.a);fflush(stdin);puts(" ");printf("请输入密码:");c=getch();while(c!=13){printf("*");s2.b[i]=c;i++;while((c=getch())==8){if(i==0)continue;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");printf("\n\n\n\n\n\n\n\n\n\t\t\t欢迎进入学生管理系统\n\n\n");Sleep(2000);system("cls");mulu();}else{j++;}}if(j==100){fanhui1();}}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){printf("*");s3.b[i]=c;i++;while((c=getch())==8){if(i==0)continue;putchar('\b');putchar(' ');putchar('\b');s3.b[--i]=0;}}s3.b[i]=0;s3.flg=1;printf("确定'y' 取消'n'");scanf("%c",&d);fflush(stdin);if(d=='y'||d=='Y'){j=chazhao();s[j]=s3;printf("注册成功!");shuchu();system("cls");fanhui1();}else{fanhui1();}}int chazhao(){int a,i;for(i=0;i<100;i++){if(s[i].flg==0){a=i;break;}}return i;}//目录界面void mulu(){background();choice();}void background(){printf("*****************************************\n");printf("/////////////////////^_^\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \n");printf("******************************************\n");puts(" ");printf("欢迎进入学生成绩管理系统");puts(" ");printf("****************************************\n");printf(" 请输入业务:\n");puts(" ");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("请选择:");}void choice(){int a;scanf("%d",&a);fflush(stdin);printf("%d\n",a);switch(a){case 1: output();break;case 2: add();break;case 3: xiugai();break;case 4: shanchu();break;case 5:del();break;case 6: chaxun();break;case 7: paixu();break;case 8: tongji();break;case 9:finish();break;default:system("cls");mulu();break;}}void add(){system("cls");int i;char c,a;shuchu();printf("1 输入 2 返回主界面\n");scanf("%d",&a);fflush(stdin);if(a==1){for(i=0;i<5;i++){if(stu[i].a==0)break;}printf("请输入学号:");scanf("%s",stu[i].num);fflush(stdin);printf("\n请输入姓名:");scanf("%s",stu[i].name);fflush(stdin);printf("\n请输入语文成绩:");scanf("%f",&stu[i].chinese);fflush(stdin);printf("\n请输入英语成绩:");scanf("%f",&stu[i].english);fflush(stdin);printf("\n请输入数学成绩:");scanf("%f",&stu[i].math);fflush(stdin);stu[i].a=1;stu[i].sum=stu[i].chinese+stu[i].english+stu[i].math;shuchu();printf("y返回主界面");scanf("%c",&c);if(c=='Y'||c=='y'){system("cls");mulu();}else{add();}}else if(a==2){system("cls");mulu();}else{printf("输入错误,请重新输入!");system("cls");add();}}void xiugai(){char a;system("cls");shuchu();printf("1 修改2 返回主界面");scanf("%d",&a);fflush(stdin);if(a==1){char b[10];char c;int i;int j=0;printf("请输入需要修改的人的姓名或者学号:");gets(b);fflush(stdin);puts(" ");puts(b);for(i=0;i<5;i++){if(!strcmp(stu[i].name,b)||!strcmp(stu[i].num,b)){printf("\n请输入需要修改的学号:");scanf("%s",stu[i].num);fflush(stdin);printf("\n请输入需要修改的姓名:");scanf("%s",stu[i].name);fflush(stdin);printf("\n请输入需要修改的语文成绩:");scanf("%f",&stu[i].chinese);fflush(stdin);printf("\n请输入需要修改的英语成绩:");scanf("%f",&stu[i].english);fflush(stdin);printf("\n请输入需要修改的数学成绩成绩:");scanf("%f",&stu[i].math);fflush(stdin);stu[i].sum=stu[i].chinese+stu[i].english+stu[i].math;break;}else{j++;}}if(j==5){printf("输入错误,请重新输入!");system("cls");xiugai();}system("cls");shuchu();printf("y返回主界面");scanf("%c",&c);if(c=='Y'||c=='y'){system("cls");mulu();}else{xiugai();}}else if(a==2){system("cls");mulu();}else{printf("输入错误,请重新输入!");system("cls");xiugai();}}void shanchu(){char a;int j=0;char c;system("cls");shuchu();printf("1 删除2返回主界面:");scanf("%d",&a);fflush(stdin);if(a==1){int i;char b[10];printf("请输入需要删除的人的学号或者姓名:");gets(b);fflush(stdin);for(i=0;i<5;i++){if(!strcmp(stu[i].name,b)||!strcmp(stu[i].num,b)){stu[i].a=0;printf("删除成功!");break;}else{j++;}}if(j==5){printf("输入错误,请重新输入!");shanchu();}printf("是否返回主界面:(y是)");scanf("%c",&c);if(c=='y'||c=='Y'){system("cls");mulu();}else{shanchu();}}else if(a==2){system("cls");}else{shanchu();}}void del(){char a;system("cls");shuchu();printf("1 清空 2 返回主界面");scanf("%d",&a);fflush(stdin);if(a==1){char c;printf("确定?(y确定)");scanf("%c",&c);fflush(stdin);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("输入错误,请重新输入!");}}void chaxun(){char a;int j=0;system("cls");printf("1 查询 2 返回主界面");printf("请选择;");scanf("%d",&a);fflush(stdin);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].num,b)){printf("\n学号:%-6s",stu[i].num);printf("\n姓名:%-6s",stu[i].name);printf("\n语文成绩:%-6.2f",stu[i].chinese);printf("\n英语成绩:%-6.2f",stu[i].english);printf("\n数学成绩:%-6.2f",stu[i].math);printf("\n总成绩:%-6.2f",stu[i].sum);break;}else{j++;}}if(j==5){printf("输入错误,请重新输入!");chaxun();}printf("是否返回主页面:(y是)");scanf("%c",&c);fflush(stdin);if(c=='y'||c=='Y'){system("cls");mulu();}else{printf("继续查找!");chaxun();}}else if(a==2){system("cls");mulu();}else{printf("输入错误,请重新输入!");chaxun();}}void paixu(){char a;char c;system("cls");shuchu();printf("1 排序2返回主界面");scanf("%d",&a);fflush(stdin);if(a==1){int i,j;int aa;struct student s;printf("1 降序排列2 升序排列");printf("请选择:");scanf("%d",&aa);fflush(stdin);for(i=0;i<5;i++){for(j=0;j<4;j++){if(aa==1){if(strcmp(stu[j].num,stu[j+1].num)<0){s=stu[j];stu[j]=stu[j+1];stu[j+1]=s;}}if(aa==2){if(strcmp(stu[j].num,stu[j+1].num)>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是)");scanf("%c",&c);fflush(stdin);if(c=='Y'||c=='y'){system("cls");mulu();}else{printf("继续!");paixu();}}else if(a==2){system("cls");mulu();}else{printf("输入错误,请重新输入!");paixu();}}void tongji(){system("cls");char a;printf("1 统计 2 返回主界面");scanf("%d",&a);fflush(stdin);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("请选择:");scanf("%d",&c);fflush(stdin);if(c==1){int j;j=zongren();printf("参加考试的人数是:%d",j);back();}else if(c==2){a=chinese();printf("语文最高分为:%.2f",a);back();}else if(c==3){int a;a=chr();printf("语文及格的人数为:%d",a);back();}else if(c==4){int a,b;a=zongren();b=chr();printf("语文的及格率为:%d",b/a);back();}else if(c==5){float a;a=english();printf("英语的最高分为%.2f:",a);back();}else if(c==6){int a;a=enr();printf("英语及格的人数为:%d",a);back();}else if(c==7){int a,b;a=zongren();b=enr();printf("英语的及格率为:%.2f",b/a);back();}else if(c==8){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=zongren();b=enr();printf("数学的及格率为:%.2f",b/a);back();}else if(c==11){float a;a=zongmax();printf("总分最高为:.2f",a);back();}else{printf("输入错误,请重新输入!");system("cls");tongji();}}else if(a==2){system("cls");mulu();}else{printf("输入错误,请重新输入!");tongji();}}int zongren(){int i,a=0;for(i=0;i<5;i++){if(stu[i].a==1){a++;}}return a;}float chinese(){float max;int i;max=stu[0].chinese;for(i=0;i<5;i++){if(stu[i].a==1){if(max<stu[i].chinese){max=stu[i].chinese;}}}return max;}float english(){float max;int i;max=stu[0].english;for(i=0;i<5;i++){if(stu[i].a==1){if(max<stu[i].english){max=stu[i].english;}}}return max;}float math(){float max;int i;max=stu[0].math;for(i=0;i<5;i++){if(stu[i].a==1){if(max<stu[i].math){max=stu[i].math;}}}return max;}float zongmax(){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 max;}int chr(){int i,a=0;for(i=0;i<5;i++){if(stu[i].a==1){if(stu[i].chinese>=60){a++;}}}return a;}int enr(){int i,a=0;for(i=0;i<5;i++){if(stu[i].a==1){if(stu[i].english>=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 fanhui2(){char c;printf("是否返回主界面:");scanf("%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){printf("%-6s",stu[i].num);printf("%-6s",stu[i].name);printf("%-6.2f",stu[i].chinese);printf("%-6.2f",stu[i].english);printf("%-6.2f",stu[i].math);printf("%-6.2f",stu[i].sum);puts(" ");}}}void output(){char c='a';system("cls");shuchu();printf("是否返回主界面:(y是)");scanf("%c",&c);if(c=='y'||c=='Y'){system("cls");mulu();}else{printf("输入错误,请重新输入!");output();}}void back(){char d;printf("\n返回任意系统:任意键返回主界面:y键");printf("请选择:");scanf("%c",&d);fflush(stdin);if(d=='Y'||d=='y'){system("cls");mulu();}else{printf("继续");tongji();}}void finish(){exit(0);}。
C语言中的教育资源管理系统
教育资源管理系统是为了提高教育资源的利用效率和管理效能而设计的一种系统,能够帮助学校和教育机构更好地管理和利用各种教育资源。
在C语言中,设
计一个教育资源管理系统需要考虑如何有效地管理教育资源,并提供相关的功能和服务。
首先,教育资源管理系统需要能够记录和管理各种教育资源,包括教材、课件、实验器材、教学设备等。
通过系统,用户可以查看、添加、修改和删除各种教育资源的信息,方便对资源进行统一管理。
其次,教育资源管理系统需要具备借阅和归还教育资源的功能,学生和教师可
以通过系统查询和借阅需要的教育资源,同时系统也可以提醒用户归还资源,防止资源被滥用或丢失。
此外,教育资源管理系统还应该包括资源库存管理功能,可以实时监控资源的
库存情况,及时预警资源不足或过剩的情况,方便学校对资源进行合理配置和管理。
另外,教育资源管理系统需要具备权限管理的功能,对不同角色的用户设置不
同的权限,确保信息安全和资源使用的合理性。
在C语言中,实现教育资源管理系统的关键是设计合理的数据结构和算法,以实现对资源的管理和操作。
可以利用C语言的结构体、指针等特性,设计出适合
教育资源管理系统的数据结构,并通过合适的算法实现系统的各种功能。
总的来说,教育资源管理系统在C语言中的设计需要考虑资源管理、借阅归还、库存管理、权限管理等功能,通过合理的数据结构和算法实现系统的各项功能,为学校和教育机构提供高效便捷的教育资源管理服务。
课程信息管理系统(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. 培训和维护:对教师和学生进行系统培训,并进行后期的系统维护和更新。