C语言学生信息管理系统实验报告.docx

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

C语言学生信息管理系统实验报告.docx

《C语言学生信息管理系统实验报告.docx》由会员分享,可在线阅读,更多相关《C语言学生信息管理系统实验报告.docx(31页珍藏版)》请在冰点文库上搜索。

C语言学生信息管理系统实验报告.docx

C语言学生信息管理系统实验报告

C语言课程设计

学生信息管理系统

姓名

洪伟生

院系

计算机学院

日期

2015年7月5日

第一章设计要求

第二章算法分析

1.理论依据

2.主要实现方法

2.1整体流程图

2.2函数功能和函数之间的调用关系

第三章代码(源代码)

第四章分析说明

第五章总结

第一章、设计要求

1、禾U用所学的知识、理论和实际结合,禾U用资源,采用模块化的结构,使用模仿修改自主设计相结合的方法,锻炼学生综合分析解决实际问题的编程能力;

2、通过C语言各个函数功能来实现对学生信息的管理,学生信息包括学生,学号,各科成绩;管理方式包括对学生信息的录入,保存,排序,查找、修改、删除等功能。

第二章、算法分析

1、程序理论依据

通过C语言的程序设计基础的掌握,对学生成绩管理系统进行编写程序。

首先,通过链表这一数据结构来对学生的信息进行录入以及操作,在其过程中,通过各个功能语句以及选

择结构,循环结构等方式的结合来达到所要实现的程序功能。

最后通过对C语言中对文件

的操作,对已有学生成绩的读取和新建学生成绩的录入保存。

2、主要实现方法

2.1整体流程图

学生信息管

理系统

进入

退出

返回主菜单

学生信息浏览

学生信息查找

学生信息修改

学生信息增加

2.2、函数功能和函数之间的调用关系

2.2.1、函数功能:

voidMenu_1();voidMenu_2();

//

//

主菜单二级菜单

voidswap(structstudent*phead,struct

表节点互换

voidSave(structstudent*head);

voidSearch(structstudent*head);

生信息

voidRead(structstudent*head);

生信息

voidSort(structstudent*head);

点排序

student*pback);//

//

//

//

//

写入磁

查找学

显示学

链表节

structstudent*Create();

录入

structstudent*Readpoint();

structstudent*Modify(structstudent*head);

体成员修改

structstudent*Add(structstudent*head);点插入

structstudent*Delete(structstudent*head);点删除

//

//

//

//

//

学生信息手动

磁盘文件写入

链表结构

链表节

链表节

 

2.2.2、函数之间的调用关系:

通过switch语句进行指令选择:

case1:

学生信息录入调用函数Create()、Save()、Menu_1()、Menu_2()

case2:

学生信息浏览

调用函数Readpoint()、Sort()、Read()、Save()、Menu_1()、Menu_2()

case3:

学生信息查找

调用函数Search()、Readpoint()、Menu_1()、Menu_2()

case4:

学生信息修改

调用函数Modify()、Readpoint()、Save()、Menu_1()、Menu_2()

case5:

学生信息增加

调用函数Add()、Readpoint()、Save()、Menu_1()、Menu_2()

case6:

学生信息删除

调用函数Delete()、Readpoint()Save()、Menu_1()、Menu_2()

case0:

返回主菜单

第三章、代码(源代码)

学生信息管理系统

//定义结构体

调用函数Menu_1()

/*

*/

#include#include#includestructstudent

{

intnum;

charname[24];charsex[5];intChinese;

intMath;intEnglish;

structstudent*next;

voidswap(structstudent*phead,structstudent*pback);

//

链表

节点互换

voidSave(structstudent*head);//

写入

磁盘

voidSearch(structstudent*head);//

查找

学生信息

voidRead(structstudent*head);//

显示

学生信息

voidSort(structstudent*head);//

链表

节点排序

structstudent*Readpoint();//

磁盘

文件写入存

structstudent*Create();//

学生信息手动录入

structstudent*Modify(structstudent*head);//

链表

结构体成员修改

structstudent*Add(structstudent*head);//

链表

节点插入

structstudent*Delete(structstudent*head);//

链表

节点删除

主菜单二级菜单

};

voidMenu_1();//

voidMenu_2();//

intmain(void)

{

Menu_1();return0;

}

voidMenu_1()

