学生学籍管理系统C课程设计报告-正文_第1页
学生学籍管理系统C课程设计报告-正文_第2页
学生学籍管理系统C课程设计报告-正文_第3页
学生学籍管理系统C课程设计报告-正文_第4页
学生学籍管理系统C课程设计报告-正文_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、经济学院(国际经济与贸易)专业MIS课程设计(2011 2012学年) 设计名称: 学籍管理系统 班 级:国贸21003班 - 姓 名:廉鹏、宁二龙、俞鸿辉、曾光明 - 指导教师:信管教研室 - 成 绩: - 序 号: 二0一二年5月31日目 录1 前言22 需求分析22.1 课程设计目的22.2 课程设计任务22.3 设计环境32.4 开发语言32.5 系统可行性分析33 分析和设计43.1 功能分析43.2 系统流程图43.3 主要模块的流程图54 E-R图.7.5.数据字典96 具体代码实现107 课程设计体会17参考文献171 前言现代科学飞速发展,世界也不断的变化,人类的生活随着科技

2、的发展也发生着惊天动地的变化。作为新时代的大学生,我们应该努力学习科学文化知识,以适应社会的发展要求。以现代化的科学知识为祖国做贡献。计算机C语言课程设计是一门实践性很强的课程,因此,我们可以从这里出发,将实践教学与理论教学达到密切结合。根据实际题目,要求我小组编写一个程序来,用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。通过一个结构体数组来存放输入的每一位同学的信息(包括学号,姓名,性别,年龄,籍贯,系别,专业,班级),然后将其信息存入文件中。输入一个学号查询该同学的信息,并显示在屏幕上。2 需求分析本系统为了实现学校在校学生、离校学生各项信息

3、资源的查询、统计、添加、删除、维护与管理,方便用户的管理与需求。学籍管理系统的系统分析的重点是对学籍管理信息系统的业务流程进行描述,通过采用流程图中的部分图形来对学生信息质量的管理活动进行规范化说明。2.1 课程设计目的用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。2.2 课程设计任务(1)   系统以菜单方式工作。(2)   登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级;修改已知学号的学生信息;(3)   删除已知学号的学生信息;(4)   查找已知学号

4、的学生信息;(5) 显示同一系学生信息和统计人数;(6)   显示所有学生信息和统计人数人数;2.3 设计环境(1)WINDOWS 2000/2003/XP/7/Vista系统(2)Visual C+或TC集成开发环境2.4 开发语言C+语言2.5系统的可行性分析 2.5.1 管理上的可行性 把教师事务、信息延伸到Internet,建立了评分系统,对于老师来讲,是信息统一化,管理透明化,学生成绩公开化的一个良好的系统,因此,对于学校教务领导来说不会对此有很大的抵触情绪,班主任及辅导员也能够相应的支持。2.5.2 技术上的可行性a、数据涉及的计算比较简单,适合采用数据库;b、

5、学校的微机在存储和运转方面能够满足数据库的需求;c、该系统功能网上有很多文献,可以参考程序功能,帮助实现系统。2.5.3 经济上的可行性学生的成绩繁多增加了老师的负担,造成了管理人的信息费、大量的纸质费用,还用了大量的时间来核对,受一定的时间与物理空间的局限及学生数量,成本较高。而本系统可以帮助老师正确认识评分系统技术在学校中的重要地位,以少量的时间和资金建立评分系统。3 分析和设计31功能分析将学生学管理系统分为:用户管理、学生信息管理、学生成绩管理和学生学籍档案管理四个功能模块,。各个管理模块现用表的方式加以说明如下:学生学籍管理信息系统管理员学生成绩表学生信息表学生学籍管理信息表信息的查

6、、增、删、改学生档案表-1、学生信息管理模块主要对学生信息(学号、姓名、性别、班级、家庭住址)进行管理,本模块又分为三个子模块。学生信息录入学生信息查询学生信息修改删除2、学生成绩管理模块主要是对学生成绩进行管理,四个子模块。学生成绩录入学生成绩查询学生成绩修改/删除学生成绩统计3、学生学籍档案管理模块主要对学校在校生的档案进行管理。学生、奖惩情况的查询学生报名注册登记表录入在校生档案的查询4、用户管理主要对用户权限设置进行管理。用户名:密码设置(管理人员和普通用户)3.2 系统流程图学生学籍管理信息系统数据流程图S01档案单成绩单P03P02P01D3D2D1信息单学生学籍信息管理员学生信息

