收藏 分销(赏)

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

上传人:精**** 文档编号:2827834 上传时间:2024-06-06 格式:DOCX 页数:33 大小:141.04KB
下载 相关 举报
C语言学生信息标准管理系统实验报告.docx_第1页
第1页 / 共33页
C语言学生信息标准管理系统实验报告.docx_第2页
第2页 / 共33页
C语言学生信息标准管理系统实验报告.docx_第3页
第3页 / 共33页
C语言学生信息标准管理系统实验报告.docx_第4页
第4页 / 共33页
C语言学生信息标准管理系统实验报告.docx_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、C语言课程设计 学生信息管理系统 姓 名 洪伟生 院 系 计 算 机 学 院 日 期 年 7 月 5 日 目 录第一章 设计要求 第二章 算法分析1. 理论依据2. 关键实现方法2.1 整体步骤图2.2 函数功效和函数之间调用关系第三章 代码(源代码)第四章 分析说明第五章 总结第一章、 设计要求1、利用所学知识、理论和实际结合,利用资源,采取模块化结构,使用模拟修改自主设计相结合方法,锻炼学生综合分析处理实际问题编程能力;2、经过C语言各个函数功效来实现对学生信息管理,学生信息包含学生姓名,学号,各科成绩;管理方法包含对学生信息录入,保留,排序,查找、修改、删除等功效。第二章、 算法分析1、

2、程序理论依据经过C语言程序设计基础掌握,对学生成绩管理系统进行编写程序。首先,经过链表这一数据结构来对学生信息进行录入和操作,在其过程中,经过各个功效语句和选择结构,循环结构等方法结合来达成所要实现程序功效。最终经过对C语言中对文件操作,对已经有学生成绩读取和新建学生成绩录入保留。2、关键实现方法2.1整体步骤图学生信息管理系统学生信息删除返回主菜单学生信息增加学生信息修改学生信息查找学生信息浏览学生信息录入进入退出2.2、函数功效和函数之间调用关系2.2.1、函数功效:void Menu_1(); /主菜单void Menu_2(); /二级菜单void swap(struct studen

3、t * phead,struct student * pback); / 链表节点交换void Save(struct student * head); / 写入磁盘void Search(struct student * head); / 查找学生信息void Read(struct student * head); / 显示学生信息void Sort(struct student * head); / 链表节点排序struct student * Create(); / 学生信息手动录入struct student * Readpoint(); / 磁盘文件写入内存struct stude

4、nt * Modify(struct student * head); / 链表结构体组员修改struct student * Add(struct student * head); / 链表节点插入struct student * Delete(struct student * head); / 链表节点删除 2.2.2、函数之间调用关系:经过switch语句进行指令选择:case 1: 学生信息录入 调用函数 Create( )、Save( )、Menu_1( )、Menu_2( ) case 2: 学生信息浏览调用函数 Readpoint( )、Sort( )、Read( )、Save(

5、 )、Menu_1( )、Menu_2( ) case 3: 学生信息查找 调用函数 Search( )、Readpoint( )、Menu_1( )、Menu_2( )case 4: 学生信息修改 调用函数 Modify( )、Readpoint( )、Save( )、Menu_1( )、Menu_2( ) case 5: 学生信息增加调用函数 Add( )、 Readpoint( )、Save( )、Menu_1( )、Menu_2( ) case 6: 学生信息删除调用函数 Delete( ) 、Readpoint( )Save( )、Menu_1( )、Menu_2( ) case 0

6、: 返回主菜单调用函数 Menu_1( )第三章、 代码(源代码)/* 学生信息管理系统*/#include#include#includestruct student /定义结构体int num;char name24;char sex5;int Chinese;int Math;int English;struct student * next;void Menu_1(); /主菜单void Menu_2(); /二级菜单void swap(struct student * phead,struct student * pback); / 链表节点交换void Save(struct st

7、udent * head); / 写入磁盘void Search(struct student * head); / 查找学生信息void Read(struct student * head); / 显示学生信息void Sort(struct student * head); / 链表节点排序struct student * Readpoint(); / 磁盘文件写入内存struct student * Create(); /学生信息手动录入struct student * Modify(struct student * head); / 链表结构体组员修改struct student *

