学生学籍信息管理系统流程图.docx

上传人:b****5 文档编号:11617486 上传时间:2023-03-28 格式:DOCX 页数:14 大小:18.98KB
下载 相关 举报
学生学籍信息管理系统流程图.docx_第1页
第1页 / 共14页
学生学籍信息管理系统流程图.docx_第2页
第2页 / 共14页
学生学籍信息管理系统流程图.docx_第3页
第3页 / 共14页
学生学籍信息管理系统流程图.docx_第4页
第4页 / 共14页
学生学籍信息管理系统流程图.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

学生学籍信息管理系统流程图.docx

《学生学籍信息管理系统流程图.docx》由会员分享,可在线阅读,更多相关《学生学籍信息管理系统流程图.docx(14页珍藏版)》请在冰豆网上搜索。

学生学籍信息管理系统流程图.docx

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

1、题目描述

编写一个学籍信息管理程序,以一个班级为例。

学籍信息的组成部分为:

学号、姓名、性别、出生日期、政治面貌和家庭住址等。

具体实现以下功能:

(1)添加:

学号自动加1;

(2)删除;

(3)修改;

(4)查询:

可按多个条件查询;

(5)用子函数实现各个子功能

【输入】

程序正常运行后,屏幕上显示一个文字菜单(根据序号选定相应的操作项

目),当用户选定操作项目所对应的序号时,根据应用程序的提示信息,从键盘

上输入相应的数据。

【输出】

(1)应用程序正常运行后,要在屏幕上显示一个文字菜单;

