浅谈教师管理系统的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();打破;
}
}
}
/* */
最后更新于 2023-10-11 14:09:10 并被添加「」标签,已有 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
相关文章