数据结构之学生成绩管理系统方案Word文件下载.docx

上传人:b****5 文档编号:21079410 上传时间:2023-01-27 格式:DOCX 页数:16 大小:35.79KB
下载 相关 举报
数据结构之学生成绩管理系统方案Word文件下载.docx_第1页
第1页 / 共16页
数据结构之学生成绩管理系统方案Word文件下载.docx_第2页
第2页 / 共16页
数据结构之学生成绩管理系统方案Word文件下载.docx_第3页
第3页 / 共16页
数据结构之学生成绩管理系统方案Word文件下载.docx_第4页
第4页 / 共16页
数据结构之学生成绩管理系统方案Word文件下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数据结构之学生成绩管理系统方案Word文件下载.docx

《数据结构之学生成绩管理系统方案Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构之学生成绩管理系统方案Word文件下载.docx(16页珍藏版)》请在冰豆网上搜索。

数据结构之学生成绩管理系统方案Word文件下载.docx

//学生成绩管理系统的查找函数,由主函数调用

voidStuAlter(Student*);

//学生成绩管理系统的修改函数,由主函数调用

voidStuInsert(Student*);

//学生成绩管理系统的插入函数,由主函数调用

voidStuDelect(Student*);

//学生成绩管理系统的删除函数,由主函数调用

voidStuSave(Student*);

//学生成绩管理系统的存储函数,由主函数调用

基本操作函数:

voidStuOutput(Student*p);

//输出函数

intStuImport(Student*head,Student*p);

//输入函数

voidStuInputHand(Student*head);

//学生成绩管理系统的手动输入函数,由输入函数调用

voidStuInputFile(Student*head);

//学生成绩管理系统的文件输入函数,由输入函数调用

voidStuSelectErg(Student*head);

//学生成绩管理系统的遍历函数,由查找函数调用

voidStuSelectNumFind(Student*head);

//学生成绩管理系统的按学号查找函数,由查找函数调用

voidStuSelectSubFind(Student*head);

//学生成绩管理系统的按科目查找函数,由查找函数调用

2.实现步骤

首先,分析题目要求划分实现模块,定义基本数据类型,诸如结构体、链表等;

其次,针对上述的基本操作实现具体需要进行的操作,具体实现每个环节需要进行的基本操作,即具体编写每个小函数实现功能;

最后,编写主函数对每个实现进行按需调用,实现操作。

3.流程图

四.代码:

#include<

stdio.h>

malloc.h>

string.h>

structStudent

{

charname[10];

charsubject[10];

intnum;

intgrade;

Student*next;

};

voidStuMain();

//学生成绩管理系统的主函数,由main函数调用

 

voidStuOutput(Student*p)//打印函数,将链表的该节点信息输出

printf("

学生:

"

);

%s"

p->

name);

printf("

学生号:

printf("

%d"

num);

科目:

"

subject);

学生成绩:

%d\n"

grade);

}

intStuImport(Student*head,Student*p)

Student*Opinion=(Student*)malloc(sizeof(Student));

//用来判断输入节点中学生号是否有重复

Opinion=head->

next;

\n"

