学生信息管理系统程序.doc
《学生信息管理系统程序.doc》由会员分享,可在线阅读,更多相关《学生信息管理系统程序.doc(23页珍藏版)》请在课桌文档上搜索。
1、wordC语言上机实践报告专业:冶金工程班 级:姓 名:学 号:1、 题目学生信息管理系统设计l 学生信息包括:学号,某某,年龄,性别,出生年月,地址, ,等。l 试设计一学生信息管理系统,使之能提供以下功能:a) 系统以菜单方式工作b) 学生信息录入功能学生信息用文件保存-输入c) 学生信息浏览功能-输出d) 查询、排序功能-算法(1) 按学号查询(2) 按某某查询e) 学生信息的删除与修改可选项1、 系统功能模块结构图2、 数据结构设计与用法说明#includestdio.h#includestdlib.h#includestring.h/*定义结构体用作创建链表*/typedef str
2、uct z1char no11; /学生学号char name15; /学生某某int age; /学生年龄char sex; /学生性别 char birthday8; /学生出生年月char address20; /学生住址char tel12; /学生联系 char e_mail20; /学生struct z1 *next; /指向下一链表STUDENT;/*声明用户自定义函数*/STUDENT *init();STUDENT *create();STUDENT *del(STUDENT *h);STUDENT *insert(STUDENT *h);STUDENT *revise(ST
3、UDENT *h);void print(STUDENT *h);void search1(STUDENT *h);void search2(STUDENT *h);void save(STUDENT *h);int menu_select();void inputs(char *prompt,char *s,int count);/*主函数,用于选择功能*/void main()STUDENT *head;head=init(); /初始化链表表头for(;)switch(menu_select()case 0:head=init();break; /初始化case 1:head=creat
4、e();break; /创建列表case 2:head=insert(head);break; /插入节点case 3:save(head);break; /以文件形式保存case 4:print(head);break; /显示case 5:search1(head);break; /搜索学号case 6:search2(head);break; /搜索某某case 7:head=del(head);break; /删除case 8:head=revise(head);break; /修改case 9:exit(0); /退出程序/*目录选择函数,返回用户输入的数字*/int menu_se
5、lect()char *menu=*菜单*, 0. 初始化链表, 1. 输入学生信息, 2. 插入学生信息, 3. 保存学生信息, 4. 显示学生信息, 5. 按学号查找学生信息, 6. 按某某查找学生信息, 7. 删除指定学号的学生信息, 8. 修改指定学号的学生信息, 9. 退出系统;int c,i;for(i=0;i=11;i+)printf( %sn,menui);doprintf(n请选择09中的某一个选项:n);scanf(%d,&c);while(c10);return c;/*初始化函数,作用是返回空指针初始化链表*/STUDENT *init()return NULL;/*创
6、建函数,输入学生信息*/STUDENT *create()STUDENT *h=NULL,*info;for(;)info=(STUDENT *)malloc(sizeof(STUDENT); if(!info) printf(n内存不足); return NULL; inputs(输入学号:,info-no,11); if(info-no0=)break;inputs(输入某某:,info-name,15);printf(输入年龄:);scanf(%d,&info-age);printf(输入性别编号(0.男 1.女):);scanf(%s,&info-sex);printf(输入出生年月(
7、XXXX/XX):);scanf(%s,info-birthday);inputs(输入地址:,info-address,20);inputs(输入 :,info-tel,12);inputs(输入:,info-e_mail,20);info-next=h;h=info;return h;/*输入函数,用于判断输入的字符是否超出程序定义防止数据溢出*/void inputs(char *prompt,char *s,int count) char p255; do printf(prompt); scanf(%s,p); if(strlen(p)count) printf(n太长了!n); w
8、hile(strlen(p)count); strcpy(s,p);/*插入函数,插入学生成绩*/STUDENT *insert(STUDENT *h)STUDENT *p,*q,*info;char s11;printf(请输入插入点的学生学号n);scanf(%s,s);printf(n请输入新的学生信息n);info=(STUDENT *)malloc(sizeof(STUDENT);inputs(输入学号:,info-no,11); inputs(输入某某:,info-name,15);printf(输入年龄:);scanf(%d,&info-age);printf(输入性别编号(0.
9、男 1.女):);scanf(%s,&info-sex);printf(输入出生年月(XXXX/XX):);scanf(%s,info-birthday);inputs(输入地址:,info-address,20);inputs(输入 :,info-tel,12);inputs(输入:,info-e_mail,20);info-next=NULL;p=h;q=h; while(strcmp(p-no,s)&p!=NULL) q=p;p=p-next;if(p=NULL)if(p=h)h=info;elseq-next=info;else if(p=h)info-next=p;h=info;el
10、seinfo-next=p;q-next=info; printf(n已经插入了%s这个学生n,info-name); return(h);/*保存函数,以文件的形式保存学生信息*/void save(STUDENT *h)FILE *fp;STUDENT *p;char outfile50;printf(请输入保存文件的文件名,例如 c:f1te.txt:n);scanf(%s,outfile); if(fp=fopen(outfile,wb)=NULL) printf(不能打开文件n); exit(1); printf(n正在保存.n); p=h; while(p!=NULL) fwrit
11、e(p,sizeof(STUDENT),1,fp); p=p-next; fclose(fp); printf(-保存成功!-n);/*显示函数,显示学生信息*/void print(STUDENT *h)int i=0;STUDENT *p;p=h; printf(nnn*学生*n); printf(|学号 | 某某 |年龄|性别|出生年月| 地址 | | |n);printf(|-|-|-|-|-|-|-|-|n); while(p!=NULL) i+; printf(|%-8s|%-8s|%4d|%4c|%8s|%14s|%11s|%13s|n,p-no,p-name,p-age,p-s
12、ex,p-birthday,p-address,p-tel,p-e_mail); p=p-next; printf(*end*n);/*搜索函数,按学号搜索学生信息并显示*/void search1(STUDENT *h)STUDENT *p;char s11; printf(请输入你要查找的同学的学号n); scanf(%s,s); p=h; while(strcmp(p-no,s)&p!=NULL) p=p-next; if(p=NULL) printf(n没有学号为%s的学生n,s); else printf(nnn*找到了*n); printf(|学号 | 某某 |年龄|性别|出生年月
13、| 地址 | | |n); printf(|-|-|-|-|-|-|-|-|n); printf(|%-8s|%-8s|%4d|%4c|%8s|%14s|%11s|%13s|n,p-no,p-name,p-age,p-sex,p-birthday,p-address,p-tel,p-e_mail); printf(*end*n); /*搜索函数,按某某搜索学生信息并显示*/void search2(STUDENT *h)STUDENT *p;char s15; printf(请输入你要查找的同学的某某n); scanf(%s,s); p=h; while(strcmp(p-name,s)&p!
14、=NULL) p=p-next; if(p=NULL) printf(n没有某某为%s的学生n,s); else printf(nnn*找到了*n); printf(|学号 | 某某 |年龄|性别|出生年月| 地址 | | |n); printf(|-|-|-|-|-|-|-|-|n); printf(|%-8s|%-8s|%4d|%4c|%8s|%14s|%11s|%13s|n,p-no,p-name,p-age,p-sex,p-birthday,p-address,p-tel,p-e_mail); printf(*end*n); /*删除函数,删除指定学号的学生信息*/STUDENT *d
15、el(STUDENT *h) STUDENT *p,*q; char s11; printf(请输入要删除的学生的学号n); scanf(%s,s); q=p=h; while(strcmp(p-no,s)&p!=NULL) q=p; p=p-next; if(p=NULL) printf(n链表中没有学号为%s的学生n,s); else printf(nnn*找到了*n); printf(|学号 | 某某 |年龄|性别|出生年月| 地址 | | |n); printf(|-|-|-|-|-|-|-|-|n); printf(|%-8s|%-8s|%4d|%4c|%8s|%14s|%11s|%
16、13s|n,p-no,p-name,p-age,p-sex,p-birthday,p-address,p-tel,p-e_mail); printf(*end*n); printf(请按任意键删除n); getchar(); if(p=h)h=p-next;elseq-next=p-next;free(p); printf(n已经删除学号为%s的学生n,s); return h;/*修改函数,修改指定学号的学生信息*/STUDENT *revise(STUDENT *h)STUDENT *p,*q;char s11;printf(请输入您希望修改的学生学号n);scanf(%s,s);prin
![学生信息管理系统程序.doc_第1页](https://www.desk33.com/fileroot1/2022-6/23/1387f60c-fe10-48ff-be6c-3f8fd6c54466/1387f60c-fe10-48ff-be6c-3f8fd6c544661.gif)
![学生信息管理系统程序.doc_第2页](https://www.desk33.com/fileroot1/2022-6/23/1387f60c-fe10-48ff-be6c-3f8fd6c54466/1387f60c-fe10-48ff-be6c-3f8fd6c544662.gif)
![学生信息管理系统程序.doc_第3页](https://www.desk33.com/fileroot1/2022-6/23/1387f60c-fe10-48ff-be6c-3f8fd6c54466/1387f60c-fe10-48ff-be6c-3f8fd6c544663.gif)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 学生 信息管理 系统 程序
![提示](https://www.desk33.com/images/bang_tan.gif)
链接地址:https://www.desk33.com/p-9962.html