C语言学生信息管理系统5_第1页
C语言学生信息管理系统5_第2页
C语言学生信息管理系统5_第3页
C语言学生信息管理系统5_第4页
C语言学生信息管理系统5_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

学生信息管理系统本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和单链表的各种基本操作。本程序中涉及结构体、单链表、文件等方面的知识。通过本程序的训练,使学生能对C语言的文件操作有一个更深刻的了解,掌握利用单链表存储结构实现对学生成绩管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。1 问题定义创建一个学生信息管理系统.方便管理同学们的信息.系统中每个学生的记录包括学号,姓名,QQ,性别,电话号码等信息,程序运行后可进行列出菜单,删除文件,创建文件,查找文件,修改和保存文件等功能;在问题定义阶段要考虑题目的可行性和需求分析,接下来进入开发阶段,完成系统设计和系统实现的任,2 系统设计2.1 在系统设计方面需采用模块化,把一个复杂的问题简单化,化成几个简单的模块来处理,.但是在划分的同时又必须要了解各自的功能,它们之间应该有自己的独立性,同时又存在相互的联系.通讯记录时以二进制的形式进行存储和输入,一般程序从整体到部分,先进行整体概括,然后在逐步细化完善.2.2 本通讯管理系统可以概括的划分为以下几大模块:1 输入创建模块。2 列出菜单模块。3 删除数据模块。4 修改数据模块。5 查找数据模块。6 插入数据模块.。7 保存数据模块。8 退出系统.。3 系统分析与设计 系统的总体设计 本系统是由一个主函数和几个子函数完成的,通过一定的语句将主函数和子函数连接起来,即完成了本系统。 创建:可以添加通讯录记录,依次输入序号,姓名,QQ,性别,还有电话等等; 查找:可以查找所存在的所有内容; 删除:可以删除多余的记录,输入存在的序号,会自动删除这个记录; 修改:输入要修改的那个人的序号之后,然后再一次输入要修改的内容,包括序号,姓名,QQ,性别,还有电话;系统会自动进行修改; 插入:既是要插入到某个已存信息的前面,先找到要插入的位置,然后再依次输入要插入的序号,姓名,QQ,性别,还有电话等,即可完成插入程序,本系统由一个图来表示为: 主菜单创建 保存列出插入修改删除查找 主体轮廓#include#include#includeint num; /*学生学号*/ char name10; /*学生姓名*/ char qq10; /*学生QQ*/ int sex; /*学生性别*/ int phone; /*学生电话*/ LIST;LIST L100;int main(void)void revise_list () /*修改数组*/ void print_list() /*列出菜单*/void delete_list() /*删除文件*/void insert_list() /*创建文件*/void find_list() /*查找文件*/ void into_list() /*插入文件*/void save_list() /*保存文件*/这样一个简单的学生信息管理系统的整体轮廓就出来了,以后的内容就是对各个子函数进行完善,编程,最后整体与部分连接起来就完成了整个程序。 部分工作流程图 删除:删除用户和信息 开始 输入删除的序号 输出“无此人存在”判断有误此人 结束删除该记录判断有误此人输出“无此人存在”YN 查找:可以找到并显示所要查找的已存信息NY结束显示该人记录输出没有此人判断有无此人开始输入查询的学号 插入:可以插入到任意一项的前面 输入插入的学号开始判断有无此人输出没有此人显示该人记录结束YN 显示:显示出所有已存的信息 ikey输出一个记录int i; i=0开始 i+结束4 源程序代码 #include#include#include#define EXIT -1#define LEN sizeof(struct list)int key=0;typedef struct list int num; /*学生学号*/ char name10; /*学生姓名*/ char qq10; /*学生QQ*/ int sex; /*学生性别*/ int phone; /*学生电话*/ LIST;LIST L100;void revise_list () /*修改数组*/ int i,j,k;int num;char name10;char qq10;int sex;int phone; printf(请选择修改项); scanf(%d,&j); for(k=0;kkey;k+) if(j=Lk.num) break; printf(您要修改成为:); printf(tt学号tt); scanf(%d,&num); printf(tt姓名tt); scanf(%s,name); printf(ttQQ号tt); scanf(%s,qq); printf(tt性别tt); scanf(%d,&sex); printf(tt电话tt); scanf(%d,&phone); Lk.num=num; strcpy(L,name); strcpy(Lk.qq,qq); Lk.sex=sex; Lk.phone=phone;void print_list() /*列出菜单*/ int i; for(i=0;ikey;i+) printf(学号t姓名TQQ号 t性别t电话tn); printf(%dt%st%st%dt%dn ,Li.num,L,Li.qq,Li.sex,Li.phone); if(key=0) printf(the shuzu is NULL!n); void delete_list() /*删除文件*/ int i,j,k; printf(您要删除的是:n); scanf(%d,&j); for(k=0;k=key) printf(您输入的数据有误,请重新输入:); for(i=k;ikey;i+) Li=Li+1; key-; void insert_list() /*创建文件*/ int num;char name10;char qq10;int sex;int phone; printf(tt序号tt); scanf(%d,&num); printf(tt姓名tt); scanf(%s,name); printf(ttQQ号tt); scanf(%s,qq); printf(tt性别tt); scanf(%d,&sex); printf(tt电话tt); scanf(%d,&phone); Lkey.num=num; strcpy(L,name); strcpy(Lkey.qq,qq); Lkey.sex=sex; Lkey.phone=phone; key+;void find_list() /*查找文件*/ int i,num; printf(请输入你要查找的序号:); scanf(%d,&num); for (i=0;i=key) printf(无此人信息,请重新选择:); void into_list() /*插入文件*/ int i,j,k;int num;char name10;char qq10;int sex;int phone; printf(ttt您要插入项是:t); scanf(%d,&j); if (j0&j=j;i-) Li=Li-1; key+; printf(请输入你要插入的内容:n); printf(tt学号tt); scanf(%d,&num); printf(tt姓名tt); scanf(%s,name); printf(ttQQ号tt); scanf(%s,qq); printf(tt性别tt); scanf(%d,&sex); printf(tt电话tt); scanf(%d,&phone); k=j-1; Lk.num=num; strcpy(L,name); strcpy(Lk.qq,qq); Lk.sex=sex; Lk.phone=phone;else printf(error); void save_list() /*保存文件*/ int i; FILE *fp; if(fp=fopen(file.txt,wb)=NULL) printf(不能打开文件n); return; for(i=0;ikey;i+) if(fwrite(&Li,LEN,1,fp)!=1); fclose(fp); int main(void) /*主函数*/ int choice; do printf(nnnttt*学生信息管理系统*); printf(ntttt*=*n); printf( tttt 1.*修改*n); printf( tttt 2.*列出*n); printf( tttt 3.*.删除*n); printf( tttt 4.*创建*n); printf( tttt 5.*查找*n); printf( tttt 6.*插入*n); printf( tttt 7.*保存*n); printf( tttt 0.*退出*n); printf( tttt 请选择:); scanf(%d,&choice); switch(choice) case 1:revise_list(); break; case 2:print_list();break; case 3:delete_list();break; case 4:insert_list();break; case 5:find_list();break; case 6:into_list();break; case 7:save_list();break; case 0:exit(0); default:printf(input againn); while(1); fflush(stdin); getchar(); return 0; 5 系统调试出现的问题在这次的实训中,主要遇到的问题是编译环境的不同对程序也不同。本来我们的程序是不支持在VC+里面编译的,因此一直都处在编译失败,该函数未定义的错误中。后来经过老师的指导,终于找到了根源,就是把“clrscr()”改为“system(cls)”就可以了。6 系统运行 1主菜单2创建数组3 列出表格4 删除信息5 修改信息6查找信息7 插入信息8 保存信息7 实训总结 这次的程序实训是对我们大一后半学期所学的计算机C语言的一次总结,也是对程序分析及操作的一次大的检查,自己独立思考,自己动手和老师辅助解决问题,在实训期间,我发现了自己对这门课的生疏和不足,平时没有学好的东西充分的体现了出来。 归纳总结: 7.1 实训中遇到的问题及解决方法: 在整个程序的编排中,整体还算顺利,但是难免在这个过程中会遇到一些麻烦,遇到问题时,去问一些同学,去上网百度一下。经过实践练习,最终克服了这些问题,主要是指针方面和文件保存这些方面存在的一些问题。 7.2 设计中的不足之处: 由于自己初学C程序设计,所以对一些知识掌握的不够全面,不够扎实;所以编写的一些代码比较基础化,没能用到最完善的方法,例如没有用到链表等方面知识。7.3 感想和心得体会:经过这次的实训实践,发现了自己在C程序设计

温馨提示

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

评论

0/150

提交评论