教师工作量管理系统_课程设计报告_C语言

合集下载

c++课程设计—教师管理系统报告 (1)

c++课程设计—教师管理系统报告 (1)

电气与信息学院计算机科学与技术系《面向对象编程技术》课程设计报告课题名称专业计算机科学与技术班级微机1326学号A19130428姓名杨芮指导教师杜勇2014年6月2日第一章课程设计内容........................................................................................................... 21.1 课程设计目的................................................................................................................ 21.2 课程设计功能说明.......................................................................................................... 21.2.0 功能总概述........................................................................................................... 21.2.1 各项功能说明..................................................................................................... 31.3 各项功能的需求标准................................................................................................... 5第二章课程设计环境与原理....................................................................................................... 62.1 设计环境与模块的划分.................................................................................................. 62.1.1软件设计环境........................................................................................................ 62.1.2软件模块的划分.................................................................................................... 62.2.3主要流程图............................................................................................................ 7第三章软件的设计过程....................................................................................... 103.1 各软件模块之间的调用方式.................................................................................... 103.2 软件中实现各项功能的函数与程序代码.................................................................. 10第四章设计结果与分析......................................................................................................... 164.1 软件使用结果.............................................................................................................. 16总结..................................................................................................................................... 18第一章课程设计内容1.1 课程设计目的经过了对课本《C++面对对象程序设计》这本书中的学生管理系统综合应用实例的学习,为了让自己能够对C++语言设计有更加深入、深刻的理解和掌握,希望通过实践设计出类似于学生管理系统的教师管理系统来提升自己对C++语言的认识。

C语言课程设计课程管理系统实验报告

C语言课程设计课程管理系统实验报告

课程设计实验报告课程管理系统计算机科学与工程学院14060307班董永博14060307102陈佳兴14060307101田晨光14060307113赵炳舒14060307121欧静14060307126目录题目• ---------------------------------------- 3分析过程与思路・------------------------------- 3算法• ---------------------------------------- 5函数模块介绍• --------------------------------- 9源程序… -------------------------------------- 10运行结果• • ---------------------------------- 36课程设计总结• -------------------------------- 42题目课程管理系统分析过程与思路课程管理系统首先要能够分别实现课程信息的增加、删除、查询、修改。

为了增加程序的实用性,应当能够将输入的课程信息通过存文件的方式将课程信息存入硬盘。

而使用系统的可能是学生和管理员两类,因此要实现根据登录类型来开放应有的功能。

由于课程信息包含很多成员,例如课程编码、课程名等。

因此应该用链表对信息进行记录,由于不清楚课程总数,因此需要用动态链表。

动态链表的使用需要声明合适的结构体,数据域中应包含课程所包含的各个成员、指针域用来指向下一个结点。

动态链表的建立需要用到malloc函数。

对已经建立的链表需要存入文件,需要用到fwrite、fread、feof等文件处理函数,保存文件要多次用到,因此应该独立做一个函数。

删除函数要用到诸如free函数,为了防止删除的结点为首结点,删除后找不到头结点,因此删除函数应该是一个指针函数,用以返回删除后的新的头结点。

登录函数要返回一个值用以在其他函数中判断登录类型,以便针对用户开放相应的功能。

C语言教师管理系统

C语言教师管理系统

通信与信息工程学院高级语言课程设计班级:电子信息工程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语言课程设计)

教师信息管理系统(C语言课程设计)课程设计任务书计算机科学与技术专业年级班一、设计题目教师信息管理系统设计二、主要内容教师信息包括教师号、姓名、性别、年龄、学历、职称、工资、住址、电话等(教师号不重复)。

试设计一教师信息管理系统,使之能提供以下功能:(1)系统以菜单方式工作(2)教师信息录入功能--输入(3)教师信息删除功能(4)教师信息浏览功能--输出(5)查询和排序功能:(至少一种查询方式) --算法按教师号查询按职称查询等三、具体要求围绕课程设计的目的和意义,基本要求如下:1、认真阅读《C语言课程设计》指导书,明确课程设计的目的、意义和要求;2、快速总结C程序设计语言的精髓,如:函数的概念、函数的设计和函数的调用;3、快速熟悉Tuber C 或C++的上机环境。

能熟练进行高级编辑操作(特别是字块操作);熟悉步进式、断点跟踪的程序调试方法,提高工作效率。

4、根据“课程设计题目”,采用结构化的程序设计思想,确定系统的总体设计方案、确"定时间进度。

如果是多人共一题,则要首先完成小组内的人员分工及安排,不允许重题现象。

