java单链表学生信息管理,基于单链表的学生信息管理系统源代码

《基于单链表的学生信息管理系统源代码》由会员分享,可在线阅读,更多相关《基于单链表的学生信息管理系统源代码(8页珍藏版)》请在人人文库网上搜索。

1、学生信息管理系统#include#include#include#define NULL 0#define LEN sizeof(struct student)/建立动态链表.cppusing namespace std;struct studentint num;char name20;char sex5;float math;float english;int order;struct student *next;int n;int male=0;int famale=0;struct student *creat(void)struct student *head,*p1,*p2;n=0。

2、;p1=p2=(struct student *)malloc(LEN);coutp1-nump1-namep1-sexp1-mathp1-english;head=NULL;while(p1-num!=0)if(strcmp(p1-sex,男)=0) male+;else famale+;n+;if(n=1)head=p1;else p2-next=p1;p2=p1;p1=(struct student*)malloc(LEN);cinp1-nump1-namep1-sexp1-mathp1-english;p2-next=NULL;if(head=NULL)coutnumnamesexma。

3、thenglishmath+p-englishnext;while(p!=NULL);/链表结点的删除操作struct student *del(struct student *head)if(n=0)coutnum;while(num!=0)struct student *p1,*p2;p1=head;while(num!=p1-num&p1-next!=NULL)p2=p1;p1=p1-next;if(num=p1-num) if(p1=head)if(strcmp(p1-sex,男)=0) male-;else famale-;head=p1-next;elseif(strcmp(p1-。

4、sex,男)=0) male-;else famale-;p2-next=p1-next;coutnum;if(n=0)coutstu-numstu-namestu-sexstu-mathstu-english;while(stu-num!=0)if(strcmp(stu-sex,男)=0) male+;else famale+;n+;struct student *p0,*p1,*p2;p1=head;p0=stu;if(head=NULL)head=p0;p0-next=NULL;elsewhile(p0-nump1-num&p1-next!=NULL)p2=p1;p1=p1-next;i。

5、f(p0-numnum)if(head=p1)head=p0;else p2-next=p0;p0-next=p1;else p1-next=p0;p0-next=NULL;stu=(struct student*)malloc(LEN);cinstu-numstu-namestu-sexstu-mathstu-english;return head;/根据学号查找void SearchNum(struct student *head)int num;struct student *p;p=head;coutnum;while(p-num!=num&p-next!=NULL)p=p-next;。

6、if(p-num=num)coutordernumnamesexmathenglishmath+p-englishname;while(strcmp(p-name,name)!=0&p-next!=NULL)p=p-next;if(strcmp(p-name,name)=0)coutordernumnamesexmathenglishmath+p-englishnext;max=(p2-math+p2-english);while(p0-next!=NULL)while(p1!=NULL)if(p1-math+p1-english)max)max=(p1-math+p1-english);p2。

