设计题目:学生信息管理系统设计学号:院校班级:姓名:指导老师:目录一、设计题目----------------------------------------------------------3二、概述系统----------------------------------------------------------3三、设计大纲----------------------------------------------------------4四、运行效果图-------------------------------------------------------5五、设计流程图-------------------------------------------------------8六、调试过程--------------------------------------------------------14七、设计总结--------------------------------------------------------14八、参考文献--------------------------------------------------------15九、源程序清单-----------------------------------------------------15-2-学生信息管理系统设计学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:1、系统以菜单方式工作。2、学生信息录入功能——输入。3、学生信息浏览功能——输出。4、学生信息查询功能——算法。按学号查询;按姓名查询。5、学生信息的删除与修改概述系统我主要设计一个能实现学生信息管理系统,让它来运行和管理学生信息。它在现实生活中运用方便的、管理方便。它能输入学生学号、年龄、性别、出生年月、地址电话E-mail。系统以菜单的方式进行工作,进入子菜单后,还可以返回主菜单。在子菜单中的各种操作都有-3-中文说明,操作简单、易懂。只要我们正确的操作系统,系统就无异常现在,当然系统也能对一些基本的错误做出提示,并能让使用者重新进行操作。对各个操作的成功,如:添加学生信息、修改学生信息、删除学生信息,系统都输出“…….的成功”的字样。系统对删除和修改前,还进行“确定”和“取消”。系统对不存在的学号和姓名系统能判断是否存在。对已存在的学号,操作者不能添加和这个学号一样的学生信息,同时系统还提示已有此学号。对于修改、删除和查询,系统遇到不存在的学生能提示没有这个信息。设计大纲分析题目,想想程序所用到的知识点,再进行分析程序的总体构思。对于用到得知识不太了解,先翻翻书,看一下这方面的知识。为了不让程序看起来乱乱的,把程序分成几个大函数,并有几个文字注释函数的作用。这样程序的各个功能就独自成为一个函数。这样有利于我们对程序错误的检查,及对程序的修改和优化。做出菜单栏:1.添加学生信息2.全部学生信息3.修改学生信息4.删除学生信息5.查看学生信息6.退出系统由每一个子菜单做为一个函数。设计大纲:1:查看有关书籍2:建立函数结构体3:编程主函数4:编程各子菜单函数5:检查子函数与主函数之间的联系6:运行程序,如有错误,仔细检查。7:错误操作的捕获。8:查看运行效果,如有以下情况(修改代码):(1)发现问题某功能未实现-4-(2)死循环(3)运行无效(4)没有操作提示信息(5)内存错误运行效果图-5--6--7-设计流程图-8-1开始输入语句选择语句switch(a)添加信息函数全部学生信息修改学生信息删除学生信息查看学生信息退出系统12345判断a值0添加信息函数主函数-9-num100判断num值NYNYYN0判断num是否已存在判断num100提示输入,输入num提示重新输入num提示输入,输入学生信息是否继续添加信息输出提示,输入学号-10-2输出一些文字for(i=0;i=100;i++)Y输出stu[i]的信息0N输出全部信息函数-11-3修改信息函数提示输入,输入学号YY修改信息YYN0NN判断num是否存在输出修改信息,提问是否修改提示num不存在,并提问是否继续修改提问是否继续修改-12-删除信息函数4YYstu[num-1].num=0NNN0Y提示输入,输入删除学号判断是否存在num输出删除的信息并提问是否删除提问是否继续删除输出删除成功说明不存在此信息-13-5提示查询方式,并选择按学号按姓名输入学号num是否存在输出查询信息提问是否继续查询Y输入姓名姓名是否存在提示,并重新输入numNY提示,并重新输入姓名输出查询信息NY提问是否继续查询Y0NN查看信息函数-14-调试过程设计一个程序,错误是难免不了的。但我们可以根据编辑系统给出的一些提示去查看程序错误。对不敢肯定正确的,翻翻书,看一下这一知识。对难度大的就和同学们一起讨论,问一问老师。开发一个系统,耐心是必要的,认真也很重要,构思要明确。认为是哪里错误的,有时用“/**/”注释起来进行,看看是否还有错误。常错有以下几种情况:1.使用变量,但未有定义,则先定义。2.不该用分号的,用到了,把它去掉。3.行最后若有分号则删除,中间若有分号则改成逗号4.若错误行中有if、while、for则要特别注意条件表达式的错误。5.若条件表达式中只有一个等于号,则改成两个等于号。6.for中要用分号分隔表达式,而不是用逗号7.缺少分号,若错误行中有语句没有用分号结束,则加上分号。8.大小写不对,若错误行中有大写字母则一般都改成小写字母。9.若有return语句则函数的类型必须与return后变量的类型一致。设计总结通过本次C程序课程设计,我觉得对自己提高很大:克服了的偷懒的毛病,这在我以后的学习和工作中的心理定位与调节有很大的帮助。我感受到了编程是一项非常烦琐周密的活动,他不但需要一个人周密的思考问题的能力,处理问题的能力,还需要有足够的耐心和严谨治学的作风,来不得半点马虎。通过本次程序设计,我初步学会了程序设计的基本方法,学会了怎样去借鉴别人的方法和经验,知道如何去查找资料和整合处理这些资料的能力,我上网和上图书馆查找资料,编写C语言原程序,然后是进行编译,这个环节是一个非常痛苦和艰难的,常常会因为一小点的错误而在编译失败与再次修改的漫漫循环之路中,但失败的越多,对人的考验就越多,在编译运行成功之后的享受成功的喜悦也就越多,另外在调试程序的过程中不断的思考和运用已经学到的知识,这对于自己是有很大的提高的。-15-参考文献[1]谭浩强著.C语言程序设计(第三版).清华大学出版社,2005[2]谭浩强编著.C程序设计题解与上机指导(第二版)清华大学出版社,1999[3]C编写组编.常用C语言用法速查手册.北京:龙门书局,1995源程序清单#includestdio.hstructstudent/*结构体*/{intnum;charname[20];//学号charsex[5];//姓名intage;//性别charbro[15];//年龄charadd[30];//住址charphone[13];//手机号charem[20];//E-mail}stu[100];//结构体名intlooknum(intnum)/*查看是否有这个学号的函数*/{inti;for(i=0;i=100;i++)if(stu[i].num==num)return(num);}tiaojia()/*添加信息函数*/{intnum,num2,i,x;G:printf(\t请输入学号:);H:scanf(%d,&num);V:if(num100){printf(\n这个学号太大了!\n请输入1--100的学号:);scanf(%d,&num);if(num100)gotoV;printf(\n);}num2=looknum(num);if(num==num2)/*判断这个学号是否存在*/{printf(\n这个学号已经存在,请重新输入另一个学号。);gotoH;}-16-i=num-1;stu[i].num=num;printf(\t请输入姓名:);scanf(%s,stu[i].name);printf(\t请输入性别:);scanf(%s,stu[i].sex);printf(\t请输入年龄:);scanf(%d,&stu[i].age);printf(\t请输入出生日期:);scanf(%s,stu[i].bro);printf(\t请输入住址:);scanf(%s,stu[i].add);printf(\t请输入手机号:);scanf(%s,stu[i].phone);printf(\t请输入E-maill:);scanf(%s,stu[i].em);printf(\n\t*添加信息成功*\n\n);printf(\t1.继续添加\n);printf(\t2.退出添加\n);scanf(%d,&x);switch(x){case1:gotoG;default:break;}}quanbu()/*输出全部信息函数*/{inti;printf(\t\t全部学生信息如下\n\n);printf(学号\t姓名\t性别\t年龄\t出生日期\t住址\t手机号\t\tE-mail\n);for(i=0;i=100;i++)if(stu[i].num!=0)printf(%d\t%s\t%s\t%d\t%s\t%s\t%s\t%s\n,stu[i].num,stu[i].name,stu[i].sex,stu[i].age,stu[i].bro,stu[i].add,stu[i].phone,stu[i].em);}xiugai()/*修改信息函数*/{intx,y,num,num2;K:printf(\t请输入要修改的学号:);scanf(%d,&num);num2=looknum(num);-17-if(num==num2)/*判断这个学号是否存在*/{printf(\n\t这个学号信息如下\n\n);printf(学号\t姓名\t性别\t年龄\t出生日期\t住址\t手机号\t\tE-mail\n);printf(%d\t%s\t%s\t%d\t%s\t%s\t%s\t%s\n,stu[num-1].num,stu[num-1].name,stu[num-1].sex,stu[num-1].age,stu[num-1].bro,stu[num-1].add,stu[num-1].phone,stu[num-1].em);printf(\n\t1.确认修改);printf(\n\t2.取消修改\n);scanf(%d,&x);if(x==1){stu[num-1].num=num;printf(\t请输入姓名:);scanf(%s,stu[num-1].name);printf(\t请输入性别:);scanf(%s,stu[num-1].sex);printf(\t请输入年龄:);scanf(%d,&stu[num-1].age);printf(\t请输入出生日期:);scanf(%s,stu[num-1].bro);printf(\t请输入住址:);scanf(%s,stu[num-1].add);printf(\t请输入手机号:);scanf(%s,stu[num-1].phone);printf(\t请输入E-maill:);scanf(%s,stu[num-1].em);printf(\n\t*修改信息成功*\n);gotoP;}elsegotoP;}else{printf(\n\t没有这个学号,你可能记错了!\n);P:printf(\n\t1.继续修改\n);printf(\t2.退出修改\n);scanf(%d,&y);switch(y){case1:gotoK;default:break;}-18-}}void