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

时间:2024.4.7

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以结构体的形式存储在计算机中。

struct  TEACHER {

 int ID;

 char Name[10];

 int Age;

 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[],int Max,int cn);

函数功能:录入教师信息

函数原型:int findteacherID(teacher stu[],int findID,int Max);

函数功能:按编号查找教师信息

函数原型:int findteacherNAME(teacher stu[],char findNAME[10],int Max)

函数功能:按姓名查找教师信息

函数原型:void DisplayInfor(teacher stu[],int Max);

函数功能:显示教师信息

函数原型:void DispQueryMenu();

函数功能:显示查询菜单

函数原型:int InforInput(teacher stu[],int cn);

函数功能:输入要录入的教师信息条数

函数原型:void QueryInfor(teacher stu[],int Max);

函数功能:信息查询

函数原型:void EditInfor(teacher stu[],int Max);

函数功能:修改教师信息(信息编辑)

函数原型:DEL(teacher stu[],int Max,int i)

函数功能:删除数据项

函数原型:DelInfor(teacher stu[],int Max)

函数功能:删除信息

函数原型:SortInforMenu(teacher stu[],int Max)

函数功能:显示排序菜单

函数原型:SortInfor(teacher stu[],int Max,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  电话\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;

}

(二)按姓名查找

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");

  }

}

模块五:修改教师信息

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",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;

 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(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 {

 int ID;

 char Name[10];

 int Age;

 char Sex[2];

 int Birthday;

 char Adress[15];

 char TelNum[12];

 char Email[10];

};

typedef struct TEACHER teacher;

void input(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()

{

 char select;

    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;

}

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;

}

int InforInput(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  电话\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");

  }

}

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",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");

}

DEL(teacher stu[],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(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!");

}

int main(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);

}

更多相关推荐:
商品管理信息系统分析与设计报告

商品管理信息系统设计报告学号11061110姓名彭会静日期20xx11271商品管理信息系统设计一系统总体功能结构设计该超市信息管理系统的总体功能结构可分为人事档案管理库存管理和密码管理人事档案管理包括档案查询...

管理信息系统课程设计报告

管理信息系统课程设计报告仓库管理系统学院班级姓名学号仓库管理系统的设计和实现一绪论企业的物资管理往往是很繁琐的由于所掌握的物资种类众多订货管理发放的渠道各有差异各个企业之间的管体制不尽相同各类统计计划报表繁多等...

《管理信息系统》课程设计报告

管理信息系统设计报告院系班级姓名学号辅导老师徐恒实验题目航班售票管理系统设计报告完成日期20xx年5月17日1目录一实验题目3二实验目的3三实验内容3系统分析3一必要性分析3二可行性分析3三航班售票管理系统业务...

《管理信息系统》课程设计报告范文

1摘要企业工资管理系统是公司管理的一个重要内容是一种典型的管理系统企业工资管理系统是公司管理的一个重要内容是一种典型的管理系统其开发主要包括后台的数据库的建立维护以及前端的相应应用程序的开发两个方面的内容系统的...

管理信息系统企业分析与设计报告

海南大学三亚学院企业信息系统分析与设计实习报告报告题目三亚宏远酒店管理系统分析与设计报告分院管理分院专业信息管理与信息系统班级信管0902姓名学号091066002小组成员蔡小倩谢小芳指导教师陈芳芳张鑫20xx...

管理信息系统实验报告设计参考资料

经济管理学院管理信息系统实验报告设计参考资料管理信息系统实验报告目录一系统需求分析311问题的提出312可行性分析313系统的设计目标3二系统设计421系统设计422系统运行环境4三系统结构框架431系统结构框...

管理信息系统实验报告简易范例

管理信息系统实验报告学院里仁学院1图书管理信息系统分析与设计1问题的提出1开发背景系统开发的背景近年来随着图书馆规模的不断扩大图书数量也相应的增加有关图书的各种信息量也成倍增加面对着庞大的信息量传统的人工方式管...

管理信息系统企业分析与设计报告

企业信息系统分析与设计院系专业信息管理与信息系统班级姓名学号数信分院20xx11刘鑫20xx08341117摘要酒店管理系统是典型的信息管理系统的一部份而且是必不可少的一部份其开发主要包括后台数据库的建立和维护...

某中小型企业管理信息系统分析与设计报告

某中小型物流企业管理信息系统分析与设计报告沿海省份某中小型物流企业拥有五个大小不同的仓库并组建有自己的运输车队拥有各种运输车辆共19台企业员工人数达90多人主要从事为周边多家生产型企业提供原材料产成品的仓储管理...

管理信息系统分析实验报告

华北科技学院管理系实验报告册实验课程名称:管理信息系统实验项目序号:实验一实验项目名称:系统分析实验室名称:电子商务实验室开课学期:20XX20XX学年第一学期授课教师:XXX实验指导教师XXX专业:工商管理本…

管理信息系统课程设计报告(标准格式)

管理信息系统课程设计报告题目库存管理信息系统学生姓名指导教师成绩日期20xx年9月8号目录目录2摘要3库存管理管理信息系统4第一章现行系统概述4第二章系统分析41需求分析42可行性研究521目标与方案可行性52...

管理信息系统课程设计报告书

课程设计报告书题目企业库存系统开发报告书院系20xx年6月2日开发背景介绍企业的库存物资管理往往是很复杂很繁琐的由于所掌握的物资种类众多订货管理发放的渠道各有差异各个企业之间的管理体制不尽相同各类统计报表繁多因...

管理信息系统设计报告(20篇)