教师信息管理系统含源码(教师平台管理系统)
本文目录一览:
高分求用VC编的“教师管理系统”的源代码……
;restype=-1sortby=8suffix=1page=1id=10000002f=0r=0ty=0b=0
求教师信息管理系统java源代码
我们能根据此要求提供一份与需求相适应的代码(教学版,个人版,专业版,企业版)
为获取建议,你需要告诉我们有效的电子邮件地址。
您还可以直接依靠百度Hi联系我们, 或借助百度知道向我求助, 或凭借百度知道发送短消息
或QQ:六五七幺五六幺五('幺'读 yao 一声)
有时间能完成你的题目
ES:\FFF2ABE57886516CE04C493C49B6329A
交易提醒:预付订金是陷阱
定制开发管理系统,B2B/B2C电子商务,企业/个人网站更有优惠
c语言课程设计—教师工作量管理系统源代码
#includestdio.h //标准输入、输出头文件
#includestring.h //包含字符串函数处理头文件
#includestdlib.h //包含动态存储与释放函数头文件
#includeiostream // 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-totaltra-info-total)) //第一次插入或者大于表头的情况
{
x=L;//插入表头
}
else if (p-info-totalL-prior-info-total) //小于表尾的情况
{
x=L-prior;//插入表尾
}
else
{ while (p-info-totaltra-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;iMAX;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;
}
教师信息管理系统(C语言)
这个=v=你先建个教师的Class再往里面填method吧 无外乎就是什么get set之类的
至于功能界面 你看看能不能用什么widget之类的插件吧