学生信息管理系统设计Word文件下载.docx

上传人:b****5 文档编号:8501605 上传时间:2023-05-11 格式:DOCX 页数:23 大小:245.14KB
下载 相关 举报
学生信息管理系统设计Word文件下载.docx_第1页
第1页 / 共23页
学生信息管理系统设计Word文件下载.docx_第2页
第2页 / 共23页
学生信息管理系统设计Word文件下载.docx_第3页
第3页 / 共23页
学生信息管理系统设计Word文件下载.docx_第4页
第4页 / 共23页
学生信息管理系统设计Word文件下载.docx_第5页
第5页 / 共23页
学生信息管理系统设计Word文件下载.docx_第6页
第6页 / 共23页
学生信息管理系统设计Word文件下载.docx_第7页
第7页 / 共23页
学生信息管理系统设计Word文件下载.docx_第8页
第8页 / 共23页
学生信息管理系统设计Word文件下载.docx_第9页
第9页 / 共23页
学生信息管理系统设计Word文件下载.docx_第10页
第10页 / 共23页
学生信息管理系统设计Word文件下载.docx_第11页
第11页 / 共23页
学生信息管理系统设计Word文件下载.docx_第12页
第12页 / 共23页
学生信息管理系统设计Word文件下载.docx_第13页
第13页 / 共23页
学生信息管理系统设计Word文件下载.docx_第14页
第14页 / 共23页
学生信息管理系统设计Word文件下载.docx_第15页
第15页 / 共23页
学生信息管理系统设计Word文件下载.docx_第16页
第16页 / 共23页
学生信息管理系统设计Word文件下载.docx_第17页
第17页 / 共23页
学生信息管理系统设计Word文件下载.docx_第18页
第18页 / 共23页
学生信息管理系统设计Word文件下载.docx_第19页
第19页 / 共23页
学生信息管理系统设计Word文件下载.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

学生信息管理系统设计Word文件下载.docx

《学生信息管理系统设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统设计Word文件下载.docx(23页珍藏版)》请在冰点文库上搜索。

学生信息管理系统设计Word文件下载.docx

2)学生信息录入功能(学生信息用文件保存)---输入

3)学生信息浏览功能---输出

4)排序功能

5)按学号查询

6)按姓名查询

7)学生信息的删除与修改

2.2部分模块流程图

系统流程图

3程序代码设计

定义类型:

structstudent,Node*Locate,Temp,charfindmess

声明函数调用的范围:

charname,charsex,charnativeplace,node

3.1输入模块

1)函数原型:

voidmenu(),voidprintstart(),voidAdd(Linkl),voidQur(Linkl),voidModify(Linkl),voidDisp(Linkl)

2)功能:

intstruct函数声明函数char引用一系列数组,利用switch和break语句实现函数之间的循环,case语句为循环体提供了执行体,利用continue语句实现循环的正常进行。

Strlen语句实现了电脑对输入数据进行比较。

Return语句实现了程序的多次进行任意次结束。

3)变量及类型:

int进行整形数据的输入

Struct定义函数

指针变量为数据提供了地址

4)说明:

本程序分为五个板块

<

1>

登记学生资料

当运行时输入1,则可增加学生资料,即可输入学生信息。

<

2>

查询学生资料

当运行时输入2,则可查询学生信息,可按学生学号和学生姓名这两种方式查询,当输入正确时,可得到要查学学生的信息。

3>

删除学生资料

当运行时输入3,则可删除学生信息,可按学生学号和学生姓名这两种方式删除,当输入正确时,可删除需要删除的学生的信息。

4>

修改学生资料

当运行时输入4,则可修改学生信息,可按学生学号和学生姓名这两种方式修改,当输入正确时,就可重新输入学生信息。

5>

保存学生资料

当运行时输入5,则可保存学生信息,当再次运行时,第一次保存的的学生信息就不会丢掉,随时可进行查询删除修改。

3.2输出模块

4具体程序

#include"

stdio.h"

stdlib.h"

string.h"

intshoudsave=0;

/**/

structstudent

{

charnum[10];

/*学号*/

charname[20];

charsex[4];

charbirth[20];

intage;

chartele[11];

charaddr[30];

};

typedefstructnode

structstudentdata;

structnode*next;

}Node,*Link;

/*************************************************************************************/

voidmenu()

printf("

********************************************************************************"

);

\t1登记学生资料\t\t\t\t\t2查询学生资料\n"

\t3删除学生资料\t\t\t\t\t4修改学生资料\n"

\t5保存学生资料\t\t\t\t\t0退出系统\n"

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

}

voidprintstart()

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

voidWrong()

\n=====>

提示:

输入错误!

\n"

voidNofind()

没有找到该学生!

voidprintc()/*本函数用于输出中文*/

学号\t姓名\t性别\t电话\t出生年月\t年龄\t地址\n"

voidprinte(Node*p)/*本函数用于输出英文*/

%-12s%s\t%s\t%d\t%d\t%d\t%s\n"