5.学习并了解良好的程序设计风格。

按质、按量、并按时间完成课程设计的任务。

6.提供可运行的课程设计系统,参加上机面试答辩。

本次课程设计的重点是:学会设计并编写函数,掌握好各函数之间的调用关系;利用文件操作函数,建立数据库并完成对数据库的各种操作;掌握几种典型算法的应用(如:冒泡法、选择排序法和折半查找法)。

同时锻炼学生根据题目进行分析、设计、编码、调试程序和书写必要文档的综合处理能力,从实践中学习并体会程序设计的结构化思想和设计方法。

四、进度安排依照教学计划,课程设计时间为3周。

按照软件工程的思想,软件系统的分析设计至关重要,并要充分重视书写“文档”。

避免甚至杜绝“拿到题目就编码”的现象。

建议将时间分为三个阶段:第一阶段,根据题目要求,拿出系统的总体设计方案:即构思各程序模块的算法,并画出相应的N-S图,同时编写相应的文档;第二阶段,根据N-S图编写程序代码并单独调试,再将调试通过的各个子模块进行集成调试;第三阶段,归纳文档资料,按要求填写在《课程设计说明书》上,并参加答辩。

教务管理系统c语言课程设计

教务管理系统c语言课程设计

教务管理系统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语言课程设计一、教学目标本课程的目标是让学生掌握教师管理系统的设计与实现,具备运用C语言进行程序设计的能力。

具体目标如下:1.知识目标:学生需掌握C语言的基本语法、数据类型、运算符、控制结构、函数、数组、指针等基本概念。

2.技能目标:学生能够运用C语言编写简单的程序,解决实际问题。

通过本课程的学习,使学生具备教师管理系统的设计与实现能力。

3.情感态度价值观目标:培养学生对计算机科学的兴趣,提高学生独立思考、创新解决问题的能力,培养学生的团队协作精神。

二、教学内容本课程的教学内容主要包括C语言的基本语法、数据类型、运算符、控制结构、函数、数组、指针等基本概念,以及教师管理系统的设计与实现。

具体安排如下:1.C语言基本语法与数据类型2.运算符与控制结构3.函数与数组4.指针与字符串5.文件操作6.教师管理系统设计与实现三、教学方法本课程采用讲授法、案例分析法、实验法等多种教学方法,以激发学生的学习兴趣和主动性。

1.讲授法:用于讲解C语言的基本语法、数据类型、运算符、控制结构、函数、数组、指针等基本概念。

2.案例分析法:通过分析实际案例,使学生更好地理解教师管理系统的设计与实现。

3.实验法:让学生亲自动手编写程序,解决实际问题,提高学生的实践能力。

四、教学资源本课程所需教学资源包括教材、参考书、多媒体资料、实验设备等。

1.教材:选用权威、实用的C语言教材,为学生提供系统、全面的学习资料。

2.参考书:提供丰富的课外阅读资料,帮助学生拓展知识面。

3.多媒体资料:制作精美的课件,生动形象地展示课程内容。

4.实验设备:为学生提供充足的计算机设备,确保实验教学的顺利进行。

五、教学评估本课程的评估方式包括平时表现、作业、考试等。

评估方式应客观、公正,能够全面反映学生的学习成果。

1.平时表现:评估学生在课堂上的参与程度、提问回答等情况,以了解学生的学习状态。

2.作业:布置适量作业,评估学生的知识掌握程度和实际编程能力。

c管理系统课程设计报告

c管理系统课程设计报告

c 管理系统课程设计报告一、课程目标知识目标:1. 让学生掌握管理系统的基础知识,包括管理系统的定义、功能、类型及发展历程;2. 帮助学生了解管理系统的基本组成部分,如硬件、软件、数据、网络和人员等;3. 引导学生掌握管理系统的设计原则和步骤,培养学生具备分析、设计和优化管理系统的能力。

技能目标:1. 培养学生运用所学知识对现实生活中的管理系统案例进行分析和评价的能力;2. 提高学生利用现代技术手段,如计算机软件、网络等,解决管理系统问题的能力;3. 培养学生团队合作精神,学会在项目中进行有效沟通、分工与协作。

情感态度价值观目标:1. 激发学生对管理系统学科的兴趣,培养学生主动探索、积极创新的科学精神;2. 培养学生具备良好的职业道德和敬业精神,认识到管理系统在企业和组织中的重要性;3. 引导学生关注管理系统在我国经济社会发展中的作用,增强学生的社会责任感和使命感。

