浅谈教师管理系统的C语言实现

c语言,并用EasyX设计界面。

在教务系统中,管理员、教师和学生有统一的登录界面,登录后显示各自的功能块。

说实话,这个要求很奇妙。用C语言实现,但是需要设计接口。而且界面要求是EasyX,用Windows API重新包装Turbo C时代图形库提供的功能的库,主要是方便学生练习C语言的图形界面设计,但是完全不适合做按钮和列表框。为此我不得不继续做一个EasyX的简单包,实现一个叫Box的概念,就是一个矩形区域,有背景色,边框,字符,文本对齐,密码属性等。然后在Box的基础上,实现按钮,封装一个鼠标事件来管理Box列表,获取hit Box,用列表管理Box来实现列表控制。经过长时间的奋斗,终于做了一个简单的EasyX二次封装函数库。然后使用二次封装库实现程序所需的功能。

链接:

提取代码:1234

C语言教师职称管理系统的设计与实现 很简单,建立一个链表,存储一些基本信息,比如姓名、编号、性别、职称等。,每次操作后保存文件,每次操作前读取文件。这些功能的实现非常简单。

教师信息管理系统(C语言) This =v=你先建立一个老师的类,然后填充方法,无非就是get set之类的东西。

至于功能界面,看能不能用widget之类的插件。

详细说明:C语言课程设计,多媒体教室管理系统 仅供参考,网上太难找了,要自己改!

#包含“stdio.h”

#包含" stdlib.h "

#包含" string.h "

int shoud save = 0;/* */

结构学生

{

字符编号[10];/*学生ID */

char name[20];

char sex[4];

国际贸易;

国际贸易;

int egrade

int totle

int ave

char near time[10];/*上次更新时间*/

};

typedef结构节点

{

构造学生数据;

结构节点* next

}节点,*链接;

无效菜单()

{

printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *);

Printf("\t1注册学生数据\ t \ t \ t \ t2删除学生数据\ n ");

printf(" \ t 3查询学生信息\ t \ t \ t \修改学生信息\ n ");

Printf("\t5保存学生信息\ t \ t \ t \ t退出系统\ n ");

printf(" * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");

}

void printstart()

{

printf("-\ n ");

}

无效错误()

{

Printf ("\ n = = = =提示:输入错误!\ n ");

}

void Nofind()

{

Printf ("\ n = = = =提示:找不到该学生!\ n ");

}

Void printc() /*该函数用于输出中文*/

{

Printf("学号\t姓名,性别,英语成绩,数学成绩,C语言成绩,平均分\ n ");

}

Void printe(Node *p)/*该函数用于输出英文*/

{

printf(" %-12s % s \ t % s \ t % t % d \ t % d \ t % d \ t % d \ t % d \ n ",p-data.num,p-data.name,p-data.sex,p-data.egrade,p-data.mgrade,p-data.cgrade,p-data.totle,p-data . ave);

}

Node * locate (link L,char find mess [],char namernum [])/*该函数用于定位链表中符合条件的联系人,并返回指针*/

{

node * r;

If (strcmp (namernum," num") = = 0)/*按学号查询*/

{

r = l-next;

while(r!=空)

{

if(strcmp(r-data.num,findmess)==0)

return r;

r = r-next;

}

}

Elseif (strcmp (namernum," name") = = 0)/*按名称查询*/

{

r = l-next;

while(r!=空)

{

if(strcmp(r-data.name,findmess)==0)

return r;

r = r-next;

}

}

返回0;

}

Void Add(Link l) /*添加学生*/

