收藏 分销(赏)

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

上传人:天**** 文档编号:4356965 上传时间:2024-09-12 格式:DOC 页数:24 大小:653KB
下载 相关 举报
教师信息管理系统(设计说明书范本).doc_第1页
第1页 / 共24页
教师信息管理系统(设计说明书范本).doc_第2页
第2页 / 共24页
点击查看更多>>
资源描述
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 系统总体设计 一.功能模块图 main 欢迎界面 选项 退 出 并 存 盘 教师信息查询 教师信息删除 教师信息排序 教师信息录入 教师信息修改 二。总体数据结构 本系统采用结构体为主要数据结构,将教师信息,包括:教师号,姓名,年龄,性别,出生年月,地址,电话,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(
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服