课程性质:本课程为理论与实践相结合的课程,旨在帮助学生掌握管理系统的基本原理和方法,培养学生的实际操作能力。

学生特点:本课程针对的是高年级学生,他们已经具备一定的计算机基础和理论知识,具有较强的学习能力和探究精神。

教学要求:教师在教学过程中要注重理论与实践相结合,充分调动学生的积极性,鼓励学生参与课堂讨论和实践活动,提高学生的实际操作能力。

同时,教师需关注学生的学习进度,及时调整教学方法和内容,确保课程目标的实现。

通过本课程的学习,使学生能够在实际工作中更好地运用所学知识,为企业和组织的发展贡献力量。

二、教学内容本课程教学内容主要包括以下几部分:1. 管理系统概述:介绍管理系统的定义、功能、类型及发展历程,使学生全面了解管理系统的基础知识。

2. 管理系统的基本组成部分:讲解硬件、软件、数据、网络和人员等管理系统的基本组成部分,分析各部分之间的关系。

3. 管理系统的设计原则和步骤:阐述管理系统设计的基本原则,如系统化、模块化、用户导向等,以及设计步骤,如需求分析、系统设计、系统实施等。

教室管理系统c语言课程设计

教室管理系统c语言课程设计

教室管理系统c语言课程设计一、课程目标知识目标:1. 学生能掌握C语言中结构体、数组、函数等基本概念,并能运用这些知识设计教室管理系统的基本框架。

2. 学生能理解文件操作在教室管理系统中的应用,掌握文件的读写、存储等基本操作。

3. 学生了解教室管理系统的需求分析、功能模块划分,掌握模块化编程思想。

技能目标:1. 学生能够运用C语言编写程序,实现教室管理系统的各项功能,如添加、删除、查询教室信息等。

2. 学生能够运用所学知识解决实际编程问题,具备一定的程序调试和优化能力。

3. 学生能够通过本课程的学习,培养自己的团队协作、沟通能力,提高问题解决能力。

情感态度价值观目标:1. 学生通过参与教室管理系统的设计与实现,培养对计算机编程的兴趣和热情,提高学习积极性。

2. 学生在学习过程中,培养严谨、认真、负责的学习态度,树立良好的编程习惯。

3. 学生能够认识到编程在解决实际问题中的重要性,增强对信息技术的信心,提高社会责任感。

本课程针对高中年级学生,结合C语言学科特点,以实用性为导向,旨在培养学生的编程能力、问题解决能力和团队协作能力。

课程目标具体、可衡量,为后续教学设计和评估提供了明确的方向。

二、教学内容本课程教学内容紧密结合课程目标,确保科学性和系统性。

具体包括以下部分:1. C语言基础知识回顾:包括数据类型、运算符、控制语句等,涉及教材第1-3章内容。

2. 结构体与数组:讲解结构体的定义和使用,数组的应用,为教室管理系统设计提供数据结构支持,涉及教材第4章内容。

3. 函数:介绍函数的定义、调用、参数传递等,帮助学生掌握模块化编程思想,涉及教材第5章内容。

4. 文件操作:讲解文件读写、存储等基本操作,为教室管理系统提供数据持久化支持,涉及教材第6章内容。

5. 教室管理系统功能模块设计:- 教室信息添加、删除、修改、查询功能,涉及教材第7章内容;- 教室预约、取消预约功能,涉及教材第8章内容;- 用户登录、权限管理功能,涉及教材第9章内容。

C语言课程设计报告——教务管理系统

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);}}/*====================================================================用户登录信息====================================================================*/。

课程管理系统c语言课程设计

课程管理系统c语言课程设计

课程管理系统c语言课程设计一、课程目标知识目标:1. 学生能理解课程管理系统的基本原理,掌握C语言在系统开发中的应用。

2. 学生能运用C语言实现课程管理系统的基本功能,如数据录入、查询、修改和删除。

3. 学生了解结构体、数组、文件操作等C语言知识点在课程管理系统中的作用。

技能目标:1. 学生能运用所学C语言知识,独立完成课程管理系统的设计与编码。

2. 学生具备分析问题、解决问题的能力,能够根据需求调整和优化系统功能。

3. 学生掌握基本的调试技巧,能够排除程序中的错误,确保系统稳定运行。

情感态度价值观目标:1. 学生培养对计算机编程的兴趣和热情,提高自主学习能力和团队协作精神。

2. 学生在课程学习过程中,树立正确的价值观,认识到编程对于解决实际问题的意义。

