欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    学生管理系统(数据结构课程设计之完整代码).doc

    • 资源ID:24073241       资源大小:159KB        全文页数:71页
    • 资源格式: DOC        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    学生管理系统(数据结构课程设计之完整代码).doc

    Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date学生管理系统(数据结构课程设计之完整代码)学生管理系统(数据结构课程设计之完整代码) 数据结构课程设计学生信息管理系统C语言编写 仅供参考:#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#define LEN sizeof(LNode)typedef struct LNode/用于存放学生信息节点 int stuNumber; char telenum50;int age;char chass50;char deptName50;/*char zhuanYe50;char adress50;*/char name20;struct LNode *next;LNode,*Link;/*创建链表结点*Link createLink(Link L) /初始化定义函数,声明变量void inserStu(Link L,Link Elem);/定义插入函数int count(Link L); int temp;temp=count(L);printf("节点个数为%d:n",temp);Link p;int num=1, stuNumber;char telenum50;char name20;int age; /* char deptName50;char adress50; char zhuanYe50;*/char chass50;/开始输出学生信息 while(1)printf("请输入学生的信息:学号,姓名,年龄,班级,院系,专业,家庭住址,电话号码n"); printf("学号输入负数结束!n");printf("请输入学号%d: ",num); scanf("%10d",&stuNumber);if(stuNumber<0) break; printf("请输入姓名%d: ",num); getchar();gets(name);printf("请输入年龄%d: ",num); scanf("%d",&age); printf("请输入班级%d: ",num);getchar(); gets(chass); printf("请输入电话号码: ",num);getchar();gets(telenum); /* printf("请输入院系%d: ",num); getchar(); gets(deptName);*/ if(stuNumber>=0)p=(Link)malloc(LEN);p->stuNumber=stuNumber; strcpy(p->chass,chass); /* strcpy(p->deptName,deptName);*/ p->age=age;strcpy(p->telenum,telenum);strcpy(p->name,name);/插入新结点inserStu(L,p); num+; return (L);/*打印头结点为L的学生记录*void printList(Link L) printf("n*学号,姓名,年龄,班级,电话号码*n");printf("n 学号 姓名 年龄 专业班级 电话号码 n");int n=1;Link p=L;int count(Link L); int temp;temp=count(L);/结点个数:if(temp=0)printf("系统中没有元素n");/判断学生管理系统中有无信息 else while(p->next!=NULL) printf("%2d %-9d",n,p->next->stuNumber); printf("%-8s %-5d %-12s %s n",p->next->name, p->next->age,p->next->chass,p->next->telenum/*p->next->deptName*/);/首个字符打印不出来 p= p->next; n+;printf("n*n");return;/*插入学生信息*void inserStu(Link L,Link Elem) Link prior(Link L,Link p);Link p=L->next;/*%* while(p!=NULL&&Elem->stuNumber>=p->stuNumber) if(p->stuNumber=Elem->stuNumber) printf("重复输入学号,输入失败!");return ; p=p->next; /确定Elem的插入位置if(p=NULL) p=prior(L,p);Elem->next=NULL;p->next=Elem;/若为空表,插入到头结点之后 else p=prior(L,p);Elem->next=p->next;p->next=Elem; /*找到当前地址元素的前一元素的地址*Link prior(Link L,Link p)if(L->next=NULL)return(L);Link p_prior=L; while(p_prior->next!=p) p_prior= p_prior->next ; return (p_prior);/*8按学号查询学生信息*int searchName(Link L,char n)int flag=0;/标志要查找的学生和学生记录中的姓名是否匹配Link p=L->next;int seat=1; if(L->next=NULL|L=NULL)printf("没有学生信息n"); else while(p!=NULL) if(!strcmp(p->name,n)/比较要查找的姓名是否和当前学生信息所指的姓名匹配 flag=1;/输入姓名匹配 printf("要查找的是第%d位学生n",seat); printf("学号是:%d 名字:%s 年龄:%d 班级:%s 手机号:%sn",p->stuNumber,p->name,p->age,p->chass,p->telenum); p=p->next ;seat+;return flag;/*按学号查找学生信息*int searchNum(Link L,int n)int flag=0;/标志要查找的学生和管理信息系统中的学号是否匹配Link p=L->next;int seat=1;if(L->next=NULL)printf("没有学生信息n"); else while(p!=NULL) if(p->stuNumber<=n) if(p->stuNumber=n)/比较要查找的学号是否和当前学生信息所指的学号匹配 flag=1;/输入学号匹配 printf("要查找的是第%d位学生n",seat); printf("学号是:%d 名字:%s 年龄:%d 班级:%s 手机号:%sn",p->stuNumber,p->name,p->age,p->chass,p->telenum); p=p->next ;seat+; return flag;/*从通讯录中删除第i个元素*void deleteElem(Link L,int i) Link p=L;int j=0; while(p->next&&j<i-1) p= p->next;j+; if(!(p->next)/判断i时候合法,i不能大于元素的个数,也不能小于等于0 printf("第%d个学生删除失败n",i); return; Link q=p->next; p->next=q->next; free(q);/*按姓名删除学生信息*int deleName(Link L, char n) void deteStu(Link); int flag=0;/判断要删除的学生与系统中的姓名是否匹配 Link p=L->next; int seat =1; if(L->next=NULL)printf("n删除提示:系统中没有元素,删除失败!n");deteStu( L); else while(p!=NULL) if(!strcmp(p->name ,n)/比较名字是否匹配 flag=1; printf("%s",p->name ); p=p->next; deleteElem(L,seat);/删除第i个学生的信息 else p=p->next ;seat+; if(flag)printf("被删除了n"); return flag;/*按学号删除学生信息*int deleNum(Link L,int n) void deteStu(Link);int flag=0;Link p=L->next ;int seat=1; if(L->next=NULL) printf("n删除提示:系统中没有元素,删除失败!n");deteStu( L); else while(p!=NULL) if(p->stuNumber=n) flag=1; printf("%d",p->stuNumber); p=p->next; deleteElem(L,seat); break; p=p->next ; seat+; if(flag) printf("被删除了n"); else printf("没有找到学生信息n"); return flag;/*void searchWay1(Link L) void searchMenu(Link L); int searchWay=0;/控制跳出循环,再次选择查询方式 if(searchWay=0) printf("请输入要查询的学生的学号:n"); int n,s; scanf("%d",&n); s=searchNum(L, n); if(s=0)printf("查找失败n"); searchWay=1; if(searchWay=1) searchMenu( L); /* void searchWay2(Link L) void searchMenu(Link L); int searchWay=0;/控制跳出循环,再次选择查询方式 if(searchWay=0) char n20;int flag;printf("请输入要查询的学生姓名n");char temp2=getchar();gets(n);flag= searchName(L,n);if(flag=0)printf("查找失败!n");searchWay=1; if(searchWay=1) searchMenu( L); /*8 void searchMenu(Link L) int mainMenu();printf(" * 查询菜单 * n");printf(" * 1 输入学生学号查询学生信息 n");printf(" * 2 输入学生姓名查询学生信息 n");printf(" * 3 返回上级菜单 n");printf(" * 查询菜单 * n");printf("请选择1-3: "); int menu;scanf("%d",&menu); switch(menu) case 1: searchWay1(L);break; case 2: searchWay2(L);break; case 3: break;/跳回主菜单程序 /*更新学生信息模块* void alterStu(Link L)/按学号更新学生信息 int n;printf("请输入要修改的学生学号:"); scanf("%d",&n); Link p=L->next; if(p=NULL)printf("学生管理系统没有学生信息!"); while(p!=NULL)/循环查找学生信息,如果找到该学号则进入循环体更改学生信息 /* if(p->stuNumber=n) int num=1, stuNumber,age; char telenum50; char name20; char chass50; printf("*更改学生信息*n"); printf("请输入学生的学号,姓名和电话号码n"); printf("请输入学号%d: ",num); scanf("%d",&stuNumber); printf("请输入姓名%d: ",num); getchar(); gets(name); printf("请输入年龄%d: ",num); scanf("%d",&age); printf("请输入班级%d: ",num); getchar(); gets(chass); printf("请输入电话号码: ",num); getchar(); gets(telenum); p->age=age; p->stuNumber=stuNumber; strcpy(p->telenum,telenum); strcpy(p->name,name); strcpy(p->chass,chass);/更新新结点printf("*更改学生信息完毕*n"); /* p=p->next; /*保存学生信息模块* void keepStu(Link L) Link p=L->next; FILE* fp; if(fp=fopen("student.txt","r")=NULL)/打开文件,不存在此文件则新建 fp=fopen("E:测试student.txt","w"); fclose(fp); fp=fopen("E:测试student.txt","a"); while(p!=NULL) fprintf(fp,"%dt%st%sn",p->stuNumber,p->name,p->telenum); p=p->next; fclose(fp); printf("文件保存成功!n"); /*统计结点个数模块* int count(Link L) int n=0; Link p=L->next; if(p=NULL)printf("不存在学生信息n"); while(p!=NULL) p=p->next;n+; return n; /*导入学生信息模块* Link stuEntry() FILE* fp; Link p,q ,L; if(fp=fopen("E:测试student.txt","r")=NULL)/打开文件,不存在此文件则新建 ; L=q=(Link)malloc(LEN); printf("n学号 姓名 手机号 n"); printf("*n"); while(!feof(fp) p=(Link)malloc(LEN); fscanf(fp,"%dt%st%sn",&p->stuNumber,&p->name,&p->telenum); printf("n%dt%st%sn",p->stuNumber,p->name,p->telenum); q->next=p; q=p; q->next=NULL; fclose(fp); printf("按任意键结束:"); getch();/返回 return L; /*添加学生信息*void AddStu(Link L) int temp; temp=count(L); printf("节点个数为%d:n",temp);if(temp=0)createLink(L);/如果没有学生信息则调用初始化函数 createLink(L); /*删除学生菜单*void deteStu(Link L) int flag=0,way,n; printf("n* 删除菜单 *n"); printf("n选择操作方式* 1:按学号 *n"); printf(" * 2:按姓名 *n"); printf(" * 3: 返回主菜单 *n"); printf("n请输入删除方式:");scanf("%d",&way);if(way<1|way>3)deteStu(L);switch (way)case 1: printf("请输入要删除的学生学号:"); scanf("%d",&n); flag= deleNum(L,n);break;case 2: char n20; printf("请输入要删除的学生姓名:"); char temp1=getchar(); gets(n); flag=deleName(L,n);break; case 3:break; if(flag)printf("删除成功!n");deteStu(L); /*主菜单程序* int mainMenu() printf("n*欢迎使用学生管理信息系统*n");printf("* * 1 输入学生信息 * * n");printf("* * 2 显示学生信息 * * n");printf("* * 3 查询学生信息 * * n");printf("* * 4 更新学生信息 * * n");printf("* * 5 添加学生信息 * * n");printf("* * 6 删除学生信息 * * n");printf("* * 7 保存学生信息 * * n");printf("* * 8从文件导入学生信息 * * n");printf("* * 0 退出管理信息系统 * * n");printf("*欢迎使用学生管理信息系统*"); int menu=0; printf("请选择0-8:"); scanf("%d",&menu); if(menu<0&&menu>8) printf("输入无效,请正确输入有效序号0-8:"); scanf("%d",&menu);return menu; /*main()程序*void main() Link L=(Link)malloc(LEN);/在主函数上首先让结构体指针初始化;L->next=NULL;int flag=0;/学生信息是否建立int menu=0;/菜单选项do menu=mainMenu(); switch(menu)/用于调用子菜单 case 1:L=createLink(L);break; case 2:printList(L); break; case

    注意事项

    本文(学生管理系统(数据结构课程设计之完整代码).doc)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开