1、C语言学生信息管理系统实验报告.C语言课程设计学生信息管理系统姓名 洪伟生院系 计算机学院日期 2015年7 月5 日教育资料.第一章 设计要求 第二章 算法分析1. 理论依据2. 主要实现方法2.1 整体流程图2.2 函数功能和函数之间的调用关系第三章 代码(源代码)第四章 分析说明第五章 总结第一章、 设计要求1、利用所学的知识、理论和实际结合,利用资源,采用模块化的结构,使用模仿修改自主设计相结合的方法,锻炼学生综合分析解决实际问题的编程能力;2、通过 C语言各个函数功能来实现对学生信息的管理, 学生信息包括学生姓名, 学号,各科成绩;管理方式包括对学生信息的录入,保存,排序,查找、修改
2、、删除等功能。第二章、 算法分析1、程序理论依据通过 C 语言的程序设计基础的掌握,对学生成绩管理系统进行编写程序。首先,通过链表这一数据结构来对学生的信息进行录入以及操作,在其过程中,通过各个功能语句以及选择结构,循环结构等方式的结合来达到所要实现的程序功能。最后通过对 C 语言中对文件的操作,对已有学生成绩的读取和新建学生成绩的录入保存。教育资料.2、主要实现方法2.1 整体流程图学生信息管理系统进入 退出学学学学学学返生生生生生生回信信信信信信主息息息息息息菜录浏查修增删单入览找改加除2.2 、函数功能和函数之间的调用关系2.2.1、函数功能:void Menu_1();/主菜单void
3、 Menu_2();/二级菜单voidswap(structstudent * phead,structstudent * pback);/链表节点互换void Save(struct student * head);/写入磁盘void Search(struct student * head);/查找学生信息void Read(struct student * head);/显示学生信息void Sort(struct student * head);/链表节点排序structstudent*Create();/学生信息手动录入structstudent*Readpoint();/磁盘文件写
4、入内存struct student * 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(
5、) 、Read( ) 、Save( ) 、 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( )
6、、Menu_2( )case 0:返回主菜单调用函数 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);/链表节点互换vo
7、id Save(struct student * 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 stude
8、nt * 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;教育资料.
9、default: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
10、);printf( 请您输入指令 :);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;br
11、eak;case 2:head = Readpoint();/ 写入链表,返回头指针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
12、_2();break;break;case 3:head = Readpoint();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 = Readpoin
13、t();Modify(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 5:head = Readpoint();Add(head); / 增加学生
14、信息并保存到文件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 6:head = Readpoint();head = Delete(head);/ 删除学生信息并保存到文件Save(head);p
15、rintf(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 0: Menu_1();break;default :printf( 请重新输入 n);Menu_2();break;/*-*/struct student * C
16、reate()/ 学生信息手动录入struct student *head,* p,* q;int n;p = q = (struct student *)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-E nglish);n = 0;head =NULL;while (q-num != 0)n = n+1;if (n = 1)head = q;el
17、se教育资料.p-next = q;p = q;q = (struct student *)malloc(sizeof(struct student);scanf(%s,q-name);scanf(%d %s %d %d %d,&q-num,q-sex,&q-Chinese,&q-Math,&q-En glish);p-next = NULL;printf( 学生信息录入成功 !n);return head;/*-*/struct student * Readpoint()/ 学生信息写入内存,便于操作FILE * fp1;struct student *head,* p,* q; int n
18、;if(fp1 = fopen(E:test.txt,rb) = NULL)printf(open file error!n);exit(0);p = q = (struct 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 =
19、(struct student *)malloc(sizeof(struct student);fscanf(fp1,%s %d %s %d %d %d,&q-name,&q-num,&q-sex,&q-Chine se,&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(str
20、uct student);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 = pb
21、ack-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);教育资料./*-*/void Sort(struct student * head) / 学号排序struct student * phead = (struct student *)malloc(sizeof(struct student);struct student * pback = (struct student *)malloc(sizeof(struct student);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 =
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2