From 6c4c5d87225489fe9ff3be6bb989ccd4945780b8 Mon Sep 17 00:00:00 2001 From: "2650279311@qq.com" <2650279311@qq.com> Date: Wed, 9 Jan 2019 18:12:16 +0800 Subject: [PATCH] first commit --- main.m.cpp | 417 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 417 insertions(+) create mode 100644 main.m.cpp diff --git a/main.m.cpp b/main.m.cpp new file mode 100644 index 0000000..2965caf --- /dev/null +++ b/main.m.cpp @@ -0,0 +1,417 @@ +#include +#include +#include +#include +//定义一个学生 +typedef struct +{ + char num[12]; // 学号 + char name[20]; // 姓名 + char sex[4]; // 性别 + int age; // 年龄 + char birth[20]; // 生日 + char home[100]; // 住址 + char tel[15]; // 电话 + }student; +//节点 +typedef struct Node +{ + student stu;//学生信息 + struct Node* pnext;//指向下一个节点的指针 + }node; +node* phead=NULL; //头节点(空链表) + + +//录入学生信息 +void Inputstudent(); +//打印学生信息 +void Printstudent(); +//保存学生信息 +void Savestudent(); +//查找学生信息 +void Lookstudent(); +//修改学生信息 +void Modifystudent(); +//读取学生信息 +void Readstudent(); + //删除学生信息 +void Deletestudent(); +int count=0; +int main() +{ + + while(1) + { system("color 2A"); + printf("\t\t\t*****************************************************************\n"); + printf("\t\t\t|\t\t欢迎使用湖南工业大学学生信息管理系统\t\t|\n"); + printf("\t\t\t*****************************************************************\n"); + printf("\t\t\t|\t\t\t请选择功能列表\t\t\t\t|\n"); + printf("\t\t\t|***************************************************************|\n"); + printf("\t\t\t|\t\t\t1.录入学生信息\t\t\t\t|\n"); + printf("\t\t\t|\t\t\t2.打印学生信息\t\t\t\t|\n"); + printf("\t\t\t|\t\t\t3.保存学生信息\t\t\t\t|\n"); + printf("\t\t\t|\t\t\t4.读取学生信息\t\t\t\t|\n"); + printf("\t\t\t|\t\t\t5.查找学生信息\t\t\t\t|\n"); + printf("\t\t\t|\t\t\t6.修改学生信息\t\t\t\t|\n"); + printf("\t\t\t|\t\t\t7.删除学生信息\t\t\t\t|\n"); + printf("\t\t\t|\t\t\t0.退出系统\t\t\t\t|\n"); + printf("\t\t\t*****************************************************************\n"); + printf("请输入:\n\n"); + char ch=getch();//从键盘输入一个字符 + switch(ch) + { + case '1'://录入学生信息 + Inputstudent(); + break; + case '2'://打印学生信息 + Printstudent(); + break; + case '3'://保存学生信息 + Savestudent(); + break; + case '4'://读取学生信息 + Readstudent(); + break; + + case '5'://查找学生信息 + Lookstudent(); + break; + case '6'://修改学生信息 + Modifystudent(); + break; + case '7'://删除学生信息 + Deletestudent(); + break; + case '0'://退出系统 + printf("ByeBye 欢迎再次使用!\n\n"); + break; + default: + printf("您输入有误,请重新输入!\n\n"); + break; + + + + + } + + system("pause"); + system("cls"); + } + return 0; +} +//录入学生信息 +void Inputstudent() +{ + system("cls"); + system("color 6F"); + //创建一个节点来存储新的学生 + node* pnewnode=(node*)malloc(sizeof(node)); + pnewnode->pnext=NULL; + + //要将新节点插入到链表中 + if(phead==NULL) + { + + phead=pnewnode; + + + + } + + else + { + pnewnode->pnext=phead; + phead=pnewnode; + + } + printf("\n"); + printf("请输入学生学号:\n"); + scanf("%s",pnewnode->stu.num); + + printf("请输入学生姓名:\n"); + scanf("%s",pnewnode->stu.name); + + printf("请输入学生性别:\n"); + scanf("%s",pnewnode->stu.sex); + + printf("请输入学生年龄:\n"); + scanf("%d",&pnewnode->stu.age); + + printf("请输入学生生日:\n"); + scanf("%s",pnewnode->stu.birth); + + printf("请输入学生住址:\n"); + scanf("%s",pnewnode->stu.home); + + printf("请输入学生电话:\n"); + scanf("%s",pnewnode->stu.tel); + + printf("\n录入学生信息成功!\n\n"); + + + + } + +//打印学生信息 +void Printstudent() +{ + system("cls"); + system("color 1A"); + printf("\t\t*****************************************************************************************\n"); + printf("\t\t|\t\t\t欢迎使用湖南工业大学学生信息管理系统\t\t\t\t|\n"); + printf("\t\t*****************************************************************************************\n"); + printf("\t\t|学号\t|姓名\t|性别\t|年龄\t|生日\t|家庭住址\t\t|本人电话\t\t|\n"); + //遍历链表 + node* p=phead;//定义一个当前节点 + + while(p!=NULL) + { + printf("\t\t|---------------------------------------------------------------------------------------|\n"); + printf("\t\t|%s\t|%s\t|%s\t|%d\t|%s\t|%s\t\t|%s\t\t|\n",p->stu.num,p->stu.name,p->stu.sex,p->stu.age,p->stu.birth,p->stu.home,p->stu.tel); + + p=p->pnext; + count++; + + } + printf("\t\t*****************************************************************************************\n"); + printf("\t\t当前总人数: %d\t\t\t\n",count); + + +} +//保存学生信息 +void Savestudent() +{ + system("cls"); + system("color 1B"); + FILE *fp; + fp=fopen("stu.dat","w"); //打开文件 + if(fp==NULL) + { + printf("打开文件失败!\n\n"); + return; + } + //写入数据 + node* p=phead;//当前节点 + while(p!=NULL) + { + fwrite(&p->stu,sizeof(student),1,fp); + p=p->pnext; + + } + printf("\n\n数据存入成功!\n\n"); + fclose(fp); + + + } +//查找学生信息 +void Lookstudent() +{ + system("cls"); + system("color 1B"); + char name[20]; + char num[12]; + int j=0; + node* p=phead;//定义一个当前节点 + system("cls"); + system("color 2F"); + while(1) + { + + printf("\t\t*****************************************************************************************\n"); + printf("\t\t|\t\t\t欢迎使用湖南工业大学学生信息管理系统\t\t\t\t|\n"); + printf("\t\t*****************************************************************************************\n"); + printf("\t\t|\t\t\t\t请选择查找方式\t\t\t\t\t\t|\n"); + printf("\t\t|***************************************************************************************|\n"); + printf("\t\t|\t\t\t\t1.按姓名查找\t\t\t\t\t\t|\n"); + printf("\t\t|\t\t\t\t2.按学号查找\t\t\t\t\t\t|\n"); + printf("\t\t|\t\t\t\t0.退出查找系统\t\t\t\t\t\t|\n"); + printf("\t\t*****************************************************************************************\n"); + printf("请输入:\n\n"); + char ch=getch();//从键盘输入一个字符 + switch(ch) + { + case '1':// 按姓名查找 + + printf("请输入学生姓名:\n"); + scanf("%s",name); + while(p!=NULL) + { + + if(strcmp(p->stu.name,name)==0) + { +printf("\t\t*****************************************************************************************\n"); +printf("\t\t|学号\t|姓名\t|性别\t|年龄\t|生日\t|家庭住址\t\t|本人电话\t\t|\n"); +printf("\t\t|---------------------------------------------------------------------------------------|\n"); +printf("\t\t|%s\t|%s\t|%s\t|%d\t|%s\t|%s\t\t|%s\t\t|\n",p->stu.num,p->stu.name,p->stu.sex,p->stu.age,p->stu.birth,p->stu.home,p->stu.tel); +printf("\t\t*****************************************************************************************\n"); +} + p=p->pnext; + + j++; + } + + break; + case '2'://按学号查找 + printf("请输入学生学号:\n"); + scanf("%s",num); + while(p!=NULL) + { + + if(strcmp(p->stu.num,num)==0) + { + printf("\t\t*****************************************************************************************\n"); + printf("\t\t|学号\t|姓名\t|性别\t|年龄\t|生日\t|家庭住址\t\t|本人电话\t\t|\n"); + printf("\t\t|---------------------------------------------------------------------------------------|\n"); + printf("\t\t|%s\t|%s\t|%s\t|%d\t|%s\t|%s\t\t|%s\t\t|\n",p->stu.num,p->stu.name,p->stu.sex,p->stu.age,p->stu.birth,p->stu.home,p->stu.tel); + printf("\t\t*****************************************************************************************\n"); +} + p=p->pnext; + + j++; + } + + break; + case '0'://退出系统 + printf("ByeBye 欢迎再次使用!\n\n"); + break; + default: + printf("您输入有误,请重新输入!\n\n"); + break; + } + system("pause"); + system("cls"); + + } + + +} +//修改学生信息 +void Modifystudent() +{ + system("cls"); + system("color 1B"); + char name[20]; + int j=0; + node* p=phead;//定义一个当前节点 + printf("请输入要修改的学生姓名:\n"); + scanf("%s",name); + while(p!=NULL) + + { + if(strcmp(p->stu.name,name)==0) + { +printf("\t\t*****************************************************************************************\n"); +printf("\t\t|学号\t|姓名\t|性别\t|年龄\t|生日\t|家庭住址\t\t|本人电话\t\t|\n"); + printf("\t\t|---------------------------------------------------------------------------------------|\n"); + printf("\t\t|%s\t|%s\t|%s\t|%d\t|%s\t|%s\t\t|%s\t\t|\n",p->stu.num,p->stu.name,p->stu.sex,p->stu.age,p->stu.birth,p->stu.home,p->stu.tel); + printf("\t\t*****************************************************************************************\n"); + printf("\n请修改学生信息!\n"); + + printf("请输入学生学号:\n"); + scanf("%s",p->stu.num); + + printf("请输入学生姓名:\n"); + scanf("%s",p->stu.name); + + printf("请输入学生性别:\n"); + scanf("%s",p->stu.sex); + + printf("请输入学生年龄:\n"); + scanf("%d",&p->stu.age); + + printf("请输入学生生日:\n"); + scanf("%s",p->stu.birth); + + printf("请输入学生住址:\n"); + scanf("%s",p->stu.home); + + printf("请输入学生电话:\n"); + scanf("%s",p->stu.tel); + + printf("\n修改学生信息成功!\n\n"); + system("pause"); + system("cls"); + printf("\t\t*****************************************************************************************\n"); + printf("\t\t|学号\t|姓名\t|性别\t|年龄\t|生日\t|家庭住址\t\t|本人电话\t\t|\n"); + printf("\t\t|---------------------------------------------------------------------------------------|\n"); + printf("\t\t|%s\t|%s\t|%s\t|%d\t|%s\t|%s\t\t|%s\t\t|\n",p->stu.num,p->stu.name,p->stu.sex,p->stu.age,p->stu.birth,p->stu.home,p->stu.tel); + printf("\t\t*****************************************************************************************\n"); + +} + p=p->pnext; + + j++; + } + if(j==0) + { + printf("没有您要修改的学生信息!\n\n"); + } + +} +//读取学生信息 +void Readstudent() +{ + system("cls"); + system("color 0F"); + FILE *fp; + fp=fopen("stu.dat","r"); + if(fp==NULL) + { + printf("打开文件失败!\n\n"); + return; + } + + //读取数据 + node* p=phead;//当前节点 + while(p!=NULL) + { + fread(&p->stu,sizeof(student),1,fp); + p=p->pnext; + + } + printf("\n\n数据读取完毕!!!\n\n"); + fclose(fp); + +} +//删除学生信息 +void Deletestudent() +{ + system("cls"); + system("color 6A"); + char name[20]; + int j=0; + node* p=phead;//定义一个当前节点 + node* p1=phead; + printf("\n\n请输入要删除的学生姓名:\n"); + scanf("%s",name); + while(p!=NULL) + { + + if(strcmp(p->stu.name,name)==0) + { + p1->pnext=p->pnext; + free(p); + printf("删除学生信息成功!\n\n"); + printf("别忘记保存!\n\n"); + break; + +} + p=p->pnext; + + } + +} + + + + + + + + + + + + + +