{

节点*p,*r,* s;

字符编号[10];

r = l;

s = l-next;

while(r-next!=空)

r = r-next;/*将指针放在末尾*/

while(1)

{

Printf("请输入你的学号(用' 0 ':)返回上一个菜单);

scanf("%s ",数字);

if(strcmp(num," 0")==0)

打破;

while(s)

{

if(strcmp(s-data.num,num)==0)

{

Printf ("= = = =提示:学号为“%s”的学生已经存在。如果要修改,请选择' 4修改'!\n ",编号);

printstart();

printc();

印刷品;

printstart();

printf(" \ n ");

返回;

}

s = s-next;

}

p=(节点*)malloc(sizeof(节点));

strcpy(p-data.num,num);

Printf("请输入您的姓名:");

scanf("%s ",p-data . name);

getchar();

Printf("请输入您的性别:");

scanf("%s ",p-data . sex);

getchar();

Printf("请输入你的C语言成绩:");

scanf("%d ",p-data . c grade);

getchar();

Printf("请输入你的数学成绩:");

scanf("%d ",p-data . m grade);

getchar();

Printf("请输入你的英语成绩:");

scanf("%d ",p-data . e grade);

getchar();

p-data . totle = p-data . e grade p-data . c grade p-data . m grade;

p-data . ave = p-data . totle/3;

/*信息输入已经完成*/

p-next = NULL;

r-next = p;

r = p;

shoud save = 1;

}

}

Void Qur(Link l) /*查询学生*/

{

int sel

char find mess[20];

node * p;

如果(!l-下一个)

{

Printf ("\ n = = = =提示:没有可查询的信息!\ n ");

返回;

}

Printf ("\n = = = 1按学号搜索\ n = = = 2按姓名搜索\ n ");

scanf("%d ",sel);

If(sel==1)/*学号*/

{

Printf("请输入要查找的学号:");

scanf("%s ",find mess);

p=Locate(l,findmess," num ");

如果(p)

{

printf(" \ t \ t \ t \ t \ t findings \ n ");

printstart();

printc();

printe(p);

printstart();

}

其他

nofind();

}

Else if(sel==2) /* name */

{

Printf("请输入要查找的名称:");

scanf("%s ",find mess);

p=Locate(l,findmess," name ");

如果(p)

{

printf(" \ t \ t \ t \ t \ t findings \ n ");

printstart();

printc();

printe(p);

printstart();

}

其他

nofind();

}

其他

错误();

}

Void Del(Link l) /* Delete */

{

int sel

节点*p,* r;

char find mess[20];

如果(!l-下一个)

{

Printf ("\ n = = = =提示:不能删除任何数据!\ n ");

返回;

}

Printf ("\n = = = 1按学号删除\ n = = = 2按姓名删除\ n ");

scanf("%d ",sel);

if(sel==1)

{

Printf("请输入要删除的学号:");

scanf("%s ",find mess);

p=Locate(l,findmess," num ");

如果(p)

{

r = l;

while(r-next!=p)

r = r-next;

r-next = p-next;

免费(p);

Printf ("\ n = = = =提示:该学生已被成功删除!\ n ");

shoud save = 1;

}

其他

nofind();

}

else if(sel==2)

{

Printf("请输入要删除的名称:");

scanf("%s ",find mess);

p=Locate(l,findmess," name ");

如果(p)

{

r = l;

while(r-next!=p)

r = r-next;

r-next = p-next;

免费(p);

Printf ("\ n = = = =提示:该学生已被成功删除!\ n ");

shoud save = 1;

}

其他

nofind();

}

其他

错误();

}

无效修改(链接l)

{

node * p;

char find mess[20];

如果(!l-下一个)

{

Printf ("\ n = = = =提示:没有要修改的数据!\ n ");

返回;

}

Printf("请输入要修改的学号:");

scanf("%s ",find mess);

p=Locate(l,findmess," num ");

如果(p)

{

Printf("请输入你的新学号(原来是%s):",p-data . num);

scanf("%s ",p-data . num);

Printf("请输入你的新名字(原来是%s):",p-data . name);

scanf("%s ",p-data . name);

getchar();

Printf("请输入你的新性别(原来是%s):",p-data . sex);

scanf("%s ",p-data . sex);

Printf("请输入你新的C语言成绩(原来是%d):",p-data . cgrade);

scanf("%d ",p-data . c grade);

getchar();

Printf("请输入你新的数学成绩(原来是%d):",p-data . m grade);

scanf("%d ",p-data . m grade);

getchar();

Printf("请输入你新的英语成绩(原来是%d):",p-data . e grade);

scanf("%d ",p-data . e grade);

p-data . totle = p-data . e grade p-data . c grade p-data . m grade;

p-data . ave = p-data . totle/3;

Printf ("\ n = = = =提示:数据修改成功!\ n ");

shoud save = 1;

}

其他

nofind();

}

无效显示(链接l)

{

int count = 0;

node * p;

p = l-next;

如果(!p)

{

Printf ("\ n = = = =提示:没有可显示的数据!\ n ");

返回;

}

printf(" \ t \ t \ t \ t显示结果\ n ");

printstart();

printc();

printf(" \ n ");

while(p)

{

printe(p);

p = p-next;

}

printstart();

printf(" \ n ");

}

虚空同济(环线l)

{

节点*pm,*pe,*pc,*pt,* pa/*用于指向得分最高的联系人*/

node * r = l-next;

如果(!r)

{

Printf ("\ n = = = =提示:没有要统计的数据!\ n ");

返回;

}

pm = PE = PC = pt = pa = r;

while(r!=空)

{

if(r-data . c grade = PC-data . c grade)

PC = r;

if(r-data . m grade = pm-data . m grade)

pm = r;

if(r-data . e grade = PE-data . e grade)

PE = r;

if(r-data.totle=pt-data.totle)

pt = r;

if(r-data.ave=pa-data.ave)

pa = r;

r = r-next;

}

Printf (" -统计结果。

Printf("最高总分:\t%s %d \ n ",pt-data.name,pt-data . totem);

Printf("最高平均分:\t%s %d \n ",pa-data.name,pa-data . ave);

Printf("英语最高:\t%s %d \ n ",PE-data.name,PE-data . egrade);

Printf("数学最高:\t%s %d \ n ",PM-data.name,PM-data . m grade);

printf(" C语言最高:\t%s %d \ n ",PC-data.name,PC-data . cgrade);

printstart();

}

无效排序(链接l)

{

链接ll;

节点*p,*rr,* s;

ll =(Link)malloc(sizeof(Node));/*用于创建新的链接表*/

ll-next = NULL;

if(l-next==NULL)

{

Printf ("\ n = = = =提示:没有可排序的数据!\ n ");

返回;

}

p = l-next;

while(p)

{

s =(Node *)malloc(sizeof(Node));/*新联系人用于保存信息*/

s-data = p-data;

s-next = NULL;

rr = ll

while(rr-next!= NULL RR-next-data . totle = p-data . totle)

RR = RR-next;

if(rr-next==NULL)

RR-next = s;

其他

{

s-next = RR-next;

RR-next = s;

}

p = p-next;

}

免费(l);

l-next = ll-next;

Printf ("\ n = = = =提示:排序已经完成!\ n ");

}

无效保存(链接l)

{

FILE * fp

node * p;

int flag=1,count = 0;

fp=fopen("c:\\student "," WB ");

if(fp==NULL)

{

Printf ("\ n = = = =提示:重新打开文件时出错!\ n ");

出口(1);

}

p = l-next;

while(p)

{

if(fwrite(p,sizeof(Node),1,fp)==1)

{

p = p-next;

数数;

}

其他

{

flag = 0;

打破;

}

}

if(标志)

{

Printf ("\ n = = = =提示:文件保存成功。(%d条记录已被保存。)\n”,计数);

shoud save = 0;

}

fclose(FP);

}

void main()

{

链接l;/*链接表*/

FILE * fp/*文件指针*/

int sel

char ch

char jian

int count = 0;

节点*p,* r;

l=(Node*)malloc(sizeof(Node))。

l-next = NULL;

r = l;

fp=fopen("C:\\student "," Rb ");

if(fp==NULL)

{

Printf ("\ n = = = =提示:文件尚不存在。您想创建它吗?(是/否)\ n ");

scanf("%c ",Jian);

if(jian=='y'||jian=='Y ')

fp=fopen("C:\\student "," WB ");

其他

退出(0);

}

Printf ("\n = = = =提示:文件已经打开,正在导入记录...\ n ");

而(!feof(fp))

{

p=(节点*)malloc(sizeof(节点));

If (fread (p,sizeof (node),1,FP))/*将文件内容放入联系人*/

{

p-next = NULL;

r-next = p;

r = p;/*在连接中挂起此联系人*/

数数;

}

}

fclose(FP);/*关闭文件*/

Printf ("\ n = = = =提示:记录已导入,已导入%d条记录。\n ",计数);

while(1)

{

menu();

Printf("请选择一个操作:");

scanf("%d ",sel);

if(sel==0)

{

if(shoudsave==1)

{ getchar();

Printf ("\ n = = = =提示:数据已被更改。是否要保存对文件的更改(y/n)?\ n ");

scanf("%c ",ch);

if(ch=='y'||ch=='Y ')

保存(l);

}

Printf ("\ n = = = =提示:您已经退出系统,再见!\ n ");

打破;

}

开关(选择)

{

情况1:添加(l);打破;/*增加学生*/

案例二:德尔(l);打破;/*删除学生*/

案例三:古兰经(左);打破;/*查询学生*/

情况四:修改(l);打破;/*修改学生*/

案例五:保存(l);打破;/*拯救学生*/

案例9: printf ("\ t \ t \ t = = = = = =帮助信息= = = = = = = ");打破;

默认:错误();getchar();打破;

}

}

}

/* */

相关文章

发表新评论