您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页学生学籍管理系统C课程设计报告-正文

学生学籍管理系统C课程设计报告-正文

来源:爱go旅游网
经济学院(国际经济与贸易)专业

MIS课程设计

(2011 —2012学年)

设计名称: 学籍管理系统 班 级:国贸21003班

─────────────

----------------

姓 名:廉鹏、宁二龙、俞鸿辉、曾光明

-------------------------------

指导教师:信管教研室

-----------------

成 绩:

----------------

序 号:

二0一二年5月31日

目 录

1 前言 ............................................................................................................... 2 2 需求分析 ....................................................................................................... 2

2.1 课程设计目的 ........................................................................................... 2 2.2 课程设计任务 ........................................................................................... 2 2.3 设计环境 ................................................................................................... 3 2.4 开发语言 ................................................................................................... 3 2.5 系统可行性分析 ........................................................................................ 3 3 分析和设计 ................................................................................................... 4 3.1 功能分析 ................................................................................................... 4 3.2 系统流程图 ............................................................................................... 4 3.3 主要模块的流程图 .............................................................................................................. 5 4 E-R图…………………...………………………………………………….7. 5.数据字典……………………………………………………………………9 6 具体代码实现 ............................................................................................. 10 7 课程设计体会 ............................................................................................. 17 参考文献 ......................................................................................................... 17

1

1 前言

现代科学飞速发展,世界也不断的变化,人类的生活随着科技的发展也发生着惊天动地的变化。作为新时代的大学生,我们应该努力学习科学文化知识,以适应社会的发展要求。以现代化的科学知识为祖国做贡献。计算机C语言课程设计是一门实践性很强的课程,因此,我们可以从这里出发,将实践教学与理论教学达到密切结合。。

根据实际题目,要求我小组编写一个程序来,用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。

通过一个结构体数组来存放输入的每一位同学的信息(包括学号,姓名,性别,年龄,籍贯,系别,专业,班级),然后将其信息存入文件中。输入一个学号查询该同学的信息,并显示在屏幕上。

2 需求分析

本系统为了实现学校在校学生、离校学生各项信息资源的查询、统计、添加、删除、维护与管理,方便用户的管理与需求。学籍管理系统的系统分析的重点是对学籍管理信息系统的业务流程进行描述,通过采用流程图中的部分图形来对学生信息质量的管理活动进行规范化说明。

2.1 课程设计目的

用数据文件存放学生的学籍,可对学生学籍进行注册,登录,修改,删除,查找,统计,学籍变化等操作。

2.2 课程设计任务

(1) 系统以菜单方式工作。

(2) 登记学生的学号,姓名,性别,年龄,籍贯,系别,专业,班级;修改已知学号的学生信息;

(3) 删除已知学号的学生信息; (4) 查找已知学号的学生信息; (5) 显示同一系学生信息和统计人数; (6) 显示所有学生信息和统计人数人数;

2

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、学校的微机在存储和运转方面能够满足数据库的需求;

c、该系统功能网上有很多文献,可以参考程序功能,帮助实现系统。

2.5.3 经济上的可行性

学生的成绩繁多增加了老师的负担,造成了管理人的信息费、大量的纸质费用,还用了大量的时间来核对,受一定的时间与物理空间的局限及学生数量,成本较高。而本系统可以帮助老师正确认识评分系统技术在学校中的重要地位,以少量的时间和资金建立评分系统。

3 分析和设计

3.1功能分析

将学生学管理系统分为:用户管理、学生信息管理、学生成绩管理和学生学籍档案管理四个功能模块,。各个管理模块现用表的方式加以说明如下:

3

-

管理员 学生信息表 学生档案表 信息的查、增、删、改 学生学籍管理信息表 学生成绩表 学生学籍管理信息系统 1、学生信息管理模块主要对学生信息

(学号、姓名、性别、班级、家庭住址)进行管理,本模块又分为三个子模块。 学生信息录入 学生信息查询 学生信息修改删除

2、学生成绩管理模块主要是对学生成绩进行管理,四个子模块。

学生成绩录入 学生成绩查询 学生成绩修改/删除 学生成绩统计

3、学生学籍档案管理模块主要对学校在校生的档案进行管理。

学生、奖惩情况的查询 学生报名注册登记表录入 在校生档案的查询

4、用户管理主要对用户权限设置进行管理。

用户名:密码设置(管理人员和普通用户)

4

3.2 系统流程图

学生学籍管理信息系统数据流程图

P01 D1 学生信息录信息单 S01 P02 信息数据表 D2 数据学生学籍信息管理员 成绩单 成绩信息录成绩数据表 D3 库 P03 档案单 档案信息录档案数据表

学生学籍管理员通过学生信息单,学生成绩单,学生档案单分别录入,生成信息数据表,成绩数据表,档案数据表从而成立一个总的数据库

