《最新C语言程序设计与报告:学生信息管理系统设计.doc》由会员分享,可在线阅读,更多相关《最新C语言程序设计与报告:学生信息管理系统设计.doc(60页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateC语言程序设计与报告:学生信息管理系统设计邕 江 大 学设计题目:学生信息管理系统设计学号:院校班级:姓名:指导老师:目 录一、设计题目-3二、概述系统-3三、设计大纲-4四、运行效果图-5五、设计流程图-8六、调试过程-14七、设计总结-14八、参考文献-15九、源程序清单-15学生信息管理系统设计学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-ma
2、il等。试设计一学生信息管理系统,使之能提供以下功能:1、 系统以菜单方式工作。2、 学生信息录入功能输入。3、 学生信息浏览功能输出。4、 学生信息查询功能算法。按学号查询;按姓名查询。5、 学生信息的删除与修改概述系统我主要设计一个能实现学生信息管理系统,让它来运行和管理学生信息。它在现实生活中运用方便的、管理方便。它能输入学生学号、年龄、性别、出生年月、地址电话E-mail。系统以菜单的方式进行工作,进入子菜单后,还可以返回主菜单。在子菜单中的各种操作都有中文说明,操作简单、易懂。只要我们正确的操作系统,系统就无异常现在,当然系统也能对一些基本的错误做出提示,并能让使用者重新进行操作。对
3、各个操作的成功,如:添加学生信息、修改学生信息、删除学生信息,系统都输出“.的成功”的字样。系统对删除和修改前,还进行“确定”和“取消”。系统对不存在的学号和姓名系统能判断是否存在。对已存在的学号,操作者不能添加和这个学号一样的学生信息,同时系统还提示已有此学号。对于修改、删除和查询,系统遇到不存在的学生能提示没有这个信息。设计大纲分析题目,想想程序所用到的知识点,再进行分析程序的总体构思。对于用到得知识不太了解,先翻翻书,看一下这方面的知识。为了不让程序看起来乱乱的,把程序分成几个大函数,并有几个文字注释函数的作用。这样程序的各个功能就独自成为一个函数。这样有利于我们对程序错误的检查,及对程
4、序的修改和优化。做出菜单栏:1.添加学生信息 2.全部学生信息 3.修改学生信息 4.删除学生信息 5.查看学生信息 6.退出系统由每一个子菜单做为一个函数。设计大纲:1:查看有关书籍2:建立函数结构体3:编程主函数4:编程各子菜单函数5:检查子函数与主函数之间的联系6:运行程序,如有错误,仔细检查。7:错误操作的捕获。8:查看运行效果,如有以下情况(修改代码):(1)发现问题某功能未实现(2)死循环(3)运行无效(4)没有操作提示信息(5)内存错误运行效果图 设计流程图开始0主函数输入语句判断a值选择语句switch(a)退出系 统查看学生信 息删除学生信 息修改学生信 息全部学生信 息添加
5、信息函 数154321添加信息函数0num100判断num值NYNYYN0判断num是否已存在判断num100提示输入,输入num提示重新输入num提示输入,输入学生信息是否继续添加信息2输出一些文字for(i=0;i=100;i+)Y输出stui的信息0N输出全部信息函数3修改信息函数提示输入,输入学号YY修改信息YYN0NN判断num是否存在输出修改信息,提问是否修改提示num不存在,并提问是否继续修改提问是否继续修改删除信息函数4提示输入,输入删除学号说明不存在此信息判断是否存在numN输出删除的信息并提问是否删除YYN提问是否继续删除Ystunum-1.num=0N输出删除成功05提示
6、查询方式,并选择按学号按姓名输入学号num是否存在输出查询信息提问是否继续查询Y输入姓名姓名是否存在提示,并重新输入numNY提示,并重新输入姓名输出查询信息NY提问是否继续查询Y0NN查看信息函数调试过程 设计一个程序,错误是难免不了的。但我们可以根据编辑系统给出的一些提示去查看程序错误。对不敢肯定正确的,翻翻书,看一下这一知识。对难度大的就和同学们一起讨论,问一问老师。 开发一个系统,耐心是必要的,认真也很重要,构思要明确。认为是哪里错误的,有时用“/* */”注释起来进行,看看是否还有错误。常错有以下几种情况: 1.使用变量,但未有定义,则先定义。2.不该用分号的,用到了,把它去掉。3.
7、行最后若有分号则删除,中间若有分号则改成逗号 4.若错误行中有if、while、for则要特别注意条件表达式的错误。 5.若条件表达式中只有一个等于号,则改成两个等于号。6.for中要用分号分隔表达式,而不是用逗号 7.缺少分号,若错误行中有语句没有用分号结束,则加上分号。 8.大小写不对,若错误行中有大写字母则一般都改成小写字母。 9.若有return语句则函数的类型必须与return后变量的类型一致。 设计总结通过本次C程序课程设计,我觉得对自己提高很大:克服了的偷懒的毛病,这在我以后的学习和工作中的心理定位与调节有很大的帮助。我感受到了编程是一项非常烦琐周密的活动,他不但需要一个人周密的
8、思考问题的能力,处理问题的能力,还需要有足够的耐心和严谨治学的作风,来不得半点马虎。通过本次程序设计,我初步学会了程序设计的基本方法,学会了怎样去借鉴别人的方法和经验,知道如何去查找资料和整合处理这些资料的能力,我上网和上图书馆查找资料,编写C语言原程序,然后是进行编译,这个环节是一个非常痛苦和艰难的,常常会因为一小点的错误而在编译失败与再次修改的漫漫循环之路中,但失败的越多,对人的考验就越多,在编译运行成功之后的享受成功的喜悦也就越多,另外在调试程序的过程中不断的思考和运用已经学到的知识,这对于自己是有很大的提高的。 参考文献1谭浩强著. C语言程序设计(第三版). 清华大学出版社,2005
9、2谭浩强编著. C程序设计题解与上机指导(第二版)清华大学出版社,1999 3C编写组编. 常用C语言用法速查手册. 北京:龙门书局,1995源程序清单#includestruct student /*结构体*/ int num; char name20; /学号 char sex5; /姓名 int age; /性别 char bro15; /年龄 char add30; /住址 char phone13; /手机号 char em20; /E-mail stu100; /结构体名 int looknum(int num) /*查看是否有这个学号的函数*/ int i; for(i=0;i1
10、00) printf(n这个学号太大了!n请输入1-100 的学号:); scanf(%d,&num); if(num100)goto V; printf(n); num2=looknum(num); if(num=num2) /*判断这个学号是否存在*/ printf(n这个学号已经存在,请重新输入另一个学号。); goto H; i=num-1; stui.num=num; printf(t请输入姓名:); scanf(%s,stui.name); printf(t请输入性别:); scanf(%s,stui.sex); printf(t请输入年龄:); scanf(%d,&stui.ag
11、e); printf(t请输入出生日期:); scanf(%s,stui.bro); printf(t请输入住址:); scanf(%s,stui.add); printf(t请输入手机号:); scanf(%s,stui.phone); printf(t请输入E-maill:); scanf(%s,stui.em); printf(ntnn); printf(t1.继续添加n); printf(t2.退出添加n); scanf(%d,&x); switch(x) case 1:goto G; default:break;quanbu()/*输出全部信息函数*/int i; printf(tt
12、全部学生信息如下nn); printf(学号t姓名t性别t年龄t出生日期t住址t手机号ttE-mailn); for(i=0;i=100;i+) if(stui.num!=0)printf(%dt%st%st%dt%st%st%st%sn,stui.num,stui.name,stui.sex,stui.age,stui.bro,stui.add,stui.phone,stui.em); xiugai()/*修改信息函数*/ int x,y,num,num2;K:printf(t请输入要修改的学号:); scanf(%d,&num); num2=looknum(num); if(num=num
13、2) /*判断这个学号是否存在*/ printf(nt这个学号信息如下nn); printf(学号t姓名t性别t年龄t出生日期t住址t手机号ttE-mailn); printf(%dt%st%st%dt%st%st%st%sn,stunum-1.num,stunum-1.name,stunum-1.sex,stunum-1.age,stunum-1.bro,stunum-1.add,stunum-1.phone,stunum-1.em); printf(nt1.确认修改); printf(nt2.取消修改n); scanf(%d,&x); if(x=1) stunum-1.num=num; p
14、rintf(t请输入姓名:); scanf(%s,stunum-1.name); printf(t请输入性别:); scanf(%s,stunum-1.sex); printf(t请输入年龄:); scanf(%d,&stunum-1.age);printf(t请输入出生日期:); scanf(%s,stunum-1.bro);printf(t请输入住址:); scanf(%s,stunum-1.add);printf(t请输入手机号:); scanf(%s,stunum-1.phone);printf(t请输入E-maill:); scanf(%s,stunum-1.em); printf(
15、ntn);goto P;else goto P; else printf(nt没有这个学号,你可能记错了!n); P:printf(nt1.继续修改n); printf(t2.退出修改n); scanf(%d,&y); switch(y) case 1:goto K;default:break; void shanchu()/*删除信息函数*/int x=2,y=2,num,num2;L:printf(t请输入要删除的学号:); scanf(%d,&num); num2=looknum(num); if(num=num2) /*判断这个学号是否存在*/ printf(nt这个学号信息如下nn)
16、; printf(学号t姓名t性别t年龄t出生日期t住址t手机号ttE-mailn); printf(%dt%st%st%dt%st%st%st%sn,stunum-1.num,stunum-1.name,stunum-1.sex,stunum-1.age,stunum-1.bro,stunum-1.add,stunum-1.phone,stunum-1.em); printf(nt1.确认删除); printf(nt2.取消删除n); scanf(%d,&x); switch(x) case 1:stunum-1.num=0; printf(tn);default:break; goto D
17、; else printf(nt没有这个学号,你可能记错了!n); D:printf(nt1.继续删除n); printf(t2.退出删除n); scanf(%d,&y); switch(y) case 1:goto L; default:break; void chakan()/*查看信息函数*/ int x=1,y=2,z=2,i,num,num2; char name,name2; printf(t1.按学号查询nt2.按姓名查询n); scanf(%d,&x); /*输入查看方式*/ if(x=1) /*学号查询*/ M:printf(t请输入查看的学号:); scanf(%d,&nu
18、m); num2=looknum(num); if(num=num2) /*判断这个学号是否存在*/ printf(t这个学号信息如下nn); printf(学号t姓名t性别t年龄t出生日期t住址t手机号ttE-mailn); printf(%dt%st%st%dt%st%st%st%sn,stunum-1.num,stunum-1.name,stunum-1.sex,stunum-1.age,stunum-1.bro,stunum-1.add,stunum-1.phone,stunum-1.em); goto J; else printf(nt没有这个学号,你可能记错了!n); J: pri
19、ntf(nt1.继续查看n); printf(t2.退出查看n); scanf(%d,&y); switch(y)case 1:goto M; default:break; if(x=2) /*姓名查询*/ U:printf(t请输入查看的姓名:); scanf(%s,&name); for(i=0;i=100;i+) if(strcmp(&stui.name,&name)=0)/*字符串比较*/ if(stui.num!=0) /*判断这个学号是否存在*/ printf(t这个姓名信息如下nn); printf(学号t姓名t性别t年龄t出生日期t住址t手机号ttE-mailn); print
20、f(%dt%st%st%dt%st%st%st%sn,stui.num,stui.name,stui.sex,stui.age,stui.bro,stui.add,stui.phone,stui.em); goto Q; if(i=101) printf(nt没有这个姓名,你可能记错了!n);Q: printf(nt1.继续查看n); printf(t2.退出查看n); scanf(%d,&z); switch(z) case 1:goto U; default:break; main()/*主函数*/ int a; printf(nt*编辑系统-XXXX*nn); printf(t 未经允许
21、,不得使用n); printf(tn);T:printf(nnt 1.添加学生信息nt 2.全部学生信息nt 3.修改学生信息nt 4.删除学生信息nt 5.查看学生信息nt 6.退出系统n); scanf(%d,&a); switch(a) case 1:tiaojia();goto T; case 2:quanbu();goto T; case 3:xiugai();goto T; case 4:shanchu();goto T; case 5:chakan();goto T; case 6:break; default: printf(t你的输入不正确,请再次输入:n);goto T; printf(t谢谢您对本系统的支持和使用nn); printf(t2012年4月29日nnnnnnnnnnnnn); -