




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳理工大学C语言课程设计题 目 名 称 学生信息管理系统 课 程 名 称 C语言程序课程设计 学 生 姓 名 学 号 系 、专 业 指 导 教 师 目 录2 需求分析22.1 要求32.2任务32.3 运行环境32.4 开发工具33概要设计与详细设计34 具体代码实现541程序代码55.2 课程设计总结211前言 编写一个程序来处理同学个人信息。通过一个结构体数组来存放输入的每一位同学的记录(包括姓名、电话号码、e_mail、地址),然后将其信息存入文件中。输入一个姓名查询该同学的信息,并显示在屏幕上。2 需求分析2.1 要求(1)用C语言实现程序设计;(2)利用结构体进行相关信息处理;(3)画出查询模块的流程图;(4)系统的各个功能模块要求用函数的形式实现;(5)界面友好(良好的人机互交),程序要有注释。2.2任务用C语言编写一个能够管理学生个人信息的管理系统。程序运行时显示菜单,菜单内容包括:(1)录入个人信息:5个学生的个人信息,学生信息可以包括学号、姓名、性别、出生日期、联系电话、邮编和家庭住址等; (2)修改个人信息:用户可以修改个人信息,在输入某同学的编号后,进入修改信息的菜单至少包括: 修改学生姓名 修改学生联系电话(3)查询个人信息:可以按学号查询;(4)浏览所有信息:显示所有同学的信息;(5)删除个人信息:按学生姓名删除记录。(6)退出系统。其中,学生信息可以用二进制文件方式存储。2.3 运行环境(1)windowsXP系统(2)VC+2.0编译环境2.4 开发工具C语言3概要设计与详细设计3、1系统流程图开 始 调用函数struct record调用函数 shuru ()调用函数 chaxun()调用函数 xiugai()调用函数 shanchu()调用函数 xianshi()调用函数 baocun()结 束图3.1 系统流程图4 具体代码实现41程序代码#include stdio.h#include stdlib.h#include string.h# include conio.h# define N sizeof(struct stud) /测结构体变量的大小/typedef struct studchar number20;char name20;char sex20;char call20;char QQ20;char add20;struct stud *next;Elemsn; /为结构体命名/Elemsn *creatlink(void) /创建链表信息/ Elemsn *p1,*p2,*head; /p1为前驱,p2为后继/ int i=1; char choice; head=p2=(Elemsn *)malloc(N); head-next=NULL; choice=y; for(i=1;choice=y|choice=Y;i+) p1=(Elemsn *)malloc(N); printf(*nn); printf(请输入第%d个学生的信息:n,i); printf(学号:); scanf(%s,p1-number); printf(n姓名:); scanf(%s,p1-name); printf(n性别:); scanf(%s,p1-sex); printf(n电话:); scanf(%s,p1-call); printf(nQQ:); scanf(%s,p1-QQ); printf(n宿舍号:); scanf(%s,p1-add); p2-next=p1; p2=p1; printf(n是否继续?(Y/N):); choice=getche(); printf(n); p2-next=NULL; return(head);void savelink(Elemsn *h) /保存链表信息/ Elemsn *p; FILE *fp; char fliename20; printf(n请输入你要保存的文件名:); scanf(%s,fliename); if(fp=fopen(fliename,wt)=NULL) printf(写文件出错,按任意键退出!); getche(); exit(1); for(p=h-next;p!=NULL;p=p-next) fprintf(fp,%s %s %s %s %s %sn,p-number,p-name,p-sex,p-call,p-QQ,p-add); /向文件中写入数据/ printf(文件已成功保存,按任意键返回!); getche(); fclose(fp);Elemsn *readlink(void) /读出已保存文件的信息/ Elemsn *head,*p,*q; FILE *fp; char filename20; printf(n请输入要打开的文件名:); scanf(%s,filename); if(fp=fopen(filename,rt)=NULL) printf(读文件出错,按任意键退出!); getche(); exit(1); head=q=(Elemsn *)malloc(N); head-next=NULL; while(!feof(fp) p=(Elemsn *)malloc(N); /建立新链表,并从文件中读出数据/ fscanf(fp,%s %s %s %s %s %sn,p-number,p-name,p-sex,p-call,p-QQ,p-add); q-next=p; q=p; q-next=NULL; fclose(fp); printf(文件信息已正确读出,按任意键返回!); getch(); return head;Elemsn *insert(Elemsn *head) /插入信息/ Elemsn *p; p=(Elemsn *)malloc(N); printf(n请输入要插入学生的信息:n); printf(n学号:); scanf(%s,p-number); printf(n姓名:); scanf(%s,p-name); printf(n性别:); scanf(%s,p-sex); printf(n电话:); scanf(%s,p-call); printf(nQQ:); scanf(%s,p-QQ); printf(n宿舍号:); scanf(%s,p-add); if(head-next!=NULL) p-next=head-next; /插入数据操作代码/ head-next=p; printf(n学生信息插入成功!按任意键继续!); getche(); return head;Elemsn *delet(Elemsn *p0) /删除信息/ char num20; Elemsn *p; char choice; if(p0-next=NULL) printf(信息出错!按任意键退出!); getch(); exit(1); printf(n请输入要删除学生的学号:); scanf(%s,num); for(p=p0-next;strcmp(p-number,num)!=0;p0=p,p=p-next) ; /找到要删除的学生的信息/ printf(你要删除的信息如下,请确认是否删除:n); printf(n学号:%s 姓名:%s 性别:%s 电话:%s QQ:%s 宿舍号:%snn,p-number,p-name,p-sex,p-call,p-QQ,p-add); printf(n是Y,否N:); /显示要删除的学生的信息/ choice=getche(); if(choice=Y|choice=y) p0-next=p-next; free(p); printf(n文件删除成功!); printf(n按任意键结束!); getche(); return p0;Elemsn *modify(Elemsn *h) /修改信息/ char num20; Elemsn *p; char choice; printf(n请输入要修改学生信息的学号:); scanf(%s,num); for(p=h;strcmp(p-number,num)!=0;p=p-next) ; /找到要删除的学生的信息/ while(1) printf(请输入修改后学生的信息:n); printf(学号:); scanf(%s,p-number); printf(n姓名:); scanf(%s,p-name); printf(n性别:); scanf(%s,p-sex); printf(n电话:); scanf(%s,p-call); printf(nQQ:); scanf(%s,p-QQ); printf(n宿舍号:); scanf(%s,p-add); printf(修改后学生信息如下:n); printf(n学号:%s 姓名:%s 性别:%s 电话:%s QQ:%s 宿舍号:%snn,p-number,p-name,p-sex,p-call,p-QQ,p-add); printf(n确认?是Y否N:); choice=getche(); if(choice=y|choice=Y) break; printf(n修改成功,按任意键继续!); getche(); return h;void find(Elemsn *h) /查询信息/ char num20; Elemsn *p; printf(n请输入你要查找的学生的学号:); scanf(%s,num); for(p=h;strcmp(p-number,num)!=0;p=p-next) ; printf(你查找的学生信息如下:n); printf(n学号:%s 姓名:%s 性别:%s 电话:%s QQ:%s 宿舍号:%snn,p-number,p-name,p-sex,p-call,p-QQ,p-add); printf(按任意键继续!); getche();void print(Elemsn *p) /显示全部信息/ p=p-next; while(p!=NULL) printf(n学号:%s 姓名:%s 性别:%s 电话:%s QQ:%s 宿舍号:%sn,p-number,p-name,p-sex,p-call,p-QQ,p-add); p=p-next; printf(n按任意键继续!); getche();Elemsn *sort(Elemsn *head) Elemsn *q,*t,*p; p=head; t=NULL; while(t!=head-next) p=head; q=p-next; while(q-next!=t) if(strcmp(p-next-number,q-next-number)0) /*前结点和后结点比较大小*/p-next=q-next; q-next=q-next-next; p-next-next=q; p=p-next; q=p-next; t=q; printf(学生信息排序完毕,按任意键继续!);getche();print(head); return(head); /*返回头指针*/ main() int choice=1,i,ok=1; /choice用于选择对数据执行操作,i循环,ok主界面选择/ Elemsn *head,*h; head=NULL; for(i=1;ok!=0;i+) system(cls); printf(n欢迎来到学生信息管理系统主界面!nnn); printf(nnn 1.创建新文件.nnn); printf( 2.读取原文件,并执行相应操作.(原文件名为:jxx); printf(nnn 0.退出;); printf(nnnnn请选择你要执行的操作:); scanf(%d,&ok); if(ok=1) system(cls); head=creatlink(); /创建新链表并保存文件/ savelink(head); if(ok=2) head=readlink(); /进入文件,对已知数据进行操作/ for(i=1;choice!=0;i+) system(cls); printf(*欢迎来到学生信息管理系统*nnn); printf( 1. 添加学生信息; nn); printf( 2. 删除学生信息; nn); printf( 3. 修改学生信息; nn); printf( 4. 查询学生信息; nn); printf( 5. 显示全部信息; nn); printf( 6. 排序全部信息; nn); printf( 0. 退出; nn); printf(请输入你要执行的操作代码:); scanf(%d,&choice); switch(choice) case 1: h=insert(head);savelink(h);break; /执行增,删,改完毕后对新信息进行保存/ case 2: h=delet(head);savelink(h);break; case 3: h=modify(head);savelink(h);bre
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省红河县2025年上半年事业单位公开遴选试题含答案分析
- 云南省富源县2025年上半年事业单位公开遴选试题含答案分析
- 河北省邯郸县2025年上半年公开招聘村务工作者试题含答案分析
- 2025版社保缴纳与职工工资待遇挂钩补充协议
- 2025年点工合同范本:现代服务业合作协议
- 2025年地产项目合作合同:产业园区合作开发协议
- 2025版塔吊租赁及操作人员资质认证合同
- 2025房产中介合同(含房屋装修监理)
- 2025年智能制造系统集成服务合同
- 2025版大型吊车租赁及工程进度跟踪合同
- 2025年四川省成都市高新区事业单位招聘考试综合类面试真题模拟试卷
- 七下期末人教版数学试卷
- 2025年六安市裕安区石婆店镇公开招考村级后备干部8名笔试备考试题及答案解析
- 2025年事业单位考试题库及参考答案
- 公司领导财务知识培训课件
- 2025年农商行农业保险融资担保贷款合同模板
- 2025年全国中小学校党组织书记网络培训示范班在线考试题库及答案
- 子痫患者护理查房
- 2024仁爱科普版八年级英语上册 Unit 1 Healthy Mind and Body(知识梳理与考点训练)解析版
- 2025全国农业(水产)行业职业技能大赛(水生物病害防治员)选拔赛试题库(含答案)
- 八年级下册道德与法治-知识清单
评论
0/150
提交评论