3. 学生通过课程管理系统设计与实现,增强自信心,培养克服困难的意志。

课程性质:本课程为C语言程序设计实践课程,以课程管理系统为案例,结合课本知识,锻炼学生的编程能力和实际应用能力。

学生特点:学生已具备一定的C语言基础,具有较强的求知欲和动手能力,但对复杂系统的开发尚缺乏经验。

教学要求:教师应注重理论与实践相结合,引导学生主动探究,关注个体差异,提供个性化指导,确保学生在课程学习过程中达到预期目标。

同时,注重培养学生的编程思维和解决问题的能力,为后续学习打下坚实基础。

二、教学内容1. 系统需求分析:介绍课程管理系统的功能需求,分析系统所需处理的数据类型和结构,明确各功能模块之间的关系。

2. C语言基础知识回顾:回顾结构体、数组、文件操作等基础知识,强调在课程管理系统中的应用。

- 结构体:定义课程信息、学生信息等数据结构。

- 数组:存储和管理课程、学生等数据。

- 文件操作:实现数据的持久化存储。

3. 功能模块设计:- 数据录入:设计并实现课程、学生等数据的录入功能。

- 数据查询:设计并实现课程、学生等数据的查询功能。

- 数据修改:设计并实现课程、学生等数据的修改功能。

C语言教师管理系统

C语言教师管理系统

通信与信息工程学院高级语言课程设计班电子信息工程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 ; //理论课时unsigned int practicerClaHour ; //实践课时unsigned int AllClaHour ; //总课时//指针域struct TEACH *pNext; //指向下一个节点}四、程序的函数设计1.函数的功能描述main函数功能:调用菜单函数所示的函数;Menu()函数功能:显示给用户所有的功能AddTeaMsg()函数功能:增一个教师信息SearchTeach()函数功能:查找一个教师信息DeleTeacher()函数功能:删除一个教师信息ShowAllTeacher()函数功能:显示所有老师信息2.函数的调用关系main函数调用所有的子函数来完成相应操作;查找,删除,修改信息函数都必须调用查找函数。

教师管理系统c语言课程设计

教师管理系统c语言课程设计

教师管理系统c语言课程设计一、课程目标知识目标:1. 理解C语言中结构体、数组、函数等基本概念,并能运用这些知识设计教师管理系统的基本框架;2. 学会使用C语言实现数据的增、删、改、查等基本操作;3. 掌握C语言中文件操作的基本方法,实现教师信息数据的存储与读取。

技能目标:1. 能够运用结构体、数组、函数等设计并实现一个简单的教师管理系统;2. 掌握调试程序的方法,能够解决程序中出现的常见错误;3. 学会分析实际问题,将其转化为C语言程序设计问题,培养解决问题的能力。

情感态度价值观目标:1. 培养学生对C语言程序设计的兴趣,激发学生的创新意识和探索精神;2. 培养学生的团队协作能力,学会在团队中分享、交流、合作;3. 培养学生严谨、踏实的学术态度,养成良好的编程习惯。

本课程针对高年级学生,在掌握C语言基础知识的基础上,通过设计教师管理系统,使学生在实践中提高编程能力,培养解决实际问题的能力。

课程注重理论与实践相结合,强调学生的主动参与和动手实践,旨在提高学生的编程技能和综合素质。

通过课程学习,使学生达到上述课程目标,为后续相关课程打下坚实基础。

二、教学内容1. 结构体与数组:复习结构体的定义和使用,理解结构体数组的概念,学会创建并操作结构体数组。

相关教材章节:第三章 结构体与联合2. 函数:回顾函数的定义、声明和调用,掌握函数参数传递、返回值等基本知识,学会设计模块化的程序。

相关教材章节:第四章 函数3. 文件操作:学习文件打开、关闭、读写等基本操作,掌握文件指针的使用,实现教师信息数据的存储与读取。

相关教材章节:第六章 文件4. 教师管理系统设计:a. 系统框架设计:分析教师管理系统的功能需求,设计系统框架;b. 功能模块实现:分别实现增、删、改、查等基本功能;c. 系统测试与优化:对系统进行测试,找出并修复错误,优化程序性能。

相关教材章节:第五章 程序设计教学进度安排:1. 第1周:复习结构体与数组,设计系统框架;2. 第2周:实现增、删、改、查功能;3. 第3周:文件操作,实现数据存储与读取;4. 第4周:系统测试与优化,总结反馈。

C语言课程设计报告教学管理系统

C语言课程设计报告教学管理系统

