C语言课程设计教师信息管理系统.doc_第1页
C语言课程设计教师信息管理系统.doc_第2页
C语言课程设计教师信息管理系统.doc_第3页
C语言课程设计教师信息管理系统.doc_第4页
C语言课程设计教师信息管理系统.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课程设计任务书题目:教师信息管理系统目 录一、需求分析1二、程序流程图2三、核心技术的实现说明及相应程序段4四、课设总结7五、参考文献8六、源程序91一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为七个模块,每一个模块对应一个函数。在这些函数当中,添加教师数据函数,显示教师数据函数,查询教师信息函数的实现严格按照题目的要求。读取文件函数和保存信息函数对其它函数的实现起辅助作用,主函数及菜单函数控制程序的整体运行。1. 添加教师数据函数 主要实现程序最初运行时教师数据的录入以及其后的运行中教师数据的追加功能;2. 显示函数 实现的是显示目前所有的有效教师的记录信息。3. 教师信息查询函数 允许按照教师工资或教师学历对教师的各项信息进行查询;除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。每一位教师的记录都包含教师号、姓名,以及性别、年龄、学历、工资和电话号码,在程序当中,将教师记录类型定义为结构体类型,添加以及追加的教师信息直接写入E盘的teachers.txt文件中,其它函数每次对学生记录的访问,其数据来源都是teachers.txt文件,这样做不但可以保证教师数据的一致性,而且可以对教师数据进行永久保存,保证每次运行程序都可以采用原来的数据。二、程序流程图1. 程序总体结构图当1 n=1真假添加教师信息函数add() n=2真假显示教师信息函数show() n=3真假查询教师信息函数query()n=4 真 假查询函数query1()退出图1程序总体结构图2. 具体功能框图(1)添加教师数据函数add真 以读方式打开teachers.txt文件成功? 假循环变量i=0当文件未结束时 输出文件打开失败 读取教师信息到teai中 i+ 返回 关闭文件 返回教师人数i+ 关闭文件图2 添加教师数据函数(2)读取教师数据函数reads真 以读方式打开teachers.txt文件成功? 假 循环变量i=0当文件未结束时 输出文件打开失败 读取教师信息到teai中 i+ 返回 关闭文件 返回教师人数i图表 1图3读取学生数据三、核心技术的实现说明及相应程序段本程序主要由七个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。在这些函数当中,添加教师数据函数、显示数据函数和查询函数是程序中较为核心的部分,下面分别进行说明。1. 添加数据函数添加数据分为两种情况,其一是在教师文件(teachers.txt)不存在的情况下,首先由程序创建一个新文件,并将录入的教师信息写入该文件当中;其二是在教师文件(teachers.txt)已经存在的情况下,此时文件以追加的方式打开,这样才可以保证以前已经存在的数据不丢失。具体的程序段如下:if(fp=fopen(e:teachers.txt,a)=NULL) /*如果文件已经存在,可以追加教师信息*/if(fp=fopen(e: teachers.txt,w)=NULL) / 文件不存在时,创建新文件,输入教师信息 printf(文件打开失败!n); return; printf(请输入要添加的教师数量,按回车键确认:); scanf(%d,&n); for(i=1;i=n;i+) printf(n请输入第%d个教师的教师号、姓名,用空格分开,并按回车键确认:n,i); scanf(%s%s,tea.num,); printf(n请输入第%d个教师的性别、年龄、学历、工资、电话,用空格分开,并按回车键确认:n,i); scanf(%s%d%s%f%s,tea.sex,&tea.age,tea.level,&tea.pay,tea.phone); fprintf(fp,%s %s %s %d %s %f %sn,tea.num,,tea.sex,tea.age,tea.level,tea.pay,tea.phone);2. 显示数据函数该函数的核心内容是显示算法。该函数执行时,首先调用reads函数将文件中的教师信息读入数组当中。对教师信息的具体显示算法是在结构体数组中实现的。具体程序段如下:n=reads(tea); printf(*所有的教师信息如下*nn);printf( 序号 教师号 姓名 性别 年龄 学历 工资 电话 n); printf(*n); for(i=0;in;i+) printf(n%3d%12s%8s%8s %3d%11s%11.2f%11sn,i+1,teai.num,,teai.sex,teai.age ,teai.level,teai.pay,teai.phone); getch();3. 信息查询函数查询可分为按教师工资查询和按教师学历查询,由于问题规定是按照工资或者学历都能分别查询,因此应建立两个查询函数。首先应分别定义一个字符和字符串数组,以分别赋予查询条件,然后分别读取教师信息数据,这部分程序仍然调用了reads函数,整个过程在结构体数组tea中实现,如果某教师的信息能够与输入的查询条件相匹配,那么程序会调出该教师的所有信息并输出。如果不能与查询条件匹配,那么则输出“没有找到教师信息”。具体的程序段如下:(按教师工资查询)float pay1; int i,n; n=reads(tea); printf(n请输入待查询的教师工资,按回车键确认:n); scanf(%f,&pay1); for(i=0;in;i+) if(pay1=teai.pay) printf(n%3d%12s%11s%11s%3d%11s%11.2f%11sn,i+1,teai.num,,teai.sex,teai.age,teai.level,teai.pay,teai.phone); else printf(没有找到教师信息 n);具体的程序段如下:(按教师工资查询)har levelN;int i,n; n=reads(tea);printf(n请输入待查询的教师学历,按回车键确认:n);scanf(%s,level); for(i=0;in;i+) if(strcmp(level,teai.level)=0) printf(n%3d%12s%11s%11s%3d%11s%11.2f%11sn,i+1,teai.num,,teai.sex,teai.age,teai.level,teai.pay,teai.phone); else printf(没有找到教师信息 n); 四、课设总结经过了一周的课程设计,我感到编程并不是那么困难和枯燥,我对C语言编程又重新有了浓厚的兴趣。我经过这次编程,对程序的结构有了更加深科的认识,回忆起并熟悉掌握了C语言的一些基础而重要的知识,对程序的调试能力也有了进一步的提高。本次我圆满的完成了程序的编写与调试,所编写的程序能够顺利运行,并能够解决一些实际问题,我感到非常高兴和欣慰,对自己也充满了信心。五、参考文献1 谭浩强C程序设计北京:清华大学出版社,20052 刘成等C语言程序设计实验指导与习题集北京:中国铁道出版社,2006六、源程序#include#include#include#includeconio.h#define N 20struct teacherschar numN; char nameN; char sexN; int age; char levelN; float pay;char phoneN; ;void menu();int reads(struct teachers teaN);void save(struct teachers teaN,int n);void add();void show();void query();void query1();void main()int n; while(1) menu(); printf(n 请输入您要选择的操作序号,按回车键确认:); scanf(%d,&n); switch(n)case 1: add();break;case 2: show();break;case 3: query();break;case 4: query1();break; case 5: exit(0); default: printf(输入错误,请输入列表中存在的序号!n );void menu()printf( * 班级成绩管理系统* ); printf(n 1 添加教师数据); printf(n 2 显示教师数据); printf(n 3 按教师工资查询教师数据);printf(n 4 按教师学历查询教师数据); printf(n 5 退出);int reads(struct teachers teaN) / 读取教师文件中的内容 FILE *fp; int i=0; if(fp=fopen(e:teachers.txt,r)=NULL) printf(文件打开失败!n); return 0; else for(i=0;!feof(fp);i+) fscanf(fp,%s %s %s %d %s %f %sn,teai.num,,teai.sex,&teai.age,teai.level,&teai.pay,teai.phone); fclose(fp); return i;void add()/*添加教师信息*/FILE *fp; int n,i; struct teachers tea; if(fp=fopen(e:teachers.txt,a)=NULL) /如果文件已经存在,可以追加教师信息 if(fp=fopen(e:teachers.txt,w)=NULL) / 文件不存在时,创建新文件,输入教师信息 printf(文件打开失败!n); return; printf(请输入要添加的教师的数量,按回车键确认:); scanf(%d,&n); for(i=0;in;i+) printf(n请输入第%d个教师的教师号、姓名,用空格分开,并按回车键确认:n,i); scanf(%s%s,tea.num,); printf(n请输入第%d个教师的性别、年龄、学历、工资、电话,用空格分开,并按回车键确认:n,i); scanf(%s%d%s%f%s,tea.sex,&tea.age,tea.level,&tea.pay,tea.phone); fprintf(fp,%s %s %s %d %s %f %sn,tea.num,,tea.sex,tea.age,tea.level,tea.pay,tea.phone); fclose(fp);void show()/*显示教师信息*/struct teachers teaN;int i,n; n=reads(tea); printf(*所有的教师信息如下*nn);printf( 序号 教师号 姓名 性别 年龄 学历 工资 电话 n); printf(*n); for(i=0;in;i+) printf(n%3d%12s%8s%8s %3d%11s%11.2f%11sn,i+1,teai.num,,teai.sex,teai.age ,teai.level,teai.pay,teai.phone); getch();void query() / 按教师工资对教师信息查询 struct teachers teaN; float pay1; int i,n; n=reads(tea); printf(n请输入待查询的教师工资,按回车键确认:n); scanf(%f,&pay1); for(i=0;in;i+) if(pay1=teai.pay) printf(n%3d%12s%11s%11s%3d%11s%11.2f%11sn,i+1,teai.num,,teai.sex,teai.age,teai.level,teai.pay,teai.phone); else printf(没有找到教师信息 n);void query1() / 按教师学历对教师信息查询 struct teachers teaN;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论