1、 面向过程课程设计面向过程课程设计 学生籍贯信息记录簿学生籍贯信息记录簿软件 院(系)别 班 级 学 号 100819208 姓 名 指导教师 时 间 2011-8-292011-9-2 课课 程程 设设 计计 任任 务务 书书 题题 目目 学生籍贯信息记录簿 系系 ( (部部) ) 专专 业业 班班 级级 学生姓名学生姓名 学学 号号 8 8 月月 2929 日至日至 9 9 月月 2 2 日日 共共 1 1 周周 指导教师指导教师( (签字签字) ) 系系 主主 任任( (签字签字) ) 年年 月月 日日 一、一、设计内容及要求设计内容及要求 编制一个学生籍贯信息记录簿,每个学生信息包括:
2、学号、姓名、 籍贯。 具体功能: (1)创建信息链表并以磁盘文件保存; (2)读取磁盘文件并显示输出所有学生的籍贯信息; (3)按学号或姓名查询其籍贯; (4)按籍贯查询并输出该籍贯的所有学生; (5)能添加、删除和修改学生的籍贯信息; (6)显示输出四川籍和非四川籍学生的信息并可分别存盘。 二、二、设计原始资料设计原始资料 1 1、链表基础知识、链表基础知识 2 2、文件处理基础知识、文件处理基础知识 三、设计完成后提交的文件和图表三、设计完成后提交的文件和图表 1 1计算说明书部分计算说明书部分 数据库设计分析数据库设计分析 #include #include #include #defi
3、ne LEN sizeof(struct Student) struct Student char num21; char name256; char address562; 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(“请依次输入学生的信息,输入学号为零
4、时退出。n“); printf(“请输入学生的学号:n“); gets(p1-num); printf(“请输入学生的姓名:n“); gets(p1-name); printf(“请输入学生的地址:n“); gets(p1-address); head=NULL; while(p1-num0!=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);/
5、输入其他学生的学号和成绩 printf(“请输入学生的姓名:n“); gets(p1-name); printf(“请输入学生的地址:n“); gets(p1-address); p2-next=NULL; system(“cls“); return(head); void print_save(struct Student head) FILE *fp; struct Student *p; fp=fopen(“D:stduent.txt“,“ab+“);/打开文件 if(fp=NULL) printf(“文件无法打开n“); exit(0); printf(“n 现在,有 %d 条记录,分别是:n“,n); p= if( puts(p-num); printf(“n 姓名:“); puts(p-name); printf(“n 地址:“); puts(p-address); fseek(