1、学生信息管理系统课程设计论文 作者: 日期:2 个人收集整理 勿做商业用途前 言随着计算机技术的发展,可视编程技术占有了越来越重要的作用.Visual C+6。0 是一种功能强大行之有效的可视化编程工具。因此此软件是在Visual C+6.0环境下编写的。对于我们,随着学习的深入,已经大体掌握了Visual C+6.0环境下的程序开发.为了将我们的编程能力提升到一个更高的水平,深化面向对象的编程思维和解决问题的能力,值此课程设计周期间,进行基于Visual C+6.0环境的软件开发,先以字符统计软件作为开始,对Visual C+6.0环境和面向对象程序设计进行回忆和熟悉,使得在此基础上的下一个
2、员工培训系统软件的开发进行的更加顺利.本文档详细叙述了基于Visual C+6。0环境下的学生信息查询软件的设计过程以及程序源代码。本文档从概要设计,详细设计,参考源程序代码以及显示程序运行的截屏等方面详尽的介绍了软件开发过程。此次学生信息查询软件的开发目的是使我们用面向对象的方式来思考和解决问题的能力,并且可以掌握字符数组的使用、字符指针的使用、类的设计和使用以及C语言语法。本文档的安排如下:第一章 主要介绍了对面向对象C语言的主要特征,Visual C+6.0编程环境以及该系统的各项功能。第二章 主要的介绍说明了学生信息查询系统软件的编程思想和系统的总体流程图以及对该流程图的详细介绍。第三
3、章 主要介绍学生信息查询系统软件的详细设计,各个分模块的单独流程图以及对设计和流程图的一些介绍。第四章 主要介绍了软件软件进行调试,运行程序并截图,显示运行界面和结果。第五章 是该论文作者对这次课程设计过程中的一些感受和体会等. 1 系统概述该系统的功能是以菜单方式工作,输入密码验证正确进入菜单选择界面,用户通过选择数字来选择学生信息录入功能-输入学生基本信息,学生信息浏览功能-输出学生的基本信息,查询、排序功能-算法,按学号查询,按姓名查询.学生信息的删除与修改(可选项)的等基本的功能,从而实现用户的想法。在各项基本功能之下我们可以看到各种小的模块来满足用户的各种需求,达到快速方便的效果。程
4、序在设计的过程中遇到的问题已及时更正,但由于编者的能力和水平有限,学生信息查询系统和文档中不免会出现一些不期待的错误,望文档读者能够理解和体谅,并欢迎提醒和纠正,在此表示感谢以及敬意。1。1 C语言的主要特点(1)C语言简洁、紧凑,使用方便、灵活.(2)预算符丰富。(3)数据类型丰富,具有现代语言的各种数据结构.(4)具有结构化的控制语句。(5)语法限制不太严格,程序设计自由度大。(6)C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能可以直接对硬件进行操作.(7)生成目标代码质量高,程序执行效率高.(8)用C语言编写的程序可移植性好(与汇编语言相比)。 1.2 Visual
5、 C+ 6.0运行环境图1 Visual C 6.0运行环境2 概要设置2。1 总体设计思想(1) 学生信息管理系统的功能为显示主要操作页面,通过密码验证登陆界面,档案信息处理功能。通过密码验证登陆,可实现安全登录,方便可靠.学生信息处理功能包括输入学生信息,显示学生的档案信息,学生档案信息条件查询(分为:按学生姓名进行查询,按学生学号进行查询),更新学生档案信息.(2) 学生信息管理系统的功能模块有:系统登陆界面,美观大方,按enter键进入密码验证登陆界面,输入正确密码登陆主菜单选择框架界面,方便用户对程序个功能进行选择,选择要实现的功能按enter键进入该功能。1. 输入学生档案信息。2
6、. 显示学生的档案信息3。 学生档案信息条件查询4。 更新学生档案信息。0. 退出,谢谢使用!!程序分为多个小模块,通过调用实现各种功能,增强了程序的可建设性。2.2 总体设计流程图学生信息管理系统密码登陆界面登陆主菜单选择框架界面输入信息模块显示信息模块条件查询模块更新信息模块退出系统模块从键盘输入信息输出信息至屏幕按学生学号查询按学生姓名查询修改学生信息插入学生信息将退出界面显示图2 总体设计流程图 该流程图为此次学生信息查询系统的总体流程图,用户进入界面以后可以看到登陆密码界面,密码输入正确进入主菜单选择框架界面,1为输入学生信息档案,2为显示学生档案,3为学生信息档案查询,4为更新学生
7、档案,0为退出系统。用户可以根据自己的需求方便快捷的做出自己的选择。3 系统详细设计3.1 头文件的引用和函数的声明#includestdio。h/标准输入输出函数库*/includestring。h /*字符串函数库*/#includestatic int m=0; struct record/学生信息结构体/ int num; char name30; char sex; float tel;int age;char xibiebanji80; stu500; void password();void recordplatform();/系统标题函数声名/void xuanzekuangj
8、ia();/*选择框架函数声名*/void tuichuxitong();/*0。退出学生档案信息系统函数声名/void shuruxinxi();/*1。输入学生档案信息函数声名*/void xianshixinxi();/2.显示档案信息函数声名*/void tiaojianchaxun();/3.学生档案信息条件查询函数声名/void gengxinxinxi();/4。更新学生信息函数声名/该函数是对头文件的加载和引用,定义结构体、常量和变量,并对他们进行初始化工作。3。2 系统主调函数/*-主调函数-/*主函数*/void main() printf(”n);printf(n”);p
9、rintf(”n);printf(-大家好- -n);printf(n”);printf(”n);printf(”n”);printf(n”);printf(n”);printf(” 老师您好!n); printf(”n”); printf(n”);printf(”n);printf(”n); printf(”n);printf( -【学生档案信息管理系统】-n);printf(”n);system(”pause); system(”cls”); fflush(stdin); password();/*密码登陆验证函数调用*/recordplatform();/*系统标题函数调用*/xuanz
10、ekuangjia();/*选择框架函数调用*/该函数为程序的主函数,主要实现了对整个程序的运行控制,以及相关功能模块的调用。3。3 密码验证函数/*通过对比字符串数组比较实现密码校验*/void password()int s,g=0; char str120=”123456 ;char str220;do printf(” *n); printf(”n”);printf( 请 输 入 密 码 :n”);printf(n”);printf( *n);gets(str2);/*while()if(str1g=str2g)s=1;else s=0;break;g+;*/if(!strcmp(st
11、r1,str2)) /比较输入的密码str1和设定的密码str2, 输出“密码正确。*/printf(密码输入正确n”);s=1;elses=0;printf(”密码输入错误,请从新输入n”);while(s=0);密码登陆函数流程图:密码函数开始登陆密码重新登陆密码正确密码错误该函数为密码登陆函数模块,当输入的密码不正确的时候,系统会提示“密码输入错误,请重新输入”,直到输入正确密码为止。3。4 选择框架函数/*-程序名称-/void recordplatform()printf(n);printf(”n);printf( - n);printf(” |* 学生档案信息管理系统 *| n);
12、printf(” - n);printf(n”);printf(”n”);/*-选择框架-*/void xuanzekuangjia() int j,k;char w;printf( - n”); printf( 欢迎使用学生档案信息管理系统 n”); printf( - n”); printf(” 1。输入学生档案信息 n); printf(” - n); printf(” 2。显示学生的档案信息 n); printf( - n”); printf( 3。学生档案信息条件查询 n”); printf(” - n”); printf( 4.更新学生档案信息 n”); printf(” - n”
13、); printf(” 0.退出,谢谢使用! n); printf(” - n”); Sleep(500); /printf(”请选择你要进行的工作:n”); do /*输入不能空,也不能是字母,当输入字母的 时候,会提示不能为字母,请重新输入。/ scanf(”d”,j); k=1; while(w=getchar()!=n) k=0; if(k=0) printf(”不能为字母,请重新输入n”);elsebreak; while(k=0);switch(j) /*运用switch语句根据需要进行菜单选择/ case 1: system(cls); shuruxinxi(); system(
14、”cls); system(pause”); system(”cls); xuanzekuangjia();break;/输入学生档案信息函数调用 case 2: system(”cls); xianshixinxi(); system(pause”);system(”cls”); xuanzekuangjia();break;显示档案管理系统选择框架函数调用 case 3: system(”cls”); tiaojianchaxun(); system(”pause);system(cls); xuanzekuangjia();break; /学生档案信息条件查询函数调用/ case 4:
15、system(cls); gengxinxinxi(); system(pause);system(cls”); xuanzekuangjia();break; /更新学生档案信息函数调用/ case 0: system(”cls); tuichuxitong();break; /退出程序函数调用/ 选择框架函数流程图:选择框架函数开始用户选择1输入信息2 显示信息3 查询信息4 更新信息0退出 进入学生档案管理系统时显示程序名称和选择框架主菜单,提示用户进行选择,完成相应任务。此代码被main()函数调用.3.5 输入学生信息函数/-输入学生档案信息-*/调用函数输入学生信息void shu
16、ruxinxi() int k; char ans,w; ans=y; do printf(”请输入第%d个学生的信息:n”,m+1); do /学号的输入/ printf(请输入学生的学号num 1000 | stum.num=0) /*输入字符串,并进行长度验证*/ printf(”输入错误-请重新输入:n”); /*显示提示信息/ while(stum.num 1000 | stum.num 160000000000| stum。tel16000000000 | stum.tel 0); do /年龄的输入/ printf(”请输入学生的年龄0-100:); do scanf(”%d”,
17、&stum。age);k=1; while(w=getchar()!=n) k=0; if(k=0) printf(不能为字母,请重新输入n”);elsebreak;while(k=0); if(stum。age 100 | stum。age 0) printf(输入错误-请重新输入:n); while(stum.age 100 | stum.age 0); /系别班级的输入 */ printf(”请输入学生的系别班级::”); scanf(%s,stum。xibiebanji); m+; printf(”n是否继续添加学生信息?是就输入y或Y,不是就输入另外任意字符:n); scanf(s”
18、,ans); while( ans = y|ans = Y); 输入信息函数流程图:输入信息系统开始输入学号输入姓名输入性别输入联系方式输入班级输入错误重新输入 输入学生信息函数模块,用户可以根据提示的信息来进行每一步的输入操作,当输入不当时,系统会自动提示,并让用户进行正确的操作。在此系统中,要求用户输入的只有字符型和数值型数据,设计了相应的函数来进行数据校验工作,保证数据输入的准确性。3。6 显示学生信息函数/*-显示学生的档案信息-/void xianshixinxi() struct record *p; printf(”以下就是显示的学生成绩信息:n”); printf(num xi
19、biebanji name sex age tel n); for(p=stu;pnum); printf(”%14s”,pxibiebanji); printf(%10s,pname); printf(”%12c,psex); printf(%7d”,p-age); printf(”%17fn,p-tel); 显示信息流程图:显示信息函数开始输出学生信息结束 当用户进入查询信息模块时,系统会显示内部存储的内容。3。7 学生信息条件查询函数/-学生档案信息条件查询-*/void tiaojianchaxun() int i,j,k; struct record *p=NULL; char Na
20、me30; printf(请输入1或0两个数字,输入1进行学号查询,输入0进行姓名查询); scanf(”d,&k); do if(k!=1&k!=0) printf(”请重新输入:); scanf(d,&k); while(k!=1&k!=0); if(k=1) do /*按学生学号进行查询*/ printf(请输入学号进行查询(11000)号:); scanf(”d”,&i); for(j=0;jm;j+) if(stuj。num=i) for(p=stu;pname); printf(%12c”,p-sex); printf(7d,p-age); printf(17fn”,p-tel);
21、 break; if(stuj。num!=i) printf(”您输入的学号不存在-:”);while(stuj。num!=i); if(k=0) /按学生姓名进行查询/ do printf(”请输入你所要查询的学生的姓名:); scanf(%s,Name); for(j=0;jm;j+) if(strcmp(stuj。name,Name)=0)/字符串函数 for(p=stu;pname); printf(”12c”,p-sex); printf(”7d,page); printf(”%17fn”,p-tel); break; if(strcmp(stuj.name,Name)!=0) pr
22、intf(对不起您输入的学生姓名不存在.”); while(strcmp(stuj。name,Name)!=0); 查询信息流程图:选择按姓名还是学号查询选择查询函数开始输入错误重新输入0按姓名查询1按学号查询输出信息输出信息 当用户执行此查询任务时,系统会提醒用户进行查询字段的选择,即按学号或姓名进行查询.若此学生档案信息记录存在,则会显示该省的档案信息。此函数完成了节点定位的功能.3.8 更新学生信息函数/-更新学生档案信息-*/void gengxinxinxi() int i,j,k; struct record *p=0; printf(请输入要更改的学生的学号(110)号::);
23、/输入并校验该生信息*/ scanf(”d,&i); do for(j=0;jm;j+) if(stuj.num=i) printf(以下是你要更改的信息:n); for(p=stu;pstu+m;p+) printf(”num xibiebanji name age tel n”); printf(”-7d”,pnum); printf(%14s”,pxibiebanji); printf(”%10s”,p-name); printf(%7d,page); printf(17fn,ptel); break; if(stuj。num!=i) printf(”该学号不存在,请重新输入:”); s
24、canf(%d,&i); while(stuj.num!=i); printf(”请输入更改后学生的新信息:n); scanf(”d%ssdf”,&stuj.num,&stuj.xibiebanji,&stuj。name,&stuj。age,stuj。tel);do for(k=0;km;k+) if(j=k) k=k+1; if(stuj.num=stuk。num) printf(”对不起您输入更改后学生的新信息错误,请重新输入:n”); scanf(”d%s%s%d%f,&stuj.num,stuj.xibiebanji,&stuj。name,&stuj。age,stuj.tel); break;