数学与计算机学院课程设计说明书课程名称:程序设计语言-课程设计课程代码:题目:学生信息管理系统年级/专业/班:学生姓名:学号:开始时间:2010年12月日完成时间:2010年12月日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书撰写质量(45)总分(100)指导教师签名:年月日西华大学数计学院课程设计说明书I目录1引言................................................................31.1问题的提出..........................................................31.2国内外研究的现状....................................................31.5任务与分析..........................................................32.程序的主要功能.......................................................32.1录入功能............................................................32.2删除信息............................................错误!未定义书签。2.3查询功能............................................错误!未定义书签。2.4修改功能............................................错误!未定义书签。2.5保存功能............................................错误!未定义书签。2.6退出系统3程序运行平台..........................................................44总体设计..............................................................45模块分析..............................................................55.1录入模块............................................................55.2删除模块............................................错误!未定义书签。5.3查询模块............................................................85.4修改模块............................................错误!未定义书签。5.5保存模块...........................................................105.6退出系统模块........................................错误!未定义书签。6系统测试...............................................错误!未定义书签。7结论.................................................................16附录.....................................................................西华大学数计学院课程设计说明书II摘要随着计算机的普及,计算机系统越来使用于社会的各个领域。社会需求以及市场竞争等日新月异、瞬息万变,在这种情况下,信息进入重要资源的行列。随着信息技术的推广应用和信息资源的不断开发利用,管理信息化正在往广度和深度发展,这导致信息管理在整个管理中地位的提升。信息管理渗透于和体现在各种管理的全部过程。可以说,现代企业和组织若无信息管理,也就谈不上任何管理了。教育也不例外。自从有了计算机以后,好的管理系统能够使教育更加繁荣,更加规范化,提高了教育人士的办事效率,创造出无形的价值,让学生更好的发展。在以前没有学生信息管理系统,上层无法对学生的信息有很好的了解和管理,一旦需要了解学生的具体信息时,却发现没有学生完整的信息资料。因此,针对这些问题,设计学生信息管理系统解决对学生每人的统计,能够随意调出每个学生的信息情况查询,能够输出一览表,直观的快速的看到想看的学生的有关信息。对各种数据自动化计算,大大提高了工作效率。关键词:学生信息管理系统;学生;管理西华大学数计学院课程设计说明书31引言1.1问题的提出在现代化的教育管理中,对学生信息的管理是一件很重要但又很复杂的事,所以利用计算机软件进行辅助管理可以大大的提高效率,所以我们可以利用计算机语言来开发一种对学生信息进行管理的软件,这种软件不但可以对学生信息进行管理,稍微修改其中的一些程序是也能对大小企业职工的信息进行管理,可谓是一举多得,所以很有必要开发出这种软件。1.2国内外研究的现状已成功应用于各个企业,现在学校已基本上全部使用。1.3任务与分析编制一个学生信息管理系统,每个学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。具体功能:(1)系统以菜单方式工作(2)学生信息录入功能(学生信息用文件保存)---输入(2)学生信息浏览功能---输出(3)查询---算法(5)按学号或姓名进行查询(6)按学号或姓名进行学生信息的删除与修改2程序的主要功能2.1录入功能添加学生的基本信息,包括学号、姓名、性别、年龄、家庭住址、电话和E-mail。2.2删除功能输入要删除学生的学号或姓名,就能删除学生的所有信息。2.3查询功能选择查询方式,按学号查询,根据您所键入的学生的学号,显示其详细的信息,即学号、姓名、性别、年龄、家庭住址、电话和E-mail;按姓名查询,根据您所键入的学生的姓名,显示其详细的信息,即学号、姓名、性别、年龄、西华大学数计学院课程设计说明书4家庭住址、电话和E-mail。2.4修改功能选择您想修改学生的信息,输入您想输入的数据,完成修改。进行查询时,您可以看到您修改后的学生的新信息。2.5修改功能对已经输入文件的信息进行保存。3程序运行平台VC++6.0。具体操作如下:新建工程,建立新的源文件,再编译,链接,执行,调试4总体设计图4.1系统总体框架图主函数录入信息删除信息查询信息修改信息保存信息退出系统西华大学数计学院课程设计说明书55模块分析5.1录入模块设计思想:使用结构体存储信息,再写入文件中。流程图:图5.1录入信息流程图voidAdd(Linkl)//学生信息的录入{Node*p,*r,*s;charnum[10];r=l;s=l-next;while(r-next!=NULL)r=r-next;//将指针至于最末尾while(1){printf(请你输入学号(以'0'返回上一级菜单:));scanf(%s,num);if(strcmp(num,0)==0)break;while(s){if(strcmp(s-data.num,num)==0){printf(=====提示:学号为'%s'的学生已经存在,若要修改请你选择'4修改'!\n,num);printstart();printc();printe(s);printstart();printf(\n);return;开始写入文件输入学生信息结束西华大学数计学院课程设计说明书6}s=s-next;}p=(Node*)malloc(sizeof(Node));strcpy(p-data.num,num);printf(请你输入姓名:);scanf(%s,p-data.name);getchar();printf(请你输入性别:);scanf(%s,p-data.sex);getchar();printf(请你输入年龄:);scanf(%s,&p-data.age);getchar();printf(请你输入出生日期:);scanf(%s,&p-data.birth);getchar();printf(请你输入地址:);scanf(%s,&p-data.address);getchar();printf(请你输入E-mail地址:);scanf(%s,&p-data.mail);getchar();printf(请你输入电话号码:);scanf(%s,&p-data.phone);getchar();p-next=NULL;r-next=p;r=p;shoudsave=1;}}}5.2删除模块输入学号或姓名对学生信息进行删除。核心代码是voidDel(Linkl)//删除{intsel;西华大学数计学院课程设计说明书7Node*p,*r;charfindmess[20];if(!l-next){printf(\n=====提示:没有资料可以删除!\n);return;}printf(\n=====1按学号删除\n=====2按姓名删除\n);scanf(%d,&sel);if(sel==1){printf(请你输入要删除的学号:);scanf(%s,findmess);p=Locate(l,findmess,num);if(p){r=l;while(r-next!=p)r=r-next;r-next=p-next;free(p);printf(\n=====提示:该学生已经成功删除!\n);shoudsave=1;}elseNofind();}elseif(sel==2){printf(请你输入要删除的姓名:);scanf(%s,findmess);西华大学数计学院课程设计说明书8p=Locate(l,findmess,name);if(p){r=l;while(r-next!=p)r=r-next;r-next=p-next;free(p);printf(\n=====提示:该学生已经成功删除!\n);shoudsave=1;}elseNofind();}elseWrong();}5.3查询模块设计思想:首先由用户输入要查找的学生姓名或学号,然后系统用查找函数查找,然后系统就调用输出函数,输出所查找的学生资料。流程图:西华大学数计学院课程设计说明书9图5.2查询信息流程图核心代码是Node*Locate(Linkl,charfindmess[],charnameornum[])//此函数用于定位链表中符合要求的节点,并返回该指针{Node*r;if(strcmp(nameornum,num)==0)//按学号查询{r=l-next;while(r!=NULL){if(strcmp(r-data.num,findmess)==0)returnr;r=r-next;}}elseif(strcmp(nameornum,name)==0)//按姓名查询开始方式姓名学号存在?输出学生信息结束西华大学数计学院课程设计说明书10{r=l-next;while(r!=NULL){if(strcmp(r-data.name,findmess)==0)returnr;r=r-next;}}return0;}5.4修改模块设计思想:首先由用户输入要修改的单个学生的学号或姓名,然后调用修改函数,选择要修改的学生信息,修改该学生的信息。通过写入来覆盖对应位置的学生信息。流程图:图:修改信息流程图核心代码是voidModify(Linkl){Node*p;charfindmess[20];if(!l-next){printf(\n=====提