7、录入成绩信息录入档案信息录入信息数据表成绩数据表档案数据表数据库S01档案单成绩单P03P02P01D3D2D1信息单学生学籍信息管理员学生信息录入成绩信息录入档案信息录入信息数据表成绩数据表档案数据表数据库F05F04F03F02F01按班级按学号按姓名P01D1S01信息录入学生信息管理员学生信息查询信息数据表F06学生学籍管理员通过学生信息单,学生成绩单,学生档案单分别录入,生成信息数据表,成绩数据表,档案数据表从而成立一个总的数据库3.3 主要模块的流程图1、学生信息管理数据流图学籍信息管理员通过信息单录入学生的信息,建立信息数据表。用户可根据,学号,姓名,班级来查询自己所需的信息,方

8、便而简单。2、学生成绩管理数据流图学籍成绩管理人员通过成绩单录入学生的成绩,建立成绩数据表。则用户可根据,学号,姓名,班级查看自己所需的信息。F07F05DP1P2按姓名按班级按学号F04F03F02F06成绩统计成绩单F01S01学籍成绩管理员成绩录入成绩查询成绩数据表3、档案管理数据流图学籍档案管理员通过档案单录入学生的档案,建立档案数据表。用户可根据,学号,姓名,班级查询学生的基本档案F07F06DP2P1按姓名按班级F05F04F03按学号F02档案单F01S01学生档案管理人员档案信息录入档案查询档案数据表4、系统管理据流图系统管理员根据用户需要设置用户及权限,建立系统数据表。使整个

9、系统的维护更具有安全性,保密性F07F05DP1P2验证密码用户名号F04F03F02F06验证登陆F01S01系统管理员建立报表学籍系统系统数据库4.E-R图系统逻辑设计的主要工作就是将ER图转换成一张张的二维表,以及各表的属性。E-R图是系统的概念设计,对系统前期分析相当重要,它可以正确直观的反映出一个业务系统过程。本系统的E-R图如下:班级姓名11N1N111NN用户名密码登录管理员/普通用户学生学籍从属学生信息联系电话学号专业家庭住址出生年月从属学生成绩专业学号课程名称姓名班级从属学生档案专业姓名学号班级政治面貌奖惩是否留级包含注册表专业班级姓名学号出生年月家庭住址联系电话 学生学籍管

10、理信息系统E-R图5.数据字典l 数据项学生表(XS) 名称数据类型大小约束Xh(主键)char10not nullXmchar10not nullXb char10nullCssjchar 10nullZychar10nullZxfchar10nullBzchar10 nullKchchar10 Not null课程表(XS_KC)名称数据类型大小约束Xh(主键)char10Not nullXchchar100nullCjchar10null性别表(XBM)名称数据类型大小约束XbChar10Not nullXbmChar10Not nulll 数据约束(1)实体完整性约束:基本关系的所有主

11、键的属性都不能取空值且主键作为唯一性标识。需要满足该约束的主键:学生表(XS).学号(xh)、课程表(KCB).课程编号(kch).(2)参照完整性约束:外键的值只能取空值或等于关联主键的值。需要满足该约束的外键:学生表(XS).学号与课程表(KCB)课程号外键关联.(3)用户定义完整性约束:针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。需要满足该约束的属性:学生表(XS).学号,课程表(KCB).课程编号,.都不能为空,学生表(XS).性别只能为男或女。l 数据流图学生课程录入查询学生信息课程成绩l 数据存储信息XS表:Xh(主键)、Xb、Xb、Cssj、

12、Zy、Zxf、Bz、Kch(外键)。KC表:Kch(主键)、kCM、Cj。XBM表:Xb、Xbm。6 具体代码实现#include <stdio.h>#include <string.h>#include <conio.h>#include <malloc.h>#include <stdlib.h>#define N 100struct student char XUEHAO20; char XINGMING10; char XINGBIE4; char NIANLING10; char JIGUAN10; char ZHUANYE1

13、0; char BANJI6; char XIBIE20;student;void CAIDAN();void ZHUCE();void XIUGAI();void SHANCHU();void del_XUEHAO(FILE *fp);void del_XINGMING(FILE *fp);void CHAZHAO();void sch_XUEHAO(FILE *fp);void sch_XINGMING(FILE *fp);void TONGJI();void XIANSHI();void TIANJIA();void save( struct student student);main(

14、) char choose,yes_no; do CAIDAN(); printf("n 请输入序号: (18) "); choose=getch(); system("cls"); switch(choose) case'1': printf(" %c",choose);ZHUCE();break; case'2': printf(" %c",choose);XIUGAI();break; case'3': printf(" %c",choose

15、);SHANCHU();break; case'4': printf(" %c",choose);TIANJIA();break; case'5': printf(" %c",choose);CHAZHAO();break; case'6': printf(" %c",choose);TONGJI();break; case'7': printf(" %c",choose);XIANSHI();break; case'8': break

