《学生档案查询系统》由会员分享,可在线阅读,更多相关《学生档案查询系统(10页珍藏版)》请在金锄头文库上搜索。
1、编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第1页 共1页学生档案查询系统摘要:高校学生档案管理是高校日常管理的一个重要组成部分,其管理效率的高低直接影响着整个学校的管理工作。为方便学生的管理工作,遂开发此系统。此系统包括对学生的基本信息管理,成绩管理,课程管理。采用目前流行的Visual C+, Access数据库作为主要开发工具。查询系统由系统用户管理模块、课程管理模块、成绩管理模块和学生的基本信息管理模块这四个模块组成,四个模块的设计及查询界面主要在详细设计中体现出来,即本论文的主要侧重点。一、概述1. 背景介绍学生档案查询系统是一个教育单位必不可少的组成部分,它对
2、于学校的管理来说至关重要。 在这个科学技术的不断提高,计算机科学日渐成熟,且讲究高效率的社会,人工管理文件档案的方式就显得效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。这已远远不能满足学校和学生的需求。 所以作为计算机应用的一部分,使用计算机对学生档案信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高学生档案管理的效率,也是企业的科学化、正规化管理,与世界接轨的重要条件。因此,开发这样一套软件成为很有必要的事情。2. 系统可行性分析 经济可行性研究本系
3、统为小型开发系统,且开发系统的目的不是达到经济收益,而主要目的是锻炼学生的动手能力,并注重小组成员之间的合作能力,达到小组成员整体水平的提高。故在经济上此系统的开发不会受到影响。对于开发过程中的所需的打印等费用自付。 技术可行性研究本软件的开发在技术方面采用visual C+和Access数据库相结合的方法来实现。使用此系统只需添置低档计算机,如果条件允许可添加打印机以便查询能方便打印成资料作为参考;对现有软件不会产生冲突,对使用的操作系统来说有很好的兼容性、稳定性。该系统软件界面清晰,整洁。功能一目了然,操作简单,容易上手,对于一般网络操作者都能胜任。3. 内容介绍本系统主要包括系统用户管理
4、、学生的基本信息管理、课程管理、成绩管理和系统用户管理这4个方面。 系统用户管理模块用于管理用户登陆时的用户信息,所包含的字段有:用户名、密码、身份。用户进入系统后,通过身份决定用户是有什么权限。学生的基本信息管理模块用于管理学生的基本信息,所包含的字段有:学号、姓名、性别、班级、专业、家庭住址、联系电话、身份证号等。课程管理模块用于管理课程的信息,所包含的字段有:课程号、课程名、本学期课程、任课教师、学分等。成绩管理模块用于管理学生的成绩,所包含的字段有:学号、课程号、学年、学期平时成绩、期末成绩、总评成绩、备注等。二、需求分析1. 用户需求本系统是针对高等院校的学生档案管理,因此此系统的用
5、户主要包括系统管理员、教师和学生。主要涉及班级信息、学生信息、课程信息和成绩等数据信息。实现的具体功能如下:系统用户管理系统管理员负责用不同的权限来限制不同用户对系统的使用。学生基本信息管理系统管理员对学生基本信息的录入、修改、删除等操作。学生成绩管理系统管理员负责对学生成绩的录入、修改、删除等操作,学生可以查询各科成绩。学生课程管理系统管理员负责对学生选课情况进行录入、修改等操作。方便学生查看。以上是用户对系统的基本的功能要求,此外用户还要求系统的效率要高,查询速度要快,比较小的冗余,易维护,具有较高的数据安全性。2. 一级数据流图如下图 三、系统详细设计1. 系统结构图2. 关键模块的设计
6、系统用户管理模块char password7=888888; /*定义初始密码*/void main() /*主函数*/ int flag=0,i; /*标志项*/int n=3;do printf(Enter password:n);scanf(%s,s);if(!strcmp(s,password) /*进行密码匹配验证*/ printf(欢迎进入学生档案查询系统nnn);flag=1;break;elseprintf(Error Enter again:n);n-;while(n0);if(!flag)printf(you have Enter 3 times!); /*输入密码超过了3
7、次!*/exit(0); /*自动退出*/ 学生的基本信息管理模块#include #include #include #include / 字定义函数声明 /void Search(); /查找记录void Views(); /查看所有记录int check(char strID); /查找文件记录中已经存在的学生IDstruct student /学生信息(学号,姓名,性别,籍贯,电话,住址,民族); char ID10; char name10; char sex4;char nativePlace10;char phone13; char nation6;struct student
8、stu;FILE *fp;/定义文件指针void main()int flag; while(flag!=7)printf(ntt 请选择您所要的操作 n); printf(tt1、查询记录 2所有记录列表n); printf(tt 按任意键退出 n); scanf(%d,&flag); switch(flag) case 1:Search(); /查找记录 getch();system(cls); break;case 2:Views(); /查看所有记录 getch();system(cls);break; default: exit(0); void Search()/ 查找数据 /if
9、(fp=fopen(StudentMessage,rb)=NULL) /以只读方式打开StudentMessage文件printf(t文件打开失败!n);return; elsechar message10; /接收用户需要查找的信息 int i;long flength,offset; fseek(fp,0,SEEK_END); /将文件指针移文件尾 flength=ftell(fp)/sizeof(struct student); /得到文件中有多少条记录 printf(t请输入您要查找的学号:); scanf(%s,message);i=check(message); offset=si
10、zeof(struct student)*i; if(flength=0) printf(t文件记录为空!n); return; else if(iflength) printf(tt查找失败,没有找到相应信息!n); return; else /输出查找到的内容 rewind(fp); fseek(fp,offset,SEEK_SET); fread(&stu,sizeof(struct student),1,fp); printf(学号:%s ,stu.ID);printf(姓名:%s ,stu.name); printf(性别:%s,stu.sex);printf(籍贯:%s ,stu.
11、nation);printf(电话:%s,stu.phone);printf(民族:%s,stu.native) fclose(fp);void Views() / 查看所有记录 /long flength; if(fp=fopen(StudentMessage,rb)=NULL) printf(文件打开失败!n); exit(1);fseek(fp,0,SEEK_END); /移动文件指针到文件尾 flength=ftell(fp)/sizeof(struct student); /得到文件中有多少条记录 if(flength=0) printf(文件中没有记录!); return; rew
12、ind(fp); /将文件指针移动到文件头printf(ttt所有记录列表nn);while(!feof(fp)fread(&stu,sizeof(stu),1,fp); if(strcmp(stu.ID,)!=0) /检测文件中的空字符串,如果不是空字符则输出 printf(学号:%s ,stu.ID);printf(姓名:%s ,stu.name); printf(性别:%s,stu.sex);printf(籍贯:%s ,stu.nation);printf(电话:%s,stu.phone);printf(民族:%s,stu.native) fclose(fp); 课程管理模块void C
13、PageCho:Query()variant_t var,varCou,varStu;CString str; /定义变量/更新控件变量的值UpdateData(true);if(m_SID = 0 | m_CID = 0)MessageBox(学号和课程号一个也不能为空!);return;trym_pRecordset-MoveFirst(); while(!m_pRecordset-adoEOF)varCou = m_pRecordset-GetCollect(CID); varStu = m_pRecordset-GetCollect(SID);/所以查询时必须满足学号和课程号同时吻合才行 if(m_CID = varCou.iVal & m_SID = varStu.iVal)var = m_pRecordset-GetCollect(CID); if(var.vt != VT_NULL)m_CID = var.iVal;var = m_pRecordset-GetCollect(SID); m_SID = var.iVal;var = m_pRecordset-GetCollect(IsPass); if(var.vt != VT_NU