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