教师评分源码
1. c语言课程设计—教师工作量管理系统源代码
#include<stdio.h> //标准输入、输出头文件
#include<string.h> //包含字符串函数处理头文件
#include<stdlib.h> //包含动态存储与释放函数头文件
#include<iostream> // system
#define TEALEN sizeof(teanode) //教师信息结构体长度
#define LEN sizeof(Lnode) //链表罩和旁节点长度
#define MAX 10
int SAME[MAX];
typedef struct teanode
{
char name[10]; //教师姓名
int lesson; //授课工作量
int exper; //实验工作量
int cdesign; //课程设计工作量
int gdesign; //物橡毕业设计工作量
int total; //总工作量
int pos; //排序位置
}teanode,*linknode;//教师信息结构体
typedef struct Lnode
{
char no[20]; //教师编号
linknode info; //节点信息详细指针指向教师信息结构体
struct Lnode *prior,*next; //双向链表指针域
}Lnode,*linklist;//链表节点
void newLnode();
void initlist();
void prin();
void initlist(linklist *T)
{
*T=(linklist)malloc(LEN);
(*T)->info=(linknode)malloc(TEALEN);//为头结点申请空间
(*T)->prior=*T;//设置头结点的前驱指针
(*T)->next=*T;//设置头结点的后继指针
}//初始化双向循环链表
void newLnode(linklist*p)
{
*p=(linklist)malloc(LEN);//新节点
if(!p)
{
printf("申请节点失败");
exit(0);
}
(*p)->info=(linknode)malloc(TEALEN);
}
void prin(linklist * L)
{
if(L==NULL)
{
printf("没有可以显示的信息棚宴\n");
return;
}
linklist p=(*L)->next;
// printf("********************************************************************************\n");
printf("教师编号 教师姓名 工作量排名 工作总量\n\n");
while (p!=*L)
{
printf("%7s%9s%10d%10d\n",p->no,p->info->name,p->info->pos,p->info->total);
p=p->next;
}
}
void main()
{
linklist input(linklist L);
linklist sort(linklist L);
int j;//用来判断是否结束
linklist L;
initlist(&L);
do{
system("cls");//清屏函数
printf(" ★--- 您好,欢迎进入教师工作量统计系统! ---★\n");
printf("================================================================================\n");
printf( " -------- ☆ 1.输入教师工作量信息 ☆-------- \n\n"
" -------- ☆ 2.进行教师工作量排序 ☆-------- \n\n"
" -------- ☆ 3.显示教师工作量情况 ☆-------- \n\n"
" -------- ☆ 0.退出 ☆-------- \n\n");
printf("================================================================================\n");
printf("请在0-3中选择以回车键结束:\n\n");
scanf("%d",&j);
switch(j) {
case 1:
L=input(L);
prin(&L);
printf("录入结束\n");
system("pause");
break;
case 2:
L=sort(L);
printf("排序成功\n");
system("pause");
break;
case 3:
prin(&L);
system("pause");
break;
case 0:;
break;
}
}while(j!=0);
printf("谢谢使用,再见!\n");
}//主函数结束
linklist input(linklist L)
{
linklist workload(linklist p);
linklist adworkload(linklist p);
linklist searinsert(linklist L,linklist p);
linklist sort(linklist L);
int flag=0;
char no[10];
linklist p;
p=L->next;
for(;;)
{
if(flag==1)
break;
printf("请输入教师编号输入@结束:\n\n");
scanf("%s",no);
if(no[0]=='@')
{
flag=1;
break;
}
while (p!=L)//当链表不空时
{
if (strcmp(p->no,no)==0)
{
printf("该教师编号已存在,输入需要增加的工作量\n\n");
p->prior->next=p->next;
p->next->prior=p->prior;//删除P,
p=adworkload(p);//修改P中的详细信息info指针域的内容
L=searinsert(L,p);//重新查找P的位置插入链表L中
return L;
}
p=p->next;
}//跳出循环则该教师编号第一次输入
newLnode(&p);
strcpy(p->no,no);
printf("请输入教师姓名:\n");
scanf("%s",p->info->name);
p=workload(p);
L=searinsert(L,p);
}
return L;
}
linklist adworkload(linklist p)
{
int a;
printf("请输入增加的授课工作量:\n");
scanf("%d",&a);
p->info->lesson+=a;
printf("请输入增加的实验工作量:\n");
scanf("%d",&a);
p->info->exper+=a;
printf("请输入增加的课程设计工作量:\n");
scanf("%d",&a);
p->info->cdesign+=a;
printf("请输入增加的毕业设计工作量:\n");
scanf("%d",&a);
p->info->gdesign+=a;
//p->info->pos=0;
p->info->total=p->info->lesson+p->info->exper+p->info->cdesign+p->info->gdesign;//求总工作量
return p;
}
linklist workload(linklist p)
{
printf("请输入该教师的授课工作量:\n");
scanf("%d",&(p->info->lesson));
printf("请输入该教师的实验工作量:\n");
scanf("%d",&(p->info->exper));
printf("请输入该教师的课程设计工作量:\n");
scanf("%d",&(p->info->cdesign));
printf("请输入该教师的毕业设计工作量:\n");
scanf("%d",&(p->info->gdesign));
p->info->pos=0;
p->info->total=p->info->lesson+p->info->exper+p->info->cdesign+p->info->gdesign;//求总工作量
return p;
}
linklist searinsert(linklist L,linklist p)
{//将P放置L中合适的位置
linklist tra;//遍历指针
linklist x;//P插入位置的前一个节点指针
tra=L->next;//指向第一个节点
if ((L->next==L)||(p->info->total>tra->info->total)) //第一次插入或者大于表头的情况
{
x=L;//插入表头
}
else if (p->info->total<L->prior->info->total) //小于表尾的情况
{
x=L->prior;//插入表尾
}
else
{ while (p->info->total<tra->info->total)
tra=tra->next;
x=tra->prior;//正常查找情况
}
//将P接到X后面
p->next=x->next;
p->prior=x;
x->next=p;
p->next->prior=p;
return L;
}
linklist sort(linklist L)
{
linklist sortfisrtlast(linklist L,linklist first,linklist last,int n);
int i;
for(i=0;i<MAX;i++)
SAME[i]=0;//初始化数组SAME[MAX]
linklist p,first,last;
int x,n=1,k;
p=L->next;
while (p!=L)
{
x=1;
while ((p->next->info->total!=p->info->total)&&p!=L)
{
p->info->pos=n;
p=p->next;
n++;
}
if (p==L)
return L;
else
while ((p->next->info->total==p->info->total)&&p!=L)
{
k=n;
if (x==1)
{
//k=n;
first=p;
}
p->info->pos=k;
x++;
p=p->next;
p->info->pos=k;
//保存X
SAME[k]=x;
}
n+=x-1;
if (p==L)
return L;
else
{
last=p;
p=last->next;
L=sortfisrtlast(L,first,last,k);//调用fisrt last函数
}
}
}
linklist sortfisrtlast(linklist L,linklist first,linklist last,int n)
{
if (first==last)
return L;
linklist head,posa,posb,p,t;
linklist tra;//遍历指针
linklist x;//P插入位置的前一个节点指针
posa=first->prior;//接入位置a
posb=last->next;//接入位置b
posa->next=last->next;
last->next->prior=posa;
last->next=NULL;
first->prior=NULL;//删除这段
initlist(&head);
p=first;
while (p!=NULL)
{
tra=head->next;
if ((head->next==head)||strcmp(p->no,tra->no)<0)//第一次插入或者小于当前节点
x=head;
else if (strcmp(p->no,head->prior->no)>0)
x=head->prior;
else
{
while(strcmp(p->no,tra->no)>0)
tra=tra->next;
x=tra->prior;
}
t=p;//将P接到X后
p=p->next;
t->next=x->next;
t->prior=x;
x->next=t;
t->next->prior=t;
}
printf("********************************************************************************\n");
// printf("================================================================================\n");
printf("工作量名次相同的教师名单:(按编号排序)\n\n");
printf("名次为%d教师共有%d名\n\n",n,SAME[n]);
prin(&head);
first=head->next;
last=head->prior;
posa->next=first;
first->prior=posa;
posb->prior=last;
last->next=posb;
return L;
}
2. 在线考试系统源码分享
Springboot+vue在线考试系统源码
开发语言:java
开发工具:Eclipse
使用技术:
后端:SpringBoot
前端:VUE 和 Element-UI
源码免费分享!
该项目是一个前后端分离,后端使用 SpringBoot,前端使用 VUE 和 Element-UI 组件库配合完成开发。共有三种角色:管理员、教师、学生。
运行环境:
1.运行环境:最好是java jdk 1.8
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可;
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目;
6.数据库:MySql 8.0版本。
主要功能有
一、管理员登录:
1. 考试管理:功能介绍、考试查阅、添加考试
2. 题库管理:功能介绍、所有题库、增加题库
3. 成绩查询:学生成绩查询
4. 学生管理:学生管理、添加学生
5. 教师管理:教师管理、添加教师
二、教师登录: 考试管理、题库管理、成绩查询、学生管理
三、学生登录: 我的试卷(试卷列表、考试)、我的练习、我的分数
源码免费分享!需要源码用来学习的小伙伴可以私信我:在线考试
如果您也喜欢这篇文章,记得点赞+关注+转发+评论哦![比心]