成绩:西安建筑科技大学本科课程设计报告题目:班级档案管理系统学生姓名:谢沛竹马建涛张凯黄兴杨智云学号:110660206110660219110660228110660215110660225院(系):信息与控制工程学院专业:建筑电气及其智能化指导教师:陈俊英2011年12月28日C语言程序设计班级档案管理系统西安建筑科技大学课程设计(论文)任务书专业班级:学生姓名:指导教师:一、课程设计(论文)题目班级档案管理系统二、本次课程设计(论文)应达到的目的本次课程设计的目的是运用计算机语言设计文献管理系统,通过此次课程设计,加深学生对本课程基本知识的理解,提高综合运用知识的能力;掌握本课程的主要内容、工程设计或撰写小论文的步骤和方法;以提高学生独立分析问题、解决问题的能力,逐步增强实际工程训练。三、本次课程设计(论文)任务的主要内容和要求(包括原始数据、技术参数、设计要求等)要求:要求学生在认真复习教材的基础上,查阅相关资料、认真阅读相关的设计要求,按时独立完成任务。课程设计的说明书要求简洁、通顺、计算正确,程序完整、清楚、规范。主要内容:①学生的基本信息采用一个包含N个数据的结构体数组,每个数据的结构应当包括:学号、姓名、性别、年龄、备注。②主要功能:对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。四、应收集的资料及主要参考文献:《C程序设计》谭浩强清华大学出版社《C程序设计课程设计》刘振安机械工业出版社《C语言课程设计》梁旭谷晓琳黄明电子工业出版社五、审核批准意见教研室主任(签字)C语言程序设计班级档案管理系统班级档案管理系统设计总说明一、设计目的:运用计算机语言设计班级档案管理系统,通过此次课程设计,加深对本课程基本知识的理解,提高综合运用知识的能力;掌握本课程的主要内容、工程设计或撰写小论文的步骤和方法;以提高独立分析问题、解决问题的能力,逐步增强实际工程训练。二、设计内容:对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。三、设计方法:结合C语言的有关知识,查阅大量资料,对班级档案管理系统的内容进行构思和设计,在MicrosoftVisualC++6.0平台上完成设计,并进行调试。C语言程序设计班级档案管理系统第一章绪论班级档案管理系统有六种功能,把这6个功能做成6个子函数。在主函数中设计一个菜单对这6个子数进行管理。来实现对整个系统的操作。根据课题的要求,每个数据的结构应当包括:学号(char)、姓名(char)、性别(char)、年龄(int)、备注(char)。对一个有N个学生的班级,通过该系统实现对该班级学生的基本信息进行录入、显示、修改、删除、保存等操作的管理。最后为了以后按照处理后的顺序保存到文件中。C语言程序设计班级档案管理系统第二章系统总体框架和功能分析2.1总体框架:图2.1系统的总体框架示意图2.2功能分析:“学生档案管理系统”包括九个模块:输入学生资料,输出学生资料,学生姓名按顺序排列,添加学生资料,按学号查找,删除该学生资料,查找并显示学生资料,按学号查找,修改该学生资料,从文件中读入数据,储存学生资料并退出系统。每个模块既相互联系又相互独立。主菜单输入学生资料模块输出学生资料模块按学生姓名进行排列模块添加学生资料模块按姓名查找,删除该学生资料模块查找并显示学生资料模块按姓名查找,修改学生资料模块从文件中读入数据模块储存学生资料并退出系统模块C语言程序设计班级档案管理系统本系统根据学生成绩管理的需要,而建立一个“学生成绩管理系统”,以方便对成绩的各项管理操作。本系统能对成绩进行输入和输出;能按姓名对学生进行排序,并显示学生资料、成绩等,不过得以系统输入学生资料、成绩为前提;能添加学生成绩资料;能根据学生的姓名来查询该学生的成绩资料,并修改或是删除该学生信息;能够从文件中读取学生信息,并且添加到系统中;能把对系统所进行的操作进行保存,以及时更新系统中的数据。C语言程序设计班级档案管理系统第三章模块设计与分析3.1输入学生资料模块:主要功能用来对学生的成绩进行收集和输入。在学生信息保存在系统中的前提下,成绩录入需要输入学生资料,比如班级,学号,姓名。在准确输入学生资料后,就可以对该学生的各科成绩进行录入。该学生各科成绩输入成功后,系统会提示是否继续进行操作,如果想继续输入学生成绩就输入y,不想再输入学生成绩的话就输入n,再输入n之后,系统返回到主菜单。3.2输出学生资料模块:主要功能用来对学生的成绩进行输出。在系统已经录入了学生资料成绩的前提下,使用该功能可以显示所有学生的信息,资料等等。具体包括学生的班级,学号,姓名和各科成绩。在查看学生的资料,成绩各方面的信息后,按任意键就可以返回到主菜单。3.3按学生姓名进行排列模块:主要功能是用来对学生的资料按姓名进行排序。在系统保存学生资料,成绩的前提下,使用此功能可以对学生的资料按姓名进行排序,这样就方便查找姓氏相同或是相近的同学的资料。3.4添加学生模块:主要功能是用来添加学生资料,成绩。如果系统有保存学生资料的情况下,想录入学生成绩的话,就不用添加学生资料这模块。如果系统没有保存该学生信息的话,就要使用此模块,在成功添加学生资料后,就可以对该学生进行其他的操作。3.5按学生学号查找并删除模块:主要功能是用来删除学生资料。在系统保存学生资料的前提下,想删除某学生的资料,可以输入学生姓名,系统查找该学生资料后,就可以删除了。由于学生辍学,毕业等原因,及时对系统进行更新,删除一些没用的信息,可以使系统更加优化。3.6按学生学号查找并显示模块:C语言程序设计班级档案管理系统主要功能是用来查找学生资料。在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,这样系统就会显示该学生资料和各科成绩等信息3.7按学生学号查找并修改模块:主要功能是用来修改学生资料。在系统保存了某学生资料的前提下,想要查找该学生资料,可以输入该学生姓名,系统就会显示该学生资料和各科成绩等信息,这样就可以修改该学生的资料,成绩等信息。3.8保存并退出模块:主要功能是用来储存学生资料。在对系统进行一系列操作,比如添加、删除、修改学生资料后,对系统的最新操作进行保存,及时更新系统,方便下一次的操作。C语言程序设计班级档案管理系统第四章详细设计与程序实现4.1采用C语言定义相关数据类型:学生信息包括:学号,姓名,性别、年龄、备注structstudent/*定义常数表示记录数*/{longintnum;//学号charname[20];//姓名charsex;//性别intage;//年龄charbeizhu[20];//备注stu[n-1];/*定义全局结构体数组stu*/}4.2总流程图:进入输入Sele=?录入信息显示信息修改信息删除信息显示程序退出程序输出Sele=5Sele=2Sele=1Sele=3Sele=4退出Sele=5C语言程序设计班级档案管理系统4.3主要源程序代码:#includestdio.h/*I/O函数*/#includestdlib.h/*标准库函数*/#definen4/*定义常数表示记录数*/FILE*fp;/*定义指向FILE类型文件的指针变量*/structstudent/*定义常数表示记录数*/{longintnum;//学号charname[20];//姓名charsex;//性别intage;//年龄charbeizhu[20];//备注stu[n-1];/*定义全局结构体数组stu*/}intmain(){voidinput();//函数声明voidprint();//函数声明voidshift();//函数声明voiddel();//函数声明voidsave();//函数声明voidopen();//函数声明voidmm();//函数声明voidesc();//函数声明mm();//调用mm函数return0;}voidmm()/*定义mm函数,实现主菜单的显示*/{intx;//定义整形变量xprintf(\t\t\t\t***班级档案管理系统***\n);printf(\t\t\t\t1.学生信息录入\n);printf(\t\t\t\t2.学生信息显示\n);printf(\t\t\t\t3.学生信息修改\n);printf(\t\t\t\t4.学生信息删除\n);printf(\t\t\t\t5.保存/退出\n);printf(pleasechoose1,2,3,4or5:);scanf(%d,&x);if(x==1)input();//当x为1时,调用input函数elseif(x==2)print();//当x为2时,调用print函数elseif(x==3)shift();//当x为3时,调用shift函数elseif(x==4)del();//当x为4时,调用del函数C语言程序设计班级档案管理系统elseif(x==5)esc();//当x为5时,调用esc函数}voidinput()/*定义input函数,实现学生信息录入*/{inti;//定义整形变量iprintf(请输入学生信息:学号,姓名,性别,年龄,备注:\n);for(i=0;i(n-1);i++){scanf(%d,%s,%c,%d,%s,&stu[i].num,&stu[i].name,&stu[i].sex,&stu[i].age,&stu[i].beizhu);save();}//调用save函数mm();//调用mm函数}voidprint()/*定义print函数,实现学生信息显示*/{inty;//定义整形变量yopen();//调用open函数printf(pleasechoose0,1or2:);scanf(%d,&y);{printf(%d,%s,%c,%d,%s,stu[y].num,stu[y].name,stu[y].sex,stu[y].age,stu[y].beizhu);printf(\n);}mm();//调用mm函数}voidshift()/*定义shift函数,实现学生信息修改*/{inta,b;//定义整形变量a,bopen();//调用open函数printf(pleasechoose1,2or3:);scanf(%d,&a);b=a-1;printf(%d,%s,%c,%d,%s,stu[b].num,&stu[b].name,stu[b].sex,stu[b].age,&stu[b].beizhu);printf(请输入学生信息:学号,姓名,性别,年龄,备注:\n);scanf(%d,%s,%c,%d,%s,&stu[n].num,&stu[n].name,&stu[n].sex,&stu[n].age,&stu[n].beizhu);stu[b]=stu[n];//将结构体数组变量stu[n]的值赋给结构体数组变量stu[b]save();//调用save函数printf(%d,%s,%c,%d,%s,stu[b].num,&stu[b].name,stu[b].sex,stu[b].age,&stu[b].beizhu);mm();//调用mm函数C语言程序设计班级档案管理系统}voiddel()/*定义del函数,实现学生信息删除*/{intz,i;//定义整形变量在z,iopen();//调用open函数printf(pleasechoose1,2or3:);scanf(%d,&z);for(i=0;i(z-1);i++)、printf(%d,%s,%c,%d,%s,stu[i].num,&stu[i].name,stu[i].sex,stu[i].age,&stu[i].beizhu);printf(\n);for(i=z;i=(n-1);i++)printf(%d,%s,%c,%d,%s,stu[i].num,&stu[i].name,stu[i].