您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > C语言课程设计-学院教学信息管理系统
1课程设计任务书题目:学院教学信息管理系统一、课程设计时间共计1周,20学时。二、课程设计内容用C语言编写具有以下功能的程序:1、输入:输入每一位教师记录,将其信息写入文件中。2、显示:显示每位教师记录。3、排序:按职工号或教学效果综合评分进行排序,并显示。4、查找:完成按姓名或课程查找教师的相关记录,并显示。分步实施:三、课程设计要求1).程序质量:1、用C语言实现程序设计;2、利用结构体数组实现教师信息的保存;3、系统的各个功能模块要求用函数实现;4、界面友好(良好的人机交互),程序加必要的注释。2).课程设计说明书:用A4手写实验报告书,封面统一,并提交程序源代码。每个学生建立自己的目录,程序都放在自己的目录内(目录名形式为:学号_姓名)。四、指导教师和学生签字指导教师:________学生签名:________五、说明书成绩六、教师评语I目录一、需求分析......................................错误!未定义书签。二、程序流程图..................................错误!未定义书签。三、核心技术的实现说明及相应程序段..错误!未定义书签。四、课设总结......................................错误!未定义书签。五、参考文献......................................错误!未定义书签。六、源程序..........................................错误!未定义书签。1一、需求分析经过对程序设计题目的分析可知,整个程序的设计实现大致分为七个模块,每一个模块对应一个函数。在这些函数当中,添加教师数据函数,显示教师数据函数,查询教师信息函数的实现严格按照题目的要求。读取文件函数和保存信息函数对其它函数的实现起辅助作用,主函数及菜单函数控制程序的整体运行。1.添加教师数据函数主要实现程序最初运行时教师数据的录入以及其后的运行中教师数据的追加功能;2.显示函数实现的是显示目前所有的有效教师的记录信息。3.教师信息查询函数允许按照教师姓名或教师课程对教师的各项信息进行查询;除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。每一位教师的记录都包含教师号、姓名,以及性别、年龄、课程、工资和电话号码,在程序当中,将教师记录类型定义为结构体类型,添加以及追加的教师信息直接写入E盘的teachers.txt2文件中,其它函数每次对教师记录的访问,其数据来源都是teachers.txt文件,这样做不但可以保证教师数据的一致性,而且可以对教师数据进行永久保存,保证每次运行程序都可以采用原来的数据。二、程序流程图1.程序总体结构图当1n=1真假添加教师信息函数add()n=2真假显示教师信息函数show()n=3真假查询教师信息函数query()n=4真假查询函数query1()退出图1程序总体结构图2.具体功能框图(1)添加教师数据函数add3图2添加教师数据函数(2)读取教师数据函数reads图表1真以读方式打开teachers.txt文件成功?假循环变量i=0当文件未结束时输出文件打开失败读取教师信息到tea[i]中i++返回关闭文件返回教师人数i真以读方式打开teachers.txt文件成功?假循环变量i=0当文件未结束时输出文件打开失败读取教师信息到tea[i]中i++返回关闭文件返回教师人数i++关闭文件4图3读取教师数据三、核心技术的实现说明及相应程序段本程序主要由七个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其它函数来实现要求的所有功能。在这些函数当中,添加教师数据函数、显示数据函数和查询函数是程序中较为核心的部分,下面分别进行说明。1.添加数据函数添加数据分为两种情况,其一是在教师文件(teachers.txt)不存在的情况下,首先由程序创建一个新文件,并将录入的教师信息写入该文件当中;其二是在教师文件(teachers.txt)已经存在的情况下,此时文件以追加的方式打开,这样才可以保证以前已经存在的数据不丢失。具体的程序段如下:5structteacherstea;if((fp=fopen(e:\\teachers.txt,a))==NULL)//如果文件已经存在,可以追加教师信息{if((fp=fopen(e:\\teachers.txt,w))==NULL)//文件不存在时,创建新文件,输入教师信息{printf(文件打开失败!\n);return;}}printf(请输入要添加的教师的数量,按回车键确认:);scanf_s(%d,&n);for(i=0;in;i++){printf(\n请输入第%d个教师的工号、姓名,用空格分开,并按回车键确认:\n,i);scanf_s(%s%s,tea.num,tea.name);printf(\n请输入第%d个教师的性别、年龄、课程、工资、电话,用空格分开,并按回车键确认:\n,i);scanf_s(%s%d%s%f%s,tea.sex,&tea.age,tea.lesson,&tea.pay,tea.phone);fprintf(fp,%s%s%s%d%s%f%s\n,tea.num,tea.name,tea.sex,tea.age,tea.lesson,tea.pay,tea.phone);}fclose(fp);}2.显示数据函数该函数的核心内容是显示算法。该函数执行时,首先调用reads函数将文件中的教师信息读入数组当中。对教师信息的具体显示算法是在结构体数组中实现的。具体程序段如下:6inti,n;n=reads(tea);printf(*********************所有的教师信息如下**********************\n\n);printf(序号工号姓名性别年龄课程工资电话\n);printf(*************************************************************\n);for(i=0;in;i++)printf(\n%3d%12s%8s%8s%3d%11s%11.2f%11s\n,i+1,tea[i].num,tea[i].name,tea[i].sex,tea[i].age,tea[i].lesson,tea[i].pay,tea[i].phone);getch();3.信息查询函数查询可分为按教师姓名查询和按教师课程查询,由于问题规定是按照姓名或者课程都能分别查询,因此应建立两个查询函数。首先应分别定义一个字符和字符串数组,以分别赋予查询条件,然后分别读取教师信息数据,这部分程序仍然调用了reads函数,整个过程在结构体数组tea中实现,如果某教师的信息能够与输入的查询条件相匹配,那么程序会调出该教师的所有信息并输出。如果不能与查询条件匹配,那么则输出“没有找到教师信息”。具体的程序段如下:(按教师姓名查询)inti,n;n=reads(tea);7printf(\n请输入待查询的教师姓名,按回车键确认:\n);scanf_s(%s,&name);for(i=0;in;i++)if(strcmp(name,tea[i].name)==0)printf(\n%3d%12s%11s%11s%3d%11s%11.2f%11s\n,i+1,tea[i].num,tea[i].name,tea[i].sex,tea[i].age,tea[i].lesson,tea[i].pay,tea[i].phone);elseprintf(没有找到教师信息\n);}具体的程序段如下:(按教师课程查询)inti,n;n=reads(tea);printf(\n请输入待查询的教师课程,按回车键确认:\n);scanf_s(%s,lesson);for(i=0;in;i++)if(strcmp(lesson,tea[i].lesson)==0)printf(\n%3d%12s%11s%11s%3d%11s%11.2f%11s\n,i+1,tea[i].num,tea[i].name,tea[i].sex,tea[i].age,tea[i].lesson,tea[i].pay,tea[i].phone);elseprintf(没有找到教师信息\n);}四、课设总结经过了一周的课程设计,我感到编程并不是那么困难和枯燥,我对C语言编程又重新有了浓厚的兴趣。我经过这次编程,8对程序的结构有了更加深科的认识,回忆起并熟悉掌握了C语言的一些基础而重要的知识,对程序的调试能力也有了进一步的提高。本次我圆满的完成了程序的编写与调试,所编写的程序能够顺利运行,并能够解决一些实际问题,我感到非常高兴和欣慰,对自己也充满了信心。五、参考文献1谭浩强.C程序设计.北京:清华大学出版社,20052刘成等.C语言程序设计实验指导与习题集.北京:中国铁道出版社,2006六、源程序#includestdafx.h#includestring.h#includestdlib.h#includeconio.h#defineN20structteachers{charnum[N];charname[N];charsex[N];intage;charlesson[N];floatpay;9charphone[N];};voidmenu();intreads(structteacherstea[N]);voidsave(structteacherstea[N],intn);voidadd();voidshow();voidquery();voidquery1();voidmain(){intn;while(1){menu();printf(\n请输入您要选择的操作序号,按回车键确认:);scanf_s(%d,&n);switch(n){case1:add();break;case2:show();break;case3:query();break;case4:query1();break;case5:exit(0);default:printf(输入错误,请输入列表中存在的序号!\n);}}}voidmenu(){printf(*************************学院教学信息管理系统************************);printf(\n1添加教师数据);printf(\n2显示教师数据);10printf(\n3按教师姓名查询教师数据);printf(\n4按教师课程查询教师数据);printf(\n5退出);}intreads(structteacherstea[N])//读取教师文件中的内容{FILE*fp;inti=0;if((fp=fopen(e:\\teachers.txt,r))==NULL){printf(文件打开失败!\n);return0;}else{for(i=0;!feof(fp);i++)fscanf_s(fp,%s%s%s%d%s%f%s\n,tea[i].num,tea[i].name,tea[i].sex,&tea[i].age,tea[i].lesson,&tea[i].pay,tea[i].phone);}fclose(fp);returni;}voidadd()/*添加教师信息*/{FILE*fp;intn,i;structteacherstea;if((fp=fopen(e:\\teachers.txt,a))==NULL)//如果文件已经存在,可以追加教师信息{if((fp=fopen(e:\\teachers.txt,w))==NULL)//文件不存在时,创建新文件,11输入教师信息{printf(文件打开失败!\n);return;}}printf(请输入要添加的教师的数量,按回车键确认:);scanf_s(%d,&n);for(
本文标题:C语言课程设计-学院教学信息管理系统
链接地址:https://www.777doc.com/doc-4598996 .html