学生籍贯信息记录簿 C语言课程设计(23页).doc
《学生籍贯信息记录簿 C语言课程设计(23页).doc》由会员分享,可在线阅读,更多相关《学生籍贯信息记录簿 C语言课程设计(23页).doc(23页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-学生籍贯信息记录簿 C语言课程设计程序设计课程设计报告课题名称: 学生籍贯信息记录簿专业 计算机科学与技术(软件工程)学生姓名 班级学号指导教师完成日期一 课程设计的目的-1二 设计内容与要求-1三 主要技术指标及特点-13.0 信息描述(注:用流程图表示)-13.1 创建信息链表并以磁盘文件保存;-23.2 读取磁盘文件并显示输出所有学生的籍贯信息;-33.3 按学号或姓名查询其籍贯;-53.4 按籍贯查询并输出该籍贯的所有学生;-93.5 能添加、删除和修改学生的籍贯信息;-113.6 显示输出江苏籍和非江苏籍学生的信息并可分别存盘。-16四 设计小结-17五 程序源代码-18六 参考文
2、献-29一 课程设计的目的1. 加深对C语言程序设计课程知识的理解,掌握C语言应用程序的开发方法和步骤; 2. 进一步掌握和利用C语言进行课程设计的能力;3. 进一步理解和运用结构化程序设计的思想和方法;4. 初步掌握开发一个小型实用系统的基本方法;5. 学会调试一个较长的程序的基本方法;6. 学会利用流程图或N-S图表示算法;7. 掌握书写课程设计开发文档的能力(书写课程报告)。二设计内容与要求 编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。具体功能要求如下: 1创建信息链表并以磁盘文件保存;2读取磁盘文件并显示输出所有学生的籍贯信息;3按学号或姓名查询其籍贯;4按籍贯查询
3、并输出该籍贯的所有学生;5能添加、删除和修改学生的籍贯信息;6显示输出江苏籍和非江苏籍学生的信息并可分别存盘。 3.0 信息描述 (注:用流程图表示)籍贯信息记录簿建立链表录入信息显示信息查询信息编辑信息分类管理主函数添加信息删除信息修改信息3.1 创建信息链表并以磁盘文件保存;/*建立链表*/struct hj long number; char name10,address50; struct hj *next;/*文件操作函数*/FILE *fp;void openfile(char xx20) fp=fopen(xx,ab+); if(fp=NULL) fp=fopen(xx,wb);
4、/*主函数*/int main(int argc, char* argv)begin: int t; system(cls); printf(n 欢迎使用户籍管理系统nnnnn); printf( 一 录入学生籍贯信息nn); printf( 二 查编学生籍贯信息nn); printf( 三 删除学生籍贯信息nn); printf( 四 退出程序nn); printf( 请您选择:);mm: scanf(%d,&t); switch(t) case 1: hjnew();break; case 2: hjselect();break; case 3: hjde();break; case 4:
5、exit(0); default:printf(n 错误的选择,请重新选择:); goto mm; goto begin; return 0;3.2 读取磁盘文件并显示输出所有学生的籍贯信息;void allselect(char a8)/全部查询 int n=0;int k=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 x
6、xxx; rewind(fp); 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; 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!=NUL
7、L) if(q3-next-numbernext-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请 选
8、择 :);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(cls); printf(n 欢迎使用户籍管理系统n); printf(n 查询编辑信息nnn); printf(n 一 按学号方式查询n); printf(n 二 按姓名方式查询n); printf(n 三 按籍贯方式查询n); printf(n 四 显示全部信息n); printf(n
9、 五 返回上级菜单n); printf(n 请 选 择 查 询 方 式:);cxmm: scanf(%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;3.3 按学号
10、或姓名查询其籍贯;/*查询函数*/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 hj *q=NULL,*head=NULL; fp=fopen(hj.txt,rb); if(fp=NULL) printf(n没有记录,请输入记录然后再查询!
11、); 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; while(p!=NULL) if(p-number=hh) int a; printf(n 结 果 学号=%ld 姓名=%s,p-number,p-name); printf(n 地址=%s,p-address); printf(nn 操 作 更改数据
12、 删除数据 查询其他数据 返回上页 退出程序nn 请您选择操作:);ssmx: scanf(%d,&a); switch(a) void hjedit(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); def
13、ault:printf(n 错误的选择,请重新选择:); goto ssmx; else p=p-next; int iiii=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)/按姓名方式查询
14、函数ssmm: 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.txt,rb); if(fp=NULL) printf(n没有记录,请输入记录然后再查询!); getch(); goto jjj; while(!feof(fp)
15、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) int a; printf(n 结 果 学号=%ld 姓名=%s ,p-number,p-name); printf(n 地址=%s,p-address); printf(nn 操 作 更改数据 删除数据 查询其他数据 返回上页 退出程序nn 请您选择
16、操作:);ssm: scanf(%d,&a); switch(a) void hjedit(struct hj *headd,struct hj *pp); 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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生籍贯信息记录簿 C语言课程设计23页 学生 籍贯 信息 记录簿 语言 课程设计 23
限制150内