赞
踩
这次我们运用链表的基础知识,增删改查,实现对学生系统进行管理,采用的多文件编程模式,接下来介绍一下什么叫做多文件编程。
程序一般分三类文件:
#pragma once//避免头文件重复引用
进行头文件引用,把需要运用的都添加进来
- #include <stdio.h>
- #include<stdlib.h>
- #include<string.h>
首先需要定义一个结构体变量 student,其中包括学生的id,姓名,年龄,专业。
- typedef struct Student{
- int id;
- char name[50];
- int age;
- char major[50];
- struct Student*next;
- }Stu;
头文件也需要满足对后续函数的声名定义功能
111
- #include "NodeList.h"
- void printMenu(){
- printf("\n##########学生管理系统#######\n");
- printf("\n请进行选择操作\n");
- printf("1.添加学生\n"):
- printf("2.删除学生\n"):
- printf("3.更新学生\n"):
- printf("4.搜索学生\n");
- printf("5.退出程序\n");
- printf("\n##################\n");
- }
-
实现细节:
- #include "NodeList.h"
- Stu*creatStudent(int id,char *name,int age,char*major){
- Stu*student=(Stu*)malloc(sizeof(Stu));
- if(student==NULL){
- printf("分配空间失败\n");
- return 0;
- }
- student->id=id;
- strcpy(student->name,name);
- studnet->age=age;
- strcpy(student->major,major);
- student->next=NULL;
- return student;
-
-
实现细节:
- #include "NodeList.h"
- void appendStudent(Student**head,int id,char*name,int age,char*major){
- Stu*newstu=creatStudent(id,name,age,major);
- if(newstu==NULL){ newstu=*head;
- }else{
- Stu*temp=*head;
- while(temp->next!=NULL){
- temp=temp->next;
- }
- temp->next=newstu;
- }
- }
-
deleteStudent 函数
实现细节:
- #include"NodeList.h"
- void deleteSudent(Stu**head,int id){
-
- if(*head==NULL){
- printf("链表为空\n");
- return ;
- }else{
- Stu*fast=head,*slow;
- if((*head)->id=id){
- *head=fast->next;
- printf("删除成功\n");
- free(fast);
-
- }else{
- while(fast!=NULL&&fast->id!=id){
- slow=fast;
- fast=fast->next;
- }
- if(fast==NULL){
- pritnf("没有找到要删除的学生\n");
- return;
- }
- slow-next=fast->next;
- free(fast);
- printf("删除成功\n");
- }
updateStudent 函数
实现细节:
- #include "NodeList.h"
- void updataStudent(Stu*head,int id,char*newName,int newAge,char*newMajor){
- Stu*temp=head;
- int found=0;
- if(head==NULL)return ;
- while(temp!=NULL){
- if(temp->id=id){
- strcpy(temp->name,newName);
- temp->age=newAge;
- strcpy(temp->major,newMajor);
- printf("更新完成\n");
- found=1;
- break;
- }
- printf("\n");
- }
-
-
searchStudent 函数
实现细节:
- #include "NodeList.h"
- void searchStudent(Stu*head,int id){
- Stu*temp=head;
- int found=0;
- if(temp=NULL)return;
- while(temp!=NULL&&temp->id!=id){
- temp=temp->next;
- }
- if(temp==NULL){
- printf("没有找到\n");
- return;
- }
- printf("找到了id为%d的学生姓名为%s\n",id,name);
- printf("找到了id为%d的学生年龄为%d\n",id,age);
- printf("找到了id为%d的学生专业为%s\n",id,major);
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。