F01 S01 信息录入 学生信息管理员 F02 F05 D1 信息数据表 P01 F03 F04 按姓名 按学号 按班级 学生信息查询 F06 3.3 主要模块的流程图

1、学生信息管理数据流图

学籍信息管理员通过信息单录入学生的信息,建立信息数据表。用户可根据,学号,姓名,班级来查询自己所需的信息,方便而简单。

5

2、学生成绩管理数据流图

学籍成绩管理人员通过成绩单录入学生的成绩,建立成绩数据表。则用户可

根据,学号,姓名,班级查看自己所需的信息。

PF01 S01 成绩成绩录入 F05 D 学籍成绩成绩统F07 P成绩数据表 管理员 F02 F03 F04 按姓按学按班成绩查询 F06 3、档案管理数据流图

学籍档案管理员通过档案单录入学生的档案,建立档案数据表。用户可根据,学号,姓名,班级查询学生的基本档案

S01 学生档案管理人员 F01 F02 档案单 P1 档案信息录入 F06 D F03 F04 F05 P2 按学号 档案数据表 F07 档案查询 按班级 按姓名

6

4、系统管理据流图

系统管理员根据用户需要设置用户及权限,建立系统数据表。使整个系统的维护

更具有安全性,保密性

PF01 S01 登陆 建立报表 F05 D 系统管理验证 F07 系统数据库 员 F02 F03 F04 验证 用户密码 P学籍系统 F06 4.E-R图

系统逻辑设计的主要工作就是将E—R图转换成一张张的二维表,以及各表的属性。E-R图是系统的概念设计,对系统前期分析相当重要,它可以正确直观的反映出一个业务系统过程。本系统的E-R图如下:

7

用户名 密码 登录 N 管理员/普通用出生年月 专业 学号 户 学号 专业 姓名 1 班级 学生信息 姓名 联系电话 家庭住址 N 从属 1 学生学籍 1 从属 学生成绩 1 班级 课程名称 从属 专业 政治面貌 N 学号 学生档案 班级 是否留级 奖惩 姓名 1 包含 1 专业 注册表 学号 联系电话 家庭住址 班级 姓名 出生年月

学生学籍管理信息系统E-R图

8

5.数据字典

 数据项 学生表(XS)

名称 Xh(主键) Xm Xb Cssj Zy Zxf Bz Kch 课程表(XS_KC)

名称 Xh(主键) Xch Cj

性别表(XBM)

名称 Xb Xbm

 数据约束

(1)实体完整性约束:基本关系的所有主键的属性都不能取空值且主键作为唯一性

标识。需要满足该约束的主键:学生表(XS).学号(xh)、课程表(KCB).课程编号(kch).

(2)参照完整性约束:外键的值只能取空值或等于关联主键的值。需要满足该约束

9

数据类型 char char char char char char char char 大小 10 10 10 10 10 10 10 10 约束 not null not null null null null null null Not null 数据类型 char char char 大小 10 100 10 约束 Not null null null 数据类型 Char Char 大小 10 10 约束 Not null Not null

的外键:学生表(XS).学号与课程表(KCB) 课程号外键关联.

(3)用户定义完整性约束:针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。需要满足该约束的属性:学生表(XS).学号,课程表(KCB).课程编号,.都不能为空,学生表(XS).性别只能为男或女。  数据流图

学生 课程 学生信息 录入 课程成绩 查询

 数据存储信息

XS表:Xh(主键)、Xb、Xb、Cssj、Zy、Zxf、Bz、Kch(外键)。 KC表:Kch(主键)、kCM、Cj。

XBM表:Xb、Xbm。

6 具体代码实现

#include #include #include #include #include #define N 100 struct student {char XUEHAO[20];

10

char XINGMING[10]; char XINGBIE[4]; char NIANLING[10]; char JIGUAN[10]; char ZHUANYE[10]; char BANJI[6]; char XIBIE[20]; }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()