16、; default:printf("n %c 序号不对!n",choose); if(choose='8')break; printf("n 要继续选择吗 ? (Y/N) n"); do yes_no=getch(); printf(" %c",yes_no);while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); while(yes_no=

17、9;Y'|yes_no='y');void CAIDAN() system("cls"); printf(" * n "); printf(" * 请选择相应的功能 * n "); printf(" * 1-注册 * n "); printf(" * 2-修改学生信息 * n "); printf(" * 3-删除学生信息 * n "); printf(" * 4-添加学生信息 * n "); printf(" * 5-查

18、找学生信息 * n "); printf(" * 6-统计学生信息 * n "); printf(" * 7-显示学生信息 * n "); printf(" * 8-退出系统 * n "); printf(" * n ");/*定义学生信息注册的函数*/void ZHUCE() int i=1; struct student temp; FILE *fp; fp=fopen("F:/123.txt","w"); if(fp=NULL) printf("n

19、打开文件失败! n");return; printf("n 请输入第1个学生信息:n"); printf(" 学号(用#结束输入): "); do gets(temp.XUEHAO); while(strcmp(temp.XUEHAO," ")=0); printf(" 姓名(用#结束输入): ");gets(temp.XINGMING); printf(" 性别(用#结束输入): ");gets(temp.XINGBIE); printf(" 年龄(用#结束输入): &qu

20、ot;);gets(temp.NIANLING); printf(" 籍贯(用#结束输入): ");gets(temp.JIGUAN); printf(" 专业(用#结束输入): ");gets(temp.ZHUANYE); printf(" 班级(用#结束输入): ");gets(temp.BANJI); printf(" 系别(用#结束输入): ");gets(temp.XIBIE); while(temp.XUEHAO0!='#'&&temp.XINGMING0!='#

21、'&&temp.XINGBIE0!='#'&&temp.NIANLING0!='#'&&temp.JIGUAN0!='#'&&temp.ZHUANYE0!='#'&&temp.BANJI0!='#'&&temp.XIBIE0!='#'&&temp.XIBIE) fprintf(fp,"%5s%10s%10s%10s%10s%10s%10s%10sn",temp.

22、XUEHAO,temp.XINGMING,temp.XINGBIE,temp.NIANLING,temp.JIGUAN,temp.ZHUANYE,temp.BANJI,temp.XIBIE,temp); i+; printf("n 请输入第 %d 个学生信息:n ",i); printf(" 学号(用#结束输入): "); do gets(temp.XUEHAO); while(strcmp(temp.XUEHAO," ")=0); printf(" 姓名(用#结束输入): ");gets(temp.XINGMIN

23、G); printf(" 性别(用#结束输入): ");gets(temp.XINGBIE); printf(" 年龄(用#结束输入): ");gets(temp.NIANLING); printf(" 籍贯(用#结束输入): ");gets(temp.JIGUAN); printf(" 专业(用#结束输入): ");gets(temp.ZHUANYE); printf(" 班级(用#结束输入): ");gets(temp.BANJI); printf(" 系别(用#结束输入): &q

24、uot;);gets(temp.XIBIE); student=temp; save(&temp);fclose(fp);/*定义保存函数*/void save( struct student student) FILE *fp=NULL; fp=fopen("F:/123.txt","ab+"); fwrite(student,sizeof(struct student),1,fp); fclose(fp);/*定义查找学生信息的函数*/void CHAZHAO() char c; FILE *fp; fp=fopen("F:/123

25、.txt","r"); if(fp=NULL) printf("n 打开文件失败! n");return; printf("n 按学号查找( 1 ),还是按姓名查找( 2 )? "); c=getch(); putch(c); if(c='1') sch_XUEHAO(fp); else if(c='2') sch_XINGMING(fp); else printf("n 非法字符!n"); fclose(fp);/*定义按学号查找学生信息的函数*/void sch_XUE

26、HAO(FILE *fp) int flag=0,n=0; char tempXUEHAO20; struct student temp; printf("n 请输入要查找学生信息的学号: "); gets(tempXUEHAO); while(feof(fp)=0) fscanf(fp,"%5s%10s%10s%10s%10s%10s%10s%10sn",&temp.XUEHAO,&temp.XINGMING,&temp.XINGBIE,&temp.NIANLING,&temp.JIGUAN,&temp.ZHUANYE,&temp.BANJI,&am

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论