您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 公司方案 > 学生籍贯信息记录簿-C语言课程设计
-1-程序设计课程设计报告课题名称:学生籍贯信息记录簿专业计算机科学与技术(软件工程)学生姓名班级学号指导教师完成日期-2-一课程设计的目的-----------------------------------------------------------1二设计内容与要求-----------------------------------------------------------1三主要技术指标及特点-----------------------------------------------------13.0信息描述(注:用流程图表示)-------------------------------------------------13.1创建信息链表并以磁盘文件保存;--------------------------------------------23.2读取磁盘文件并显示输出所有学生的籍贯信息;--------------------------33.3按学号或姓名查询其籍贯;-----------------------------------------------------53.4按籍贯查询并输出该籍贯的所有学生;--------------------------------------93.5能添加、删除和修改学生的籍贯信息;-------------------------------------113.6显示输出江苏籍和非江苏籍学生的信息并可分别存盘。----------------16四设计小结-------------------------------------------------------------------17五程序源代码----------------------------------------------------------------18六参考文献-------------------------------------------------------------------29-3-一.课程设计的目的1.加深对《C语言程序设计》课程知识的理解,掌握C语言应用程序的开发方法和步骤;2.进一步掌握和利用C语言进行课程设计的能力;3.进一步理解和运用结构化程序设计的思想和方法;4.初步掌握开发一个小型实用系统的基本方法;5.学会调试一个较长的程序的基本方法;6.学会利用流程图或N-S图表示算法;7.掌握书写课程设计开发文档的能力(书写课程报告)。二.设计内容与要求编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。具体功能要求如下:1.创建信息链表并以磁盘文件保存;2.读取磁盘文件并显示输出所有学生的籍贯信息;3.按学号或姓名查询其籍贯;4.按籍贯查询并输出该籍贯的所有学生;5.能添加、删除和修改学生的籍贯信息;6.显示输出江苏籍和非江苏籍学生的信息并可分别存盘。-4-三.主要技术指标及特点3.0信息描述(注:用流程图表示)3.1创建信息链表并以磁盘文件保存;/**********************建立链表******************************/structhj{longnumber;籍贯信息记录簿建立链表录入信息显示信息查询信息编辑信息分类管理主函数添加信息删除信息修改信息-5-charname[10],address[50];structhj*next;};/*********************文件操作函数******************************/FILE*fp;voidopenfile(charxx[20]){fp=fopen(xx,ab+);if(fp==NULL)fp=fopen(xx,wb);}/************************主函数********************************/intmain(intargc,char*argv[]){begin:intt;system(cls);printf(\n★★★★★欢迎使用户籍管理系统★★★★★\n\n\n\n\n);printf(一录入学生籍贯信息\n\n);printf(二查编学生籍贯信息\n\n);printf(三删除学生籍贯信息\n\n);printf(四退出程序\n\n);printf(请您选择:);mm:scanf(%d,&t);switch(t){case1:hjnew();break;case2:hjselect();break;case3:hjde();break;case4:exit(0);default:printf(\n错误的选择,请重新选择:);gotomm;}gotobegin;return0;}-6-3.2读取磁盘文件并显示输出所有学生的籍贯信息;voidallselect(chara[8])//全部查询{intn=0;intk=0;system(cls);printf(\n★★★★★欢迎使用户籍管理系统★★★★★\n);printf(\n★★★籍贯方式信息★★★\n\n\n);structhj*p;structhj*q=NULL,*head=NULL;fp=fopen(a,rb);if(fp==NULL){printf(\n对不起,没有记录无法查询!);gotoxxxx;}rewind(fp);while(!feof(fp)){n++;p=(structhj*)malloc(sizeof(structhj));fread(p,sizeof(structhj),1,fp);if(n==1)head=p;elseq-next=p;q=p;}q-next=NULL;structhj*h1,*p2,*q3,*r4,*s5;-7-h1=p2=(hj*)malloc(sizeof(structhj));p2-next=head;while(p2-next!=NULL){q3=p2-next;r4=p2;while(q3-next!=NULL){if(q3-next-numberp2-next-number)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&&n0){n--;printf(\n学号=%ld姓名=%s,p-number,p-name);printf(\n地址=%s,p-address);p=p-next;}xxxx:printf(\n→显示完毕←\n⑴↑返回上级菜单⑵↓退出程序\n请选择:);xxx:scanf(%d,&n);switch(n){case1:break;case2:exit(0);default:printf(\n错误的选择,请重新选择:);gotoxxx;}}voidhjselect(void)//查询编辑信息函数{cxbegin:inta;system(cls);printf(\n★★★★★欢迎使用户籍管理系统★★★★★\n);printf(\n★★★查询编辑信息★★★\n\n\n);printf(\n一按学号方式查询\n);printf(\n二按姓名方式查询\n);printf(\n三按籍贯方式查询\n);printf(\n四→显示全部信息\n);printf(\n五←返回上级菜单\n);printf(\n请选择查询方式:);-8-cxmm:scanf(%d,&a);switch(a){case1:hjxmselect();gotocxbegin;break;case2:hjxhselect();gotocxbegin;break;case3:hjjgselect();gotocxbegin;break;case4:allselect(hj.txt);gotocxbegin;break;case5:break;default:printf(\n错误的选择,请重新选择:);gotocxmm;}}3.3按学号或姓名查询其籍贯;/*****************************查询函数*************************/voidhjxmselect(void)//按学号方式查询函数{ssmmx:intn=0;longhh;system(cls);printf(\n★★★★★欢迎使用户籍管理系统★★★★★\n);printf(\n★★★查询编辑信息★★★\n);printf(\n〓提示输入0返回上级菜单〓\n\n\n);printf(请您输入学号:);scanf(%ld,&hh);if(hh!=0){structhj*p;structhj*q=NULL,*head=NULL;fp=fopen(hj.txt,rb);if(fp==NULL){-9-printf(\n没有记录,请输入记录然后再查询!);getch();gotojjx;}while(!feof(fp)){n++;p=(structhj*)malloc(sizeof(structhj));fread(p,sizeof(structhj),1,fp);if(n==1)head=p;elseq-next=p;q=p;}q-next=NULL;p=head;while(p!=NULL){if(p-number==hh){inta;printf(\n结果→学号=%ld姓名=%s,p-number,p-name);printf(\n地址=%s,p-address);printf(\n\n操作→⑴更改数据⑵删除数据⑶查询其他数据⑷返回上页⑸退出程序\n\n请您选择操作:);ssmx:scanf(%d,&a);switch(a){voidhjedit(structhj*headd,structhj*pp);voidhjdelete(structhj*headdd,structhj*ss);case1:hjedit(head,p);gotossmmx;break;case2:hjdelete(head,p);gotossmmx;break;case3:gotossmmx;case4:gotojjx;case5:exit(0);default:printf(\n错误的选择,请重新选择:);gotossmx;}}elsep=p-next;}intiiii=0;printf(\n没有此记录1.重新查询2.返回上一页3.退出程序!);printf(\n请选择:);qqqq:scanf(%d,&iiii);switch(iiii){case1:gotossmmx;case2:gotojjx;case3:exit(0);-10-default:printf(\n错误的选择,请重新选择:);gotoqqqq;}gotojjx;}jjx:;}voidhjxhselect(void)//按姓名方式查询函数{ssmm:intn=0;charhh[10];system(cls);printf(\n★★★★★欢迎使用户籍管理系统★★★★★\n);printf(\n★★★查询编辑信息★★★\n);printf(\n〓提示输入0返回上级菜单〓\n\n\n);printf(请您输入姓名:);scanf(%s,hh);if(strcmp(hh,0)!=0){structhj*p;structhj*q=NULL,*head=NULL;fp=fopen(hj.txt,rb);if(fp==NULL){printf(\n没有记录,请输入记录然后再查询!);getch();gotojjj;}while(!feof(fp)){n++;p=(structhj*)malloc(sizeof(structhj))
本文标题:学生籍贯信息记录簿-C语言课程设计
链接地址:https://www.777doc.com/doc-4558321 .html