8、 Add(struct student * head); / 链表节点插入struct student * Delete(struct student * head); / 链表节点删除int main(void)Menu_1(); return 0;void Menu_1()int num;printf(tttt 学生信息管理系统ttttn);printf(ttt 1: 进入学生信息管理n); /主菜单printf(ttt 0: 退出学生信息管理n);printf(请您输入指令:);scanf(%d,&num);switch(num)case 1:Menu_2();break;default

9、:printf(-您已退出学生信息管理系统-n);break;/*-*/void Menu_2() struct student * head;int num;printf(ttt 欢迎进入n);printf(-n);printf(ttt 1: 学生信息录入n);printf(ttt 2: 学生信息浏览n);printf(ttt 3: 学生信息查找n);printf(ttt 4: 学生信息修改n); /二级菜单printf(ttt 5: 学生信息增加n);printf(ttt 6: 学生信息删除n);printf(ttt 0: 返回主菜单n);printf(-n);printf(请您输入指令:

10、);scanf(%d,&num);switch(num)case 1: head = Create(); Save(head);printf(n);printf(ttt 1: 返回主菜单n); /手动录入学生数据printf(ttt 2: 返回二级菜单n);printf(n);printf(请您输入指令:);scanf(%d,&num);switch(num)case 1:Menu_1();break;case 2:Menu_2();break;default :printf(输入无效,返回二级菜单!n);Menu_2();break; break;case 2:head = Readpoin

11、t(); /写入链表,返回头指针Sort(head);printf(ttt 以学号升序排列n);Read(head); / 链表数据写入文件Save(head);printf(n);printf(ttt 1: 返回主菜单n);printf(ttt 2: 返回二级菜单n);printf(n);printf(请您输入指令:);scanf(%d,&num);switch(num)case 1:Menu_1();break;case 2:Menu_2();break;default :printf(输入无效,返回二级菜单!n);Menu_2();break; break;case 3:head = R

12、eadpoint();Search(head);/查找学生信息printf(n);printf(ttt 1:返回主菜单n);printf(ttt 2:返回二级菜单n);printf(n);printf(请您输入指令:);scanf(%d,&num);switch(num)case 1:Menu_1();break;case 2:Menu_2();break;default :printf(输入无效,返回二级菜单!n);Menu_2();break; break;case 4:head = Readpoint();Modify(head);/修改结构体组员并保留到文件Save(head);pri

13、ntf(n);printf(ttt 1: 返回主菜单n);printf(ttt 2: 返回二级菜单n);printf(n);printf(请您输入指令:);scanf(%d,&num);switch(num)case 1:Menu_1();break;case 2:Menu_2();break;default :printf(输入无效,返回二级菜单!n);Menu_2();break; break;case 5:head = Readpoint();Add(head);/增加学生信息并保留到文件Save(head);printf(n);printf(ttt 1:返回主菜单n);printf(t

14、tt 2:返回二级菜单n);printf(n);printf(请您输入指令:);scanf(%d,&num);switch(num)case 1:Menu_1();break;case 2:Menu_2();break;default :printf(输入无效,返回二级菜单!n);Menu_2();break; break;case 6:head = Readpoint(); head = Delete(head);/删除学生信息并保留到文件Save(head);printf(n);printf(ttt 1:返回主菜单n);printf(ttt 2:返回二级菜单n);printf(n);pri