《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而信息插入函数要考虑信息插入的位置,先完成一次排序,在将信息插入指定位置,详情参考源程序。

c语言教师工作量管理系统资料

c语言教师工作量管理系统资料

C语言教师工作量管理系统资料简介随着高等教育的不断发展,各类高校的专业课程越来越多,教师工作量大大增加。

因此,建立一套方便快捷的教师工作量管理系统,对提高教师教学效率、有效管理学校教学资源具有重要意义。

此文档介绍了一款基于C语言开发的教师工作量管理系统,用于记录和管理教师所上的课程信息和所承担的工作量,同时可以自动生成相关统计报表,从而帮助学校管理者和教师更加科学地进行教学管理。

功能介绍1.用户登录验证:系统对登录用户信息进行认证,只有具有管理员权限的用户才能查看和编辑系统内容。

2.新建、修改、删除学院、课程、班级等基础信息:管理人员可以进行课程、班级、学院等信息的添加或修改,并且可以删除不再需要的信息。

3.添加、修改教师信息:管理人员可以添加、修改教师的个人信息以及所负责的班级、课程信息。

4.记录教师分配的工作量:系统可以记录教师所任教课程的学时数量,以及其他相关的工作量,如指导实验、毕业论文等。

5.自动生成统计报表:系统可以在管理员选择一定时间范围内,根据教师工作量信息自动生成统计报表,并支持数据导出和打印功能。

6.数据备份和恢复:系统可以定期自动备份或手动备份数据,并提供恢复功能。

技术实现系统后端采用C语言进行开发,主要利用了C语言强大的数据处理和算法实现能力。

前端界面采用C语言的图形库——Turbo C++,通过代码实现基本的界面功能,如选项菜单、输入框、表格等。

同时,对于系统的数据存储和处理,采用了文件I/O的形式,便于数据的备份和恢复操作。

除此之外,系统还应用了一些软件工程的思想,如模块化编程、重用性、可靠性等。

系统不同的功能部分采用不同的模块化设计,使得代码结构清晰,易于扩展和维护。

系统通过严格的测试和优化,确保了稳定性和可靠性。

系统效益通过使用此教师工作量管理系统,可以有效提升教师的教学效率和管理水平,同时也能够帮助学校管理人员更加科学地规划教学资源,合理分配工作量。

具体效益如下:1.提高教学效率:系统可以记录教师所任教课程的学时数量,帮助教师更加专注于教学,提高教学效率。

教务排课系统课程设计c语言

教务排课系统课程设计c语言

教务排课系统课程设计c语言一、教学目标本课程旨在通过学习教务排课系统课程设计,让学生掌握C语言的基本语法、数据结构、算法以及编程思想,培养学生运用C语言解决实际问题的能力。

具体目标如下:1.知识目标:(1)理解C语言的基本语法和编程规范;(2)掌握常用的数据结构(如数组、链表、栈、队列等)及其应用;(3)熟悉常见的算法(如排序、查找等)及其实现;(4)了解软件工程的基本原理和方法。

2.技能目标:(1)能够运用C语言编写简单的程序;(2)具备基本的调试和排错能力;(3)掌握常用的软件开发工具和环境;(4)具备一定的团队协作和项目管理能力。

3.情感态度价值观目标:(1)培养学生的创新意识和解决问题的能力;(2)增强学生的自信心和自我成就感;(3)培养学生团队合作精神和良好的沟通技巧;(4)引导学生树立正确的职业观念和道德规范。

二、教学内容本课程的教学内容主要包括以下几个部分:1.C语言基本语法和编程规范;2.数据结构(数组、链表、栈、队列等)及其应用;3.算法(排序、查找等)及其实现;4.软件工程的基本原理和方法;5.常用的软件开发工具和环境。

教学进度安排如下:1.第1-2周:C语言基本语法和编程规范;2.第3-4周:数据结构(数组、链表、栈、队列等)及其应用;3.第5-6周:算法(排序、查找等)及其实现;4.第7-8周:软件工程的基本原理和方法;5.第9-10周:常用的软件开发工具和环境。

三、教学方法本课程采用多种教学方法相结合的方式,以激发学生的学习兴趣和主动性:1.讲授法:讲解基本概念、原理和方法;2.案例分析法:分析实际案例,让学生更好地理解理论知识;3.实验法:让学生动手实践,提高编程能力;4.讨论法:分组讨论,培养学生的团队合作精神和沟通能力。