scanf("

%s"

scanf("

%d"

&

p->

if(Opinion!

=NULL)

{

if(Opinion->

num==p->

num&

&

!

strcmp(Opinion->

subject,p->

subject))

{

printf("

该学生这门科目已有成绩,请重新输入\n"

return1;

}

Opinion=Opinion->

}

return0;

voidmain()

StuMain();

voidStuMain()

chardecide='

y'

;

//定义while变量,函数是否继续进行

intnum=1;

//定义switch变量,函数跳转到哪个子函数

Student*head;

//定义链表的头指针

head=(Student*)malloc(sizeof(Student));

//给头指针开辟空间

head->

next=NULL;

//初始化头指针

while(decide!

='

n'

{

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

**********1输入2查找3修改4插入********\n"

**********5删除6存储7退出********\n"

switch(num)

case1:

StuInput(head);

break;

case2:

StuSelect(head);

case3:

StuAlter(head);

case4:

StuInsert(head);

case5:

StuDelect(head);

case6:

StuSave(head);

default:

decide='

}

};

voidStuInput(Student*head)//学生成绩管理系统的输入函数,由主函数调用

**1手动输入2文件输入3退出**\n"

StuInputHand(head);

StuInputFile(head);

voidStuInputHand(Student*head)//学生成绩管理系统的手动输入函数,由输入函数调用

if(head->

next==NULL)

Student*point=(Student*)malloc(sizeof(Student));

//链表中最后一个节点,只在该函数中存在

point->

intdecide=1;

while(decide!

=0)

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

p->

StuImport(head,p);

if(head->

head->

next=p;

point=p;

else

point->

point=p;

printf("

是否继续:

1/0\n"

scanf("

decide);

else

管理系统中已存在信息,若想输入学生信息,请转插入子系统"

voidStuInputFile(Student*head)//学生成绩管理系统的文件输入函数,由输入函数调用

next!

学生管理系统中已有信息,请跳转到插入选项\n"

return;

FILE*fp;

请输入文件名(包括物理地址)\n"

charfilename[10];

filename);

if((fp=fopen(filename,"

r"

))==NULL)

{

cannotopenfile\n"

return;

}

Student*point=(Student*)malloc(sizeof(Student));

Student*Opinion=(Student*)malloc(sizeof(Student));

while(!

feof(fp)){

Opinion=head->

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

fread(p,sizeof(Student),1,fp);

if(Opinion!

{

该文件中有重复学生信息,请验明再传输\n"

return;

}

};

while(Opinion->

next->

Opinion->

fclose(fp);

传输成功\n"

voidStuSelect(Student*head)//学生成绩管理系统的查找函数,由主函数调用

****1遍历2学号查找3科目查找4退出****\n"

StuSelectErg(head);

StuSelectNumFind(head);

StuSelectSubFind(head);

voidStuSelectErg(Student*head)//学生成绩管理系统的遍历函数,由查找函数调用

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

p=head->

inti=1;

while(p!

第%d位学生信息:

i);

StuOutput(p);

p=p->

i++;

voidStuSelectNumFind(Student*head)//学生成绩管理系统的查找子系统,有查找函数调用

输入想要查找学生的学生号:

if(num==p->

num)

if(i==1)

没有该学生信息"

voidStuSelectSubFind(Student*head)//学生成绩管理系统的按科目查找函数,由查找函数调用

charSub[10];

输入想要查找科目:

Sub);

if(!

strcmp(Sub,p->

voidStuAlter(Student*head)//学生成绩管理系统的修改函数,由主函数调用

charSub[10];

输入修改成绩:

修改成功\n"

if(i==1)

voidStuInsert(Student*head)//学生成绩管理系统的插入函数,由主函数调用

point=head->

while(point->

point=point->

//找到尾结点

chardecide='

//定义while变量,函数是否继续进行

intnum;

****1头插2尾插3退出****\n"

StuImport(head,p);

p->

next=head->

head->

插入成功\n"

voidStuDelect(Student*head)//学生成绩管理系统的删除函数,由主函数调用

输入想要删除学生的学生号:

输入想要删除科目:

while(p->

StuOutput(p->

next);

是否删除:

i);

if(num==head->

strcmp(Sub,head->

next=p->

i=2;

删除成功\n"

break;

没有该学生信息\n"

voidStuSave(Student*head)//学生成绩管理系统的存储函数,由主函数调用

FILE*fp;

请输入存储文件名(包括物理地址)\n"

if((fp=fopen(filename,"

w"

))==NULL)

cannotopenfile"

return;

inputdata:

/n"

while(p!

fwrite(p,sizeof(Student),1,fp);

/*成块写入文件*/

p=p->

fclose(fp);

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

当前位置:首页 > 工作范文 > 其它

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

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