学生学籍系统软件工程报告完成态Word文档格式.docx

上传人:b****7 文档编号:22775477 上传时间:2023-02-05 格式:DOCX 页数:39 大小:510.75KB
下载 相关 举报
学生学籍系统软件工程报告完成态Word文档格式.docx_第1页
第1页 / 共39页
学生学籍系统软件工程报告完成态Word文档格式.docx_第2页
第2页 / 共39页
学生学籍系统软件工程报告完成态Word文档格式.docx_第3页
第3页 / 共39页
学生学籍系统软件工程报告完成态Word文档格式.docx_第4页
第4页 / 共39页
学生学籍系统软件工程报告完成态Word文档格式.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

学生学籍系统软件工程报告完成态Word文档格式.docx

《学生学籍系统软件工程报告完成态Word文档格式.docx》由会员分享,可在线阅读,更多相关《学生学籍系统软件工程报告完成态Word文档格式.docx(39页珍藏版)》请在冰豆网上搜索。

学生学籍系统软件工程报告完成态Word文档格式.docx

经过调查我们了解到,现在很多高校都在寻找功能更加齐全的管理系统来取代旧系统,而且这个软件带来的收益远远超过它的开发所花费的代价。

经过对上述几个方面的调查研究和分析,我们得出高校这个软件的市场前景是相当客观的,在经济角度来说,开发学生学籍管理是可行的。

1.2.3操作可行性

主要是了解高校学籍管理的相关人员对开发信息系统是否支持,现有高校学籍管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等。

高校学籍管理人员积极支持该系统开发,使新系统能够充分的发挥作用;

系统界面友好美观,操作简单易行,易于理解,功能更加齐全。

由于管理人员已经在使用旧系统,对计算机的简单操作已经非常熟悉,所以操作者经过短时间的培训就可以使用高校学籍管理系统。

1.3结论意见

经过认真地全面地可行性研究,系统基本上做到了在技术、经济、运行、法律上的可行。

因此,相信在按照计划上实施的前提下,全系统的设计将会按时、高质量完成。

所以,系统研制和开发是可以马上进行的。

2、需求分析

2.1任务需求分析

经需求分析,所得本系统所实现的基本功能,如图1思维图所示:

图1学生学籍管理系统

上图为本系统所完成功能的一个基本信息图。

用户可通过本软件,对学生的在校情况信息有一个清晰的了解,帮助用户查询和修改学生的相关信息,从而对学生实现信息化的管理。

经分析先给出该系统的系统流程图,如图2所示:

该系统主要包括学生基本信息模块。

系统要实现基本信息录入、修改、删除、保存和查询等功能:

信息的输入,包括学生基本信息。

信息的修改、删除。

根据要求,查询符合条件的各类信息。

2.2数据流图

该系统数据流图如图3所示:

2.3实体联系E-R图

根据对数据流图和数据字典的分析,我们可以确定该应用中的实体,属性和实体之间的关系,并画出如下所示的E-R图。

图4学生实体图

3、概要设计

3.1总体结构设计

经需求分析,所得本系统所实现的基本功能,如图5思维图所示

图5总体结构图

3.2概要数据模型设计

本系统的实体有:

学生实体和专业实体。

学生实体具体的描述E-R图如图6所示

图6学生实体E-R图

专业实体具体描述如图7所示

图7专业实体E-R图

学生学籍管理系统的整体E-R图如图8所示

图8总体E-R图

4、详细设计

4.1系统的主要功能及实现

根据上面的需求分析,设计好数据库系统,然后开发前台应用程序。

所开发的前台界面要求用户可方便操作,同时很好的完成每一个窗口所实现的功能。

进入系统主页后,用户登录,登录成功选择角色,若是管理员,有学籍管理、课程管理。

学籍管理包括增加和删除以及修改学籍信息,课程管理具体包括增加、删除和修改课程信息。

接下来的操作有修改密码、查看个人信息、查看课程信息。

具体的学生学籍管理系统总体流程图。

如图9所示。

NY

图9总体流程图

用户登录后输入用户名和密码并选择角色,进入学生学籍管理系统。

具体流程图如图10所示

图10用户登录流程图

进入学生学籍管理系统后,若是管理员,则其有学籍管理或课程管理。

管理员权限具体流程图如图11所示。

图11管理员权限流程图

用户进入学生学籍管理系统后,若是学生登录,有修改密码,查看个人信息,查看课程信息等功能

图12学生权限流程图

5.项目编码

#include"

stdio.h"

conio.h"

stdlib.h"

string.h"

#defineN1000//N为可输入的学生总人数,可根据需要更改

#defineM2//M为宏定义的(在创建密码函数中)可建立的登陆用户个数,可更改

structstudent//定义学生信息结构体数组

{

charnum[9];

//学号

charname[20];

//姓名

chardepar[15];

//院系

charzhuanye[15];

//专业

charclasses[5];

//班级

charage[3];

//年龄

charsex[4];

//性别

charnation[5];

//民族

charbirth[9];

//出生日期

charadd[10];

//籍贯

};

structcode//定义密码结构体数组

charcode[7];

}co[M],s0;

//确认是否新创建密码文件模块

intcode()

{

FILE*fp;

if((fp=fopen("

学生学籍管理系统__code.txt"

"

rt"

))==NULL)

{

printf("

密码文件不存在,请输入新的用户名及密码:

\n"

);

//若不存在此密码文件,则提示用户创建密码

请输入任意键继续!

"

getch();

system("

cls"

return1;

//无密码文件返回1

}

else

return0;

//已有密码文件返回0

}

//新创建初始密码

voidcode_input()

inti;

wt"

))==NULL);

//当建立密码文件成功时,进入for循环

for(i=0;

i<

M;

i++)//M为宏定义的可建立的登陆用户个数,可更改

