C语言课程设计报告-选择教师管理系统.doc_第1页
C语言课程设计报告-选择教师管理系统.doc_第2页
C语言课程设计报告-选择教师管理系统.doc_第3页
C语言课程设计报告-选择教师管理系统.doc_第4页
C语言课程设计报告-选择教师管理系统.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

沈 阳 航 空 工 业 学 院 课程设计学 号 班 级 姓 名 指导教师 2007年 9 月 15 日沈 阳 航 院 设 计 用 纸沈阳航空工业学院课程设计任务书院系:电子 专业:电子信息工程 班级:6402101学号:200604021016 题目:选择教师管理系统1、 课程设计时间 2007年9月10日至2007年9月14日,共计1周,20学时2、 课程设计内容 用c语言编写软件完成以下内容: 有5位教师(参见文件file22_1.txt)同时讲同一门课,而学习此课程的学生(参见文件file22_2.txt)可以自由选取上课教师,但每个学生只能选1个老师。请模拟这个“选教师”系统。功能应包括以下方面: 学生选辣椒室(包括改选)。 查询某位教师的学生人数。 查询某位学生所选的教师。 学生人数越多,表示该教师越受欢迎。请按照学生人数降序打印教师名单。 说明:file22_1.txt中数据的排列顺序是:教师号,姓名,学生人数;file22_2.txt中数据的排列顺序是:学号,姓名,教师。3、 课程设计要求 1.程序质量: 观测结构化的程序设计思想。 用户界面友好,功能明确,操作方面。 用户界面中的菜单至少应该包括“选教师”、“查询教师情况”、“查询学生情况”、“降序打印教师名单”、“退出”5选项。 2课程设计说明书: 课程结束后,上交课程设计说明书和源程序。课程设计说明书的格式和内容参见提供的摸板。指导教师: 学生签名: 目录一、需求分析1二、程序流程图2三、核心技术的实现说明及相应程序段6四、个人总结12五、参考文献12六、源程序1214一、需求分析经过我对c语言的所知还有本程序的题目可知分析,整个程序的设计实现大致分为五大模块,其中每一个模块对应一个函数,他们的功能分别是:选择老师、查询老师所选的学生人数、查询学生所选的老师、按选择老师的学生人数的降次顺序打印老师的名单。这些函数的实现严格按照题目的要求,清晰的表达了题设的内容。1、按课程设计需求的内容搜索老师的信息而且将选择的信息输入到file22_1里面;2、查询老师的信息:首先输入老师的姓名,之后在屏幕上现实选择该老师的人数若没有选择该老师的学生则现实人数为0;3、查询学生所选的老师:该过程首先写入学生的学号,屏幕上就会显示该老师的姓名;4、最后一个程序要求就是在屏幕上输出所有文件夹的内容,并且是按降次的顺序现实file22_1中的内容。除上面介绍的功能之外,程序还具有退出功能,可以在程序的一次运行当中循环执行所有的功能,并根据需要终止程序的执行。每一个学生记录都包含学号、姓名,以及该学生所选择老师的姓名,而对老师则有老师的 姓名和选择该老师的学生人数,在程序当中,将学生和老师的记录类型定义为结构体类型,可以对文件中的资料进行读取,并显示和改选。尤其在实行资料的全部进程中都是主要按现实文件夹1中的内容为主。而且数据处于文件中乐意永久保存,保证每次运行程序都可以采用原来的数据。二、程序流程图1、 程序总体结构图 程序流程图 设置界面函数 输入教师和 学生选择 查看教师 查看学生选 教师被选次数学生信息 教师 信息 教师情况 降序排列 主函数 if(fp=fopen(“d:fill22_1.txt”,“w”)=null) 是 否 输出 从键盘输入信息存入文件 文件打不 是否继续开 是 否 继续 输入学生信息并存入文件 输入 是 否 继续 返回 输入if(fp=fopen(“d:fill22_1.txt”,“r+”)=null) 是 否 选择要选课的学生 选择教师代码 for(i=0;isize;i+) 写入文件 输出成功界面 返回图1学生选择教师。 if(fp=fopen(“d:file22_2.txt”,“r”)=null)是 否输入学生学号 文件 打不 for(i=0;isize;i+) 开 if(stui.number=a) k+=1 输出结果 if(fp=fopen(“d: file22_1.txt”,“r”)=null是 否 文件 输入老师号码 打不 for(i=0;isize;i+) 开 读入文件 if(teai.number=a) teai.yxjs=1;k+=1 输出结果 图2查询某位教师的学生人数。 图3某位学生所选的教师。if(fp=fopen(“d:file22_2.txt”,“r”)=null)是 否输入学生学号 文件 打不 for(i=0;isize;i+) 开 if(stui.number=a) k+=1 输出结果if(fp=fopen(d;file22_1.txt,r)=null)是 否 输入教师号码 for(i=0;isize;i+)文件 打不 读入文件开 for(j=0;jsize;j+)for(i=0;iteai+1.yxjs 真 假 teai.yxjs teai+1.yxjs 输出结果 图4学生人数越多,表示该教师越受欢迎。请按照学生人数降序打印教师名单。三、核心技术的实现说明及相应程序段本程序主要由四个自定义函数和一个主函数组成,其中主函数以菜单的形式调用其他函数来实现要求的所有功能。对于这些函数,下面分别进行说明。1、学生自定义选择老师 要使文件file22_1.txt显示,首先应确定打开文件,并定义了个结构体数组,将该文件中的各个数据赋予结构体数组的各个成员,并将输出的结果输入到file22_1的文件里面。具体的程序段如下:void option() file *teacher,*student; int i,j; long int num_teacher,num_student; printf(请输入你的学号:n); scanf(%ld,&num_student) ; printf(请选老师:n); scanf(%ld,&num_teacher); for(i=0;isize;i+) if(num_student=student_listi.num_s) break; for(j=0;j5;j+) if(num_teacher=teacher_listj.num_t) strcpy(student_listi.teacher,teacher_); teacher_listj.count+; break; if(teacher=fopen(g:file22_1.txt,w)=null) printf(找不到这个文件,请确认文件输入是不否错误n); return;for(i=0;i5;i+)fprintf(teacher,%4d %10s %4dn,teacher_listi.num_t,teacher_,teacher_listi.count);if(student=fopen(g:file22_2.txt,w)=null) printf(找不到这个文件,请确认文件输入是不否错误n);return;for(i=0;isize;i+)fprintf(student,%10ld %10s %10sn,student_listi.num_s,student_,student_listi.teacher); fclose(teacher); fclose(student);2、查询选择老师的人数 首先应该学生选择老师,然后把所选择的信息写入file22_1的文件里面。void search_t() int i; char name20; printf(请输入你想查询老师的姓名:n) ; scanf(%s,name); for(i=0;i5) printf(对不起,没有这个老师n); printf(%10dn,teacher_listi.count);3、查询学生所选则的老师首先应该读取老师的文件夹里的内容然后在搜索老师的信息,最后就是把老师的所有信息输出到屏幕上,程序如下void search_s() int i; long num_student; printf(请输入你的学号:n); scanf(%ld,&num_student); for(i=0;isize) printf(the student not exsited); printf(%10sn,student_listi.teacher);void print() int i,j; char temp20; for(i=0;i5;i+) for(j=0;j5-i;j+) if(teacher_listj.countteacher_listj+1.count) strcpy(temp,teacher_); strcpy(teacher_,teacher_listj+1.name); strcpy(teacher_listj+1.name,temp); printf(按降序打印教师名单n); for(i=0;i5;i+) printf(%10sn,teacher_);printf(n);四、个人总结 这个学期一开学就有c语言的课程设计,因为放假没怎么看过,这周做课设,而且需要独立完成。 对我来说有点困难,当要开始设计的时候,文件的操作很吃力,在整个课程设计完成后,总的感觉是收获非常大。 自己一边编程序一边在电脑里输入,经过几天的编程,差不多编完了,然后一运行竟然20多点错误,当时是非常失望,但后来经过细细的检查修改,后来综于把程序做的一点问题没有,这个是非常重要的过程,在改错的过程中懂了不少对c语言的知识,我觉得开这门课程设计课非常有用,以后更对c语言感兴趣,有了学好c语言的新动力。这次c语言课程设计结束了,以后很多地方会用上c语言,我相信通过这次设计打下了坚实的基础。五、参考文献1 谭浩强c程序设计北京:清华大学出版社,20052 刘成等c语言程序设计实验指导与习题集北京:中国铁道出版社,2006六、源程序#includestdio.h#includestdlib.h#includestring.h#define size 10struct teacher int num_t; char name20; int count; teacher_list5;struct student long int num_s; char name20; char teacher20;student_listsize;void load() int i;file *teacher,*student;if(teacher=fopen(g:file22_1.txt,r)=null) printf(找不到这个文件,请确认文件输入是不否错误n); exit(0);if(student=fopen(g:file22_2.txt,r)=null) printf(找不到这个文件,请确认文件输入是不否错误n); exit(0);for(i=0;i5;i+)fscanf(teacher,%d%s%d,&teacher_listi.num_t,teacher_,&teacher_listi.count);for(i=0;isize;i+)fscanf(student,%ld%s%s,&student_listi.num_s,student_,student_listi.teacher); fclose(teacher); fclose(student);void option() file *teacher,*student; int i,j; long int num_teacher,num_student; printf(请输入你的学号:n); scanf(%ld,&num_student) ; printf(请选老师:n); scanf(%ld,&num_teacher); for(i=0;isize;i+) if(num_student=student_listi.num_s) break; for(j=0;j5;j+) if(num_teacher=teacher_listj.num_t) strcpy(student_listi.teacher,teacher_); teacher_listj.count+; break; if(teacher=fopen(g:file22_1.txt,w)=null) printf(找不到这个文件,请确认文件输入是不否错误n); return;for(i=0;i5;i+)fprintf(teacher,%4d %10s %4dn,teacher_listi.num_t,teacher_,teacher_listi.count);if(student=fopen(g:file22_2.txt,w)=null) printf(找不到这个文件,请确认文件输入是不否错误n);return;for(i=0;isize;i+)fprintf(student,%10ld %10s %10sn,student_listi.num_s,student_,student_listi.teacher); fclose(teacher); fclose(student);void search_t() int i; char name20; printf(请输入你想查询老师的姓名:n) ; scanf(%s,name); for(i=0;i5) printf(对不起,没有这个老师n); printf(%10dn,teacher_listi.count);void search_s() int i; long num_student; printf(请输入你的学号:n); scanf(%ld,&num_student); for(i=0;isize) printf(the student

温馨提示

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

评论

0/150

提交评论