(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数

据内容、格式及结束方式等。

2、功能分析

通过这样一个小型的学籍管理程序,可以实现小规模的学校学籍管理机制。

利用该程序,可以将该学校的学生信息进行统计。

首先,将学生的详细情况输入

到电脑中并且存入到文件中,保证数据不会丢失,当再次进入该程序时,可以方

便的查询学生的各种信息。

若当需要查询某个学生的详细资料时,可以通过其任

何信息比如学号、家庭住址等信息进行查询,这样会给用户查询某个学生的信息

以极大的方便。

当发现某个学生的信息录入系统时有错误,可已对数据进行修改,

又或者,当某位员工,因各种原因退学时,也可以删除其信息。

本系统实现五种基本功能:

添加学生信息、删除学生信息、修改学生信息、

存储学生信息到文件。

所以该学籍管理系统可以分为5个部分,分别为添加模块、

删除模块、修改模块、存储模块、查询模块,每个模块都有其对应的功能以及其

2

设计。

首先,当然你必须定义一个类,其中私有成员必须包括学号、姓名、性别、

出生日期、政治面貌和家庭住址等。

然后在公有成员中可以定义多个函数实现各

个功能。

(1)添加功能模块

这一模块通过类内函数push()实现,学号自动加1,实现学生信息的添加根

据屏幕上的提示依次输入学生的姓名、生日、性别、政治面貌、地址等信息并且

写入文件中,方便下次进入系统时的使用。

(2)删除功能模块

这一模块由deleting()函数实现其功能,根据屏幕上的提示输入想要删除

的员工信息的员工的工号,然后实现删除功能并保存到文件中。

(3)修改功能模块

该模块的功能通过类内函数revise()来实现,进入该函数后,根据屏幕上

的提示,输入想要修改的信息对应的数字键,比如说输入学生的姓名、学号、地

址、生日、政治面貌等等对应的1、2、3、4、5等数字键。

然后再输入修改后的

学生信息并且保存。

(4)查询功能模块

查询模块的功能是你可以输入学生的任何信息员并进行操作。

(5)保存功能模块

保存信息到文件,使系统更加人性化,这样系统退出也不会是信息丢失,用

户下次使用不用重复输入。

3

3.系统设计

3.1程序总体结构

系统设计总流程图:

图1,程序设计总流程图

开始

进入主菜单

选择

退

4

3.2主功能模块设计

3.2.1菜单模块

执行显示主菜单和进入主循环操作,进行按键判断。

在判断键值时,有效的

输入为0~4之间的任意叔侄,其他输入都被视为错误按键。

若输入为1,则会跳

转到数据录入函数;若输入为2,则会跳转到修改函数;若输入为3,则会跳转

到信息删除模块;若输入为4,则会跳转到显示指定学生信息的查询部分;若输

入为0,则安全退出系统。

菜单模块的表格如下:

0

退出系统

1

学生信息的录入

2

学生信息的修改

3

学生信息的删除

4

学生信息的查询

表1,菜单模块

3.2.2信息的录入模块

输入记录模块主要实现将数据存入数组中。

当从数据文件中读出记录时,执

行一次从文件中读取一条工资记录信息存入数组元素中,并且这个操作在main()

中调用执行,记载工资管理系统进入显示菜单界面是,该操作已经执行了。

若该

文件没有数据,系统会提示数组为空,没有任何记录可操作,此时,用户应选择

1,调用push()函数,进行记录的输入,即完成在数组中添加元素的操作。

5

3.2.3信息的修改模块

如果对每一个成员的修改在公有成员中都定义一个函数,会让这个程序看起

来显得特别臃肿。

可以模仿这个程序的主程序一样,对各个功能进行编号,如对

修改姓名可以编号1、对修改姓名进行编号2等等。

然后只需定义一个函数就可

实现。

3.2.4信息的删除模块

可以定义一个类的对象的数组,首先根据输入的学号,找到对应的数组对应

的元素。

然后依次向前覆盖,最后将数组长度减一,实现删除的目的。

3.2.5信息的查询模块

因为除了学号我们定义的私有成员都是字符串,所以我们就可以将学号转换

为字符串然后只需对字符串的运算就可以了,这样就会方便很多。

因为本次程序

的数据量较小,所以不用担心将学号转换过来会和生日日期相同的情况。

3.3程序设计

3.3.1主函数main()

主函数main()程序如下:

intmain()

{

system("color1c");

ifstreamfp;

fp.open("student.dat");

intnum,n=1,u;

charnam[20],se[20],birth[20],politic[20],addre[20];

while(fp>>num)

{

fp>>nam>>se>>birth>>politic>>addre;

a[n].inpush(num,nam,se,birth,politic,addre);

n++;

qn++;

}

u=n;

6

fp.close();

cout<<"\t\t\t****************\n\t\t\t*

*\n\t\t\t*\t学籍信息管理系统*\n\t\t\t**\n";

cout<<"\t\t\t*\t0.退出*\n\t\t\t*

*\n\t\t\t*\t1.添加*\n\t\t\t**\n\t\t\t*\t2.

修改*\n\t\t\t**\n\t\t\t*\t3.删除

*\n\t\t\t**\n\t\t\t*\t4.查询*\n\t\t\t*

*\n\t\t\t****************\n\n请输入你需要进行的操作的编号:

";

intm,t,i,temp,q;

cin>>m;

chars[50];

while(m!

=0)

{

switch(m)

{

case1:

system("cls");

system("color5e");

a[n].push();n++;

getch();

break;

case2:

system("cls");

system("color3a");

cout<<"请输入你要进行修改的第几个学生的信息:

";

cin>>t;

if(t>n)

cout<<"你输入的学号不正确,修改操作结束\n";

else

{a[t].revise();

cout<<"修改后的学生信息为:

\n";

a[t].print();

cout<<"修改操作结束\n";}

getch();

break;

case3:

system("cls");

system("color6f");

cout<<"请输入你要进行删除的第几个学生的信息:

";

cin>>t;

if(t>n)

cout<<"你输入的学号不正确,删除操作结束\n";

else

7

n=deleting(t,n);

getch();

break;

case4:

system("cls");

system("color5e");

cout<<"请输入你要查找的信息:

";

cin>>s;

cout<<"你要查找的学生的信息为:

";

for(i=1;i<=n;i++)

{temp=a[i].search(s);

if(temp)

{a[i].print();

q=1;

}

}

if(!

q)

cout<<"无此人"<

q=0;

getch();

break;

default:

cout<<"你输入的编号不合法,请重新输入:

";

gotoloop;

}

system("cls");

system("color1c");

cout<<"\t\t\t****************\n\t\t\t*

*\n\t\t\t*\t学籍信息管理系统*\n\t\t\t**\n";

cout<<"\t\t\t*\t0.退出*\n\t\t\t*

*\n\t\t\t*\t1.添加*\n\t\t\t**\n\t\t\t*\t2.

修改*\n\t\t\t**\n\t\t\t*\t3.删除

*\n\t\t\t**\n\t\t\t*\t4.查询*\n\t\t\t*

*\n\t\t\t****************\n\n请输入你需要进行的操作的编号:

";

loop:

cin>>m;

}

cout<<"系统存储的的学生信息为:

"<

for(i=1;i

a[i].print();

cout<<"是否保存新添加的学生信息?

<1保存/2不保存>\n";

cin>>m;

8

if(m==1)

{

for(i=u;i

a[i].save();

cout<<"保存成功!

\n";

}

return0;

}

3.3.2添加函数

添加函数程序如下:

voidstudent_information:

:

push(){

chars[50];

number=qn++;

cout<<"此学生的学号为:

"<

";

cin>>s;

strcpy(name,s);

cout<

";

cin>>s;

strcpy(sex,s);

cout<

19990304):

";

cin>>s;

strcpy(birthday,s);

cout<

";

cin>>s;

strcpy(political,s);

cout<

";

cin>>s;

strcpy(address,s);

}

9

3.3.3修改函数

修改函数程序如下:

voidstudent_information:

:

revise()

{

cout<<"0.不进行修改\n1.修改性别\n2.修改生日\n3.修改政治面貌\n4.修改地址

\n5.修改姓名\n请输入修改的操作的编号:

";

intt;

chars[50];

cin>>t;

switch(t)

{

case0:

cout<<"修改操作结束\n";break;

case1:

cout<<"请输入你要修改成学生的性别:

";

cin>>s;

strcpy(sex,s);

cout<<"修改操作结束\n";

break;

case2:

cout<<"请输入你要修改成学生的生日:

";

cin>>s;

strcpy(birthday,s);

cout<<"修改操作结束\n";

break;

case3:

cout<<"请输入你要修改成学生政治面貌:

";

cin>>s;

strcpy(political,s);

cout<<"修改操作结束\n";

break;

case4:

cout<<"请输入你要修改成学生的地址:

";

cin>>s;

strcpy(address,s);

cout<<"修改操作结束\n";

break;

case5:

cout<<"请输入你要修改成学生的地址:

";

cin>>s;

strcpy(name,s);

break;

default:

10

cout<<"你输入的信息不合法,修改操作结束。

"<

break;

}

}

3.3.4删除函数

删除函数程序如下:

intdeleting(intm,intn)

{

for(inti=m;i<=n;i++)

a[m]=a[m+1];

returnn-1;

}

3.3.5查询函数为

查询函数程序如下:

intstudent_information:

:

search(char*q)

{

chars[5];

s[0]=number/1000+'0';

s[1]=number/100%10+'0';

s[2]=number/10%10+'0';

s[3]=number%10+'0';

s[4]='\0';

if(strcmp(s,q)==0)return1;

if(strcmp(sex,q)==0)return1;

if(strcmp(name,q)==0)return1;

if(strcmp(political,q)==0)return1;

if(strcmp(address,q)==0)return1;

if(strcmp(birthday,q)==0)return1;

return0;

}

3.3.6磁盘文件的操作

(1)从文件中读取信息

voidstudent_information:

:

inpush(intnum,charnam[],charse[],charbirth[],char

politic[],charaddre[])

11

{

number=num;

strcpy(name,nam);

strcpy(sex,se);

strcpy(birthday,birth);

strcpy(political,politic);

strcpy(address,addre);

}

(2)信息储存到文件

voidstudent_information:

:

save()

{

ofstreamqp;

qp.open("student.dat",ios_base:

:

app);

qp<

qp<

qp<

qp<

qp<

qp<

qp.close();

}

3.4类与函数的设计与实现

类的定义程序如下:

classstudent_information

{

private:

intnumber;//学号

charname[20];//姓名

charsex[5];//性别

charbirthday[10];//生日

charpolitical[20];//政治面貌

charaddress[50];//地址

public:

student_information(){}

voidinpush(intnum,charnam[],charse[],charbirth[],charpolitic[],charaddre[]);

voidpush();

voidrevise();

voidprint();

intsearch(char*q);

voidsave();

};

12

4、运行与测试结果

4.1添加数据

添加数据程序运行界面图如下:

图2,添加数据程序运行界面截图

13

4.2数据的修改

数据修改的程序运行界面如下:

图3,数据修改程序运行界面截图

14

4.3数据的删除

数据的删除程序运行界面如下:

图4,数据删除程序运行界面截图

15

4.4数据的查询

数据的查询程序运行界面如下:

图5,数据修改程序运行界面截图

16

4.5保存数据

保存数据程序运行界面如下:

图6,保存数据程序运行界面截图

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

当前位置:首页 > 经管营销

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

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