课程设计报告课程名称C语言课程设计课题名称学生档案管理系统专业土木工程班级学号姓名指导教师2011年12月27日课程设计任务书课程名称C语言课程设计课题学生档案管理系统任务书下达日期2011年12月26日任务完成日期2012年1月1日一、设计内容与设计要求1.设计内容:对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。1)、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:学号、姓名、性别、年龄、备注。2)、本系统显示这样的菜单:请选择系统功能项:学生基本信息录入学生基本信息显示学生基本信息保存学生基本信息删除学生基本信息修改(要求先输入密码)学生基本信息查询按学号查询按姓名查询按性别查询按年龄查询退出系统3)、执行一个具体的功能之后,程序将重新显示菜单。4)、将学生基本信息保存到文件中。2.设计要求:1)、设计正确,方案合理。2)、界面友好,使用方便。3)、程序精炼,结构清晰。4)、设计报告5000字以上,。5)、上机演示。二、进度安排第18周星期一布置任务,查找资料。星期二确定总体方案,进行详细设计。星期三编写程序,上机调试。星期四编写程序,上机调试。星期五答辩,总结。星期六~星期天写课程设计报告附:课程设计报告装订顺序:封面、任务书、目录、正文、附件、评分(A4大小的图纸及程序清单)。正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体;行距为22。正文的内容:一、1、设计目的2、总体设计(程序设计组成框图、流程图)3、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)4、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施5、总结与体会:课程设计的心得与体会。附件:源程序清单,清单中应有足够的注释正文总字数要求在5000字以上(不含程序原代码)。目录1、设计目的2、总体设计3、详细设计4、调试与测试:5、总结与体会附:源程序清单和执行结果一、设计目的对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。二、总体设计(1)、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:学号、姓名、性别、年龄、备注。(2)、本系统显示这样的菜单:请选择系统功能项:学生基本信息录入学生基本信息显示学生基本信息保存学生基本信息删除学生基本信息修改(要求先输入密码)学生基本信息查询按学号查询按姓名查询按性别查询按年龄查询退出系统(3)、执行一个具体的功能之后,程序将重新显示菜单。(4)、将学生基本信息保存到文件中。三、详细设计1.学生档案管理系统构建框架1、录入学生信息2、显示学生信息3、保存学生信息4、修改学生信息5、查询学生信息6、删除学生信息7、退出管理系统2.学生档案管理系统程序模块设计模块一:头文件,变量定义,函数的声明对系统所使用的变量进行定义,对函数进行声明模块二:密码验证boolCheck(charpas[6])为密码验证函数模块三:学生信息的录入voidGetInfo(structstudent*arr,intn)为学生基本信息录入函数模块四:学生信息的显示voidDisplay(structstudent*arr,intn)为学生基本信息显示函数模块五:学生信息的保存voidSave(structstudent*arr,intn)为学生基本信息保存函数模块六:学生信息的查找voidSearch(structstudent*arr,intn)为学生基本信息查询函数通过switch(temp)设定用学号、姓名、年龄、性别查找四个分支模块七:学生信息的修改voidModfiy(structstudent*arr,intn)为学生基本信息修改函数模块八:学生信息的删除voidDelete(structstudent*arr,intn)为学生基本信息删除函数四、学生档案管理系统程序调试与测试结果学生信息录入学生信息显示学生信息查询1.学号查询2.姓名查询3.性别查询4.年龄查询学生信息保存学生信息删除学生信息修改附录:源程序清单(先在c盘建个文本文件命名为1.txt,在里面写你想要的字符,此字符就是通过密码验证的密码)#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);}boolCheck(charpas[6])//密码验证{FILE*fp;charch;chara[7]={};inti=0;if((fp=fopen(1.txt,r))==NULL){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);}voidGetInfo(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(%15s%15s%15c%15d%15s\n,arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);}}voidSave(structstudent*arr,intn)//学生基本信息保存,保存在student.txt{FILE*fp;fp=fopen(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(infor:namenosexagenote\n);printf(%12s%12s%12c%12d%12s\n,arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);printf(pleaseinputinformation:\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(Deleteinformation:\n);printf(pleaseinputtheno:\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(%12s%12s%12c%12d%12s\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(pleaseinputname:\n);scanf(%s,num);for(i=0;in;i++){if(!strcmp(num,arr[i].name)){printf(%12s%12s%12c%12d%12s,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(%12s%12s%12c%12d%12s\n,arr[i].name,arr[i].no,arr[i].sex,arr[i].age,arr[i].bnote);flag=true;}}if(!flag){printf(t该学生不存在.\n);}}break;case4://按照年龄查询{charnum_age;printf(请输入年龄:\n)