p->

data.num,p->

data.name,p->

data.sex,p->

data.tele,p->

data.birth,p->

data.age,p->

data.addr);

Node*Locate(Linkl,charfindmess[],charnameornum[])/*该函数用于定位连表中符合要求的接点,并返回该指针*/

Node*r;

if(strcmp(nameornum,"

num"

)==0)/*按学号查询*/

{

r=l->

next;

while(r!

=NULL)

{

if(strcmp(r->

data.num,findmess)==0)

returnr;

r=r->

}

}

elseif(strcmp(nameornum,"

name"

)==0)/*按姓名查询*/

data.name,findmess)==0)

return0;

voidAdd(Linkl)/*增加学生*/

Node*p,*r,*s;

r=l;

s=l->

while(r->

next!

r=r->

/*将指针置于最末尾*/

while

(1)

printf("

'

0'

返回上一级菜单"

scanf("

%s"

num);

if(strcmp(num,"

0"

)==0)

break;

while(s)

if(strcmp(s->

data.num,num)==0)

{

printf("

=====>

学号为'

%s'

的学生已经存在,若要修改请你选择'

4修改'

!

printstart();

printc();

printe(s);

return;

}

s=s->

p=(Node*)malloc(sizeof(Node));

请你输入学号:

"

data.num,num);

getchar();

请你输入姓名:

data.name);

请你输入性别:

data.sex);

请你输入年龄:

%d"

&

p->

data.age);

请你输入出生年月:

data.birth);

请你输入电话:

data.tele);

请输入地址:

/*信息输入已经完成*/

p->

next=NULL;

r->

next=p;

r=p;

shoudsave=1;

voidQur(Linkl)/*查询学生*/

intsel;

charfindmess[20];

Node*p;

if(!

l->

next)

没有资料可以查询!

return;

1按学号查找\n=====>

2按姓名查找\n"

scanf("

sel);

if(sel==1)/*学号*/

请你输入要查找的学号:

findmess);

p=Locate(l,findmess,"

if(p)

printf("

\t\t\t\t查找结果\n"

printstart();

printc();

printe(p);

else

Nofind();

elseif(sel==2)/*姓名*/

请你输入要查找的姓名:

else

Wrong();

voidDel(Linkl)/*删除*/

Node*p,*r;

没有资料可以删除!

1按学号删除\n=====>

2按姓名删除\n"

if(sel==1)

请你输入要删除的学号:

r=l;

while(r->

=p)

r=r->

r->

next=p->

free(p);

该学生已经成功删除!

shoudsave=1;

elseif(sel==2)

请你输入要删除的姓名:

voidModify(Linkl)

没有资料可以修改!

请你输入要修改的学生学号:

p=Locate(l,findmess,"

if(p)

请你输入新学号:

data.num);

请你输入新姓名:

请你输入新性别:

请你输入新的年龄:

请你输入新的出生年月:

请你输入新的电话:

请输入新的地址:

资料修改成功!

Nofind();

/**************************************************************************************************/

voidDisp(Linkl)

intcount=0;

p=l->

p)

没有资料可以显示!

\t\t\t\t显示结果\n"

printstart();

printc();

while(p)

printe(p);

p=p->

voidSort(Linkl)

Linkll;

Node*p,*rr,*s;

ll=(Link)malloc(sizeof(Node));

/*用于做新的连表*/

ll->

if(l->

next==NULL)

没有资料可以排序!

return;

s=(Node*)malloc(sizeof(Node));

/*新建接点用于保存信息*/

s->

data=p->

data;

rr=ll;

while(rr->

=NULL)

rr=rr->

if(rr->

rr->

next=s;

s->

next=rr->

free(l);

l->

next=ll->

排序已经完成!

voidSave(Linkl)

FILE*fp;

intflag=1,count=0;

fp=fopen("

c:

\\student"

"

wb"

if(fp==NULL)

重新打开文件时发生错误!

exit

(1);

if(fwrite(p,sizeof(Node),1,fp)==1)

p=p->

count++;

flag=0;

if(flag)

文件保存成功.(有%d条记录已经保存.)\n"

count);

shoudsave=0;

fclose(fp);

voidmain()

Linkl;

/*连表*/

FILE*fp;

/*文件指针*/

charch;

charjian;

\t\t\t\t学生信息管理系统\n\t\t\t\t-------网络技术09-1班\n"

l=(Node*)malloc(sizeof(Node));

C:

rb"

文件还不存在,是否创建?

(y/n)\n"

%c"

jian);

if(jian=='

y'

||jian=='

Y'

fp=fopen("

exit(0);

文件已经打开,正在导入记录......\n"

while(!

feof(fp))

p=(Node*)malloc(sizeof(Node));

if(fread(p,sizeof(Node),1,fp))/*将文件的内容放入接点中*/

p->

r=p;

/*将该接点挂入连中*/

/*关闭文件*/

记录导入完毕,共导入%d条记录.\n"

whi

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

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2