7、=p1;p1=p1-next; p2-order=+NO;max=p2-order;p2-order=p0-order;p0-order=max;max=p2-num;p2-num=p0-num;p0-num=max;max=p2-math;p2-math=p0-math;p0-math=max;max=p2-english;p2-english=p0-english;p0-english=max;strcpy(temp,p2-name);strcpy(p2-name,p0-name);strcpy(p0-name,temp);strcpy(temp,p2-sex);strcpy(p2-sex。

8、,p0-sex);strcpy(p0-sex,temp);p0=p0-next;p2=p0;p1=p2-next;max=(p2-math+p2-english);if(p0-next=NULL)p2-order=+NO;coutordernumnamesexmathenglishmath+p-englishnext;No+;while(p!=NULL);couta;if(a=0)cout6)cout无该选项,请从0-6中选择endlendlendl;switch(a)case 1:head=creat();head=sort(head);print2(head);break;case 2:SearchNum(head);break;case 3:SearchName(head);break;case 4:head=del(head);head=sort(head);print2(head);break;case 5:head=insert(head);head=sort(head);print2(head);break;case 6:cout此时总人数n人 其中男生male人 女生famale人endlendlendl;break;return 0。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一个模块——主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。 
   第二个模块——Menu()的功能是:显示提示选单。 
   第三个模块——Quit()的功能是:退出选单。 
   第四个模块——Create()的功能是:创建新的数据记录。 
   第五个模块——Add()的功能是:增加新的数据记录,并返回选单。 
   第六个模块——Find()的功能是:按要求查询相关的信息,如果找到了,则显示该信息,如果未找到,则提示文件中没有该信息,并返回选单。 
   第七个模块——Alter()[的功能是:修改某条记录的信息,如果未找到要修改的记录,则提示系统中无此记录,并返回选单。 
   第八个模块——Delete()的功能是:删除某条记录,如果未找到要删除的记录,则提示通讯录中没有,并返回选单。 
   第九个模块——List()的功能是:显示所有记录。 一、用链表或者顺序表实现以下系统,完成线性表的建立(至少包括10个结点),以及线性表中信息(结点)的插入、查找、删除、修改、输出等操作,具体的模块要求见上方的“总的模块要求”。建议用“文件”存储数据。 1.通讯录管理系统的设计与实现 (1)通讯者信息包括:编号(char num[10])、姓名(char name[10])、性别(char sex[10])、电话(char phone[20]) (2)除了总的模块要求外,还需统计通讯录中男性人数及女性人数,并求出通讯录中的第一个模块——主函数main()的功能是:根据选单的选项调用各函数,并完成相应的功能。 
   第二个模块——Menu()的功能是:显示提示选单。 
   第三个模块——Quit()的功能是:退出选单。 
   第四个模块——Create()的功能是:创建新的数据记录。 
   第五个模块——Add()的功能是:增加新的数据记录,并返回选单。 
   第六个模块——Find()的功能是:按要求查询相关的信息,如果找到了,则显示该信息,如果未找到,则提示文件中没有该信息,并返回选单。 
   第七个模块——Alter()[的功能是:修改某条记录的信息,如果未找到要修改的记录,则提示系统中无此记录,并返回选单。 
   第八个模块——Delete()的功能是:删除某条记录,如果未找到要删除的记录,则提示通讯录中没有,并返回选单。 
   第九个模块——List()的功能是:显示所有记录。 一、用链表或者顺序表实现以下系统,完成线性表的建立(至少包括10个结点),以及线性表中信息(结点)的插入、查找、删除、修改、输出等操作,具体的模块要求见上方的“总的模块要求”。建议用“文件”存储数据。 1.通讯录管理系统的设计与实现 (1)通讯者信息包括:编号(char num[10])、姓名(char name[10])、性别(char sex[10])、电话(char phone[20]) (2)除了总的模块要求外,还需统计通讯录中男性人数及女性人数,并求出通讯录中的男女比例。 男女比例。
好的,下面是Java单链表学生管理系统中修改学生信息的代码示例: 首先,我们需要先定义一个Student类,包含学生的各项信息,例如学号、姓名、性别、年龄等。 ```java public class Student { private int id; private String name; private String gender; private int age; // 构造函数 public Student(int id, String name, String gender, int age) { this.id = id; this.name = name; this.gender = gender; this.age = age; } // getter 和 setter 方法 public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } // toString 方法,用于打印学生信息 @Override public String toString() { return "Student{" + "id=" + id + ", name='" + name + '\'' + ", gender='" + gender + '\'' + ", age=" + age + '}'; } } ``` 接下来,我们需要定义一个单链表类,用于存储学生信息。这里只给出部分代码,供参考。 ```java public class StudentLinkedList { private StudentNode head; // 在链表尾部插入新的学生节点 public void add(Student student) { StudentNode newNode = new StudentNode(student); if (head == null) { head = newNode; return; } StudentNode temp = head; while (temp.getNext() != null) { temp = temp.getNext(); } temp.setNext(newNode); } // 根据学生学号查找节点 public StudentNode find(int id) { if (head == null) { return null; } StudentNode temp = head; while (temp != null) { if (temp.getStudent().getId() == id) { return temp; } temp = temp.getNext(); } return null; } // 修改学生信息 public void update(Student student) { StudentNode node = find(student.getId()); if (node == null) { System.out.println("该学生不存在!"); return; } node.getStudent().setName(student.getName()); node.getStudent().setGender(student.getGender()); node.getStudent().setAge(student.getAge()); } // 其他方法... } ``` 在上面的代码中,我们定义了一个`update`方法,用于修改学生信息。该方法首先根据学生学号查找到学生节点,然后将节点中的学生信息更新为新的信息。 注意,这里只是一个简单的代码示例,实际的单链表学生管理系统中可能还需要考虑到许多其他的问题,例如输入的参数是否合法、节点是否存在等等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值