15、ntf(请您输入指令:);scanf(%d,&num);switch(num)case 1:Menu_1();break;case 2:Menu_2();break;default :printf(输入无效,返回二级菜单!n);Menu_2();break; break;case 0: Menu_1();break;default :printf(请重新输入n);Menu_2(); break;/*-*/struct student * Create() /学生信息手动录入 struct student *head,* p,* q;int n;p = q = (struct student *

16、)malloc(sizeof(struct student);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;elsep-next = q;p = q;q = (struct student *)malloc(sizeof(struct student);scanf(%s

17、,q-name);scanf(%d %s %d %d %d,&q-num,q-sex,&q-Chinese,&q-Math,&q-English);p-next = NULL;printf(学生信息录入成功!n);return head;/*-*/struct student * Readpoint() /学生信息写入内存,便于操作FILE * fp1; struct student *head,* p,* q;int n;if(fp1 = fopen(E:test.txt,rb) = NULL) printf(open file error!n);exit(0);p = q = (struc

18、t student *)malloc(sizeof(struct student);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;elsep-next = q;p = q;q = (struct student *)malloc(sizeof(struct student);fscanf(fp1,%s %d %s %d %d %d,&q-name,&q-num,

19、&q-sex,&q-Chinese,&q-Math,&q-English);p-next = NULL;fclose(fp1);return head;/*-*/void Swap(struct student * phead, struct student * pback) /链表元素数据交换struct student * temp = (struct student *)malloc(sizeof(struct student);strcpy(temp-name,phead-name);temp-num = phead-num;strcpy(temp-sex,phead-sex);tem

20、p-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(

21、pback-sex,temp-sex);pback-Chinese = temp-Chinese;pback-Math = temp-Math;pback-English = temp-English;free(temp);/*-*/void Sort(struct student * head) / 学号排序 struct student * phead = (struct student *)malloc(sizeof(struct student);struct student * pback = (struct student *)malloc(sizeof(struct studen

22、t); phead = head;while (phead)int Num = phead-num;pback = phead-next;while(pback) if( Num pback-num)Swap(phead,pback);Num = phead-num;pback = pback-next; phead = phead-next;/*-*/void Read(struct student * head) /学生信息读取 struct student * p;p = head;printf(-n);printf(学生姓名 、 学号 、 性别 、语文成绩 、 高等数学成绩 、 英语成

23、绩:n);while(p != NULL)printf( %s t%dt%s t %d t %d tt %dn,p-name,p-num,p-sex,p-Chinese,p-Math,p-English);p = p-next;printf(-n);/*-*/void Save(struct student * head) /学生信息保留到文件struct student * p;FILE * fp;if(fp = fopen(E:test.txt,wb) = NULL) printf(open file error!n);exit(0);p = head;while(p !=NULL)fpr

24、intf(fp,%s %d %s %d %d %d,p-name,p-num,p-sex,p-Chinese,p-Math,p-English);fprintf(fp,%s,rn);p = p-next;fclose(fp);/*-*/void Search(struct student * head) /学生信息查找int n;struct student * p;char name24;int num;char sex5;int Chinese;int Math;int English;printf(您想以何种方法进行查找:n);printf(1;姓名n);printf(2:学号n);pr

25、intf(3:性别n);printf(4:语文成绩n);printf(5:数学成绩n);printf(6:英语成绩n);printf(0:返回二级菜单n); scanf(%d,&n);switch(n)case 1: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 %dn,p-name,p-num,p-sex,p-Chinese,p-Math,p-

26、English);elseprintf(查无此人!n); break;case 2: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 %dn,p-name,p-num,p-sex,p-Chinese,p-Math,p-English);elseprintf(查无此人!n); break; case 3:printf(请输入性别:); /按性别查找scanf(%s,sex);p = hea

27、d;while(p!= NULL)if(strcmp(sex,p-sex)=0)printf(%s %d %s %d %d %dn,p-name,p-num,p-sex,p-Chinese,p-Math,p-English);p = p-next; break;case 4:printf(请输入语文成绩:); /按语文成绩查找scanf(%d,&Chinese);p = head;while(p!= NULL)if(Chinese = p-Chinese)printf(%s %d %s %d %d %dn,p-name,p-num,p-sex,p-Chinese,p-Math,p-Englis

28、h);p = p-next; break; case 5:printf(请输入高等数学成绩:); /按高等数学成绩查找scanf(%d,&Math);p = head;while(p!= NULL)if(Math = p-Math)printf(%s %d %s %d %d %dn,p-name,p-num,p-sex,p-Chinese,p-Math,p-English);p = p-next; break; case 6:printf(请输入英语成绩:); /按英语成绩查找scanf(%d,&English);p = head;while(p!= NULL)if(English = p-E

29、nglish)printf(%s %d %s %d %d %dn,p-name,p-num,p-sex,p-Chinese,p-Math,p-English);p = p-next; break; default:printf(指令错误返回二级菜单!n);Menu_2();break;/*-*/struct student * Modify(struct student * head) int n;struct student * p;char name24;int num;printf( 您想以何种方法进行修改:n);printf(1;姓名n);printf(2:学号n);printf(0:返回二级菜单n);scanf(%d,&n);switch(n)case 1:printf(请输入姓名:); /按姓名查找后修改信息scanf(%s,name);p = head;while(strcmp(name,p-name)!=0 & p-next != NULL)p = p-ne

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服