您的位置:首页 > 娱乐 > 八卦 > 西安免费网站制作_大数据营销的含义_上海关键词优化报价_官网seo

西安免费网站制作_大数据营销的含义_上海关键词优化报价_官网seo

2024/12/5 21:26:21 来源:https://blog.csdn.net/JOUzb/article/details/143694698  浏览:    关键词:西安免费网站制作_大数据营销的含义_上海关键词优化报价_官网seo
西安免费网站制作_大数据营销的含义_上海关键词优化报价_官网seo

菜单代码

#include "head.h"
int main(int argc, const char *argv[])
{int ch,k;//登录注册while(1){printf("\t1、注册\n");printf("\t2、登录\n");printf("\t0、退出\n");printf("请输入你的选择:");scanf("%d",&ch);getchar();switch(ch){case 1:{regist();//注册函数}break;case 2:{k = login();//登录函数}break;case 0:{exit(EXIT_SUCCESS);//退出函数}break;}if(k == 1){break;}}while(1){printf("\t------学生管理系统首页------\n");printf("\t1、录入学生信息\n");printf("\t2、输出学生信息\n");printf("\t3、任意位置删除学生信息\n");printf("\t4、任意位置插入学生信息\n");printf("\t5、任意位置修改学生信息\n");printf("\t6、任意位置查找学生信息\n");printf("\t7、表头插入一个学生信息\n");printf("\t8、表尾插入一个学生信息\n");printf("\t9、按照姓名查找学生信息并删除\n");printf("\t10、按年龄查找学生并修改学号为10086\n");printf("\t0、退出\n");printf("请输入你的选择:");scanf("%d",&ch);Plink L;switch(ch){case 1:{L = create();input_link(L);}break;case 2:{output_link(L);}break;case 3:{int pos;printf("请输入需要删除的学生位置:");scanf("%d",&pos);del_pos(L,pos);}break;case 4:{insert_pos(L);}break;case 5:{int pos;printf("请输入需要修改的学生位置:");scanf("%d",&pos);edit_pos(L,pos);}break;case 6:{int pos;printf("请输入需要查找的学生位置:");scanf("%d",&pos);find_pos(L,pos);}break;case 7:{stu e;printf("表头插入一个学生信息\n");printf("请输入需要插入学生的信息:");scanf("%d%s%d",&e.id,e.name,&e.age);insert_front(L,e);}break;case 8:{stu e;printf("表尾插入一个学生信息\n");printf("请输入需要插入学生的信息:");scanf("%d%s%d",&e.id,e.name,&e.age);insert_rear(L,e);}break;case 9:{int fage;printf("请输入需要查找的年龄:");scanf("%d",&fage);find_age(L,fage);}break;case 10:{int fage;printf("请输入需要查找的年龄:");scanf("%d",&fage);find_age_id(L,fage);}break;case 0:{exit(EXIT_SUCCESS);}break;}}return 0;
}

功能函数代码

