教师信息管理系统(设计说明书范本)【范本模板】

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C程序设计课程设计
任务书及说明书
设计题目教师信息管理系统
学院计算机与通信
专业、年级物联网工程
学生王明明
学号 _____14530008_ 指导教师
时间 2015 年春季学期
目录
1摘要 (3)
2 前言 (4)
3 正文 (5)
3。

1系统分析(需求分析)
3。

2系统总体设计
3.3详细设计
3.4系统测试及使用(操作)说明
4 总结…………………………………………………………185参考文献……………………………………………………
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以结构体的形式存储在计算机中。

struct TEACHER {
int ID;
char Name[10];
intAge;
char Sex[2];
int Birthday;
char Adress[15];
char TelNum[12];
char Email[10];
};
3.3详细设计
(1)功能模块及函数说明
函数原型:void DispMainMenu();
函数功能:显示菜单(欢迎界面)
函数原型:char choice();
函数功能:选择操作
函数原型:void input(teacher stu[],intMax,int cn);
函数功能:录入教师信息
函数原型:int findteacherID(teacher stu[],int findID,int Max);
函数功能:按编号查找教师信息
函数原型:int findteacherNAME(teacher stu[],char findNAME[10],int Max)
函数功能:按姓名查找教师信息
函数原型:void DisplayInfor(teacherstu[],int Max);
函数功能:显示教师信息
函数原型:voidDispQueryMenu();
函数功能:显示查询菜单
函数原型:int InforInput(teacherstu[],int cn);
函数功能:输入要录入的教师信息条数
函数原型:void QueryInfor(teacher stu[],int Max);
函数功能:信息查询
函数原型:void EditInfor(teacher stu[],intMax);
函数功能:修改教师信息(信息编辑)
函数原型:DEL(teacher stu[],int Max,int i)
函数功能:删除数据项
函数原型:DelInfor(teacher stu[],int Max)
函数功能:删除信息
函数原型:SortInforMenu(teacher stu[],int Max)
函数功能:显示排序菜单
函数原型:SortInfor(teacher stu[],intMax,char i)
函数功能:信息排序
函数原型:Save(teacher stu[],int Max)
函数功能:存储信息
(2 )模块说明
模块一:显示菜单(欢迎界面),选择所要进行的操作
void DispMainMenu()
{
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):”);

模块二:显示教师信息
void DisplayInfor(teacher stu[],int Max)
{
int i;
printf("\n 教师号姓名年龄性别出生年月\t 地址\t电话\tE—mail\n");
for(i=0;i<Max;i++)
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);
printf(”\n”);

模块三:录入教师信息
void input(teacher stu[],int Max,int cn)

