C语言_学生信息管理系统实验报告_第1页
C语言_学生信息管理系统实验报告_第2页
C语言_学生信息管理系统实验报告_第3页
C语言_学生信息管理系统实验报告_第4页
C语言_学生信息管理系统实验报告_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学生管理系统实验报告实验目的上学期学习了C语言的内容,学生信息管理系统有助于对C语言的学习的进一步巩固,在本系统可以增强对指针、数组、文件、函数等基本知识的进一步理解。另外学生管理系统也是学校常用的基本系统之一,它有助于学校对学生的基本管理。问题分析学生信息管理系统是对学生信息的基本管理,它包括:学生信息的输入、学生信息的修改、学生信息的查询、学生信息的删除、学生成绩的排序、学生信息的输出。使用模块化编程的方法每项功能有一个函数来完成,对应如下:学生信息的输入=void jia(Link i) 学生信息的修改=void xiu(Link i)学生信息的查询=void cha(Link i) 学

2、生信息的删除=void shan(Link i)学生信息的排序=void pai(Link i) 学生信息的保存=void bao(Link i)为了避免指针的过于复杂使用typedef函数创建了一个struct的同义字程序如下:typedef struct nodestruct student data;struct node *next;Node,*Link;这是问题变得更易于描述、和程序的设计。另外本程序运用动态存储、二进制进行存贮。为了使程序变得更加明了设计另外一个定位Node型的函数(Node *Locate(Link i,char find,char nameornum))这对于查

3、询、删除、修改中非常重要。输入密码开始操作程序的设计流程如下:学生信息显示学生成绩统计学生信息的排序学生信息的查询学生信息的修改学生信息的输入 学生信息的保存学生信息的删除0返回菜单,选择操作主要算法的设计主函数的算法设计首先,进入设定密码(123456),进入菜单,然后选择操作(运用swith语句),调用各子函数,在退出程序时检验文件是否保存(设定全局变量wang若不改变或以保存则为0,否则为1)退出程序。在返回操作中运用while语句进行控制若选择0则返回菜单。读入信息:while(!feof(fp)p=(Node*)malloc(sizeof(Node);if(fread(p,sizeo

4、f(Node),1,fp)从二进制文件中读入信息p-next=NULL;r-next=p;r=p;/count+;fclose(fp);控制保存信息: if(wang=1)getchar();printf(n=提示:资料已经改动,是否将改动保存(y/n)n);printf(请输入你的选择:);scanf(%c,&ch);if(ch=y|ch=Y)bao(i); printf(n=提示:你已经退出系统,再见!n);break;各子函数的算法设计一些显示操作密码函数用递归的方法设计,其它显示操作均用输出相应的内容即可递归的运用:void mima()char mi10; printf(=请输入密码

5、:); scanf(%s,mi); if(strcmp(mi,123456)=0) return; else printf(=没有记住密码!请重新输入n); mima();定位操作函数Node *Locate(Link i,char find,char nameornum)引入Link型I,字符型的find,namenum运用strcmp进行比较返回其地址即可。学生信息的输入函数Void jia(Link i)首先,申请空间(p=(Node *)malloc(sizeof(Node);)输入学生信息,然后做总分计算和平均分的计算 p-data.zong=p-data.ying+p-data.s

6、hu+p-data.c;p-data.ping=p-data.zong/3; 4、 学生信息的修改 void xiu(Link i)首先选择修改信息,然后定位(p=Locate(i,find,num);)输入修改信息;若成功则printf(=修改成功!n);否则调用报错函数wrong();学生信息的查询 void cha(Link i)选择查询方式printf(=1按学号查询n=2按姓名查询n); 然后定位,在调用输出函数;printf( 查询结果n);xian();shuchu();shuchu1(p);xian();6、学生信息的删除 void shan(Link i)首先查询要删除的学生

7、信息,然后调用定位函数进行定位,删除操作;if(p)r=i;while(r-next!=p)r=r-next;r-next=p-next; free(p);printf(=提示:该学生已经成功删除!n);学生信息的排序void pai(Link i)首先选择排序规则printf(=1按C语言排序tt=2按数学排序n=3按英语排序tt=4按总分排序n);然后新建链接(s=(Node*)malloc(sizeof(Node);/新建节点用于保存信息)然后按照冒泡排序的思想排序: while(rr-next!=NULL&rr-next-data.c=p-data.c) rr=rr-next;/由大到

8、小 if(rr-next=NULL) rr-next=s; else s-next=rr-next; rr-next=s; p=p-next; 学生信息的保存void bao(Link i)本程序运用二进制进行保存打开文件(s.txt)进行读写(fp=fopen(s.txt,wb);)写入保存内容 while(p) if(fwrite(p,sizeof(Node),1,fp)=1)p=p-next;count+;elseflag=0;break;学生成绩的统计void tong(Link i),先选择你的分数线:printf(请输入分数线:);scanf(%d,&n);然后统计出高于这一分数的

9、人数; 10、学生信息的显示void xianshi(Link i)直接调用输出函数即可:printf( 显示信息n);xian();shuchu();printf(n);while(p)shuchu1(p);p=p-next;xian();上机调试过程在调试过程中出现了,几十条的错误!特别是在排序这一函数调试了无数次,主要是指针与动态存贮问题,和建立新的链接,过程中理解不够深刻。在调试排序这一功能时最为复杂,在新建链接时有 i-next=ii-next;把排序好的顺序复制给新的链表,在调试过程中有很大的麻烦,注:具体调试过程,麻烦在编程时,没有认真记录,现在想不起来了个人心得通过C语言编程的

10、能力有了提高,特别是在指针、数组、函数和结构体方面有了很大提高,另外还学习了课本没有讲到的知识,学会了使用模块化编程的简单方法,另外在对话框的编程要求美观、方面也有了体会。指针是C语言的灵魂,也是本程序的灵魂,它在本程序中既有“穿针引线”的作用(利用指针传值),也起到了对数据进行分析、存贮、读取等重要的作用,本程序在使用指针过程中对指针进行了简化也是一个“亮点”,它使程序变得通俗易懂,也降低了程序的难度。以后要对这种方法进行深刻的体会。数组在程序中有着很重要的作用,对数据的贮存、输入、读取起着很重要的作用,本程序几乎所有数据都以数组进行输入、贮存、读取方便了对数据的处理和输入,数组的的使用在本

11、程序中有很大的好处。函数是实现模块化编程的基础,它使程序变得方面易懂,对修改起了很大作用,也降低了编程的难度,一个函数就是一个功能,它使各个功能之间有了一定的独立性,一个函数的错误,不会导致整个程序的失败(主函数除外),对函数的良好应用时在本程序中又以深刻的体会。也有了很大提高。结构体的使用,为本程序提供了很大方面,也提高了本程序的可读性,结构数组方面了对数据的管理。文件的读取与存贮使数据可以保存下来,这也是在学校的学习过程中没有掌握的内容,在开始时遇到了不小的困难。typedef struct nodestruct student data;struct node *next;Node,*Link;以上程序时在课本中没有基础的知识,(它用使用网上的程序中的一段)也是是本程序变得好写的关键所在,它把复杂的指针问题,变得简单。另外、感觉到在学校编的程序时那样的简短(都不足1k)、自己需要在编程方面进一步提高,也提高了自己对编程的兴趣,使自己对编程有了更深的理解,体会到编程的乐趣。参考书目1、C语言程序设计 何钦铭 颜晖 高等教育

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论