#include "head.h"
//登录注册部分函数
int regist()
{char regist_name[20];//注册登录用户名char regist_code[20];//注册密码printf("请输入注册用户名和密码:");fgets(regist_name,sizeof(regist_name),stdin);//scanf("%s",regist_name);fgets(regist_code,sizeof(regist_code),stdin);//scanf("%s",regist_code);regist_name[strlen(regist_name)-1] = '\0';regist_code[strlen(regist_code)-1] = '\0';//将数据写入用户数据文件FILE *fp1;fp1 = fopen("./user_data.txt","a");if(fp1 == NULL){perror("fp1");return -1;}fprintf(fp1,"%s %s ",regist_name,regist_code);printf("注册成功!\n");fclose(fp1);return 0;
}int login()
{char regist_name[20];char regist_code[20];char login_name[20];char login_code[20];int login_max = 5;for(int i=0;i<login_max;i++){printf("这是你第%d次输入,你还有%d次输入机会\n",i+1,login_max-i);printf("请输入用户名和密码:");fgets(login_name,sizeof(login_name),stdin);fgets(login_code,sizeof(login_code),stdin);login_name[strlen(login_name)-1] = '\0';login_code[strlen(login_code)-1] = '\0';FILE *fp2;fp2 = fopen("./user_data.txt","r");if(fp2 == NULL){perror("fp2");return -1;}int flag = 0;while(1){//从用户数据文件夹提取数据int ret = fscanf(fp2,"%s %s",regist_name,regist_code);//读取到文件末尾if(ret < 0){break;}if(strcmp(regist_name,login_name)==0&&strcmp(regist_code,login_code)==0){flag = 1;printf("登录成功!\n");return 1;}}if(flag == 0){printf("登录失败!\n");}fclose(fp2);}printf("输入次数已用尽,系统锁定\n");while(1);
return 0;
}//管理学生信息部分函数//空间申请函数
Plink apply()
{Plink p = malloc(sizeof(Link));if(p == NULL){printf("申请失败\n");return NULL;}return p;
}
//创建链表函数
Plink create()
{Plink p = apply();if(p == NULL){printf("创建失败!\n");return NULL;}p->len = 0;p->next = NULL;return p;
}//头插法创建
void insert_front(Plink L,stu e)
{if(L == NULL){printf("插入失败!\n");return;}Plink p = apply();if(NULL == p){printf("申请正常节点失败!\n");}p->data = e;p->next = L->next;L->next = p;L->len++;}//信息输入函数
void input_link(Plink L)
{stu e;int n,i;printf("请输入学生数量:");scanf("%d",&n);for(i=0;i<n;i++){printf("请输入学生信息:");scanf("%d%s%d",&e.id,e.name,&e.age);insert_front(L,e);}
}//信息输出函数
void output_link(Plink L)
{if(L == NULL){printf("输出失败!\n");return;}Plink t = L->next;while(t != NULL){printf("学号:%d\t姓名:%s\t年龄:%d\n",t->data.id,t->data.name,t->data.age);t = t->next;}
}//任意位置删除学生信息void del_pos(Plink L,int pos)
{if(pos<1||pos>L->len||L == NULL||L->len ==0){printf("删除失败!\n");return;}Plink t = L;int i;for(i=0;i<pos-1;i++){t = t->next;}Plink Q = t->next;t->next = Q->next;free(Q);Q = NULL;L->len--;;}//任意位置插入学生信息
void insert_pos(Plink L)
{int pos,i;stu e;printf("请输入需要插入信息的位置:");scanf("%d",&pos);if(pos<1||pos>L->len+1){printf("插入失败!\n");return;}Plink t = L;for(i=0;i<pos-1;i++){t = t->next;}Plink p = apply();printf("请输入需要插入的学生信息:");scanf("%d%s%d",&e.id,e.name,&e.age);p->data = e;p->next = t->next;t->next = p;L->len++;
}//任意位置查找学生信息
void find_pos(Plink L,int pos)
{Plink t = L;if(pos<1||pos>L->len||L->len == 0||L == NULL){printf("查找失败!\n");return;}for(int i=0;i<pos;i++){t = t->next;}printf("第%d位学生的信息:学号:%d姓名:%s年龄:%d\n",pos,t->data.id,t->data.name,t->data.age);
}//任意位置修改学生信息
void edit_pos(Plink L,int pos)
{Plink t = L;if(pos<1||pos>L->len||L == NULL||L->len == 0){printf("修改失败!\n");return;}for(int i=0;i<pos;i++){t=t->next;}stu e;printf("请输入需要修改的学生信息:");scanf("%d%s%d",&e.id,e.name,&e.age);t->data = e;
}//表头插入一个学生(头插法插入一个学生)直接调用头插法//表尾插入一个学生信息
void insert_rear(Plink L,stu e)
{Plink t = L;if(L == NULL){printf("插入失败\n");return;}for(int i=0;i<L->len;i++){t= t->next;}Plink p = apply();p->data = e;p->next = NULL;t->next = p;L->len++;
}//按年龄查找学生信息
void find_age(Plink L,int fage)
{int pos=1;Plink t = L->next;while(t != NULL){if(t->data.age == fage){printf("%d年龄的学生有:学号:%d姓名:%s年龄:%d\n",fage,t->data.id,t->data.name,t->data.age);printf("该年龄的学生位置为:%d\n",pos);Plink Q = t->next;del_pos(L,pos);t = Q;printf("删除成功!\n");}else{pos = pos+1;t = t->next;}}}//按年龄查找学生信息,修改学号为10086
void find_age_id(Plink L,int fage)
{Plink t = L->next;while(t != NULL){if(t->data.age == fage){printf("将%d年龄的学生学号修改为10086\n",fage);t->data.id = 10086;t=t->next;}else{t= t->next;}}
}

头文件代码

#ifndef _HEAD_H_
#define _HEAD_H_
#include <myhead.h>
#define MAX 30typedef struct students
{int id;char name[20];int age;
}stu;typedef struct node
{union{int len;stu data;};struct node *next; 
}Link,*Plink;int regist();int login();Plink apply();Plink create();void insert_front(Plink,stu);void input_link(Plink);void output_link(Plink);void del_pos(Plink,int);void insert_pos(Plink);void find_pos(Plink,int);void edit_pos(Plink,int);void insert_rear(Plink,stu);void find_age(Plink,int);void find_age_id(Plink,int);
#endif

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com