四、教学资源本课程的教学资源包括:1.教材:《C程序设计语言》(K&R);2.参考书:《C Primer Plus》、《C和指针》;3.多媒体资料:教学PPT、视频教程等;4.实验设备:计算机、网络等。

教学信息管理系统c语言课程设计报告

教学信息管理系统c语言课程设计报告

教学信息管理系统c语言课程设计报告《程序设计基础》课程设计报告题目:学院教学信息管理系统日期:2012.5.21班级:计算机应用技术1102班学号:姓名:一.设计目的本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计基础(C语言)》课程后进行的一次全面的综合练习。

本课程设计的目的:1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二.课程设计任务书题目:学院教学信息管理系统学院教学信息管理系统,每一条记录包括一位教师的职工号、姓名、职称、性别、3门课程教学效果、综合评分。

系统要求实现以下功能:1、输入:输入每一位教师记录,将其信息写入文件中。

2、显示:显示每位教师记录。

3、排序:按职工号或教学效果综合评分进行排序,并显示。

4、查找:完成按姓名或职工号查找教师的相关记录,并显示。

分步实施:1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数。

2、建立一个文件,将每位教师的相关(教学)信息写入文件中并能显示于屏幕上。

3、完成排序(按职工号、姓名、职称等)、查找等功能。

要求:1、用C语言实现程序设计;2、利用结构体数组或者链表实现教师信息的数据结构设计;3、系统的各个功能模块要求用函数实现;4、界面友好(良好的人机交互),程序加必要的注释。

三.系统设计方案用到数据结构的定义:在此程序中用到了结构体的定义,结构体数组的定义以及变量的申明,还用到了外部函数的申明及调用。

在主函数中,输出教师信息的函数是贯穿在程序始终的,例如要实现教师的排序这一模块时,排完序后就需要用输出信息的函数来输出排序后的信息。

这就得需要多个函数共同实现这一个模块。

此程序的流程:由于系统需要实现返回主界面的功能,那么在程序的开头就需要使用do....while语句,在do....while语句内首先将系统的主界面写下来,然后又要根据不同的按键实现排序、查找、结束等功能,这就必须使用switch 语句来实现,由于实现一个功能后,还需要跳出此功能进入下一个功能,这样就要需要使用while语句来循环,直到用户需要返回主界面时就设定一个条件跳出while语句。

教师工作量管理系统【范本模板】

教师工作量管理系统【范本模板】

沈阳航空航天大学课程设计任务书系:动力与能源工程学院专业:飞行器动力工程班级:学号:题目:教师工作量管理系统一、课程设计时间2010~11第2学期第1周,即3月7日~3月11日,共计1周,20学时. 二、课程设计内容用C语言编写软件完成以下任务:计算每个老师在一个学期中所教课程的总工作量(教师的信息为:教师号、姓名、所授课程、班级数目、理论课时、实验课时、单个教学任务总课时)。

(1)输入教师教学信息,包括教师号、姓名、所授课程、班级数目、理论课时、实验课时。

(2)插入教师授课信息。

(3)教师工作量计算:①计算单个教学任务总课时。

计算原则如下表:②单个教学任务总课时之和。

(4)完整的教师信息显示。

三、课程设计要求程序质量:1.贯彻结构化程序设计思想。

2.用户界面友好,功能明确,操作方便;可以加以其它功能或修饰。

3.用户界面中的菜单至少应包括“输入教师信息”、“插入授课信息"、“工作量计算与显示”、“退出”4项.4.代码应适当缩进,并给出必要的注释,以增强程序的可读性.课程设计说明书:课程结束后,上交课程设计说明书和源程序。

课程设计说明书的内容参见提供的模板.四、指导教师和学生签字指导教师:________ 学生签名:________五、成绩六、教师评语目录一、需求分析 (1)二、设计分析 (2)三、主要界面截图 (4)四、技术要点 (6)五、个人总结 (9)六、参考文献 (11)七、源程序 (11)一、需求分析根据任务书给定的“课程设计内容”和“课程设计要求”作如下的需求分析。

该系统主要适用于学校教务处的工作人员统计教师的课程量,系统首先应功能齐全,操作简便,还应该具有安全、稳定的特点。

1. 安全性分析系统管理的数据涉及到学院的所有教师,数据量较大且是一种基础性数据,能够为其它方面的学生管理工作提供重要参考,所以要通过设置密码等手段确保数据不能被随意的删减和修改.2. 稳定性分析指系统比较健壮,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。

教师工作量管理系统_课程设计_C语言

教师工作量管理系统_课程设计_C语言

