C语言实训报告完整版_第1页
C语言实训报告完整版_第2页
C语言实训报告完整版_第3页
C语言实训报告完整版_第4页
C语言实训报告完整版_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

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

文档简介

高级程序语言综合实训报告题目:教师管理信息系统学院:计算机科学与信息学院专业:通信工程年级:通信111班学号:_____________学生姓名:________指导教师:_________2012目录摘要……………1实训目的…………………1需求分析…………………1系统设计…………………2运行环境………………2系统结构………………3系统模块设计…………3系统界面设计…………8系统实现…………………11使用的语言……………11模块代码实现…………12单元测试………………19集成测试………………19五、总结………20摘要教师信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。对教师业务档案信息系统的设计和实现进行了初步研究,描述了整个系统的各个功能模块以及相互之间的逻辑关系,并重点对师资队伍统计管理模块、教师信息管理模块进行了详细设计与实现。教师管理系统是典型的信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面.对于前者要求建立数据一致性和完整性强,数据安全性好的数据库.而对于后者则要求应用程序功能完备,易使用等特点。通过本系统,能将教师的信息最大限度的利用的起来,除了能实现传统的教师信息档案存档之外,还提供了教师及相关信息的查询,信息的实时更新,以保证数据的准确性。本系统分为:教师信息录入,教师信息修改,教师信息查询,教师信息打印以及教师账号管理几个功能模块。总的来说能够满足学校对于教师基本信息的管理。实训目的综合应用所学知识的能力模块化程序设计的能力项目组协作开发能力项目文档开发能力项目管理能力项目调试、测试能力二、需求分析(1)可以存储历届的教师档案,管理更为安全、高效;(2)只需一到二名信息管理员即可操作系统,节省大量人力;(3)可以迅速查询及修改所需信息;1(4)友好的界面操作,能保证系统的易用性和方便性;(5)对系统的安全性管理,包括用户的添加以及密码的修改;(6)界面设计函数实现程序运行时的界面效果;(7)鼠标操作控制函数实现鼠标对程序的操作;(8)创建教师信息循环双链表主要实现程序最初运行时教师数据的输入以及其后的运行中教师数据的插入功能;(9)显示函数实现的是显示目前所有的有效教师的记录信息;(10)教师信息查询函数允许按照教师工资或教师学历对教师的各项;每一位教师的记录都包含姓名,以及性别、学历、工资和所任班级、工作量、所任学科,在程序当中,将教师记录类型定义为结构体类型,可以对教师数据进行永久保存,保证每次运行程序都可以采用原来的数据。三、系统设计1、系统的运行环境软件环境:windows7、TurboC2.0集成环境、UCDOS汉字系统硬件环境:CPU80386、500GB硬盘、2GB内存2系统模块设计2.系统结构教师信息教师信息管理系统输入删除插入添加保存格式化菜单管理信息浏览应用查询管理查询管理每个模块的功能:主界面Teacher&lessonF:用来显示教师的信息的面板信息输入模块:教师信息的输入保存模块:教师信息的保存插入/添加模块:教师信息的插入输出模块:格式化输出教师信息3流程图结束开始定义变量unit,flag,temp结束开始定义变量unit,flag,temp定义指针infoinit()flag=1否输入教师信息并对其进行处理是 输入教师信息并对其进行处理是(1)显示第一条记录这一功能的N-S结构图First==LastFirst==LastTFreturnclearP=First->nextPrint(p)(2)显示前一条记录这一功能的N-S结构图First==LastFirst==LastTFreturnclearP=LastPrint(p)(3)显示第一条记录这一功能的N-S结构图First==LastTFirst==LastTFreturnclearP=First->nextPrint(p)p=Last5(4)显示下一条记录这一功能的N-S结构图First==LastFirst==LastTFreturnclearP=First->nextPrint(p)p=p->next从文件读取数据保存数据到磁盘文件删除记录输出记录清楚界面显示信息Sort排序函数教师信息的输入、删除、插入或添加、保存、格式化输出、教师信息的浏览、菜单管理6开始开始输入文件名输出cannotopenfile否是打开文件文件是否空输出outofmemory读取数据是否输出loadsuccess结束文件名是否存在4、系统界面设计本系统的教师信息界面如下图所示:开始界面提示输入教师基本信息输入信息8主界面及示例910四、系统实现使用的语言C语言。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言11硬件环境处理器:IntelPentiumIV2.0硬件空间:建议采用120G以上硬盘空间软件环境操作系统:Windows2000Server数据库:MicrosoftACCESS2003界面设计软件:DreamweaverMXphotoshopcs等2、模块代码实现(1)模块名:输入模块输入:教师的编号,姓名,性别,学历,工作量,教学班级,工资备注:依次信息输入完成(2)每个模块代码实现voidinit(){ First=(TEACHER*)malloc(sizeof(TEACHER)); Last=First; First->prior=Last; Last->next=First; p=First;}模块一:初始化双链表为头结点申请空间将一个指针指向另一个指针voidcreat(){ intunit,flag=0; floattemp; TEACHER*info;12init(); for(;;) { if(flag==1)break; clrscr(); printf("Pleaseenterteacherinfomation\n"); printf("input@endenter\n"); info=(TEACHER*)malloc(sizeof(TEACHER)); if(!info) { printf("\noutofmemory"); exit(0); } printf("No:"); scanf("%s",info->no); if(info->no[0]=='@') { flag=1;break;} printf("Name:"); scanf("%s",info->name); printf("Sex:"); scanf("%s",info->sex); printf("profess:"); scanf("%s",info->profess);printf("Dept:"); scanf("%s",info->dept); printf("Class:"); scanf("%s",info->class); printf("Workload:"); scanf("%f",&temp); info->workload=temp; if(strcmp(info->profess,"prof"))unit=25;if(strcmp(info->profess,"aprof"))unit=20; if(strcmp(info->profess,"lect"))unit=15; if(strcmp(info->profess,"ass"))unit=10;info->lessonf=unit*info->workload; info->next=Last->next; info->prior=Last; Last->next=info; Last=info; First->prior=Last; } return;13}模块二:创建教师信息循环双链表输出:提示输入教师信息,输“@”结束输入:NoNameSexprofessDeptClassWorkload备注:根据职称计算代课费if(strcmp(info->profess,"prof"))unit=25;if(strcmp(info->profess,"aprof"))unit=20; if(strcmp(info->profess,"lect"))unit=15; if(strcmp(info->profess,"ass"))unit=10;voidfirstr(){ if(First==Last)return; clear(); p=First->next; print(p);}voidlastr(){ if(First==Last)return; clear(); p=Last; print(p);}voidpriorr(){ if(First==Last) return; if(p->prior!=First) p=p->prior; else p=Last; clear(); print(p);}voidnextr(){14if(First==Last) return; if(p==Last) p=First->next; else p=p->next; clear(); print(p);}模块三:显示第一条、最后一条、前一条、下一条记录备注:if(First==Last)return; clear(); p=First->next; print(p);voidload(){ TEACHER*p1; FILE*fp; if((fp=fopen("data.txt","rb"))==NULL) { printf("cannotopenfile\n"); return; } while(First->next!=First) { p1=First->next; First->next=p1->next; free(p1); } free(First); First=(TEACHER*)malloc(sizeof(TEACHER)); if(!First) { printf("outofmemory!\n");return; } Last=First; First->prior=Last; Last->next=First;p=First;15while(!feof(fp)) { p1=(TEACHER*)malloc(sizeof(TEACHER)); if(!p1) { printf("outofmemory!\n"); return; } if(1!=fread(p1,sizeof(TEACHER),1,fp)) break; p1->next=Last->next; p1->prior=Last; Last->next=p1; Last=Last->next; First->prior=Last; } fclose(fp);}模块四:从文件读数据while(First->next!=First)如果当前表不空,删除当前表First=(TEACHER*)malloc(sizeof(TEACHER));创建头结点while(!feof(fp))当文件不为空时读数据p1->next=Last->next;将新读出的数据链在当前表尾fclose(fp);关闭文件voidsave(){ FILE*fp; TEACHER*p1; if((fp=fopen("data.txt","wb"))==NULL) { printf("cannotopenfile\n"); return; } p1=First; while(p1->next!=First){fwrite(p1->next,sizeof(TEACHER),1,fp);p1=p1->next;}fclose(fp);}模块五:保存数据到磁盘文件16定义指针if((fp=fopen("data.txt","wb"))==NULL)为输出打开一个文本文件,如果没有则建立如果不能打开文件,显示提示信息,结束程序,返回否则移动指针,当写入下一条记录,指针后移,处理下一条记录关闭文件。voiddelete(){ TEACHER*p1; if(First==Last) return; if(p==First) p=First->next; if(p==Last) Last=p->prior; p1=p; p=p->next; p1->prior->next=p1->next; p1->next->prior=p1->prior; free(p1);}模块六:删除记录voidprint(TEACHER*p){ intx1=70,y1=100; charstr[20]; outtextxy(x1+110,y1+75,p->no); outtextxy(x1+360,y1+75,p->name); outtextxy(x1+110,y1+105,p->sex); outtextxy(x1+360,y1+105,p->profess); outtextxy(x1+110,y1+135,p->dept); outtextxy(x1+360,y1+135,p->class); sprintf(str,"%f",p->workload); outtextxy(x1+110,y1+165,str); sprintf(str,"%f",p->lessonf);17outtextxy(x1+360,y1+165,str);}模块七:输出记录voidclear(){ intx1=70,y1=100,m,n; for(m=0;m<4;m++) for(n=0;n<2;n++) { setfillstyle(1,WHITE); bar(x1+n*250+100,y1+50+m*30+20,x1+n*250+200,y1+50+m*30+40); }}模块八:清楚界面显示信息voidsort(){ TEACHER*p0,*p00,*p1,*p11,*templast; if(First->next==First||First->next->next==First)return; p00=First; p0=First->next; p1=p0->next; First->prior=p0; p0->next=First; templast=p0; while(p1!=First) { p11=p1; p1=p1->next; p00=First; p0=p00->next; while(p0!=First&&p11->workload>p0->workload) { p00=p0; p0=p0->next; } if(p0==First) { p11->next=p00->next;18p11->prior=p00; p00->next=p11; p0->prior=p11; templast=p1; } else { p11->next=p0; p11->prior=p00;模块九:排序函数3、单元测试案例教师信息案例一案例二案例三案例四案例五用例编号12345输入数据1zhangsannanJiaoshoujisuanji112lisinanFujiaoshouJisuanji223wangwunanJiangshiJisuanji334longzhengjunvJiaoshouJisuanji445meiyuanzhenNvjiaoshouJisuanji55预期结果输出教师基本信息输出教师基本信息输出教师基本信息输出教师基本信息输出教师基本信息查测试方法黑盒测试黑盒测试黑盒测试黑盒测试黑盒测试测试结果1zhangsannanJiaoshoujisuanji112lisinanFujiaoshouJisuanji223wangwunanJiangshiJisuanji334longzhengjunvJiaoshouJisuanji445meiyuanzhenNvjiaoshouJisuanji55备注测试结果与预期结果一致测试结果与预期结果一致测试结果与预期结果一致测试结果与预期结果一致测试结果与预期结果一致4、集成测试集成测试序号操作说明效果结果1启动系统TC运行程序

系统生成成功2提示界面是否需要输入新教师信息输入y输入信息否则进主界面成功3输入界面输入no、name、profess、sex、dept、class、workload信息,并根据workload及profess计算lessonf。完成教师信息输入成功4完成输入@+ENTER结束输入转入主界面成功5绘制主界面win()和button()函数绘制主界面及各按钮主界面绘制完成成功6firstr显示第一条记录各文本框显示第一条信息成功7lastr显示最后一条记录各文本框显示最后一条信息成功8priorr显示前一条记录各文本框显示前一条信息成功9nextr显示下一条记录各文本框显示下一条信息成功10save保存数据到文件生成data.txt文件成功11load读取数据从data.txt读取数据成功12sort为信息排序各条信息排序成功13clear清除当前屏幕各文本框变成空白成功14print将所需信息显示到屏幕上各文本框显示当前条目信息成功15exit退出主界面整个程序退出成功五、总结在实训的这两周中,我学到了很多东西,也体会到,真正用心去完成一件事,是要花时间、耗精力去思考这件事该怎么做,怎样做才能更完美。通过这次实训,让我了解到本软件的开发有助于教师信息管理实现自动化,为学校教师的管理奠定良好基础。该设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能20力的重要环节,是对我们学生实际工作能力的具体训练和考察过程.通过数据库课程设

温馨提示

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

评论

0/150

提交评论