int i;
for(i=cn;i〈Max+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\t E—mail:");
scanf("%s",&stu[i]。

Email);
}
printf(”\n您的输入信息是:\n");
DisplayInfor(stu,Max+cn);
}
模块四:查找教师信息
(一)按编号查找
int findteacherID(teacher stu[],int findID,int Max)
{
int i;
for(i=0;i〈Max;i++)

if(stu[i].ID==findID)
break;
}
if(i<Max)
return i;
else
return -1;
}
(二)按姓名查找
int findteacherNAME(teacher stu[],char findNAME[10],int Max)
{
int i;
for(i=0;i〈Max;i++)
{
if(!strcmp(stu[i]。

Name,findNAME))
break;

if(i<Max)
return i;
else
return -1;
}
(三)查找
void QueryInfor(teacher stu[],int Max)

char select;
int i;
int findID;
char findNAME[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 电话\t E—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 电话\t E-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(teacher stu[],int Max)
{
int i;
int findID;
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\t E-mail:");
scanf("%s”,&stu[i]。

Email);

else
printf("您输入的教师号不存在!\n");

模块五:删除教师信息
DelInfor(teacher stu[],int Max)

int findID,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(teacher stu[],int Max)

char select;
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(teacher stu[],int Max,char i)

teacher teacher;
int j=0,k,l=0;
if(i=='1')
{
for(k=0;j<Max;j++)
for(;k<Max—j—1;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;i<Max;i++)
printf(”%8d %10s %2d %2s %8d %15s %12s %10s",s
tu[i]。

ID,stu[i]。

Name,stu[i]。

Age,stu[i].Sex,stu[i]。

Birt
hday,stu[i]。

Adress,stu[i]。

TelNum,stu[i]。

Email);
printf(”\n");

}
else if(i=='2')

for(k=0;j<Max;j++)
for(;k<Max—j-1;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,teach);
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 电话\t E—mail\n");
for(;l<Max;l++)
printf(”%10s%8d %2d%2s%8d %15s%
12s %10s",stu[l].Name,stu[l]。

ID,stu[l]。

Age,stu[l].Sex,s
tu[l].Birthday,stu[l].Adress,stu[l]。

TelNum,stu[l].Email);
printf("\n”);
}
}
模块六:存盘
Save(teacher stu[],int Max)

int i=0;
FILE *fp;
if((fp=fopen("stu。

txt”,"w+"))==NULL)
{
printf("ERROR!");
exit(0);

for(;i〈Max;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.欢迎界面
2.录入教师信息
运行结果
3.教师信息修改运行结果
4.教师信息查询运行结果:
5.删除
运行结果:
6.教师信息排序
运行结果:ﻫ

4程序设计总结
通过这几天来对这个C课程的设计,使我们充分体会到了编程给我们带来的乐趣,其中我们也会遇到编译错误,有时也会令程序无法运行,但我们没有放弃,而是几个人一起讨论,仔细查找造成问题的原因.既锻炼了我们的思维能力,有培养了我们的意志和毅力,使我们对C语言编程方面的能力得到了提高,而这些是我们在课本上所学不到的!当然,在这次课程设计中也暴露出我们的一些不足,比如编程时想当然,一些我们表面上看似成立的程序,实际上却可能根本无法运行,只有实际用C语言编译环境中运行一下才知道程序中存在的问题。

这都是我们没有养成良好的编程习惯所造成的,毕竟我们才刚刚开始学习编程,以后的路还很长……
5参考文献
(1)C/C++程序设计,王连相等,中国科学技术出版社,2004
(2)C语言程序设计,谭浩强,清华大学出版社,1999
(3)C程序设计题解与上机指导,谭浩强,清华大学出版社,1999 (4)C语言使用程序荟萃,西安电子科技大学出版社,1993
(5)C语言函数手册,机械工业出版社,1999
(6)C语言的实际应用,安徽科学技术出版社,2000
致谢
感谢XXX老师的悉心指导.
ﻬ附录:程序源代码
#include 〈stdio.h〉
#include <stdlib.h〉
#include〈conio。

h〉
#include <string。

h>
#define MAX_NUM 45
#define teacher STUDENT
struct TEACHER{
intID;
char Name[10];
int Age;
char Sex[2];
int Birthday;
char Adress[15];
char TelNum[12];
char Email[10];
};
typedef struct TEACHER teacher;
voidinput(teacher stu[],int Max,int cn);
int findteacherID(teacher stu[],int findID,int Max);
void DisplayInfor(teacher stu[],int Max);
void DispMainMenu();
void DispQueryMenu();
char choice();
int InforInput(teacher stu[],int cn);
void QueryInfor(teacher stu[],int Max);
void EditInfor(teacher stu[],int Max);
void DispMainMenu()
{
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):”);
}
void DispQueryMenu()

printf("*****************请选择查询方式*****************\n");
printf(”\t1-—按教师号查询;\t2—-按姓名查询\n”);
printf(”************************************************\n");
printf(”请选择(1--2):”);
}
char choice()

charselect;
select=getche();
getch();
return (select);
}
void DisplayInfor(teacher stu[],int Max)
{
int i;
printf(”\n 教师号姓名年龄性别出生年月\t 地址\t 电话\t E—mail\n");
for(i=0;i〈Max;i++)
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);
printf("\n”);
}
void input(teacher stu[],int Max,int cn)
{
int i;
for(i=cn;i〈Max+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\t E—mail:");
scanf("%s",&stu[i]。

Email);
}
printf(”\n您的输入信息是:\n");
DisplayInfor(stu,Max+cn);
}
int findteacherID(teacher stu[],int findID,int Max)
{
int i;
for(i=0;i<Max;i++)

if(stu[i].ID==findID)
break;

if(i<Max)
return i;
else
return—1;
}
intfindteacherNAME(teacher stu[],char findNAME[10],int Max)

inti;
for(i=0;i〈Max;i++)
{
if(!strcmp(stu[i]。

Name,findNAME))
break;
}
if(i<Max)
return i;
else
return -1;
}
intInforInput(teacher stu[],int cn)
{
int number;
printf("\n请输入本次录入的教师人数: ");
scanf(”%d",&number);
if(number>MAX_NUM)
{
printf(”您输入的人数太多,大于%d人!\n",MAX_NUM);
return (0);
}
input(stu,number,cn);
return (number+cn);
}
void QueryInfor(teacher stu[],int Max)

char select;
int i;
int findID;
char findNAME[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电话\t E—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%1
0s",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”);
}
}
void EditInfor(teacher stu[],int Max)

int i;
int findID;
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",st
u[i]。

ID,stu[i]。

Age,stu[i]。

Sex,stu[i]。

Birthday,stu[i].Adre
ss,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\t E—mail:”);
scanf(”%s",&stu[i].Email);
}
else
printf(”您输入的教师号不存在!\n”);

DEL(teacherstu[],int Max,int i)
{
for(;i〈Max;i++)
{
stu[i-1].ID=stu[i].ID;
strcpy(stu[i—1]。

Name,stu[i]。

Name);
stu[i-1].Age=stu[i]。

Age;
strcpy(stu[i-1].Sex,stu[i].Sex);
stu[i-1]。

Birthday=stu[i]。

Birthday;
strcpy(stu[i-1].Adress,stu[i]。

Adress);
strcpy(stu[i-1]。

TelNum,stu[i]。

TelNum);
strcpy(stu[i—1].Email,stu[i].Email);
}
return(--Max);
}
DelInfor(teacher stu[],int Max)

int findID,i;
char findNAME[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(teacher stu[],int Max)
{
char select;
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(teacher stu[],int Max,char i)
{
teacher teacher;
int j=0,k,l=0;
if(i=='1')
{
for(k=0;j〈Max;j++)
for(;k<Max-j—1;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 电话\t E-mail\n”);
for(i=0;i<Max;i++)
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); printf(”\n”);
}
}
else if(i==’2’)
{
for(k=0;j<Max;j++)
for(;k<Max—j—1;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 电话\t E-mail\n”);
for(;l<Max;l++)
printf(”%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[],int Max)
{
int i=0 ;
FILE *fp;
if((fp=fopen("stu.txt","w+”))==NULL)
{
printf("ERROR!");
exit(0);
}
for(;i〈Max;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!");

intmain(int argc, char *argv[])
{
char select;
teacher stu[MAX_NUM];
int current_number=0;
select=0;
while(select!='0’)

system(”cls");
DispMainMenu();
select=choice();
switch(select)
{
case '0’:
printf("\n您选择的是退出测试!\n");
/*_beep(300,400);*/
continue;
case ’1':
printf("\n您选择的是信息录入!\n");
current_number=InforInput(stu,current_number);
break;
case ’2’:
printf(”\n您选择的是信息修改!\n");
EditInfor(stu,current_number);
break;
case '3':
printf("\n您选择的是信息查询!\n");
QueryInfor(stu,current_number);
break;
case’4':
printf("\n您选择的是删除信息!\n");
DelInfor(stu,current_number);
break;
case ’5':
printf("\n您选择的是排序信息!\n");
SortInforMenu(stu,current_number);
break;
default:
printf("\n选择错误!请重新选择!\n");
}
system("PAUSE”);
}
return (0);
Save(stu,current_number);
}。

相关文档
最新文档