{

intnum;

printf("\t\t\t\t学生信息管理系统\t\t\t\t\n");

printf("\t\t\t1:

进入学生信息管理\n");//

主菜单

printf("\t\t\t0:

退出学生信息管理\n");

printf("请您输入指令:

");

scanf("%d",&num);

switch(num)

{case1:

Menu_2();

break;

您已退出

default:

printf("

学生信息管理系统\n");

break;

}

}

/*

*/

voidMenu_2()

1

structstudent*head;intnum;

printf("\t\t\t

欢迎进入\n");

printf("

--\n");

printf("\t\t\t1:

学生信息录入\n");

printf("\t\t\t2:

学生信息浏览\n");

printf("\t\t\t3:

学生信息查找\n");

printf("\t\t\t4:

//二级菜单

学生信息修改\n");

printf("\t\t\t5:

学生信息增加\n");

printf("\t\t\t6:

学生信息删除\n");

printf("\t\t\t0:

返回主菜单\n");

printf("

---\n");

printf("请您输入指令:

");scanf("%d",&num);switch(num)

{

case1:

{

head=Create();

Save(head);

printf("\n");

printf("\t\t\t1:

返回主菜单\n");

//手动录入学生数据

printf("\t\t\t2:

返回二级菜单\n");

printf("\n");

printf("请您输入指令:

");

scanf("%d",&num);

switch(num)

{

case1:

Menu_1();

break;

case2:

Menu_2();

break;default:

{

printf("输入无效,返回二级菜单!

\n");Menu_2();

}break;

}

}break;

case2:

{head=Readpoint();

//写入链表,返回头指针

Sort(head);

printf("\t\t\t以学号升序排列\n");Read(head);

//链表数据写入文件

Save(head);

printf("\n");

printf("\t\t\t1:

返回主菜单\n");

printf("\t\t\t2:

返回二级菜单\n");

printf("\n");

printf("请您输入指令:

");scanf("%d",&num);switch(num)

{

case1:

Menu_1();break;

case2:

Menu_2();break;

default:

{

printf("输入无效,返回二级菜单!

\n");Menu_2();

}break;

}

}break;

case3:

{head=Readpoint();

Search(head);//查找学生信息

printf("\n");

printf("\t\t\t1:

返回主菜单\n");

printf("\t\t\t2:

返回二级菜单\n");

printf("\n");

printf("请您输入指令:

");

scanf("%d",&num);

switch(num)

{

case1:

Menu_1();break;

case2:

Menu_2();

break;

default:

{

printf("输入无效,返回二级菜单!

\n");

Menu_2();

}

break;

}

}

break;

case4:

{

head=Readpoint();

Modify(head);//修改结构体成员并保存到文件

Save(head);

printf("\n");

printf("\t\t\t1:

返回主菜单\n");

printf("\t\t\t2:

返回二级菜单\n");

printf("\n");

printf("请您输入指令:

");

scanf("%d",&num);

switch(num)

{

case1:

Menu_1();break;

case2:

Menu_2();

break;

default:

{

printf("输入无效,返回二级菜单!

\n");

Menu_2();

}

break;

}

}

break;

case5:

{

//增加学生信

head=Readpoint();

Add(head);

息并保存到文件

Save(head);

printf("\n");

printf("\t\t\t1:

返回主菜单\n");

printf("\t\t\t2:

返回二级菜单\n");

printf("\n");

printf("请您输入指令:

");scanf("%d",&num);switch(num){case1:

Menu_1();break;

case2:

Menu_2();

break;

default:

{

printf("输入无效,返回二级菜单!

\n");Menu_2();

}

break;

}

}

break;

case6:

{

head=Readpoint();

head=Delete(head);

//删除学生信息并保存到文件

Save(head);

printf("\n");

printf("\t\t\t1:

返回主菜单\n");

printf("\t\t\t2:

返回二级菜单\n");

printf("\n");

printf("请您输入指令:

");scanf("%d",&num);switch(num){case1:

Menu_1();break;

case2:

Menu_2();break;

default:

{

printf("输入无效,返回二级菜单!

\n");Menu_2();

}break;

}

}

break;

case0:

Menu_1();

break;

default:

{

printf("请重新输入\n");

Menu_2();

}

break;

}

}

/*

-*/structstudent*Create()//学生信息手动录入{

structstudent*head,*p,*q;

intn;

p=q=(structstudent*)malloc(sizeof(structstudent));

printf("请输入学生的、学号、性别、语文成绩、高等数学成绩、英语成绩:

\n");

scanf("%s",q->name);

scanf("%d%s%d%d%d",&q->num,&q->sex,&q->Chinese,&q->Math,&q->English);

n=0;

head=NULL;

while(q->num!

=0)

{

n=n+1;

if(n==1)head=q;

else

p->next=q;p=q;

q=(structstudent*)malloc(sizeof(structstudent));

scanf("%s",q->name);

scanf("%d%s%d%d%d",&q->num,q->sex,&q->Chinese,&q->Math,&q->English);

}

p->next=NULL;

printf("学生信息录入成功!

\n");returnhead;

}

/*

--*/

structstudent*Readpoint()

//学生信息写入存,便于操作

{FILE*fp1;

structstudent*head,*p,*q;

intn;

if((fp1=fopen("E:

test.txt","rb"))==NULL)

{

printf("openfileerror!

\n");exit(0);

}

p=q=(structstudent*)malloc(sizeof(structstudent));

fscanf(fp1,"%s%d%s%d%d%d",q->name,&q->num,q->sex,&q->Chinese,&q->Math,&q->English);

n=0;head=NULL;

while(!

feof(fp1))

{

n=n+1;

if(n==1)

head=q;

else

p->next=q;p=q;

q=(structstudent*)malloc(sizeof(structstudent));

fscanf(fp1,"%s%d%s%d%d%d",&q->name,&q->num,&q->sex,&q->Chinese,&q->Math,&q->English);

}

p->next=NULL;

fclose(fp1);

returnhead;}

/*

--*/

voidSwap(structstudent*phead,structstudent*pback)//链表元素数据交换

{

structstudent*temp=(structstudent*)malloc(sizeof(structstudent));

strcpy(temp->name,phead->name);temp->num=phead->num;strcpy(temp->sex,phead->sex);temp->Chinese=phead->Chinese;temp->Math=phead->Math;temp->English=phead->English;

strcpy(phead->name,pback->name);phead->num=pback->num;strcpy(phead->sex,pback->sex);phead->Chinese=pback->Chinese;phead->Math=pback->Math;phead->English=pback->English;

strcpy(pback->name,temp->name);pback->num=temp->num;strcpy(pback->sex,temp->sex);pback->Chinese=temp->Chinese;pback->Math=temp->Math;pback->English=temp->English;

free(temp);

}

/*

--*/

voidSort(structstudent*head)//

{

structstudent*phead=(structstudent*)malloc(sizeof(structstudent));

structstudent*pback=(structstudent*)malloc(sizeof(structstudent));

phead=head;

while(phead)

{

intNum=phead->num;pback=phead->next;while(pback)

{

if(Num>pback->num)

{

Swap(phead,pback);Num=phead->num;

}pback=pback->next;

}

phead=phead->next;

}

}

/*

-*/

voidRead(structstudent*head)//生信息读取

{

structstudent*p;p=head;

printf("

\n");

printf("学生的、学号、性别、语文成绩、高等数学成绩成绩:

\n");

while(p!

=NULL)

{

printf("%s\t%d\t%s\t%d\t%d

学号排序

英语

\t\t%d\n",p->name,p->num,p->sex,p->Chinese,p->Math,p->English);p=p->next;

}

printf("

\n");

}

/*

--*/

voidSave(structstudent*head)//学生信息保存到文件

{

structstudent*p;

FILE*fp;

if((fp=fopen("E:

test.txt","wb"))==NULL)

{

printf("openfileerror!

\n");exit(0);

}

p=head;

while(p!

=NULL)

{

fprintf(fp,"%s%d%s%d%d%d",p->name,p->num,p->sex,p->Chinese,p->Math,p->English);

fprintf(fp,"%s","\r\n");

p=p->next;

}

fclose(fp);

}

/*

--*/

voidSearch(structstudent*head)//学生信息查找

{

intn;structstudent*p;

charname[24];

intnum;

charsex[5];

intChinese;

intMath;intEnglish;

printf("您想以何种方式进行查找:

\n");printf("1;\n");

printf("2:

学号\n");

printf("3:

性别\n");

printf("4:

语文成绩\n");

printf("5:

数学成绩\n");

printf("6:

英语成绩\n");printf("0:

返回二级菜单\n");

scanf("%d",&n);switch(n){case1:

{

按查

printf("请输入:

");//找

scanf("%s",name);

p=head;while(strcmp(name,p->name)!

=0&&p->next!

=NULL)p=p->next;

if(strcmp(name,p->name)==0)

printf("%s%d%s%d%d%d\n",p->name,p->num,p->sex,p->Chinese,p->Math,p->English);

elseprintf("查无此人!

\n");

}

break;

case2:

{

printf("请输入学号:

");//按学号查找

scanf("%d",&num);

p=head;

while(num!

=p->num&&p->next!

=NULL)p=p->next;

if(num==p->num)

printf("%s%d%s%d%d%d\n",p->name,p->num,p->sex,p->Chinese,p->Math,p->English);

elseprintf("查无此人!

\n");

}

break;

case3:

{

printf("请输入性别:

");

找scanf("%s",sex);p=head;

while(p!

=NULL)

{

if(strcmp(sex,p->sex)==0)

printf("%s%d%s%d%d%d\n",p->name,p->num,p->sex,p->Chinese,p->Math,p->English);

p=p->next;

}

}break;

case4:

{

printf("请输入语文成绩:

");//按语文成绩查找

scanf("%d",&Chinese);

p=head;while(p!

=N

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

当前位置:首页 > 表格模板 > 合同协议

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

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