成绩评定表课程设计任务书目录第一章.需求分析 (4)第二章.总体设计 (5)第三章.详细设计图 (6)第四章.测试 (8)第五章.总结 (8)第六章.程序代码 (9)第七章.参考文献 (13)第一章.需求分析(一)研究背景:随着高等学校的快速发展,高校教师的规模越来越大,教职工的数量也越来越多,每年对高校教师的评教管理无疑是一项琐碎、复杂而又十分细致的工作。

关于工作量的计算,项目繁多,而且一般不允许出错。

在以往,教务部门对教师工作量的统计工作一直都是采取手工的方式,每年需填制大量的表格,这就会耗费工作人员大量的时间和精力。

如若采用专门的计算机管理系统,不仅能够保证工作量核算准确无误、快速输出,而且还可以利用计算机对有关工作量的各种信息进行统计,同时计算机具有手工管理所无法比拟的优点,例如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高教师工作量管理的效率,也是企业的科学化、正规化管理与世界接轨的重要条件。

使用计算机管理系统来管理高校教师工作量已成为目前的趋势,使用计算机可以高速,快捷地完成以上工作。

在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规范数据管理行为,从而提高管理效率和水平。

高校教师工作量管理系统便是以计算机为工具,通过对工作量管理所需的信息管理,不仅把管理人员从繁琐的数据计算处理中解脱出来,而且优化了管理体系,使其高效化,简易化、智能化,也提高了透明性和互动性。

(二)产品功能:(1)工作量信息录入:教师一个教学任务的信息为:教师编号(不重复)、姓名、授课班级系数、理论课时、实验课时、教学任务总课时。

提供录入界面供用户输入数据,并以合理数据结构,诸如:结构数组或数据文件的形式加以保存。

(2)工作量计算:以教师为单位,计算出该教师一个学年的总工作量。

计算公式如下:a. 教学任务总课时。

计算方法如下表:b. 一个学年总的教学工作量=所有单个教学任务总课时之和*职称系数。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

成绩评定表课程设计任务书目录第一章.需求分析 (4)第二章.总体设计 (5)第三章.详细设计图 (6)第四章.测试 (8)第五章.总结 (8)第六章.程序代码 (9)第七章.参考文献 (13)第一章.需求分析(一)研究背景:随着高等学校的快速发展,高校教师的规模越来越大,教职工的数量也越来越多,每年对高校教师的评教管理无疑是一项琐碎、复杂而又十分细致的工作。

关于工作量的计算,项目繁多,而且一般不允许出错。

在以往,教务部门对教师工作量的统计工作一直都是采取手工的方式,每年需填制大量的表格,这就会耗费工作人员大量的时间和精力。

如若采用专门的计算机管理系统,不仅能够保证工作量核算准确无误、快速输出,而且还可以利用计算机对有关工作量的各种信息进行统计,同时计算机具有手工管理所无法比拟的优点,例如检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。

这些优点能够极大地提高教师工作量管理的效率,也是企业的科学化、正规化管理与世界接轨的重要条件。

使用计算机管理系统来管理高校教师工作量已成为目前的趋势,使用计算机可以高速,快捷地完成以上工作。

在计算机联网后,数据在网上传递,可以实现数据共享,避免重复劳动,规数据管理行为,从而提高管理效率和水平。

高校教师工作量管理系统便是以计算机为工具,通过对工作量管理所需的信息管理,不仅把管理人员从繁琐的数据计算处理中解脱出来,而且优化了管理体系,使其高效化,简易化、智能化,也提高了透明性和互动性。

(二)产品功能:(1)工作量信息录入:教师一个教学任务的信息为:教师编号(不重复)、姓名、授课班级系数、理论课时、实验课时、教学任务总课时。

提供录入界面供用户输入数据,并以合理数据结构,诸如:结构数组或数据文件的形式加以保存。

(2)工作量计算:以教师为单位,计算出该教师一个学年的总工作量。

计算公式如下:a. 教学任务总课时。

计算方法如下表:b. 一个学年总的教学工作量=所有单个教学任务总课时之和*职称系数。

其中:正教授系数=1.2;副教授系统=1.1;其他职称系数=1。

(3)查找:能查找一个教师年度工作量明细、查找某教师年度总作量。

(6)系统以菜单方式工作,界面应清晰直观,便于用户操作。

