C语言编程-课程设计(共14页).doc
《C语言编程-课程设计(共14页).doc》由会员分享,可在线阅读,更多相关《C语言编程-课程设计(共14页).doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上 三江学院SANJIANG U N I V E R S I T Y 综合程序设计与实践指导书(2012年6-7月)题目:开发一个简单的学籍管理程序 所属学院: 电子信息工程学院 学 号: 姓 名: 刘 夫 兴 班 级: A 指导教师: 杨丽萍 老师 综合程序设计与实践指导书一 题目:开发一个简单的学籍管理程序。二 内容包括:1 建立一个学生信息单链表2 输出链表中的学生信息3 在链表中查找某个学生信息4 在链表中插入一个学生结点信息5 在链表中删除一个学生结点6 退出该管理系统三 任务1 设计一个菜单驱动程序(仿照课程设计之一),由老师提供并完成了功能1 2。2 在这
2、个管理系统中加入三个模块,即查找模块、插入模块和删除模块。使程序能正确运行。四提供能使程序能正确运行的源程序清单。 源程序清单, 如下:#include#include#include#includetypedef struct nodeint num;char name20; char sex8; char cla20;char pro20;char adress10;struct node *next;STD;#define LEN sizeof(STD)#define NEW (STD*)malloc(LEN)int menu_select();STD *head1,*head2;int
3、 n=0;void creat1(void) /*追加法建表*/ STD *p1,*p2; system(CLS); head1=NULL; p1=(STD*)malloc(LEN); p2=p1; printf(建表方法1追加法建表!n); printf(请依次输入:n学号 姓名 性别 班级 专业 籍贯 (注:若输入学号为0,则退出建表!)n); scanf(%d%s%s%s%s%s,&p1-num,p1-name,p1-sex,p1-cla,p1-pro,p1-adress); while(p1-num!=0) n+; if(n=1) head1=p1; else p2-next=p1;
4、p2=p1; p1=(STD*)malloc(LEN); scanf(%d%s%s%s%s%s,&p1-num,p1-name,p1-sex,p1-cla,p1-pro,p1-adress); free(p1); p2-next=NULL; scanf(%*c); printf(按回车键继续!n); getchar(); system(CLS); return; void creat2(void) /*插入法建表*/ STD *p1; head2=NULL; system(CLS); p1=(STD*)malloc(LEN); printf(建表方法2 插入法建表!n); printf(请依次
5、输入: 学号 姓名 性别 班级 专业 籍贯(注:若输入学 号为0,则退出建表!)n); scanf(%d%s%s%s%s%s,&p1-num,p1-name,p1-sex,p1-cla,p1-pro,p1-adress); while(p1-num!=0) p1-next=head2; head2=p1; p1=(STD*)malloc(LEN); scanf(%d%s%s%s%s%s,&p1-num,p1-name,p1-sex,p1-cla,p1-pro,p1-adress); scanf(%*c); printf(按回车键继续!n); getchar(); system(CLS); fr
6、ee(p1); return ;void search(struct node *head,char *x) /* 查找函数 */STD *p,*q; if (head=NULL) printf(This is a empty list.); /* 空链表情况 */ else p=head; while (strcmp(x,p-name)!=0 & p-next!=NULL) q=p; p=p-next; /* q指针尾随p指针向表尾移动 */ if (strcmp(x,p-name)=0) printf(查询信息:t学号:%d 姓名:%s 性别:%s 班级:%s 专业:%s 籍贯:%sn,p
7、-num,p-name,p-sex,p-cla,p-pro,p-adress); else printf(Not found.); STD *delnode(struct node *head, char *x) /* 删除函数 */ STD *p,*q; static struct node *h; if (head=NULL) printf(This is a empty list.); /* 空链表情况 */ return head; p=head; while (strcmp(x,p-name)!=0 & p-next!=NULL) q=p;p=p-next; /* q指针尾随p指针向
8、表尾移动 */if (strcmp(x,p-name)=0) if (p=head) head=p-next; /* 删除头结点 */ else q-next=p-next; /* 删除中间或尾结点 */ free(p); /* 释放被删除的结点 */ else printf(Not found.); /* 未找到指定的结点 */ h=head; return h;STD *insert(struct node *head, struct node *p0, char *x) /*插入函数*/ STD *p,*q; static struct node *h; if (head=NULL) h
9、ead=p0; /* 空表时,插入结点 */ p0-next=NULL; else p=head; while (strcmp(x,p-name)!=0 & p-next!=NULL) q=p;p=q-next; if (strcmp(x,p-name)=0) if (p=head) head=p0; /* 在表头插入结点 */ else q-next=p0; /* 在表中间插入结点 */ p0-next=p; else p-next=p0; /* 在表尾插入结点 */ p0-next=NULL; h=head; return h; void print(STD *head) /*输出函数*/
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程 课程设计 14
限制150内