




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、+64编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。具体功能: (1)创建信息链表并以磁盘文件保存; (2)读取磁盘文件并显示输出所有学生的籍贯信息; (3)按学号或姓名查询其籍贯; (4)按籍贯查询并输出该籍贯的所有学生; (5)能添加、删除和修改学生的籍贯信息;#include "dos.h"#include "stdio.h"#include "stdlib.h"#include "conio.h"#include "math.h"#include "strin
2、g.h" /*建立链表*/struct hj int age; long number; char name10,address50,sex2; struct hj *next;/*文件操作函数*/FILE *fp;void openfile(char xx20) fp=fopen(xx,"ab+"); if(fp=NULL) fp=fopen(xx,"wb");/*录入信息函数*/void hjnew(void) system("cls"); int n=0,xage; long xnumber; char xname10
3、; char xaddress50; char xsex2; struct hj *head; struct hj *x1,*x2; head=NULL; x2=NULL; printf("n 欢迎使用户籍管理系统n"); printf("n 录入信息n"); printf("n 提示输入0返回上级菜单nnn"); printf("n 请输入学号【15字内】:"); scanf("%ld",&xnumber); if(xnumber=0) goto haha; printf("
4、n 请输入姓名【10字内】:"); scanf("%s",xname); printf("n 请输入年龄【|-_-|】:"); scanf("%d",&xage); printf("n 请输入性别【男OR女】:"); scanf("%s",xsex); printf("n 请输入籍贯【25字内】:"); scanf("%s",xaddress); while(xnumber!=0) n+; x1=(struct hj *)malloc(s
5、izeof(struct hj); x1->number=xnumber; strcpy(x1->name,xname); strcpy(x1->sex,xsex); x1->age=xage; strcpy(x1->address,xaddress); if(n=1) head=x1; else x2->next=x1; x2=x1; printf("n 请输入学号【15字内】:"); scanf("%ld",&xnumber); if(xnumber=0) break; printf("n 请输入
6、姓名【10字内】:"); scanf("%s",xname); printf("n 请输入年龄【|-_-|】:"); scanf("%d",&xage); printf("n 请输入性别【男OR女】:"); scanf("%s",xsex); printf("n 请输入籍贯【25字内】:"); scanf("%s",xaddress); x2->next=NULL; x1=head; while(x1!=NULL) openfile
7、("hj.txt"); char d5="四川" fwrite(x1,sizeof(struct hj),1,fp); fclose(fp); if(strstr(x1->address,d)!=NULL) openfile("schj.txt"); fwrite(x1,sizeof(struct hj),1,fp); fclose(fp); else openfile("qthj.txt"); fwrite(x1,sizeof(struct hj),1,fp); fclose(fp); x1=x1->
8、next; haha:;/*查询函数*/void hjxmselect(void) /按学号方式查询函数ssmmx: int n=0; long hh; system("cls"); printf("n 欢迎使用户籍管理系统n"); printf("n 查询编辑信息n"); printf("n 提示输入0返回上级菜单nnn"); printf(" 请您输入学号:"); scanf("%ld",&hh); if(hh!=0) struct hj *p; struct h
9、j *q=NULL,*head=NULL; fp=fopen("hj.txt","rb"); if(fp=NULL) printf("n没有记录,请输入记录然后再查询!"); getch(); goto jjx; while(!feof(fp) n+; p=(struct hj *)malloc(sizeof(struct hj); fread(p,sizeof(struct hj),1,fp); if(n=1) head=p; else q->next=p; q=p; q->next=NULL; p=head; whil
10、e(p!=NULL) if(p->number=hh) int a; printf("n 结 果 学号=%ld 姓名=%s 年龄=%d 性别=%s ",p->number,p->name,p->age,p->sex); printf("n 地址=%s",p->address); printf("nn 操 作 更改数据 删除数据 查询其他数据 返回上页 退出程序nn 请您选择操作:");ssmx: scanf("%d",&a); switch(a) void hjedit(
11、struct hj *headd,struct hj *pp); void hjdelete(struct hj *headdd,struct hj *ss); case 1: hjedit(head,p); goto ssmmx;break; case 2: hjdelete(head,p); goto ssmmx;break; case 3: goto ssmmx; case 4: goto jjx; case 5:exit(0); default:printf("n 错误的选择,请重新选择:"); goto ssmx; else p=p->next; int i
12、iii=0; printf("n 没有此记录 1.重新查询 2.返回上一页 3.退出程序!"); printf("n 请选择:");qqqq: scanf("%d",&iiii); switch(iiii) case 1: goto ssmmx; case 2: goto jjx; case 3: exit(0); default: printf("n 错误的选择,请重新选择:"); goto qqqq; goto jjx; jjx:;void hjxhselect(void)/按姓名方式查询函数ssmm:
13、 int n=0; char hh10; system("cls"); printf("n 欢迎使用户籍管理系统n"); printf("n 查询编辑信息n"); printf("n 提示输入0返回上级菜单nnn"); printf(" 请您输入姓名:"); scanf("%s",hh); if(strcmp(hh,"0")!=0) struct hj *p; struct hj *q=NULL,*head=NULL; fp=fopen("hj.
14、txt","rb"); if(fp=NULL) printf("n没有记录,请输入记录然后再查询!"); getch(); goto jjj; while(!feof(fp) n+; p=(struct hj *)malloc(sizeof(struct hj); fread(p,sizeof(struct hj),1,fp); if(n=1) head=p; else q->next=p; q=p; q->next=NULL; p=head; while(p!=NULL) if(strcmp(p->name,hh)=0) i
15、nt a; printf("n 结 果 学号=%ld 姓名=%s 年龄=%d 性别=%s ",p->number,p->name,p->age,p->sex); printf("n 地址=%s",p->address); printf("nn 操 作 更改数据 删除数据 查询其他数据 返回上页 退出程序nn 请您选择操作:");ssm: scanf("%d",&a); switch(a) void hjedit(struct hj *headd,struct hj *pp);
16、void hjdelete(struct hj *headdd,struct hj *ss); case 1: hjedit(head,p); goto ssmm;break; case 2: hjdelete(head,p); goto ssmm;break; case 3: goto ssmm; case 4: goto jjj; case 5:exit(0); default:printf("n 错误的选择,请重新选择:"); goto ssm; else p=p->next; int iii=0; printf("n 没有此记录 1.重新查询 2.返
17、回上一页 3.退出程序!"); printf("n 请选择:");qqq: scanf("%d",&iii); switch(iii) case 1: goto ssmm; case 2: goto jjj; case 3: exit(0); default: printf("n 错误的选择,请重新选择:"); goto qqq; goto jjj; jjj: ;void hjjgselect(void)/按籍贯方式查询yyy: int i; system("cls"); printf("
18、;n 欢迎使用户籍管理系统n"); printf("n 籍贯方式查询信息nnn"); printf("n 一 显示所有信息n"); printf("n 二 显示四川籍所有信息n"); printf("n 三 显示其它籍所有信息n"); printf("n 四 自定义查询信息n"); printf("n 五 返回上级菜单n"); printf("n 六 退出程序n"); printf("nn 请选择:"); scanf(&quo
19、t;%d",&i); switch(i) void zdyselect(void); void allselect(char a8); case 1:allselect("hj.txt"); goto yyy;break; case 2: allselect("schj.txt"); goto yyy;break; case 3: allselect("qthj.txt"); goto yyy;break; case 4: zdyselect(); case 5: break; case 6: exit(0); vo
20、id zdyselect(void) ssmmz: int n=0,j=0; char hh10; system("cls"); printf("n 欢迎使用户籍管理系统n"); printf("n 自定义查询信息nnn"); printf(" 请您输入地址关键字:"); scanf("%s",hh); if(strcmp(hh,"0")!=0) struct hj *p; struct hj *q=NULL,*head=NULL; fp=fopen("hj.txt
21、","rb"); if(fp=NULL) printf("n 没有记录,请输入记录然后再查询!"); getch(); goto jjz; while(!feof(fp) n+; p=(struct hj *)malloc(sizeof(struct hj); fread(p,sizeof(struct hj),1,fp); if(n=1) head=p; else q->next=p; q=p; q->next=NULL; p=head; while(p!=NULL) if(strstr(p->address,hh)!=NU
22、LL) int a; j+; printf("n 结 果 学号=%ld 姓名=%s 年龄=%d 性别=%s ",p->number,p->name,p->age,p->sex); printf("n 地址=%s",p->address); printf("nn 操 作 更改数据 删除数据 查询下一条数据 返回上页 退出程序nn 请您选择操作:");ssmz: scanf("%d",&a); switch(a) void hjedit(struct hj *headd,struc
23、t hj *pp); void hjdelete(struct hj *headdd,struct hj *ss); case 1: hjedit(head,p); goto ssmmz;break; case 2: hjdelete(head,p); goto ssmmz;break; case 3: p=p->next;continue; case 4: goto jjz; case 5:exit(0); default:printf("n 错误的选择,请重新选择:"); goto ssmz; p=p->next; else p=p->next; if
24、(j=0) printf("nnn没有匹配的记录 按任意键继续!"); getch(); fclose(fp); goto ssmmz; else int xx; printf("nn查询完毕! 继续查询 返回上一级菜单 退出程序"); printf("n请选择:"); scanf("%d",&xx); if(xx=2) goto jjz; else if(xx=3) exit(0); goto ssmmz;jjz: ; void allselect(char a8)/全部查询 int n=0; int k
25、=0; system("cls"); printf("n 欢迎使用户籍管理系统n"); printf("n 籍贯方式信息nnn"); struct hj *p; struct hj *q=NULL,*head=NULL; fp=fopen(a,"rb"); if(fp=NULL) printf("n对不起,没有记录无法查询!"); goto xxxx; rewind(fp); while(!feof(fp) n+; p=(struct hj *)malloc(sizeof(struct hj);
26、 fread(p,sizeof(struct hj),1,fp); if(n=1) head=p; else q->next=p; q=p; q->next=NULL; struct hj *h1,*p2,*q3,*r4,*s5; h1=p2=(hj *)malloc(sizeof(struct hj); p2->next=head; while(p2->next!=NULL) q3=p2->next; r4=p2; while(q3->next!=NULL) if(q3->next->number<p2->next->numb
27、er) r4=q3; q3=q3->next; if(r4!=p2) s5=r4->next; r4->next=s5->next; s5->next=p2->next; p2->next=s5; p2=p2->next; head=h1->next->next; free(h1); p=head; while(p!=NULL&&n>0) n-; printf("n学号=%ld 姓名=%s 年龄=%d 性别=%s ",p->number,p->name,p->age,p-&g
28、t;sex); printf("n地址=%s",p->address); p=p->next; xxxx: printf("n显示完毕n 返回上级菜单 退出程序 n请 选 择 :");xxx: scanf("%d",&n); switch(n) case 1:break; case 2:exit(0); default:printf("n错误的选择,请重新选择:"); goto xxx; void hjselect(void)/查询编辑信息函数 cxbegin: int a; system(&q
29、uot;cls"); printf("n 欢迎使用户籍管理系统n"); printf("n 查询编辑信息nnn"); printf("n 一 按学号方式查询n"); printf("n 二 按姓名方式查询n"); printf("n 三 按籍贯方式查询n"); printf("n 四 显示全部信息n"); printf("n 五 返回上级菜单n"); printf("n 请 选 择 查 询 方 式:");cxmm: scanf
30、("%d",&a); switch(a) case 1: hjxmselect();goto cxbegin;break; case 2: hjxhselect();goto cxbegin;break; case 3: hjjgselect();goto cxbegin;break; case 4: allselect("hj.txt");goto cxbegin;break; case 5: break; default:printf("n错误的选择,请重新选择:"); goto cxmm; void hjde(void)
31、/删除界面函数cxxbegin: int a; system("cls"); printf("n 欢迎使用户籍管理系统n"); printf("n 删除信息nnn"); printf("n 一 按学号方式删除n"); printf("n 二 按姓名方式删除n"); printf("n 三 按籍贯方式删除n"); printf("n 四 删除全部信息n"); printf("n 五 返回上级菜单n"); printf("n 请
32、选 择 删 除 方 式:");cxxmm: scanf("%d",&a); int i=0; switch(a) case 1: hjxmselect();goto cxxbegin;break; case 2: hjxhselect();goto cxxbegin;break; case 3: zdyselect();goto cxxbegin;break; case 4: fp=fopen("hj.txt","wb"); if(fp!=NULL) i+; fp=fopen("schj.txt"
33、,"wb"); if(fp!=NULL) i+; fp=fopen("qthj.txt","wb"); if(fp!=NULL) i+; if(i=3) printf("n 全部数据已经删除!敲任意键继续"); getch(); goto cxxbegin;break; case 5: break; default:printf("n错误的选择,请重新选择:"); goto cxxmm; /=删除函数接口=void hjdelete(struct hj *headdd,struct hj *ss
34、) struct hj *q; char d5="四川" if(headdd=ss) headdd=headdd->next; goto gogo; q=headdd; while(q!=NULL) if(q->next->number=ss->number) break; q=q->next; q->next=ss->next;gogo: q=headdd; fp=fopen("hj.txt","wb"); while(q!=NULL) fwrite(q,sizeof(struct hj),
35、1,fp); q=q->next; fclose(fp); q=headdd; fp=fopen("schj.txt","wb"); while(q!=NULL) if(strstr(q->address,d)!=NULL) fwrite(q,sizeof(struct hj),1,fp); q=q->next; fclose(fp); q=headdd; fp=fopen("qthj.txt","wb"); while(q!=NULL) if(strstr(q->address,d)=NULL) fwrite(q,sizeof(struct hj),1,fp); q=q->next; fclose(fp);/=编辑函数接口=void hjedit(struct hj *headd,struct hj *pp) int n=0; struct hj *p,*p1,*p2; char d5="四川" printf("n 输 入 学号="); scanf("%ld",&pp->number); printf("
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年江苏吴中经济技术发展集团有限公司招聘笔试参考题库附带答案详解
- 独特视角的税务师考试试题及答案
- 春考语文试题及答案解析
- 梳理2025年公共营养师考试难点试题及答案
- 深入刻画西医临床重难点试题及答案
- 2024年图书管理员行业规范试题及答案
- 教师资格笔试的文化意识与自我认知试题及答案
- 2025年公共卫生执业医师考试复习习惯试题及答案
- 心理咨询师考试伦理规范试题及答案
- 生活监督面试题及答案
- 2025年4月自考13887经济学原理中级押题及答案
- 公司事故隐患内部报告奖励制度
- 大学生创新创业基础(创新创业课程)完整全套教学课件
- 创业思维-创造你喜爱的人生智慧树知到期末考试答案章节答案2024年浙江旅游职业学院
- 人教版初中阶段语文古诗词理解性背诵默写汇编
- 内蒙古高中毕业生学籍表毕业生登记表学年评语表成绩单身体健康检查表完整版高中档案文件
- 光电效应和普朗克常数测定实验数据表格
- 重力式桥台计算程序表格
- (完整word版)清表施工方案
- 污水池防腐施工方案改
- 公务用车派车单、车辆维修保养申请单(修订版)
评论
0/150
提交评论