山东交通学院 面向过程课程设计 学生籍贯信息记录簿软件 院(系)别 信息工程系 班 级 电气102 班 学 号 ********* 姓 名 杨其杭 指导教师 时 间 2 0 1 1 -8 -2 9 —2 0 1 1 -9 -2 课 程 设 计 任 务 书 题 目 学生籍贯信息记录簿 系 (部) 信息工程系 专 业 电气类 班 级 102 班 学生姓名 杨其杭 学 号 ********* 8 月 29 日至 9 月 2 日 共 1 周 指导教师(签字) 系 主 任(签字) 年 月 日 一、设计内容及要求 编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。具体功能: (1)创建信息链表并以磁盘文件保存; (2)读取磁盘文件并显示输出所有学生的籍贯信息; (3)按学号或姓名查询其籍贯; (4)按籍贯查询并输出该籍贯的所有学生; (5)能添加、删除和修改学生的籍贯信息; (6)显示输出四川籍和非四川籍学生的信息并可分别存盘。 二、设计原始资料 1、链表基础知识 2、文件处理基础知识 三、设计完成后提交的文件和图表 1.计算说明书部分 数据库设计分析 #include #include #include #define LEN sizeof(struct Student) struct Student { char num[21]; char name[256]; char address[562]; struct Student *next; }; int n;//n 为全局变量,本文件模块中各函数均可使用它 struct Student *creat()//定义函数。此函数返回一个指向链表头的指针 { struct Student *head; struct Student *p1,*p2; n=0; p1=p2=(struct Student *)malloc(LEN); printf("请依次输入学生的信息,输入学号为零时退出。\n"); printf("请输入学生的学号:\n"); gets(p1->num); printf("请输入学生的姓名:\n"); gets(p1->name); printf("请输入学生的地址:\n"); gets(p1->address); head=NULL; while(p1->num[0]!='0')//当学号是 0 时,退出 { n=n+1; if(n==1) head=p1; else p2->next=p1; p2=p1; p1=(struct Student *)malloc(LEN);//开辟动态存储区,把起始地址付给 p1 printf("请输入学生的学号:\n"); gets(p1->num);//输入其他学生的学号和成绩 printf("请输入学生的姓名:\n"); gets(p1->name); printf("请输入学生的地址:\n"); gets(p1->address); } p2->next=NULL; system("cls"); return(head); } void print_save(struct Student ...