C语言编程-课程设计

上传人:s9****2 文档编号:512651406 上传时间:2022-08-28 格式:DOC 页数:14 大小:661KB
返回 下载 相关 举报
C语言编程-课程设计_第1页
第1页 / 共14页
C语言编程-课程设计_第2页
第2页 / 共14页
C语言编程-课程设计_第3页
第3页 / 共14页
C语言编程-课程设计_第4页
第4页 / 共14页
C语言编程-课程设计_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《C语言编程-课程设计》由会员分享,可在线阅读,更多相关《C语言编程-课程设计(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) /*输出函数*/

10、 STD *p; p=head; while(p!=NULL) printf(学号: %d 姓名: %s 性别: %s 班级: %s 专业: %s 籍贯:%sn,p-num,p-name,p-sex,p-cla,p-pro,p-adress); p=p-next; printf(n); printf(链表已空!n); scanf(%*c); printf(按回车键继续!n); getchar(); system(CLS);void handle_menu1() int h; STD *add,*head=NULL; char name20; for(;) h=menu_select(); sw

11、itch(h) case 1: creat1(); /*进入追加法建表*/ head=head1;break; case 2: creat2(); /*进入插入法建表*/ head=head2;break; case 3: printf(追加法建表的学籍信息:n); print(head1); /*进入追加法链表的结果*/break; case 4: printf(插入法建表的学籍信息:n);print(head2); /*进入插入法链表的结果*/break; case 5: printf(请输入查询姓名:t);scanf(%s,name);search(head,name); printf(n);break; case 6: add=NEW;printf(*输入插入学生的信息*n); printf(请您依次输入:n学号 姓名 性别 班级 专业 籍贯n); scanf(%d%s%s%s%s%s,&add-num,add-name,add-sex,add-cla,add-pro,add-adress); add-next=NULL; printf(*确定插入位置*n

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号