1、学返生回信主息菜录浏查修增删单入览找改加除2.2 、函数功能和函数之间的调用关系2.2.1、函数功能:void Menu_1();/主菜单void 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);链表节点排序
2、structstudent*Create();学生信息手动录入Readpoint();磁盘文件写入内存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( )cas
3、e 2:学生信息浏览Readpoint( ) 、Sort( ) 、Read( ) 、Save( ) 、 Menu_1( ) 、Menu_2( )case 3:学生信息查找Search( )、Readpoint( )、 Menu_1( ) 、Menu_2( )case 4:学生信息修改Modify( )、 Save( ) 、 Menu_1( ) 、Menu_2( )case 5:学生信息增加Add( ) 、 Readpoint( )case 6:学生信息删除Delete( )、Readpoint( )Save( )、Menu_1( ) 、Menu_2( )case 0:返回主菜单调用函数 Men
4、u_1( )第三章、 代码(源代码)/*/#includestdlib.hstring.hstruct student / 定义结构体int num;char name24;char sex5;int Chinese;int Math;int English;struct student * next;void swap(struct student * phead,struct student * pback);链表节点互换写入磁盘查找学生信息显示节点排序struct student * Readpoint();文件写入内存struct student * Create();学生信息手动录入
5、结构体成员修改节点插入节点删除int main(void)Menu_1();return 0;void Menu_1()printf(tttt学生信息管理系统 ttttn);ttt 1:进入学生信息管理 nttt 0:退出学生信息管理 n 请您输入指令 :scanf(%d,&num);switch(num) case 1:Menu_2(); break;default:- 您已退出学生信息管理系统 -nbreak;/*-*/void Menu_2()struct student * head;ttt 欢迎进入 n-n 学生信息录入 nttt 2: 学生信息浏览 nttt 3: 学生信息查找 n
6、ttt 4: 学生信息修改 n/ 二级菜单ttt 5: 学生信息增加 nttt 6: 学生信息删除 n 返回主菜单 n-nhead = Create();Save(head);n/ 手动录入学生数据 返回二级菜单 ndefault : 输入无效,返回二级菜单 !head = Readpoint();/ 写入链表,返回头指针Sort(head);ttt 以学号升序排列 n Read(head);/ 链表数据写入文件Search(head);/ 查找学生信息Modify(head); /修改结构体成员并保存到文件Add(head); / 增加学生信息并保存到文件head = Delete(head
7、);/ 删除学生信息并保存到文件 Menu_1(); 请重新输入 n-*/struct student * Create()/ 学生信息手动录入struct student *head,* p,* q;int n;p = q = (struct student *)malloc(sizeof(struct student); 请输入学生的姓名、学号、性别、语文成绩、高等数学成绩、英语成绩 :%s,q-name);%d %s %d %d %dq-num,&sex,&Chinese,&Math,&E nglish);n = 0;head =NULL;while (q-num != 0)n = n+
8、1;if (n = 1)head = q;elsep-next = q;p = q;q = (struct student *)malloc(sizeof(struct student);num,q-En glish);next = NULL; 学生信息录入成功 !return head;-*/struct student * Readpoint()/ 学生信息写入内存,便于操作FILE * fp1; int n;if(fp1 = fopen(E:test.txt,rb) = NULL)open file error!exit(0);fscanf(fp1,%s %d %s %d %d %dna
9、me,&Chinese ,&English);while( !feof(fp1)Chine se,&fclose(fp1);void Swap(struct student * phead, struct student * pback)/ 链表元素数据交换struct student * temp = (struct student *)malloc(sizeof(struct student);strcpy(temp-name,phead- temp-num = phead-num; strcpy(temp-sex,phead-sex);Chinese = phead-Chinese;Ma
10、th = phead-Math;English = phead-English;strcpy(phead-name,pback-phead-num= pback-sex,pback-Chinese = pback-Math = pback-English = pback-strcpy(pback-name,temp-pback-num = temp-sex,temp-Chinese = temp-Math = temp-English = temp-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-pback = phead-next;while(pback)if( Num pback-num)Swap(phead,pback);Num = phead-pback = pback-phead =
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1