{

请录入第%d个用户名:

i+1);

//创建不同的用户名及密码

scanf("

%s"

co[i].name);

请录入第%d个密码(最多6位):

co[i].code);

fwrite(&

co[i],sizeof(structcode),1,fp);

//将密码保存进文件中

fclose(fp);

getch();

system("

}

//用户登陆验证模块

intenter(charname1[20],charcode1[6])

{

intflog=0;

fp=fopen("

//打开存放密码的文件

i++)

fread(&

//读密码文件

if((strcmp(name1,co[i].name)==0))//如果输入的用户名与已存在用户名相同,再比较密码是否相同,否则进行下一个用户名的比较

{

if((strcmp(code1,co[i].code)==0))//比较此用户名下的密码是否一致

return1;

//验证成功后回到主函数

}

if(i>

=M)//当比较完成后,都没有符合条件的用户名与密码,则直接跳出程序

******您无权进入此管理系统!

!

*****"

exit

(1);

//从文件读入数据

intread_file(structstudentstu[])

FILE*sp;

inti=0;

if((sp=fopen("

学生学籍管理系统__学生信息.txt"

))==NULL)//读文件,若文件不存在,则需要创建一个新的文件(文件创建在save_file函数中完成)

\n学生学籍管理系统__学生信息文件不存在,请创建!

while((fread(&

stu[i],sizeof(structstudent),1,sp))==1)//判断文件是否处在结束位置

if(stu[i].num==0)//若文件内容为空,则跳出循环

break;

else//若文件内容不为空,i自加1。

i++;

//i为文件内结构体数组的数量

fclose(sp);

returni;

//返回i值,代表文件中学生的人数

//保存学生信息(保存在文件中)

voidsave_file(structstudentstu[],intsum)

wb"

))==NULL)//若不存在此TXT文档,则创建;

读文件错误!

//创建不成功,返回menu函数;

return;

sum;

if(fwrite(&

stu[i],sizeof(structstudent),1,sp)!

=1)//保存文件,sum为现有总学生人数,若未保存成功,提示"

写文件错误!

printf("

return;

//创建并录入信息

intfound(structstudentstu[])

inti=0,x;

printf("

请输入要录入的学生的个数:

scanf("

%d"

&

x);

if(x==0)

do//输入信息

\n请录入第%d个学生的信息:

请录入学号:

stu[i].num);

\n请录入姓名:

stu[i].name);

\n请录入院系:

stu[i].depar);

\n请录入专业:

stu[i].zhuanye);

\n请录入班级:

stu[i].classes);

\n请录入性别:

stu[i].sex);

\n请录入年龄:

stu[i].age);

\n请录入出生日期(yyyymmdd):

stu[i].birth);

\n请录入民族:

stu[i].nation);

\n请录入籍贯:

stu[i].add);

i++;

}while(i<

//当i>

=x(用户要求创建学生的人数)时,跳出输入信息的for循环;

save_file(stu,x);

//保存学生信息致文件

录入完毕,请按任意键返回"

//返回创建学生的人数

//修改学生信息

voidmodify(structstudentstu[],intsum)

inti,item,a=1;

//i控制数组下标,item控制子菜单的选择

chars1[8];

read_file(stu,sum);

//读函数

do

\n\n\n请输入你要修改的学号:

s1);

//要修改的学生学号

for(i=0;

i++)//查找此学生

{

if(strcmp(stu[i].num,s1)==0)//若找到该生,输出该生的信息

{

printf("

该学生学号:

%s\n"

该学生姓名:

该学生院系:

该学生专业:

该学生班级:

该学生性别:

该学生年龄:

该学生出生日期:

该学生民族:

该学生籍贯:

a=0;

//找到该生,a=0;

//出for循环

}

if(a==1)//若没有找到该生,a=1,输出提示语句

\n\n该学号不存在!

请重新输入学号:

}while(a);

//当a=0,即没有找到该生,则继续循环重新输入学生学号

\t****************\n"

\t你选择你要修改的选项:

\t1.*修改姓名\n"

\t2.*修改年龄\n"

\t3.*修改性别\n"

\t4.*修改出生日期\n"

\t5.*修改籍贯\n"

\t6.*修改院系名称\n"

\t7.*修改专业名称\n"

\t8.*修改班级\n"

\t9.*修改民族\n"

\t0.*退出菜单\n"

while

(1)

\n\t请选择你要进行的操作:

item);

///item控制子菜单的选择

switch(item)

case1:

//修改姓名

\t请输入新的姓名:

scanf("

\n\n\n修改成功!

save_file(stu,sum);

case2:

//修改年龄

\t请输入新的年龄:

case3:

//修改性别

\t请输入新的性别:

case4:

//修改出生日期

\t请输入新的出生年月(yyyy.mm):

case5:

//修改籍贯

\t请输入新的籍贯:

scanf("

save_file(stu,sum);

break;

case6:

//修改院系

\t请输入新的院系:

case7:

//修改专业

\t请输入新的专业名称:

case8:

//修改班级

\t请输入新的班级:

case9:

//修改民族

\t请输入新的民族名称:

case0:

//不修改,退出

default:

printf("

\t请在0到9之间选择:

//若输入的值不在0~9,则提示

//查询学生信息

voidseek(structstudentstu[],intsum)

inti,item,flag;

//i控制数组下标,item控制子菜单的选择,flag为判断条件

chars1[11];

\n\n\t\t------------------\n"

\t\t1.按学号查询\n"

\t\t2.按姓名查询\n"

\t\t3.退出本菜单\n"

\t\t------------------\n"

\t\t请选择子菜单编号:

//选择子菜单

flag=0;

//按学号进行查找

\t\t请输入要查询的学生的学号:

for(

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 可爱清新

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1