学生籍贯信息记录簿课程设计报告

上传人:bin****86 文档编号:38037897 上传时间:2018-04-26 格式:DOC 页数:18 大小:140.50KB
返回 下载 相关 举报
学生籍贯信息记录簿课程设计报告_第1页
第1页 / 共18页
学生籍贯信息记录簿课程设计报告_第2页
第2页 / 共18页
学生籍贯信息记录簿课程设计报告_第3页
第3页 / 共18页
学生籍贯信息记录簿课程设计报告_第4页
第4页 / 共18页
学生籍贯信息记录簿课程设计报告_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《学生籍贯信息记录簿课程设计报告》由会员分享,可在线阅读,更多相关《学生籍贯信息记录簿课程设计报告(18页珍藏版)》请在金锄头文库上搜索。

1、高级语言课程设计题目: 学生信息记录簿学 院 班 级 姓 名 学 号 成 绩 指导老师 年 月 日目录一、 目的二、 题目要求三、 系统设计四、 程序代码和运行结果五、 编程中遇到的困难及解决方法六、 心得体会七、 参考文献一、目的一、目的1.进一步掌握和利用 C 语言进行程序设计的能力2.进一步了解和运用文件和链表的思想和方法3.初步掌握开发一个小型实用系统的基本方法4.学会调试一个较长程序的基本方法5.掌握书写程序设计开发文档的能力二、题目要求二、题目要求 编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。具体功能:(1) 创建信息链表并以磁盘文件保存;(2) 读取磁盘文件并

2、显示输出所有学生的籍贯信息;(3) 按学号或姓名查询其籍贯;(4) 按籍贯查询并输出该籍贯的所有学生;(5)能添加、删除和修改学生的籍贯信息;(6) 显示输出唐山籍和非唐山籍学生的信息并可分别存盘。三、系统设计三、系统设计1. 设计原始资料设计原始资料(1)链表基础知识(2)文件处理基础知识2. 数据结构数据结构 struct Student char num21; /学生学号 char name256;/学生姓名 char address562;/学生籍贯 struct Student *next; ;声明一个结构体类型 Student 3.模块设计模块设计 (1)creat 函数:添加需要

3、录入的学生信息 (2)name_surch 函数:根据姓名查找学生 (3)num_surch 函数:根据学号查找学生 (4)NativePlace_surch 函数:按籍贯查找学生 (5)modification_shiyan 函数:修改学生信息 (6)showSzechwan_No 函数分别显示唐山和非唐山籍学生并非别存盘 (7)print_save 函数:保存文件信息 (8)fileout 函数:显示文件信息2 程序流程图程序流程图四、程序代码和运行结果四、程序代码和运行结果程序代码程序代码 #include #include #include #define LEN sizeof(str

4、uct 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(“请依次输入学生的信息,输入学号为零时退出。n“); printf(“学号t

5、姓名t 地址n“); scanf(“%s%s%s“,p1-num,p1-name,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);/开辟动态存储区,把起始地址付给 p1printf(“学号t 姓名t 地址n“);scanf(“%s%s%s“,p1-num,p1-name,p1-address); p2-next=NULL;system(“cls“); return(head);

6、void print_save(struct Student head) FILE *fp; struct Student *p;fp=fopen(“D:stduent.txt“,“wb+“);/打开文件 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(fp,0,2); if(fwrite(p,sizeof(struct

7、Student),1,fp)!=1)printf(“文件无法写入n“); p=p-next; while(p!=NULL);fclose(fp);/关闭文件 getchar(); system(“cls“); struct Student *pt;/定义一个 Student 类型的指针 char comp3;/comp 为保存输入的变量 int main()/一个调用这个 creat 函数的 main 函数 c void ShowView();/界面显示 void name_surch();/按姓名查找void num_surch();/按学号查找 void NativePlace_surch

8、();/按籍贯查找 void modification_shiyan();/修改学生信息 void showSzechwan_No();/分别显示唐山和非唐山籍学生并非别存盘 void fileout(struct Student *p);/文件输出 void print_save(struct Student head); while(1) ShowView();if(strnicmp(comp,“1“,3)=0)/strnicmp 比较两个字符串的函数 pt=creat();/函数返回链表第一个结点的地址 else if(strnicmp(comp,“2“,3)=0) print_save

9、(*pt); else if(strnicmp(comp,“3“,3)=0)/输出文件内容 fileout(pt); else if(strnicmp(comp,“4“,3)=0) name_surch(); else if(strnicmp(comp,“5“,3)=0) num_surch(); else if(strnicmp(comp,“8“,3)=0) /modification();modification_shiyan();/修改学生信息 else if(strnicmp(comp,“7“,3)=0) showSzechwan_No(); else if(strnicmp(comp

10、,“6“,3)=0) NativePlace_surch(); else if(strnicmp(comp,“0“,3)=0) break; else printf(“输入错误!n“); getchar(); system(“cls“); return 0; void fileout(struct Student *p) int i; FILE *fp;printf(“现在有%d 条记录,分别是:n“,n); fp=fopen(“D:stduent.txt“,“rb“);/0x00429af0 if(fp=NULL) printf(“文件无法打开n“); exit(0); rewind(fp)

11、; for(i=0;inum); printf(“%6s“,p-name); printf(“%6s“,p-address); puts(“n“); fclose(fp); getchar(); system(“cls“); void ShowView()/主菜单 printf(“*欢迎进入学生籍贯信息记录簿 *n“); printf(“ n“); printf(“*n“);printf(“*1、添加学生信息 *n“); printf(“*2、保存当前信息 *n“); printf(“*3、显示文件中的信息 *n“); printf(“*4、按名字搜索 *n“); printf(“*5、按学号

12、搜索 *n“);printf(“*6、按籍贯搜索 *n“);printf(“*7、分别显示唐山和非唐山籍学生并非别存盘*n“); printf(“*8、修改学生信息 *n“); printf(“*0、退出 *n“); printf(“* *n“);printf(“*请输入您的选择:“); gets(comp);system(“cls“);/清屏void name_surch() FILE *fp; char surch256;printf(“请输入要查询的人的名字:n“); gets(surch); fp=fopen(“D:stduent.txt“,“r“);/0x00429af0 if(fp

13、=NULL) printf(“不能打开文件n“); exit(0); rewind(fp);/指向文件的开始 while(!feof(fp)/查找 Student a; while(!feof(fp) fread(/从 p 指向的文件读入一组数据 if(!strcmp(a.name,surch) printf(“%s,%s,%sn“,a.num,a.name,a.address); break; if(!feof(fp)return; else printf(“查无此人n“); fclose(fp); getchar(); system(“cls“); void num_surch() FILE *fp; char surch256;printf(“请输入要查询的人的学号:“); gets(surch); fp=fopen(“D:stduent.txt“,“rb“);/0x0042aab8 if(fp=NULL) printf(“ERROR“); exit(0); rewind(fp);/指向文件的开始 while(!feof(fp)/查找 Stu

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

当前位置:首页 > 大杂烩/其它

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