教师选择管理系统.docx
- 文档编号:16295396
- 上传时间:2023-07-12
- 格式:DOCX
- 页数:16
- 大小:373.79KB
教师选择管理系统.docx
《教师选择管理系统.docx》由会员分享,可在线阅读,更多相关《教师选择管理系统.docx(16页珍藏版)》请在冰点文库上搜索。
教师选择管理系统
沈阳航空航天大学
课程设计
学号20080402010
班级84020
姓名
指导教师尹航
2010年09月08日
沈阳航空航天大学
课程设计任务书
系:
电子信息工程学院专业:
电子信息工程班级:
840201
学号:
20080402010题目:
教师选择管理系统
一、课程设计时间
2010~11第1学期第2周,即9月6日~9月12日,共计1周,20学时。
二、课程设计内容
运用所学的C语言知识,编制和调试程序,具有如下功能:
(1)教师数据录入
(2)学生选择教师
(3)查询某被选教师的已选学生人数
(4)查询某学生所选的教师
(5)显示所有被选教师的已选学生的人数
(6)教师和学生数据分别保存在teacher.txt和student.txt文件中
注:
教师和学生的具体数据信息可自行设定。
三、课程设计要求
(1)采用模块化程序设计方法;在程序界面,以菜单的形式调用各功能函数;程序可读性强,界面友好;输出形式尽量美观。
(2)课设结束后,上交课程设计说明书,其内容如下:
程序设计题目、需分析(分析题目的要求)、程序框图(总体框图和各功能模块框图)、核心技术的实现及其程序段、总结。
四、指导教师和学生签字
指导教师:
________学生签名:
________
五、成绩
六、教师评语
目录
一、需求分析1
二、设计分析2
三、主要界面截图5
四、技术要点8
五、个人总结10
六、参考文献10
七、源程序11
一、需求分析
该系统是一个较典型的数据选择系统,其使用者被假定为某校的学生。
程序首先定义结构体,再通过4个模块来实现管理系统的查找及已选学生的人数。
通过fopen和fscanf这两个函数实现读取文件。
然后利用for循环对学生选择教师进行选择。
同方法通过查询子程序teacher()子函数查询所有被选教师的已选学生人数。
最后将教师和学生数据都分别保存在teacher.txt文件和student.txt文件中并结束返回。
1.安全性分析
系统的数据涉及到学校上某一门课的同学和教这一门课的老师,数据量较小且是一种基础性数据。
所以数据是比较安全的。
2.稳定性分析
该系统比较健壮,只要是用户的合理操作,系统都应给出合理正确的回应,而不是出现令用户感到意外的系统错误或系统崩溃。
所以该系统很稳定。
3.主要功能分析
(1)教师数据输入:
通过打开文件来实现教师信息的录入。
(2)数据保存:
对于输入的数据,或被修改的数据都保存到磁盘d//teacher.txt和student.txt文件中,实现永久存储。
(3)数据查询:
用户输入查询条件,系统规则地在界面显示查询结果。
当输入学号时,可查询到该学生所选择的老师;当输入教师编号时,可查询到选择该教师的人数。
二、设计分析
主要有4个功能模块,每个模块对应一个C语言自定义函数。
这些函数原型及其功能简述如下:
设置界面函数
录入教师信息
学生选择教师
察看教师情况
察看学生选教师情况
1、程序总体结构图
图1程序总体结构图
2、主要功能模块框图
(1)教师信息录入函数luru
图2教师信息录入函数
(2)学生选择教师函数select
图3学生选择教师函数
(3)显示选择教师人数函数teacher
图4显示选择教师人数函数
(4)显示学生所选择老师函数student
图5显示学生所选择老师函数
三、主要界面截图
图1菜单主界面
图2录入教师信息界面
图3学生选择老师界面
图4显示选择某位教师的人数界面
图5显示学生选择的教师界面
图6教师被选择的情况界面
四、技术要点
1、结构体的应用
定义了结构体用来描述学生的姓名、学号、班级以及三门课程成绩。
具体的定义如下:
structteacher_type
{charnumber[15];charname[20];
intcount;
}tea[SIZE];
structstudent_type
{charnumber[15];
charname[20];charchosen[20];
}stu[size];所定义的结构体主要用于定义数组。
2、文件操作
包括了文件的写入和读取两个方面。
文件的写入操作,用于保存录入的教师数据,也用于保存所修改的数据。
例如如下程序段用于保存录入的教师信息:
voidluru()
{intm;
FILE*fp1;
if((fp1=fopen("d:
\\file14_1.txt","r+"))==NULL)
{printf("Cannotfindthisfile!
\n");
system("pause");
exit(0);}
for(m=0;m {fscanf(fp1,"%s%s%d\n",tea[m].number,tea[m].name,&tea[m].count);/**/printf("%s%s%d\n",tea[m].number,tea[m].name,tea[m].count);}} 五、个人总结 通过这次课程设计,我比以前能更好的使用指针并且能更好的了解文件并能够熟练掌握循环结构的使用。 首先对于指针我形成了两点认识: (1)指针是c语言功能强大的主要表现。 (2)指针的一般手段是通过复量名词间变量。 然后对于文件我了解最深的则是文本文件。 它是先内存单元的数据转换成文本形式,然后将文本数据输出到外存的文件。 除此之外我也对模块化程序设计方法有了进一步了解。 这次C语言课程设计结束了,但我相信在这次课程设计中我所学到的东西会为我在以后学习计算机的道路中打下坚实的基础。 六、参考文献 1谭浩强.C程序设计.北京: 清华大学出版社,2005 2刘成等著《C语言程序设计实验指导与习题集》中国铁道出版社,2006 七、源程序 #include #include #include #include #include #defineSIZE5 #definesize10 structteacher_type {charnumber[15]; charname[20]; intcount; }tea[SIZE]; structstudent_type {charnumber[15]; charname[20]; charchosen[20]; }stu[size]; voidluru() {intm; FILE*fp1; if((fp1=fopen("d: \\teacher.txt","r+"))==NULL) {printf("Cannotfindthisfile! \n"); system("pause"); exit(0);} for(m=0;m { fscanf(fp1,"%s%s%d\n",tea[m].number,tea[m].name,&tea[m].count);/**/ printf("%s%s%d\n",tea[m].number,tea[m].name,tea[m].count);} } voidselect() {inti,m; chara[15],b[15]; FILE*fp1; FILE*fp2; if((fp2=fopen("d: \\student.txt","r+"))==NULL) {printf("Cannotfindthisfile! \n"); system("pause"); exit(0); printf("请输入学号: \n"); scanf("%s",a); for(i=0;i {fscanf(fp2,"%s%s%s\n",stu[i].number,stu[i].name,stu[i].chosen);} i=0; while(strcmp(a,stu[i].number)! =0&&i if(i==size) { printf("不存在这个学生! \n"); exit(0); } if((fp1=fopen("d: \\teacher.txt","r+"))==NULL) {printf("Cannotfindthisfile! \n"); exit(0);} printf("------------------------------------------------------------\n"); for(m=0;m { fscanf(fp1,"%s%s%d\n",tea[m].number,tea[m].name,&tea[m].count); printf("%s%s%d\n",tea[m].number,tea[m].name,tea[m].count);} printf("------------------------------------------------------------\n"); printf("请输入你选择老师的编号: \n"); scanf("%s",b); strcpy(stu[i].chosen,tea[m].name); if((fp1=fopen("d: \\teacher","w+"))==NULL) {printf("Cannotfindthisfile! \n"); system("pause"); exit(0);} if((fp2=fopen("d: \\student.txt","w+"))==NULL) {printf("Cannotfindthisfile! \n"); system("pause"); exit(0);} for(m=0;m { fscanf(fp1,"%s%s%d\n",tea[m].number,tea[m].name,&tea[m].count); if(strcmp(b,tea[m].number)==0) { printf("你已经选择了老师! \n"); tea[m].count++; strcpy(stu[i].chosen,tea[m].name); } } for(i=0;i { fprintf(fp2,"%s%s%s\n",stu[i].number,stu[i].name,stu[i].chosen);} for(m=0;m { fprintf(fp1,"%s%s%d\n",tea[m].number,tea[m].name,tea[m].count); fclose(fp1); fclose(fp2); } voidteacher() {inti,k=0; FILE*fp; chara[15]; if((fp=fopen("d: \\teacher.txt","r"))==NULL) {printf("Cannotfindthisfile! \n"); exit(0);} printf("请输入老师的编号: \n"); scanf("%s",a); for(i=0;i { fscanf(fp,"%s%s%d\n",tea[i].number,tea[i].name,&tea[i].count); if(strcmp(a,tea[i].number)==0) {k+=1; printf("总共%d学生选择老师: %s\n",tea[i].count,tea[i].name); } if(k==0) printf("Incorrectcode! \n"); } fclose(fp);} voidstudent() {inti; chara[15]; FILE*fp; if((fp=fopen("d: \\student.txt","r"))==NULL) {printf("Cannotfindthisfile! \n"); exit(0);} printf("请输入学生的号码: \n"); scanf("%s",a); for(i=0;i {if(strcmp(a,stu[i].number)==0) printf("学生选择老师的号码为: %s\n",stu[i].chosen); } fclose(fp); } voidmain()/*主函数*/ { charr; inti; for(i=0;;i++) { printf("\n\n*--------------------------菜单--------------------------------*\n"); printf("|1.教师数据录入|\n"); printf("|2.学生选择老师|\n"); printf("|3.查询某位教师的学生人数|\n"); printf("|4.查询某位学生所选的教师|\n"); printf("|5.退出|\n"); printf("*--------------------------------------------------------------*\n"); scanf("%s",&r); if(r=='1') luru(); elseif(r=='2') select(); elseif(r=='3') teacher(); elseif(r=='4') student(); elseif(r=='5') exit(0); else {printf("输入数据无效! \n"); continue; }}}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教师 选择 管理 系统