个人成绩系统函数流程图.doc_第1页
个人成绩系统函数流程图.doc_第2页
个人成绩系统函数流程图.doc_第3页
个人成绩系统函数流程图.doc_第4页
个人成绩系统函数流程图.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序代码#include#include#define NULL 0#define LEN sizeof(struct student)#include#include#includestruct student long jsh;float xuefen;char name30;int zongfen;struct student *next;int n; /* n 为全局变量,用于统计结点的个数*/*-creat函数*/ struct student *creat() /* 创建creat函数用于建立链表*/ struct student *head;struct student *p1,*p2;n=0;p2=(struct student *)malloc(LEN); /* 开辟一个大小为LEN的内存单元*/p1=p2; printf(请输入教师号:);scanf(%ld,&p1-jsh); /* 输入jsh-教师号*/if(p1-jsh!=0) printf(请输入课程名:);scanf(%s,p1-name); /* 输入课程名*/printf(请输入学分 :);scanf(%f,&p1-xuefen); /* 输入学分*/printf(请输入总分:);scanf(%d,&p1-zongfen); /* 输入总分*/ printf(ok! 请输入下一个结点的信息(以教师号为0结束)n); /* 提示已经输好了一位同学的信息*/ head=NULL;while(p1-jsh!=0) /* 如果输入的教师号不是0,则继续输入其他课程的信息*/ n=n+1;if(n=1)head=p1;else p2-next=p1;p2=p1;p1=(struct student *)malloc(LEN);printf(请输入教师号:);scanf(%ld,&p1-jsh);if(p1-jsh!=0) printf(请输入课程名:);scanf(%s,p1-name);printf(请输入学分 :);scanf(%f,&p1-xuefen);printf(请输入总分:);scanf(%d,&p1-zongfen); printf(ok! 请输入下一个结点的信息(以教师号为0结束)n);p2-next=NULL;return head; /* 结束creat函数*/*-print函数-*/void print(struct student *head) /* 开始打印函数*/ struct student *p;printf(n Now,These %d records are:n,n);p=head;if(head!=NULL) /* 如果链表不是空,则打印每个结点信息*/ printf(-|-|-|-n);printf(教师号 |课程名 |学分 |总分 n);do printf(-|-|-|-n);printf(%-9ld|%-16s|%-8.0f|%-8dn,p-jsh,p-name,p-xuefen,p-zongfen);p=p-next;while(p!=NULL);printf(-|-|-|-n);else printf(链表是空的!n); /* 如果链表是空表,刚提示这个链表是空表*/ /* 结束print函数*/*-del函数-*/struct student *del(struct student *head,long jsh) /* 开始创建del函数,用于删除结束*/ struct student *p1,*p2;if(head=NULL) printf(n链表是空的!n); return head; /* 用于检查链表是否为空,如果为空,刚提示这个链表为空表*/p1=head;while(jsh!=p1-jsh & p1-next!=NULL)p2=p1;p1=p1-next;if(jsh=p1-jsh) /* 找到对应的结点*/ if(p1=head) head=p1-next;else p2-next=p1-next;printf(删除:%ldn,jsh);n=n-1;else printf(0%ld 没有找到!n,jsh); /* 没有打到对应的结点,则提示没有找到*/return head;/*-insert函数-*/struct student *insert(struct student *head,struct student *lnew) /* 创建insert函数,用于插入结点,返回值为一个指针*/ struct student *p0,*p1,*p2;p1=head;p0=lnew;if(head=NULL) head=p0;p0-next=NULL; /* 结果链表为空表,刚把插入的结点指针给头指针,结点的next为空*/elsewhile(p0-jshp1-jsh) & (p1-next!=NULL) /* 寻找该插入的位置*/p2=p1;p1=p1-next;if(p0-jshjsh) /* 找到了该插入的位置*/if(head=p1)head=p0; /* 放在最前面*/else p2-next=p0; /* 结点插到p1,p2之间*/p0-next=p1;else p1-next=p0;p0-next=NULL; /* 结点插到最后*/n=n+1;return head; /* 结点数加*/ /* 结束insert函数的建立*/*-menubar函数-*/int menubar() /*创建菜单函数*/int flag=1; /*用来做记号*/int c; printf(nn*王芬的成绩表 *n);printf( -学号:109074337n); /*用来存储使用者选择的菜单代号*/printf(n* 链表综合处理 *n);printf(1:创建链表 -n);printf(2:输出链表n);printf(3:插入结点 菜单n);printf(4:删除结点n);printf(0:退出 -n);printf(*);printf(n请根据你想执行的命令,输入您的选择:(04):);scanf(%d,&c); /*接收使用都所输入的代号*/while(flag) /*flag用来标记,如果为链表为空,或者使用者第一次输入的不是0或者不是4,则需要重新输入*/if(n=0&c!=1&c!=0)printf(在建立链表之前请先输入建立链表n);printf(n请输入您的选择:(04):);scanf(%d,&c);flag=1;else flag=0 ;while( c4 ) /*表示链表已经创建,但输入的不能大于4,或者小于0*/printf(n请输入您的选择:(04):);scanf(%d,&c);return c; /*返回c的值*/*-main函数-*/main() /*开始主函数*/ struct student *head,*lnew;long del_jsh;for(;) /*开始for循环*/ switch (menubar() case 1:printf(请输入创建的链表的结点的信息:n);head=creat();break;case 2:print(head);break;case 3: printf(n请输入要插入的结点的信息(以教师号为0结束):n);lnew=(struct student *)malloc(LEN);printf(请输入教师号:);scanf(%ld,&lnew-jsh);if(lnew-jsh!=0) printf(请输入课程名:);scanf(%s,lnew-name);printf(请输入学分 :);scanf(%f,&lnew-xuefen);printf(请输入总分:);scanf(%d,&lnew-zongfen); while(lnew-jsh!=0) head=insert(head,lnew);print(head);printf(请输入下一个要插入的结点的信息(以教师号为0结束):n);lnew=(struct student *)malloc(LEN);printf(请输入教师号:);scanf(%ld,&lnew-jsh);if(lnew-jsh!=0)printf(请输入课程名:);scanf(%s,lnew-name);printf(请输入学分 );scanf(%f,&lnew-xuefen);printf(请输入总分:);scanf(%d,&lnew-zongfen);printf(ok! 请输入下一个要插入的结点的信息(如果xiNg退出,输入教师号为0,就结束)n); break;case 4:printf(n请输入你想删除的结点的教师号:);scanf(%ld,&del_jsh);while(del_jsh!=0) head=del

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论