1、学 生 信 息 浏 览学 生 信 息 查 找学 生 信 息 修 改学 生 信 息 增 加删除2.2、函数功能和函数之间的调用关系2.2.1、函数功能: void Me nu_1(); void Me nu_2();/主菜单 二级菜单void swap(struct student * phead,struct表节点互换void Save(struct stude nt * head);盘void Search(struct stude nt * head);生信息void Read(struct stude nt * head);void Sort(struct stude nt * head
2、);点排序student * pback); /写入磁查找学显示学链表节struct student * Create();录入struct student * Readpoint();存struct stude nt * Modify(struct stude nt * head);体成员修改struct stude nt * Add(struct stude nt * head); 点插入struct stude nt * Delete(struct stude nt * head); 点删除学生信息手动磁盘文件写入链表结构2.2.2 、函数之间的调用关系:通过 switch 语句进行指令
3、选择:case 1: 学生信息录入 调用函数 Create( ) 、Save( ) 、Menu_1( ) 、 Menu_2( )case 2: 学生信息浏览调用函数 Readpoint( ) 、Sort( ) 、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: 学生信息增加调
4、用函数 Add( ) 、 Readpoint( ) 、Save( ) 、Menu_1( ) 、 Menu_2( )case 6: 学生信息删除调用函数 Delete( ) 、Readpoint( )Save( ) 、Menu_1( ) 、Menu_2( )case 0: 返回主菜单第三章、 代码(源代码)/ 定义结构体调用函数 Menu_1( )/*/#include #includestring.h struct studentint num;char name24; char sex5; int Chinese;int Math; int English;struct student *
5、next;void swap(struct student * 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 * Modify(struct student * head);结构体成员修改struct student
6、* Add(struct student * head);节点插入struct student * Delete(struct student * head);节点删除;void Menu_1();void Menu_2();int main(void)Menu_1(); return 0;void Menu_1()printf(tttt 学生信息管理系统 ttttn);ttt 1: 进入学生信息管理 n主菜单ttt 0: 退出学生信息管理 n 请您输入指令 :scanf(%d,&num);switch(num) case 1:Menu_2();break;您已退出default: 学生信息管
7、理系统 n/* */void Menu_2()1struct student * head; int num;ttt欢迎进入 n-n学生信息录入 nttt 2:学生信息浏览 nttt 3:学生信息查找 nttt 4:/ 二级菜单学生信息修改 nttt 5:学生信息增加 nttt 6:学生信息删除 n返回主菜单 n-n scanf( switch(num)head = Create();Save(head);n 返回主菜单 n/ 手动录入学生数据 返回二级菜单 n default : 输入无效,返回二级菜单 ! Menu_2(); break; head = Readpoint();/ 写入链表
8、,返回头指针Sort(head);ttt 以学号升序排列 n Read(head);/ 链表数据写入文件 break;default :Search(head); / 查找学生信息head = Readpoint();Modify(head); / 修改结构体成员并保存到文件/ 增加学生信Add(head);息并保存到文件 switch(num) case 1:head = Delete(head);/ 删除学生信息并保存到文件 Menu_1(); 请重新输入 n-*/ struct student * Create() / 学生信息手动录入 struct student *head,* p,
9、* 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+1;if (n = 1) head = q;elsep-next = q; p = q;q = (struct student *)malloc(sizeof(struct student);num
10、,q-En glish);next = NULL; 学生信息录入成功 ! return head;-*/struct student * Readpoint()/ 学生信息写入存,便于操作 FILE * fp1;if(fp1 = fopen(E:test.txt,rb) = NULL)open file error! exit(0);fscanf(fp1,%s %d %s %d %d %dname,&Chinese ,&English); head =NULL;while( !feof(fp1)if (n = 1)head = q;Chine se,&fclose(fp1);return he
11、ad; 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;Math = phead-Math;English = phead-English;strcpy(phead-name
12、,pback- phead-num= pback- strcpy(phead-sex,pback-Chinese = pback-Math = pback-English = pback-strcpy(pback-name,temp- pback-num = temp- strcpy(pback-sex,temp-Chinese = temp-Math = temp-English = temp-free(temp);void Sort(struct student * head) /struct student * phead = (struct student *)malloc(sizeo
13、f(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 num)Swap(phead,pback); Num = phead- pback = pback-phead = phead-*/void Read(struct student * head) / 生信息读取struct student * p;
14、p = head; n 学生的 、 学号 、 性别 、语文成绩 、 高等数学成绩 成绩:while(p != NULL) %s t%dt%s t %d t %d学号排序英语tt %dn,p-name,p-num,p-sex,p-Chinese,p-Math,p- p = p-void Save(struct student * head) / 学 生信息保存到文件FILE * fp;if(fp = fopen(wbp = head;=NULL)fprintf(fp,Chinese,p -rnp = p-fclose(fp);void Search(struct student * head)
15、/ 学生信息查找 struct student * p;char sex5;int Chinese; 您想以何种方式进行查找 : printf(1;2: 学号 n3: 性别 n4: 语文成绩 n5: 数学成绩 n6: 英语成绩 n0:n); switch(n) case 1:按查 请输入 : / 找,name); while(strcmp(name,p-name)!=0 & p-next != NULL) p = p-if(strcmp(name,p-name)=0)%s %d %s %d %d %dnChines e,p-else printf( 查无此人 ! 请输入学号 : / 按学号查找while(num != p-num &if(num = p- 请输入性别 :找 scanf(,sex);while(p!if(strcmp(sex,p-sex)=0) 请输入语文成绩 : / 按语文成 绩查找Chinese); while(p!= N
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2