数据结构课程设计--协会信息管理系统管理
2016-12-30 14:50
691 查看
/*
*Copyright (c) 2016,烟台大学计算机学院
*All right reserved.
*文件名称:test.cpp
*作者:杨天瑞
*完成日期:2016年12月30日
*版本号:v1.8.9
*
* 问题描述:数据结构课程设计项目,完成一个有关信息统计的系统,包含插入删除,查找,修改等算法。
* 程序输入:成员信息。
* 程序输出:插入删除,查找,修改的结果以及成员信息显示。
*/
xinxi.h:
xinxi.cpp:
main.cpp:
程序运行截图:
*Copyright (c) 2016,烟台大学计算机学院
*All right reserved.
*文件名称:test.cpp
*作者:杨天瑞
*完成日期:2016年12月30日
*版本号:v1.8.9
*
* 问题描述:数据结构课程设计项目,完成一个有关信息统计的系统,包含插入删除,查找,修改等算法。
* 程序输入:成员信息。
* 程序输出:插入删除,查找,修改的结果以及成员信息显示。
*/
xinxi.h:
#include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct student { int age; int times; char name[10]; struct student *next; }st1; void creat(st1 *head);//创建链表 void print(st1* head);//打印链表 st1* find(st1 *head,int index);//链表查找 st1* insert(st1 *head);//插入信息 void interface ();//主菜单 void dele(st1 *head);//删除信息 void change(st1 *head);//修改信息 void reverse(st1 *head);//反序输入信息 void sort(st1* head);//链表排序(用值交换的方式)
xinxi.cpp:
#include<stdio.h> #include<stdlib.h> #include<string.h> #include"xinxi.h" void interface () { int i; printf("\n"); for(i=0;i<20;i++) printf("===="); printf("\n"); printf(" * 协会成员信息管理系统 *\n"); printf("\n"); printf(" 请选择你的操作\n"); for(i=0;i<20;i++) printf("===="); printf("\n"); printf("\n"); for(i=0;i<3;i++) printf(" "); for(i=0;i<7;i++) printf("*****"); printf("\n"); printf(" * 1. 初始化系统信息 * \n"); printf(" * 2. 插入成员信息 * \n"); printf(" * 3. 删除成员信息 * \n"); printf(" * 4. 修改成员信息 * \n"); printf(" * 5. 查找成员信息 * \n"); printf(" * 6. 显示所有成员信息 * \n"); printf(" * 7. 逆序显示成员信息 * \n"); printf(" * 0. 退出系统 * \n"); for(i=0;i<3;i++) printf(" "); for(i=0;i<7;i++) printf("*****"); printf("\n"); printf("\n"); for(i=0;i<20;i++) printf("===="); printf("\n"); printf("请输入以上序号(0-7):"); } void creat(st1* head) { int i; int n; st1 *p,*q; printf("输入成员人数:"); scanf("%d",&n); for(i=0;i<n;i++) { printf("输入第%d个成员信息:\n",i+1); p = (st1*)malloc(sizeof(st1)); printf("输入姓名:"); scanf("%s",&p->name); printf("输入年龄:"); scanf("%d",&p->age); printf("参加活动次数:"); scanf("%d",&p->times); printf("输入第%d个成员信息完成",i+1); printf("\n\n"); if(0 == i) { head->next = p; } else { q->next = p; } q = p; } p->next = NULL; } void print(st1* head) { st1* x; x = head->next ; printf("成员信息如下:\n"); while(x) { printf("姓名:%s 年龄:%d 参加活动次数:%d\n",x->name,x->age,x->times); x = x->next ; } printf("\n"); } st1* find(st1 *head,int idex) { st1 *p; int i=1; p = head->next ; while(p ) { p = head->next ; int n = 0; while(p != NULL) { p = p->next; n++; } if(idex>n) { printf("输超了,有意思吗??"); } else{ if(i<idex) { p = p->next ; i++; } else return p; }} return p; } st1* insert(st1* head) { st1 *newst,*p; int i = 1; int index; printf("要插入的位置:"); scanf("%d",&index);//所要插入第几位成员信息 int n = 0; p=head->next; while(p != NULL) { p = p->next; n++; } if(index>n) { printf("输超了,有意思吗??"); } else{ p = head->next ; newst = (st1*)malloc(sizeof(st1)); printf("输入姓名:"); scanf("%s",&newst->name); printf("输入年龄:"); scanf("%d",&newst->age); printf("输入参加活动次数:"); scanf("%d",&newst->times); printf("输入成员信息完成\n\n"); if(1 == index) { st1 *q = head->next ; head->next = newst; newst->next = q; } else while( p ) { if(i == (index-1)) { st1 *q = p->next ; p->next = newst; newst->next = q; } p = p->next ; i++; }} return p; } void dele(st1* head) { st1 *p,*q; int i =1 ; int index; printf("输入删除第几位成员信息:"); scanf("%d",&index);//所要删除第几位成员信息 p = head->next ; int n = 0; while(p != NULL) { p = p->next; n++; } if(index>n) { printf("输超了,有意思吗??"); } else { if(1 == index) { p = head->next ; head->next = p->next; free(p); p = NULL; } else while(p) { if(i ==(index-1)) { q = p->next ; p->next = q->next ; free(q); } p = p->next ; i++; } } printf("第%d位成员信息已经删除\n",index); } void change(st1 *head) { st1 *p = NULL; int a ; printf("输入修改第几位成员信息:\n"); scanf("%d",&a); p = head->next ; int n = 0; while(p != NULL) { p = p->next; n++; } if(a>n) { printf("输超了,有意思吗??"); } else { p =find(head ,a);//修改之前调用find函数找到该成员信息 printf("输入姓名:"); scanf("%s",&p->name); printf("输入年龄:"); scanf("%d",&p->age); printf("输入参加活动次数:"); scanf("%d",&p->times); } printf("输入学生信息完成\n"); } void reverse(st1 *head) { st1 *p = head->next,*q; head->next = NULL; while(p != NULL) { q = p->next; p->next = head->next; head->next = p; p = q; } print(head);//打印学生信息 } void sort(st1 *head) { st1 *p,*q; int m ; int temp;//交换times临时变量 int temp1;//交换age临时变量 char temp2[10];//交换name临时变量 printf("选择 1.按参加活动次数 2.按年龄排序\n"); scanf("%d",&m); switch(m) { case 1: for(p = head;p != NULL; p = p-> next) { for (q = p->next;q != NULL; q = q-> next ) { if(p->times>q->times) { temp = q->times; q->times = p->times; p->times =temp; temp1 = q->age; q->age = p->age; p->age =temp1; strcpy(temp2,q->name); strcpy(q->name,p->name); strcpy(p->name,temp2); } } } break; case 2: for(p = head;p != NULL; p = p-> next) { for (q = p->next;q != NULL; q = q-> next ) { if(p->age>q->age) { temp = q->times; q->times = p->times; p->times =temp; temp1 = q->age; q->age = p->age; p->age =temp1; strcpy(temp2,q->name); strcpy(q->name,p->name); strcpy(p->name,temp2); } } } break; } }
main.cpp:
#include<stdio.h> #include<stdlib.h> #include<string.h> #include"xinxi.h" int main() { int k; int number;//用于选择程序号; int i; int index;//用于选择 int exit=1; int choose;//用于判断 st1 *head=NULL,*p; head = (st1*)malloc(sizeof(st1));//分配头指针空间 do { system("cls"); interface(); scanf("%d",&number); system("cls"); if(number==0)//退出系统 { for(k=1;k>0;k--) { system("cls");//清屏函数 printf(" 正在退出系统,请稍等"); for(i=0;i<89999999;i++) {}; printf("...."); for(i=0;i<89999999;i++) {}; } printf("\n\n"); printf("是否退出系统(1/0):"); scanf("%d",&choose); if(choose==1) { system("cls"); exit=0; for(i=0;i<3;i++) printf(" "); printf("\n\n\n\n"); for(i=0;i<89999999;i++) {}; printf(" 欢迎下次使用成员信息管理系统!!!!\n\n\n"); } } switch(number)//选择7以内的数字 进行操作 system("cls"); { case 1://创建链表 printf("\n"); for(i=0;i<20;i++) printf("===="); printf("\n * 初始化系统信息 *\n\n"); for(i=0;i<20;i++) printf("===="); printf("\n"); creat(head); printf("\n初始化信息完毕!,请输入1返回主菜单:"); scanf("%d",&choose); while(choose!=1) { printf("请输入1返回主菜单:"); scanf("%d",&choose); } break; case 2://插入成员信息 printf("\n"); for(i=0;i<20;i++) printf("===="); printf("\n * 插入成员信息 *\n\n"); for(i=0;i<20;i++) printf("===="); printf("\n"); insert(head); printf("\n插入成员信息完毕!,请输入1返回主菜单:"); scanf("%d",&choose); while(choose!=1) { printf("请输入1返回主菜单:"); scanf("%d",&choose); } break; case 3://删除成员信息 printf("\n"); for(i=0;i<20;i++) printf("===="); printf("\n * 删除成员信息 *\n\n"); for(i=0;i<20;i++) printf("===="); printf("\n"); dele(head); printf("\n删除信息完毕,请输入1返回主菜单:"); scanf("%d",&choose); while(choose!=1) { printf("请输入1返回主菜单:"); scanf("%d",&choose); } break; case 4://修改信息 printf("\n"); for(i=0;i<20;i++) printf("===="); printf("\n * 修改成员信息 *\n\n"); for(i=0;i<20;i++) printf("===="); printf("\n"); change(head); printf("\n修改信息完毕!,请输入1返回主菜单:"); scanf("%d",&choose); while(choose!=1) { printf("请输入1返回主菜单:"); scanf("%d",&choose); } break; case 5://查找成员信息 printf("\n"); for(i=0;i<20;i++) printf("===="); printf("\n * 查找成员信息 *\n\n"); for(i=0;i<20;i++) printf("===="); printf("\n"); printf("输入你要查找第几位成员:"); scanf("%d",&index); p = find(head,index);//查找成员信息并返回 地址 printf("姓名:%s 年龄:%d 参加活动次数:%d\n",p->name,p->age,p->times); printf("\n查找信息完毕!,请输入1返回主菜单:"); scanf("%d",&choose); while(choose!=1) { printf("请输入1返回主菜单:"); scanf("%d",&choose); } break; case 6: //排序 printf("\n"); for(i=0;i<20;i++) printf("===="); printf("\n * 显示所有成员信息 *\n\n"); for(i=0;i<20;i++) printf("===="); printf("\n"); sort(head); print(head);//打印排序后的成员信息 printf("\n信息输出完毕!,请输入1返回主菜单:"); scanf("%d",&choose); while(choose!=1) { printf("请输入1返回主菜单:"); scanf("%d",&choose); } break; case 7://链表反转 printf("\n"); for(i=0;i<20;i++) printf("===="); printf("\n * 逆序显示成员信息 *\n\n"); for(i=0;i<20;i++) printf("===="); printf("\n"); reverse(head); printf("\n信息输出完毕!,请输入1返回主菜单:"); scanf("%d",&choose); while(choose!=1) { printf("请输入1返回主菜单:"); scanf("%d",&choose); } break; default : break; } }while(1&&exit); return 0; }
程序运行截图:
相关文章推荐
- 数据结构课程设计---学生信息管理系统
- 数据结构课程设计——学生信息管理系统
- 数据结构课程设计-ytu职工信息管理系统
- 数据结构课程设计---学生信息管理系统
- 数据结构课程设计-学生信息管理系统
- 数据结构课程设计——学生信息管理系统
- 数据结构课程设计论文--学生信息管理系统
- 数据结构课程设计【学生信息管理系统(烟大版)】
- 数据结构课程设计-学生各方面信息管理系统
- 数据结构课程设计—图书信息管理系统
- 数据结构课程设计——学生信息管理系统
- 数据结构课程设计--学生信息管理系统
- 数据结构课程设计、职工信息管理系统
- 数据结构课程设计报告-职工信息管理系统
- 数据结构课程设计论文--学生信息管理系统
- 数据结构课程设计-------学生信息管理系统
- 学生信息管理系统-数据结构课程设计
- 数据结构课程设计—学生信息管理系统
- 数据结构课程设计—学生系统管理
- 数据结构课程设计-通讯录管理系统的设计与实现