第二章.总体设计1.主函数main()功能:调用菜单函数;2.菜单函数main_menu()功能:提供用户选择的入口,进入其他模块进行相关处理;3.信息输入函数input_teacher_information()功能:录入需查询的教师和课程的相关信息(结构数组形式);4.查询教师工作量及报酬函数total_task ()功能:调用相关模块,对指定的信息项进行查询;第三章详细设计图流程图主函数流程图:主要菜单流程图:工作量计算流程图:职称=1.0 第四章.测试第五章.总结对于这次我设计的教师工作管理,我感觉自己花了很多的时间并投入很多努力,虽然总是一次一次出现ERROR运行不了让人感到特气馁,但我还是坚持了下来,通过同学的帮助,把错误一个一个都解决掉了,最后才得以成功。

所以我要感谢老师和帮助过我的同学,让我在我的第一次课设中坚持了下来。

通过这次程序设计,使我加深了对C语言的认识,进一步熟悉了对C语言功能的灵活运用,而且加深了我对程序的理解和编写能力,通过文献资料和网络资料的帮助,使我对C语言程序设计这一基础学科又一次加深了认识,也意识到了其具有的强大功能和发展前景。

这会对以后的学习有所帮助。

第六章程序代码#include<stdio.h>#define MAX 100typedef struct course{int theory;int experiment;int class_num;float total;}course;struct teacher{int id;char name[10];course cour[10];int num;float total;float reward;int profession;}teacher[MAX];int main(){int N=0,K;void main_menu();void input_teacher_information();void total_task();main_menu();K=getchar();switch(K){case '1':input_teacher_information(N);break; case '2':total_task();break;case '0':exit(0);break;default:printf("terror!\n");}clrscr();return 0;}void main_menu(){printf("\t Welcome To Teacher's Management System\n");printf("\t--------------------------------------------------\n");printf("\t* 1>Input teacher's information *\n");printf("\t* 2>Inquire about the amount of teacher's total task *\n"); printf("\t* 0>Exit *\n");printf("\t--------------------------------------------------\n");printf("please input the order number you need:\n");}void input_teacher_information(){int i,j,N;char title;float all_total=0;printf("\tplease input the number of teachers:\n");scanf("%d",&N);if (N>=MAX)printf("terror!the number is reach limit!\n");for (j=1;j<=N;j++){printf("please input NO.%d teacher's information:\n",j); printf("\tplease input teacher's id:");scanf("%d",&teacher[j].id);printf("\tplease input teacher's name:\n");scanf("%s",teacher[j].name);printf("\tplease choose teacher's positional titles:\n");printf("A. Full Professor B. Associate Professor C.Others\n"); scanf("%c",&title);switch(title){case 'A':teacher[j]. profession=1.2;break;case 'B':teacher[j]. profession=1.1;break;case 'C':teacher[j]. profession=1.0;break;default:printf("terror!\n");}printf("\tplease input the number of teacher's courses:\n"); scanf("%d",&teacher[j].num);for (i=0;i<teacher[j].num;i++){printf("\tplease input the NO.%d course's information:\n",i+1);printf("\tplease input the number of theory course:\n");scanf("%d",&teacher[j].cour[i].theory);printf("\tplease input the number of experiment course:\n");scanf("%d",&teacher[j].cour[i].experiment);printf("\tplease input the number of class(>=2):");scanf("%d",&teacher[j].cour[i].class_num);if (teacher[j].cour[i].class_num<2)printf("t terror ! the number of class need more than 2!\n");if (teacher[j].cour[i].class_num==2)teacher[j].cour[i].total=1.5*(teacher[j].cour[i].theory+teacher[j].cour[i].experiment);if (teacher[j].cour[i].class_num==3)teacher[j].cour[i].total=2*(teacher[j].cour[i].theory+teacher[j].cour[i].experiment);if (teacher[j].cour[i].class_num>=4)teacher[j]. cour[i].total=2.5*(teacher[j].cour[i].theory +teacher[j].cour[i].experiment);}}for(j=1;j<=N;j++){for(i=0;i<=teacher[j].num;i++){all_total=all_total+teacher[j].cour[i].total;teacher[j].total=teacher[j].profession*all_total;teacher[j].reward=30* teacher[j].total;}all_total=0;}printf("\tDO you want to exit?(y/n)\n");if(getchar()=='y')main_menu();}void total_task(){int N;char H;printf("please input teacher's id:\n");scanf("%d",&N);printf("NAME ID TOTAL TASK REWARD\n");printf("%-7s%-8d%-14.1f%-9.1f",teacher[N].name,teacher[N].id,teach er[N].total,teacher[N].reward);printf("\tDO you want to exit?(y\n)\n");H=getchar();if(H=='y') main_menu(); }。

相关文档
最新文档