當前位置:首頁 » 操作系統 » 教師評分源碼

教師評分源碼

發布時間: 2024-12-31 11:09:53

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

資料庫:Mysql

開發工具: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. 教師管理:教師管理、添加教師

二、教師登錄: 考試管理、題庫管理、成績查詢、學生管理

三、學生登錄: 我的試卷(試卷列表、考試)、我的練習、我的分數

源碼免費分享!需要源碼用來學習的小夥伴可以私信我:在線考試

如果您也喜歡這篇文章,記得點贊+關注+轉發+評論哦![比心]

熱點內容
c語言求迴文數 發布:2025-01-03 08:47:44 瀏覽:833
跑腳本什麼意思 發布:2025-01-03 08:29:57 瀏覽:654
sql的聯合查詢 發布:2025-01-03 08:28:21 瀏覽:688
矩陣的轉置編程 發布:2025-01-03 08:24:24 瀏覽:21
linux語言環境 發布:2025-01-03 08:24:21 瀏覽:451
c加密軟體 發布:2025-01-03 08:21:01 瀏覽:250
圖形界面linux 發布:2025-01-03 08:08:34 瀏覽:862
腳本網購 發布:2025-01-03 08:03:06 瀏覽:914
為什麼主題商店顯示伺服器在忙 發布:2025-01-03 07:48:43 瀏覽:120
sqlif函數的使用方法 發布:2025-01-03 07:41:09 瀏覽:714