您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 班级档案管理系统报告文档
题目:班级档案管理系统一、设计任务与目标对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。功能要求:(1)本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:学号、姓名、性别、年龄、备注。(2)本系统显示这样的菜单:请选择系统功能项:a学生基本信息录入b学生基本信息显示c学生基本信息保存d学生基本信息删除e学生基本信息修改(要求先输入密码)f学生基本信息查询(1)按学号查询(2)按姓名查询(3)按性别查询(4)按年龄查询g.退出系统(3)执行一个具体的功能之后,程序将重新显示菜单。(4)将学生基本信息保存到文件中。(5)进入系统之前要先输入密码。二、方案设计与论证主要采用结构体数组,通过scanf函数从键盘输入学生各种信息,每当修改学生信息时需要调用密码验证函数。定义了一个文件指针,密码验证函数中,通过fopen打开已有文本文件,然后通过fgetc逐个读取该文件中的字符来实现。退出系统时向学生信息文件中写入数据并关闭文件就实现了保存文件的功能。三、程序框图或流程图,程序清单与调用关系NYNNY输入密码输出“密码错误”输出“信息录入(1)退出系统(7)“输出“请选择”输入“7”结束结束输出“请选择”输入“1”输出“显示(2)保存(3)删除(4)修改(5)查询(6)”输入“5”输入密码输出“该生不存在”输出“修改信息,输入学号”输入“4”输入学号?输出“该生不存在”进行删除输出“请选择”输入“2”输入“6”输出“通过学号姓名性别年龄进行查询”分别查询四、全部源程序清单#includestdio.h#includestdlib.h#includestring.h#includeconio.h#defineN3structstudent{charname[10];charno[10];charsex;intage;charbnote[100];};voidprint(boolmenu)//打印基本信息{if(!menu){printf(学生基本信息录入,press1\n);}else{printf(学生基本信息显示,press2\n);printf(学生基本信息保存,press3\n);printf(学生基本信息删除,press4\n);printf(学生基本信息修改,press5\n);printf(学生基本信息查询,press6\n);}printf(退出学生信息系统,press7\n);进行修改输出“请选择”输入“2”}boolCheck(charpas[6])//密码验证{FILE*fp;//定义一个文件指针fp,建立一个字符文件charch;chara[7]={};inti=0;if((fp=fopen(c:\\密码.txt,r))==NULL)//打开密码.txt{printf(文件打开失败!\n);exit(0);}ch=fgetc(fp);while(ch!=EOF&&i6){a[i]=ch;ch=fgetc(fp);i++;}a[6]='\0';if(!strcmp(pas,a)){returntrue;}else{printf(密码错误\n);returnfalse;}fclose(fp);}voidGetInformation(structstudent*arr,intn)//学生基本信息录入{for(inti=0;in;i++){printf(输入学生的基本信息:namenosexagebnote\n);scanf(%s%s%c%d%s,arr[i].name,arr[i].no,&arr[i].sex,&arr[i].age,arr[i].bnote);}}voidDisplay(structstudent*arr,intn)//学生基本信息显示{printf(学生信息:namenOsexagenote\n);for(inti=0;in;i++){printf(%5s%5s%5c%5d%5s\n,arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);}}voidSave(structstudent*arr,intn)//学生基本信息保存,保存在c:\\student.txt{FILE*fp;fp=fopen(c:\\student.txt,w+);if(fp==NULL){printf(文件不存在!\n);exit(0);}fwrite(arr,sizeof(structstudent)*n,n,fp);fclose(fp);}voidModfiy(structstudent*arr,intn)//学生基本信息修改{charnumber[10];boolflag=false;charpass[6];printf(请输入密码:\n);scanf(%s,pass);if(Check(pass)){printf(修改学生信息:\n);printf(请输入学号:\n);scanf(%s,number);for(inti=0;in;i++){if(!strcmp(number,arr[i].no)){printf(学生信息:namenosexagenote\n);printf(%10s%10s%10c%10d%10s\n,arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);printf(请输入学生信息:\n);scanf(%s%s%c%d%s,arr[i].name,arr[i].no,&arr[i].sex,&arr[i].age,arr[i].bnote);Save(arr,n);flag=true;}}if(flag==false){printf(该学生不存在!\n);}}}voidDelete(structstudent*arr,intn)//学生基本信息删除{charnumber[10];boolflag=false;printf(删除学生信息:\n);printf(请输入学号:\n);scanf(%s,number);for(inti=0;in;i++){if(!strcmp(number,arr[i].no)){strcpy(arr[i].name,);strcpy(arr[i].no,);strcpy(arr[i].bnote,);arr[i].sex='';arr[i].age=0;Save(arr,n);flag=true;}}if(flag==true){printf(该学生不存在!:\n);}}voidSearch(structstudent*arr,intn)//学生基本信息查询{inttemp,i;boolflag=false;printf(---------------通过学号查询,press1-------------\n);printf(---------------通过姓名查询,press2-----------\n);printf(---------------通过性别查询,press3------------\n);printf(---------------通过年龄查询,press4------------\n);printf(---------------退出,press5------------\n);scanf(%d,&temp);switch(temp){case1://按照学号查询{charnum[10];printf(请输入学号:\n);scanf(%s,num);for(i=0;in;i++){if(!strcmp(num,arr[i].no)){printf(%10s%10s%10c%10d%10s\n,arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);flag=true;}}if(!flag){printf(该学生不存在.\n);}}break;case2://按照姓名查询{charnum[10];printf(请输入姓名:\n);scanf(%s,num);for(i=0;in;i++){if(!strcmp(num,arr[i].name)){printf(%10s%10s%10c%10d%10s,arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);flag=true;}}if(!flag){printf(该学生不存在.\n);}}break;case3://按照性别查询{charch;printf(请输入性别:\n);//scanf(%c,&ch);ch=getch();for(i=0;in;i++){if(ch==arr[i].sex){printf(%10s%10s%10c%10d%10s\n,arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);flag=true;}}if(!flag){printf(该学生不存在.\n);}}break;case4://按照年龄查询{charnum_age;printf(请输入年龄:\n);scanf(%d,&num_age);for(i=0;in;i++){if(num_age==arr[i].age){printf(%10s%10s%10c%10d%10s\n,arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);flag=true;}}if(!flag){printf(该学生不存在.\n);}}break;default:break;}}voidmain(){structstudentarr[N];charps[6];boolflag=false;printf(请输入密码:\n);scanf(%s,ps);flag=Check(ps);if(flag){intselect;print(false);scanf(%d,&select);while(0select&&select7){switch(select){case1:GetInformation(arr,N);print(true);break;case2:Display(arr,N);print(true);break;case3:Save(arr,N);print(true);break;case4:Delete(arr,N);print(true);break;case5:Modfiy(arr,N);print(true);break;case6:Search(arr,N);print(true);break;default:break;}printf(请选择:\n);scanf(%d,&select);}}}五、程序运行的测试与分析六、结论与心得无论什么只有自己真的懂了,才能说出来个所以然。整个过程充满了纠结,不过从各种资料中慢慢发现那是很容易的,思路也清楚了很多,最后做起来也挺容易。七、参考资料C语言课程设计(第三版)谭浩强著=ala0_1_1八、致谢谢谢,谢谢谭浩强老师。谢谢百度老师课程设计成绩评定表对课程设计工作过程的简短介绍和自我评价学生签名:2010年月日(以下由评定小组教师填写)质量评价指标(在相应栏目打√)评价项目评价质量优秀良好一般及格不及格工作量和态度实验、计算可靠性文字和图表质量总体评价评定成绩(百分制)评定小组成员签名2010年月日制定人:王钲璇,苗雨审定人:陈守孔
本文标题:班级档案管理系统报告文档
链接地址:https://www.777doc.com/doc-876737 .html