c程序课程设计说明书教师信息管理系统大学毕业设计论文.docx
《c程序课程设计说明书教师信息管理系统大学毕业设计论文.docx》由会员分享,可在线阅读,更多相关《c程序课程设计说明书教师信息管理系统大学毕业设计论文.docx(34页珍藏版)》请在冰豆网上搜索。
![c程序课程设计说明书教师信息管理系统大学毕业设计论文.docx](https://file1.bdocx.com/fileroot1/2023-1/2/67140414-5931-4931-839f-de6137cdcbe2/67140414-5931-4931-839f-de6137cdcbe21.gif)
c程序课程设计说明书教师信息管理系统大学毕业设计论文
C程序设计课程设计
任务书及说明书
设计题目教师信息管理系统
学院计算机与通信
专业、年级物联网工程
学生王明明
学号_____14530008_
指导教师
时间2015年春季学期
目录
1摘要……………………………………………………………3
2前言……………………………………………………………4
3正文……………………………………………………………5
3.1系统分析(需求分析)
3.2系统总体设计
3.3详细设计
3.4系统测试及使用(操作)说明
4总结…………………………………………………………18
5参考文献……………………………………………………18
致谢
附录:
程序源代码
1摘要
本次课程设计采用C语言,开发了一个基本的教师信息管理系统,该系统具备了按教师姓名查找并输出教师信息,按教师号查找并输出教师信息,按教师姓名查找并删除数据,输出全部教师信息数据,对教师的管理也可以更加方便快捷。
关键词:
C语言;课程设计;教师信息管理系统
2前言
随着教育的广泛性的提高,教师的数量逐渐增多,但是在教师管理是出现教师姓名、年龄等出现错误的诸多问题。
本文针对上述问题,采用软件工程的开发原理,根据软件流程过程规范,按照需求分析、概要设计、详细设计、程序编码、测试、软件应用、软件维护等过程开发了一个教师信息管理系统。
采用c语言作为开发工具,设计了这个教师信息管理系统,解决了教师信息管理中存在的数据安全性、数据一致性等问题。
3、正文
3.1系统分析
3.3.1.设计要求
该设计要求教师以学校教师信息管理业务为背景,设计、开发一套“教师信息管理系统”软件。
通过该题目的设计过程,可以培养教师结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解,针对c语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
得到软件工程的综合训练,提高解决实际问题的能力。
3.3.2设计任务
1、以教师信息管理业务为背景,通过调研、分析现有的管理模式和已有的管理软件,建立系统模型;
2、完成软件结构设计和算法设计;
3、完成系统的软件开发和测试工作;
教师信息包括:
教师号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。
设计“教师信息管理系统”,使之能提供以下功能:
1.系统以菜单方式工作;
2.教师信息录入功能;
3.教师信息浏览功能;
4.查询、排序功能:
按编号查询、按姓名查询;
5.教师信息的删除与修改;
6.存储教师信息。
3.2系统总体设计
一.功能模块图
退出并存盘
二.总体数据结构
本系统采用结构体为主要数据结构,将教师信息,包括:
教师号,姓名,年龄,性别,出生年月,地址,电话,E-mail以结构体的形式存储在计算机中。
structTEACHER{
intID;
charName[10];
intAge;
charSex[2];
intBirthday;
charAdress[15];
charTelNum[12];
charEmail[10];
};
3.3详细设计
(1)功能模块及函数说明
函数原型:
voidDispMainMenu();
函数功能:
显示菜单(欢迎界面)
函数原型:
charchoice();
函数功能:
选择操作
函数原型:
voidinput(teacherstu[],intMax,intcn);
函数功能:
录入教师信息
函数原型:
intfindteacherID(teacherstu[],intfindID,intMax);
函数功能:
按编号查找教师信息
函数原型:
intfindteacherNAME(teacherstu[],charfindNAME[10],intMax)
函数功能:
按姓名查找教师信息
函数原型:
voidDisplayInfor(teacherstu[],intMax);
函数功能:
显示教师信息
函数原型:
voidDispQueryMenu();
函数功能:
显示查询菜单
函数原型:
intInforInput(teacherstu[],intcn);
函数功能:
输入要录入的教师信息条数
函数原型:
voidQueryInfor(teacherstu[],intMax);
函数功能:
信息查询
函数原型:
voidEditInfor(teacherstu[],intMax);
函数功能:
修改教师信息(信息编辑)
函数原型:
DEL(teacherstu[],intMax,inti)
函数功能:
删除数据项
函数原型:
DelInfor(teacherstu[],intMax)
函数功能:
删除信息
函数原型:
SortInforMenu(teacherstu[],intMax)
函数功能:
显示排序菜单
函数原型:
SortInfor(teacherstu[],intMax,chari)
函数功能:
信息排序
函数原型:
Save(teacherstu[],intMax)
函数功能:
存储信息
(2)模块说明
模块一:
显示菜单(欢迎界面),选择所要进行的操作
voidDispMainMenu()
{
printf("**************教师信息管理系统1.0**************\n");
printf("\n\t程序开发人:
王明明学号:
1402030123\n\n");
printf("\t1--教师信息录入\t2--教师信息修改\n");
printf("\t3--教师信息查询\t4--教师信息删除\n");
printf("\t5--教师信息排序\t0--退出\n");
printf("************************************************\n");
printf("请选择(0--5):
");
}
模块二:
显示教师信息
voidDisplayInfor(teacherstu[],intMax)
{
inti;
printf("\n教师号姓名年龄性别出生年月\t地址\t电话\tE-mail\n");
for(i=0;iprintf("%8d%10s%2d%2s%8d%15s%12s%10s",stu[i].ID,stu[i].Name,stu[i].Age,stu[i].Sex,stu[i].Birthday,stu[i].Adress,stu[i].TelNum,stu[i].Email);
printf("\n");
}
模块三:
录入教师信息
voidinput(teacherstu[],intMax,intcn)
{
inti;
for(i=cn;i{
printf("\n请输入第%d个教师的教师号(8个字符以内):
",i+1);
scanf("%d",&stu[i].ID);
printf("\n\t\t姓名(10个字符以内):
");
scanf("%s",stu[i].Name);
printf("\n\t\t\t年龄:
");
scanf("%d",&stu[i].Age);
printf("\n\t\t\t性别(m或w):
");
scanf("%s",&stu[i].Sex);
printf("\n\t\t出生年月(8位):
");
scanf("%d",&stu[i].Birthday);
printf("\n\t\t\t地址:
");
scanf("%s",&stu[i].Adress);
printf("\n\t\t\t电话:
");
scanf("%s",&stu[i].TelNum);
printf("\n\t\t\tE-mail:
");
scanf("%s",&stu[i].Email);
}
printf("\n您的输入信息是:
\n");
DisplayInfor(stu,Max+cn);
}
模块四:
查找教师信息
(一)按编号查找
intfindteacherID(teacherstu[],intfindID,intMax)
{
inti;
for(i=0;i{
if(stu[i].ID==findID)
break;
}
if(ireturni;
else
return-1;
}
(二)按姓名查找
intfindteacherNAME(teacherstu[],charfindNAME[10],intMax)
{
inti;
for(i=0;i{
if(!
strcmp(stu[i].Name,findNAME))
break;
}
if(ireturni;
else
return-1;
}
(三)查找
voidQueryInfor(teacherstu[],intMax)
{
charselect;
inti;
intfindID;
charfindNAME[10];
DispQueryMenu();
select=choice();
switch(select)
{
case'1':
printf("\n按教师号查询\n请输入教师的学号:
");
scanf("%d",&findID);
if((i=findteacherID(stu,findID,Max))!
=-1)
{
printf("查找结果如下:
\n");
printf("教师号姓名年龄性别出生年月\t地址\t电话\tE-mail");
printf("%8d%10s%2d%2s%8d%15s%12s%10s",stu[i].ID,stu[i].Name,stu[i].Age,stu[i].Sex,stu[i].Birthday,stu[i].Adress,stu[i].TelNum,stu[i].Email);
}
else
printf("您输入的教师号不存在!
\n");
break;
case'2':
printf("\n按姓名查询\n请输入教师的姓名:
");
scanf("%s",&findNAME);
if((i=findteacherNAME(stu,findNAME,Max))!
=-1)
{
printf("查找结果如下:
\n");
printf("教师号姓名年龄性别出生年月\t地址\t电话\tE-mail");
printf("%8d%10s%2d%2s%8d%15s%12s%10s",stu[i].ID,stu[i].Name,stu[i].Age,stu[i].Sex,stu[i].Birthday,stu[i].Adress,stu[i].TelNum,stu[i].Email);
}
else
printf("您输入的姓名不存在!
\n");
break;
default:
printf("选择错误!
\n");
}
}
模块五:
修改教师信息
voidEditInfor(teacherstu[],intMax)
{
inti;
intfindID;
printf("\n请输入教师的学号:
");
scanf("%d",&findID);
if((i=findteacherID(stu,findID,Max))!
=-1)
{
printf("姓名:
%s\n",stu[i].Name);
printf("原信息:
%8d%2d%2s%8d%15s%12s%10s",stu[i].ID,stu[i].Age,stu[i].Sex,stu[i].Birthday,stu[i].Adress,stu[i].TelNum,stu[i].Email);
printf("\n请输入新的教师号(8个字符以内):
",i+1);
scanf("%d",&stu[i].ID);
printf("\n\t\t姓名(10个字符以内):
");
scanf("%s",stu[i].Name);
printf("\n\t\t\t年龄:
");
scanf("%d",&stu[i].Age);
printf("\n\t\t\t性别(m或w):
");
scanf("%s",&stu[i].Sex);
printf("\n\t\t出生年月(8位):
");
scanf("%d",&stu[i].Birthday);
printf("\n\t\t\t地址:
");
scanf("%s",&stu[i].Adress);
printf("\n\t\t\t电话:
");
scanf("%s",&stu[i].TelNum);
printf("\n\t\t\tE-mail:
");
scanf("%s",&stu[i].Email);
}
else
printf("您输入的教师号不存在!
\n");
}
模块五:
删除教师信息
DelInfor(teacherstu[],intMax)
{
intfindID,i;
charfindNAME[10],select;
printf("*****************请选择删除方式*****************\n");
printf("\t1--按学号删除;\t2--按姓名删除\n");
printf("************************************************\n");
printf("请选择(1--2):
");
select=choice();
switch(select)
{
case'1':
printf("\n按教师号删除\n请输入教师的教师号:
");
scanf("%d",&findID);
if((i=findteacherID(stu,findID,Max))!
=-1)
DEL(stu,Max,i);
else
printf("您输入的教师号不存在!
\n");
break;
case'2':
printf("\n按姓名删除\n请输入教师的姓名:
");
scanf("%s",&findNAME);
if((i=findteacherNAME(stu,findNAME,Max))!
=-1)
DEL(stu,Max,i);
else
printf("您输入的姓名不存在!
\n");
break;
default:
printf("选择错误!
\n");
}
}
模块五:
教师信息排序
(一)选择排序方式
SortInforMenu(teacherstu[],intMax)
{
charselect;
printf("*****************请选择排序方式*****************\n");
printf("\t1--按教师号排序;\t2--按姓名排序\n");
printf("************************************************\n");
printf("请选择(1--2):
");
select=choice();
if(select=='1'||select=='2')
SortInfor(stu,Max,select);
else
printf("选择错误!
\n");
}
(二)排序操作
SortInfor(teacherstu[],intMax,chari)
{
teacherteacher;
intj=0,k,l=0;
if(i=='1')
{
for(k=0;jfor(;k{
if(stu[k].ID>stu[k+1].ID)
{
teacher.ID=stu[k+1].ID;
strcpy(teacher.Name,stu[k+1].Name);
teacher.Age=stu[k+1].Age;
strcpy(teacher.Sex,stu[k+1].Sex);
teacher.Birthday=stu[k+1].Birthday;
strcpy(teacher.Adress,stu[k+1].Adress);
strcpy(teacher.TelNum,stu[k+1].TelNum);
strcpy(teacher.Email,stu[k+1].Email);
stu[k+1].ID=stu[k].ID;
strcpy(stu[k+1].Name,stu[k].Name);
stu[k+1].Age=stu[k].Age;
strcpy(stu[k+1].Sex,stu[k].Sex);
stu[k+1].Birthday=stu[k].Birthday;
strcpy(stu[k+1].Adress,stu[k].Adress);
strcpy(stu[k+1].TelNum,stu[k].TelNum);
strcpy(stu[k+1].Email,stu[k].Email);
stu[k].ID=teacher.ID;
strcpy(stu[k].Name,teacher.Name);
stu[k].Age=teacher.Age;
strcpy(stu[k].Sex,teacher.Sex);
stu[k].Birthday=teacher.Birthday;
strcpy(stu[k].Adress,teacher.Adress);
strcpy(stu[k].TelNum,teacher.TelNum);
strcpy(stu[k].Email,teacher.Email);
}
printf("\n教师号姓名年龄性别出生年月\t地址\t电话\tE-mail\n");
for(i=0;iprintf("%8d%10s%2d%2s%8d%15s%12s%10s",stu[i].ID,stu[i].Name,stu[i].Age,stu[i].Sex,stu[i].Birthday,stu[i].Adress,stu[i].TelNum,stu[i].Email);
printf("\n");
}
}
elseif(i=='2')
{
for(k=0;jfor(;k{
if(strcmp(stu[k].Name,stu[k+1].Name)>0)
{
teacher.ID=stu[k+1].ID;
strcpy(teacher.Name,stu[k+1].Name);
teacher.Age=stu[k+1].Age;
strcpy(teacher.Sex,stu[k+1].Sex);
teacher.Birthday=stu[k+1].Birthday;
strcpy(teacher.Adress,stu[k+1].Adress);
strcpy(teacher.TelNum,stu[k+1].TelNum);
strcpy(teacher.Email,stu[k+1].Email);
stu[k+1].ID=stu[k].ID;
strcpy(stu[k+1].Name,stu[k].Name);
stu[k+1].Age=stu[k].Age;
strcpy(stu[k+1].Sex,stu[k].Sex);
stu[k+1].Birthday=stu[k].Birthday;
strcpy(stu[k+1].Adress,stu[k].Adress);
strcpy(stu[k+1].TelNum,stu[k].TelNum);
strcpy(stu[k+1].Email,stu[k].Email);
stu[k].ID=teacher.ID;
strcpy(stu[k].Name,teacher.Name);
stu[k].Age=teacher.Age;
strcpy(stu[k].Sex,teacher.Sex);
stu[k].Birthday=teacher.Birthday;
strcpy(stu[k].Adress,teacher.Adress);
strcpy(stu[k].TelNum,teacher.TelNum);
strcpy(stu[k].Email,teacher.Email);
}
}
printf("\n姓名教师号年龄性别出生年月\t地址\t电话\tE-mail\n");
for(;lprintf("%10s%8d%2d%2s%8d%15s%12s%10s",stu[l].Name,stu[l].ID,stu[l].Age,stu[l].Sex,stu[l].Birthday,stu[l].Adress,stu[l].TelNum,stu[l].Email);
printf("\n");
}
}
模块六:
存盘
Save(teacherstu[],intMax)
{
inti=0;
FILE*fp;
if((fp=fopen("stu.txt","w+"))==NULL)
{
printf("ERROR!
");
exit(0);
}
for(;i{
fprintf(fp,"%d",stu[i].ID);
fprintf(fp,"%s",stu[i].Name);
fprintf(fp,"%d",stu[i].Age);
fprintf(fp,"%s",stu[i].Sex);
fprintf(fp,"%d",stu[i].Birthday);
fprintf(fp,"%s",stu[i].Adress);
fprintf(fp,"%s",stu[i].TelNum);
fprintf(fp,"%s",stu[i].Email);
}
fclose(fp);
printf("OK!
");
}
3.4系统测试
1.