{ char choose,yes_no; do

{ CAIDAN();

printf(\"\\n 请输入序号: (1~8) \"); choose=getch(); system(\"cls\"); switch(choose) {

case'1': printf(\" %c\

11

case'2': printf(\" %c\ case'3': printf(\" %c\ case'4': printf(\" %c\

case'5': printf(\" %c\ case'6': printf(\" %c\ case'7': printf(\" %c\ case'8': break;

default:printf(\"\\n %c 序号不对!\\n\ } if(choose=='8')break;

printf(\"\\n 要继续选择吗 ? (Y/N) \\n\"); do

{ yes_no=getch(); printf(\" %c\

while(yes_no!='Y'&&yes_no!='y'&&yes_no!='N'&&yes_no!='n'); }while(yes_no=='Y'||yes_no=='y'); }

void CAIDAN() {

system(\"cls\");

printf(\"

**************************************** \\n \");

printf(\" * ——请选择相应的功能—— * \\n \");

printf(\" * 1-----注册 * \\n \");

printf(\" * 2-----修改学生信息 * \\n \");

printf(\" * 3-----删除学生信息 * \\n \");

printf(\" * 4-----添加学生信息 * \\n \");

12

printf(\" * 5-----查找学生信息 * \\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\

if(fp==NULL){ printf(\"\\n 打开文件失败! \\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(\" 年龄(用#结束输入): \");gets(temp.NIANLING); printf(\" 籍贯(用#结束输入): \");gets(temp.JIGUAN); printf(\" 专业(用#结束输入): \");gets(temp.ZHUANYE); printf(\" 班级(用#结束输入): \");gets(temp.BANJI); printf(\" 系别(用#结束输入): \");gets(temp.XIBIE);

13

while(temp.XUEHAO[0]!='#'&&temp.XINGMING[0]!='#'&&temp.XINGBIE[0]!='#'&&temp.NIANLING[0]!='#'&&temp.JIGUAN[0]!='#'&&temp.ZHUANYE[0]!='#'&&temp.BANJI[0]!='#'&&temp.XIBIE[0]!='#'&&temp.XIBIE)

{ fprintf(fp,\"%5s%10s%10s%10s%10s%10s%10s%10s\\n\mp.XINGMING,temp.XINGBIE,temp.NIANLING,temp.JIGUAN,temp.ZHUANYE,temp.BANJI,temp.XIBIE,temp); i++;

printf(\"\\n 请输入第 %d 个学生信息:\\n \ printf(\" 学号(用#结束输入): \"); do

{ gets(temp.XUEHAO);}

while(strcmp(temp.XUEHAO,\" \")==0);

printf(\" 姓名(用#结束输入): \");gets(temp.XINGMING); printf(\" 性别(用#结束输入): \");gets(temp.XINGBIE); printf(\" 年龄(用#结束输入): \");gets(temp.NIANLING); printf(\" 籍贯(用#结束输入): \");gets(temp.JIGUAN); printf(\" 专业(用#结束输入): \");gets(temp.ZHUANYE); printf(\" 班级(用#结束输入): \");gets(temp.BANJI); printf(\" 系别(用#结束输入): \");gets(temp.XIBIE); }

student=temp; save(&temp); fclose(fp); }

/*定义保存函数*/

void save( struct student student[]) {

FILE *fp=NULL;

fp=fopen(\"F://123.txt\

fwrite(student,sizeof(struct student),1,fp);

14

fclose(fp); }

/*定义查找学生信息的函数*/ void CHAZHAO() { char c; FILE *fp;

fp=fopen(\"F://123.txt\ 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_XUEHAO(FILE *fp) { int flag=0,n=0;

char tempXUEHAO[20]; struct student temp;

printf(\"\\n 请输入要查找学生信息的学号: \"); gets(tempXUEHAO); while(feof(fp)==0)

{ fscanf(fp,\"%5s%10s%10s%10s%10s%10s%10s%10s\\n\&temp.XINGMING,&temp.XINGBIE,&temp.NIANLING,&temp.JIGUAN,&temp.ZHUANYE,&temp.BANJI,&temp.XIBIE); if(strcmp(tempXUEHAO,temp.XUEHAO)==0)

15

{ if(flag==0)

printf(\" 学号 姓名 姓别 年龄 籍贯 专业 班级 系别\\n\");

printf(\"%5s%10s%10s%10s%10s%10s%10s%10s\\n\INGMING,temp.XINGBIE,temp.NIANLING,temp.JIGUAN,temp.ZHUANYE,temp.BANJI,temp.XIBIE); flag=1; } n++; }

if(n==0) printf(\"\\n 文件中无此信息!\\n\"); else if(flag==0) printf(\"\\n 文件中无此人!\\n\"); }

/*定义按姓名查找学生信息的函数*/ void sch_XINGMING(FILE *fp) { int flag=0,n=0;

char tempXINGMING[10]; struct student temp;

printf(\"\\n 请输入要查找学生信息的姓名: \"); gets(tempXINGMING); while(feof(fp)==0)

16

7课程设计体会

通过这次的C语言课程设计,我获益匪浅。首先最深的是课本知识学的再好,也需要实际的检验。我从这次的课程中我认识到了自己的许多不足,满以为自己学的很好,可是到实际运用时,才发现自己这也不行,那里不足。让我深刻认识到自己所学知识必须运用于实际,让实际来检验自己的水平。同时这次课程设计也给了我们一个真正展示自我的机会,我通过自己的努力和老师、朋友的帮助顺利完成了这次课程设计

参考文献

[1] 张福祥. C语言程序设计[M]. 沈阳:辽宁大学出版社,2010.1

[2] 张福祥,王萌.C语言程序设计习题解答与实验实训[M].沈阳:辽宁大学出版社,2010.1 [3] 牛莉,刘远军等.计算机等级考试辅导教程[M].北京:中国铁道出版社,2008

17

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务