欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOC文档下载  

    学生信息管理系统程序.doc

    • 资源ID:9962       资源大小:262.64KB        全文页数:23页
    • 资源格式: DOC        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    学生信息管理系统程序.doc

    wordC语言上机实践报告专业:冶金工程班 级:姓 名:学 号:1、 题目学生信息管理系统设计l 学生信息包括:学号,某某,年龄,性别,出生年月,地址, ,等。l 试设计一学生信息管理系统,使之能提供以下功能:a) 系统以菜单方式工作b) 学生信息录入功能学生信息用文件保存-输入c) 学生信息浏览功能-输出d) 查询、排序功能-算法(1) 按学号查询(2) 按某某查询e) 学生信息的删除与修改可选项1、 系统功能模块结构图2、 数据结构设计与用法说明#include"stdio.h"#include"stdlib.h"#include"string.h"/*定义结构体用作创建链表*/typedef struct 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(STUDENT *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=create();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_select()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(c<0|c>10);return c;/*初始化函数,作用是返回空指针初始化链表*/STUDENT *init()return NULL;/*创建函数,输入学生信息*/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("输入出生年月(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"); while(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.男 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;elseinfo->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) fwrite(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->sex,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("|学号 | 某某 |年龄|性别|出生年月| 地址 | | |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!=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 *del(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|%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);printf("n 请输入新的学生信息n");p=h;q=h;while(strcmp(p->no,s)&&p!=NULL)q=p;p=p->next;inputs("输入学号:",p->no,11); inputs("输入某某:",p->name,15);printf("输入年龄:");scanf("%d",&p->age);printf("输入性别编号(0.男 1.女):");scanf("%s",&p->sex);printf("输入出生年月(XXXX/XX):");scanf("%s",p->birthday);inputs("输入地址:",p->address,20);inputs("输入 :",p->tel,12);inputs("输入:",p->e_mail,20);return (h);3、 程序结构search2()函数流程图4、 各模块的功能1) 主函数:循环进展目录选择2) 目录选择函数:输出目录,将用户输入的选择项返回给主函数3) 初始化函数:返回空指针,对链表指针进展初始化4) 创建函数:建立链表,输入学生信息5) 输入函数:判断输入的字符是否超出数组定义防止数据溢出6) 插入函数:在指定学号后建立新的结点插入新的学生信息7) 保存函数:将链表中的信息以二进制文件的形式保存8) 显示函数:以表格形式显示学生信息9) 搜索函数1:按学号搜索学生信息并显示10) 搜索函数2:按某某搜索学生信息并显示11) 删除函数:删除指定学号的学生信息12) 修改函数:修改指定学号的学生信息5、 试验结果1) 初始界面2) 输入学生信息3) 显示学生信息4) 插入学生信息5) 删除学生信息6) 修改学生信息7) 按学号查找学生信息8) 按某某查找学生信息9) 保存学生信息10) 初始化链表11) 退出系统6、 设计中涉与的知识点l 变量的定义、初始化和使用l 结构体的定义、初始化和使用l 数组的定义、初始化和使用l 函数的定义、声明和使用l 链表的创建、初始化、修改、删除和使用l 文件的创建和使用l 指针的使用l for循环、do while 循环、while 循环和 switch 语句的使用l if语句的使用7、 体会这是我第一次编写具有菜单功能的C程,所以参考了学生成绩管理系统的源程序。我先把程序从头到尾阅读完,弄清楚每一行程序的目的是什么,自己在编写时需不需要进展修改、删除或者优化。将程序阅读完以后,我开始编写自己的学生信息管理系统。尽管有类似的程序作为参考,但我仍然发现有很多地方需要我自己进展修改、衔接。我差不多花了一个下午的时间进展编写,然后开始调试,从最初的98个error调整到能够正常link,然后再对程序中无法按照我设计思路正常运行的局部一步一步进展调试。这又差不多花掉了我一个下午的时间。程序编写完成之后,我开始着手写实践报告。对于一个有着三百多行的程序,画程序图花费了我两天的时间。终于到此刻,我的C语言时间报告即将完成。在途中,我经历过很多挫折,也考虑过放弃,但我庆幸我最终坚持下来了,因为此时我所体会到的成就感是对我这些日子不断努力的最大的回报。我是一个信奉完美主义的人,要么不做要么就要做到自己能够做到的最好。对于我来说,我喜欢我能够把一件事情完整地做出成果来。通过这次的编程,我顺带复习了上学期所学的C语言,为9月份的计算机2级考试也作好了准备;更重要的是,我找出了自己在C语言上的薄弱环节,为我接下来的学习指明了方向。8、 参考文献l C语言程序设计第2版人民邮电 姚琳 屈微 著l C语言程序设计上机指导与习题第2版 人民邮电 姚琳 屈微 黄晓璐 著9、 附录:程序清单#include"stdio.h"#include"stdlib.h"#include"string.h"typedef struct z1 char 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(STUDENT *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=create();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_select()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(c<0|c>10);return c;STUDENT *init()return NULL;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("输入出生年月(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"); while(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.男 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;elseinfo->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) fwrite(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->sex,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("|学号 | 某某 |年龄|性别|出生年月| 地址 | | |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!=NULL) p=p->next; if(p=NULL) printf("'n没有某某为%s的学生n",s); else printf("nnn*找到了*n"); printf("|学号 | 某某 |年龄|性别|出生年月| 地址 | | |n"); printf("|-|-

    注意事项

    本文(学生信息管理系统程序.doc)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开