教师信息管理系统报告.docx
《教师信息管理系统报告.docx》由会员分享,可在线阅读,更多相关《教师信息管理系统报告.docx(47页珍藏版)》请在冰豆网上搜索。
![教师信息管理系统报告.docx](https://file1.bdocx.com/fileroot1/2022-12/16/5ded8eec-fcbd-4d91-abb9-184c81650052/5ded8eec-fcbd-4d91-abb9-184c816500521.gif)
教师信息管理系统报告
青岛理工大学
题目:
《教师信息管理程序》
指导教师:
姓名:
学号:
班级:
专业:
地点:
203机房
时间:
2012.6.25至2012.6.29
内容………………………………………………………………………1上级环境………………………………………………………………1
函数调用关……………………………………………………………2
各函数功能说明……………………………………………………3
算法描述或流程图…………………………………………………4
程序运行效果图……………………………………………………5
总结…………………………………………………………………13
参考文献……………………………………………………………13
程序清单……………………………………………………………14
一、内容
教师信息管理系统
“教师信息管理系统”是为了对教师的信息进行处理的过程,通过需求分析,了解了需要管理个信息以及需要实现的功能,根据需求编写了程序。
需要管理的教师信息有“师号”“姓名”“年龄”“地址”“学历”“电话”“学历”“工资”“性别”。
对教师信息的管理分为“管理员方式”以及“普通方式”。
以“管理员方式”进入必须先输入帐号和密码,正确之后才可以进入,否则需重新输入;以普通方式打开则会直接进入,但可以使用的功能有限。
以管理员方式进入后可以是用的功能:
“创建教师信息链表”、“显示教师信息”、“查找教师信息”(按师号进行查找、按姓名进行查找、按学历进行查找、按年龄进行查找、按地址进行查找、按电话进行查找)、“删除教师信息”(按师号进行删除、按姓名进行删除、按学历进行删除、按年龄进行删除、按地址进行删除、按电话进行删除)、“修改教师信息”(部分修改<修改师号、修改姓名、修改年龄、修改地址、修改学历、修改电话>和全部修改)以及“插入教师信息”。
以普通方式打开可以使用的功能:
“显示教师列表”和“查找教师信息”(按师号进行查找、按姓名进行查找、按学历进行查找、按年龄进行查找、按地址进行查找、按电话进行查找)。
“教师信息管理系统”一次登录可以循环使用各功能,使用方法简单且每次操作都有相关提示。
二、上机环境
操作系统:
Windows
开发工具:
VisualC++6.0
三、函数调用关系图
search
四、各函数功能说明
1、voidmain()主函数
2、voidDispSList(TeachType*head)显示信息
3、voidupdateteach(TeachType*head)修改信息
4、voidDelete_Node(TeachType*head)删除信息
5、voidDeleteno_Node(TeachType*head)按师号删除信息
6、voidDeleteage_Node(TeachType*head)按年龄删除信息
7、voidDeletetele_Node(TeachType*head)按电话删除信息
8、voidDeletename_Node(TeachType*head)按姓名删除信息
9、voidDeleteeducate_Node(TeachType*head)按学历删除信息
10、voidDeleteadd_Node(TeachType*head)按地址删除信息
11、voidsearch_Node(TeachType*head)查找信息
12、voidinsertnode(TeachType*head)插入信息
13、voidsearchno_Node(TeachType*head)按师号插入信息
14、voidsearchname_Node(TeachType*head)按姓名插入信息
15、voidsearchadd_Node(TeachType*head)按地址插入信息
16、voidsearchtele_Node(TeachType*head)按电话插入信息
17、voidsearcheducate_Node(TeachType*head)按学历插入信息
18、voidsearchage_Node(TeachType*head)按年龄插入信息
19、voiddisplay();显示文件里面的信息
20、voidsearch()在文件里查找
21、voidsearchno()按师号在文件里查找
22、voidsearchage()按年龄在文件里查找
23、voidsearchtele()按电话在文件里查找
24、voidsearchadd()按地址在文件里查找
25、voidsearcheducate()按学历在文件里查找
26、voidsearchname()按姓名在文件里查找
五、算法描述或流程图
1、需求分析
为了满足学校对教师信息的管理,通过计算机技术给管理者带来便利,使用C语言编写了“教师信息管理系统”,实现了教师信息管理的一般功能,包括信息的录入、显示、查询、添加、删除、修改信息等。
所设计的程序以主界面方式呈现,为用户提供清晰的使用提示,一句用户的选择来进行各种处理,并在此过程中对用户的操作正确性进行判断,确保操作的正确性。
2、设计思想
程序设计过程中,涉及到了较多的C语言知识点,对于不同数据类型、指针、结构体数组、结构体指针变量、文件、链表、自定义函数、函数调用、循环、判断等进行了综合应用。
在主函数中,通过对自定义函数的调用,实现既定的功能,再通过循环,不断返回主界面,进行其他操作。
在程序中,采用两种方式打开:
<1>以管理员方式打开(需要输入帐户和密码):
将每个教师信息放在一个结构体中,采用链表的形式将至连接,通过指针的移动,进行信息的删除、查找、显示、增添、修改等功能,在各种功能下又可以选择以何种方式进行;
<2>以普通方式打开(直接进入):
采用结构体数组的形式,从文件中读取信息,操作结束后,关闭文件。
可以进行的操作有限,只能进行教师信息的显示和查询。
在主体函数上,采用了较多的函数调用、循环结构和判断结构,可以循环使用功能,判断操作的正确性,增加了程序的实用性与便捷性。
在程序中添加了许多操作提示信息,指导使用者更好地使用程序,从而增加了程序的可操作性。
开始
3、流程图
是否进入
N
是否以管理员身份运行
Y
N
显示列表1、查找信息2、推出请按0
输入帐号和密码
Y
N
创建列表1、显示列表2、修改信息3、删除信息4查找信息5、插入信息6推出0
Y
0
查找信息
显示列表
显示列表
创建列表
查找信息
修改信息
删除信息
插入信息
显示列表
继续
Y
修改
创建
继续
删除
插入
N
正确
正确
正确
正确
继续
Y
结束
N
显示文件信息:
(fp=fopen("c:
\\teacher.txt","r"))==NULL
开始
Y
fseek(fp,0,2);
n=ftell(fp)/sizeof(Teach)
printf("不能读取teacher.txt文件\n")
N
n>0
N
无记录
for
i=1
i<=n
fread(&te,sizeof(te),1,fp)
printf
i++
结束
删除信息
开始
输入要删除的师号
p->no==no
查无此人!
YN
printf
否要删除此信息
N
pre->next=p->next;
free(p);
p=pre->next;
Y
删除成功
是否要继续删除信息
Y
N
结束
开始
dowhile
p->no==no
Y
信息已经存在
N
p=p->next
显示信息
p==NULL
N
要插入的位置
Y
s=(TeachType*)malloc(sizeof(TeachType));
添加成功
结束
继续
输入要增加的信息
p=getnode(head,i-1);s->next=p->next;p->next=s;head->next=s;
s->next=head->next;
head->next=s;
i==1
修改信息
开始
要查询的师号
Dowhile
p->no==no
Y
查找成功
N
p=p->next
信息显示
p!
=NULL
继续?
Y
结束
N
六、程序运行效果图
1、以管理员身份打开;
输入1
输入1,
输入1
输入1
输入2
输入1
输入3
输入2
输入2
输入4
输入1
输入5
输入2
2、以普通方式打开;
输入1
输入1
输入1
输入2
输入5
输入0
七、总结
在这个星期的实践中,通过编写“教师信息管理系统”,我体会到了c语言以及计算机的强大功能。
将理论和实践结合在一起,用先进的计算机工具解决实际的问题,进而方便人们的生活,意义重大。
C语言程序的编写需要进行一下几个步骤:
首先:
要进行需求分析,了解需要实现的功能;
其次:
根据需求构思实现功能的技术要求,绘制流程图,确定程序的大致框架,这样有助于自己接下的编写程序;;
然后:
编写程序代码,在编写时要添加一定的注释,方便其他人理解程序;
最后:
上机编写程序,在此过程中会发现程序有一些问题和漏洞,需要我们进一步完善;
通过编写自己的程序,发现一个小小功能的实现有时需要上百行的代码,才发现自己以往使用一些程序软件时的便捷是许多编程人员如此辛苦的编写;还有就是一个小小的改变有时候会引发整个程序功能的变化,程序编写一丝不敢马虎;最重要的是程序的编写要建立在解决实际问题上,要注重需求的分析、操作的便捷,以及代码的可读性。
本次程序设计,我成功的编写了“教师信息管理系统”,实现了对教师信息的管理,不仅完成了既定的任务,而且提升了自我价值感与成就感。
程序成功运行时,自己的喜悦激动之情难以掩饰。
八、参考文献
[1]李春葆,曾平,喻丹丹.C语言程序设计教程.清华大学出版社,2011
[2]谭浩强.C程序设计.北京:
清华大学出版社,2005
九、程序清单
#include
#include
#include
#include
typedefstruct
{intno;
charname[10];
charsex[10];
intage;
chareducate[20];
intsalary;
inttele;
charadd[30];
}Teach;
typedefstructTeachNode
{intno;
charname[10];
charsex[10];
intage;
chareducate[20];
intsalary;
inttele;
charadd[30];
structTeachNode*next;
}TeachType;
TeachType*h;
TeachType*CreateSList();
voidDispSList(TeachType*head);
voidupdateteach(TeachType*head);
voidDelete_Node(TeachType*head);
voidDeleteno_Node(TeachType*head);
voidDeleteage_Node(TeachType*head);
voidDeletetele_Node(TeachType*head);
voidDeletename_Node(TeachType*head);
voidDeleteeducate_Node(TeachType*head);
voidDeleteadd_Node(TeachType*head);
voidsearch_Node(TeachType*head);
voidinsertnode(TeachType*head);
voidsearchno_Node(TeachType*head);
voidsearchname_Node(TeachType*head);
voidsearchadd_Node(TeachType*head);
voidsearchtele_Node(TeachType*head);
voidsearcheducate_Node(TeachType*head);
voidsearchage_Node(TeachType*head);
voiddisplay();
voidsearch();
voidsearchno();
voidsearchage();
voidsearchtele();
voidsearchadd();
voidsearcheducate();
voidsearchname();
voidmain()
{
intb,d,e;
intw=123456,i=123,j,k,x=1,f;
printf("☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆\n");
printf("--☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆--\n");
printf("------------★★★★★★青岛理工大学C语言程序设计★★★★★★★-----------------\n");
printf("--------------------☆☆☆☆☆☆☆网络112班☆☆☆☆☆☆☆-----------------------\n");
printf("-----------------------◇◇◇◇◇◇201107151◇◇◇◇◇◇------------------------\n");
printf("-------------------------△△△△△△赵丹△△△△△△---------------------------\n");
printf("\n\n------------是否要进入程序环节?
●确认请按1●退出请按2---------------\n");
scanf("%d",&d);
system("cls");
if(d==1)
{printf("请选择打开方式...\n");
printf("●以管理员身份打开请按1●以普通方式打开请按2\n");
scanf("%d",&f);
if(f==1)
{do
{printf("请输入帐号!
\n");
scanf("%d",&j);
printf("请输入密码!
\n");
scanf("%d",&k);
if(j==w&&k==i)
{printf("正在进入,请稍候...\n");
printf("---------★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★-------\n");
printf("---------------------★★★★★欢迎进入教室信息管理系统★★★★★---------------\n");
do{printf("------------------------★★★★★请选择要了解的信息!
★★★★★----------------\n");
printf("------------★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★----\n");
printf("●创建列表请按1●显示列表请按2●修改信息请按3\n●删除信息请按4●按查找信息请按5●插入信息请按6\n●退出请按0\n");
scanf("%d",&e);
system("cls");
switch(e)
{case1:
h=CreateSList();printf("是否返回主菜单继续查询信息?
●确认请按1●退出请按2\n");
scanf("%d",&b);break;
case2:
DispSList(h);printf("是否返回主菜单继续查询信息?
●确认请按1●退出请按2\n");
scanf("%d",&b);break;
case3:
updateteach(h);printf("是否返回主菜单继续查询信息?
●确认请按1●退出请按2\n");
scanf("%d",&b);break;
case4:
Delete_Node(h);printf("是否返回主菜单继续查询信息?
●确认请按1●退出请按2\n");
scanf("%d",&b);break;
case5:
search_Node(h);printf("是否返回主菜单继续查询信息?
●确认请按1●退出请按2\n");
scanf("%d",&b);break;
case6:
insertnode(h);printf("是否返回主菜单继续查询信息?
●确认请按1●退出请按2\n");
scanf("%d",&b);break;
case0:
b=2;break;
}
}while(b==1);
x=1;}
if(j!
=w||k!
=i)
{printf("输入错误!
请重新输入...\n");
x=2;}
}while(x==2);
}
if(f==2)
{printf("正在进入,请稍候...\n");
printf("---------★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★-------\n");
printf("---------------------★★★★★欢迎进入教室信息管理系统★★★★★---------------\n");
do{printf("------------------------★★★★★请选择要了解的信息!
★★★★★----------------\n");
printf("------------★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★----\n");
Teachteach[10]={{20110,"李华","女",20,"本科",3000,7171,"山西"},{20110,"赵波","男",20,"硕士",4000,4321,"北京"},{20112,"张明","男",30,"高中",5000,7171,"山西"}};
FILE*fp;
inti;
if((fp=fopen("c:
\\teacher.txt","wb"))==NULL)
{printf("不能建立teacher.txt文件\n");
exit(0);}
for(i=0;i<3;i++)/*将内存中职工的信息输出到磁盘文件中去*/
fwrite(&teach[i],sizeof(Teach),1,fp);
printf("文件准备完毕!
\n");
fclose(fp);
printf("●显示列表请按1●按查找信息请按2●退出请按0\n");
scanf("%d",&e);
system("cls");
switch(e)
{
case1:
display();printf("是否返回主菜单继续查询信息?
●确认请按1●退出请按2\n");
scanf("%d",&b);break;
case2:
search();printf("是否返回主菜单继续查询信息?
●确认请按1●退出请按2\n");
scanf("%d",&b);break;
case0:
b=2;break;
}
}while(b==1);
}
}
if(d==2)
printf("------------★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★----\n");
printf("谢谢使用!
\n");
}
TeachType*CreateSList()
{
intn,i;
TeachType*head,*s,*r;
head=(TeachType*)malloc(sizeof(TeachType));
r=head;
printf("教师总人数:
");
scanf("%d",&n);
for(i=1;i<=n;i++)
{printf("第%d个教师信息:
\n",i);
s=(TeachType*)malloc(sizeof(TeachType));
printf("师号:
");
scanf("%d",&s->no);
printf("姓名:
");
scanf("%s",&s->name);
printf("性别:
");
scanf("%s",&s->sex);
printf("年龄:
");
scanf("%d",&s->age);
printf("学历:
");
scanf("%s",&s->educate);
printf("工资:
");
scanf("%d",&s->salary);
printf("电话:
");
scanf("%d",&s->tele);
printf("地址:
");
scanf("%s",&s->add);
r->next=s;
r=s;
}
r->next=NULL;
printf("创建列表完成!
");
returnhead;
}
voidDispSList(TeachType*head)
{TeachType*p=head->next;
printf("教师信息表:
\n");
printf("师号\t姓名\t性别\t年龄\t学历\t工资\t电话\t住址\t\n");
printf("--------------------------------------------------------------------------\n");
while(p!
=NULL)
{printf("%d\t%s\t%s\t%d\t%s\t%d\t%d\t%s\t\n",p->no,p->name,p->sex,p->age,p->educate,p->salary,p->tele,p->add);
p=p->next;
printf("\n");}
printf("--------------------------------------------------------------------------\n");
}
voidupdateteach(TeachType*head)
{intno,c,b=2,d=1;
do{TeachType*p=head;
printf("输入要修改的教师号:
");
scanf("%d",&n