c语言程序设计报告学生信息管理系统.doc

上传人:仙人指路1688 文档编号:2384743 上传时间:2023-02-17 格式:DOC 页数:16 大小:169.50KB
返回 下载 相关 举报
c语言程序设计报告学生信息管理系统.doc_第1页
第1页 / 共16页
c语言程序设计报告学生信息管理系统.doc_第2页
第2页 / 共16页
c语言程序设计报告学生信息管理系统.doc_第3页
第3页 / 共16页
c语言程序设计报告学生信息管理系统.doc_第4页
第4页 / 共16页
c语言程序设计报告学生信息管理系统.doc_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《c语言程序设计报告学生信息管理系统.doc》由会员分享,可在线阅读,更多相关《c语言程序设计报告学生信息管理系统.doc(16页珍藏版)》请在三一办公上搜索。

1、中南大学C语言程序设计实践报告题 目 学生信息管理系统 学生姓名 张眼 指导教师 刘伟荣 学 院 信息科学与工程学院 专业班级 电气信息1113班 完成时间 2012年6月28日星期四 1.设计任务及设计目标学生信息管理系统是基于系统主菜单的操作来实现学生数据的录入、修改、查询和统计等系统的基本功能。达到对学生信息的存储、统计、管理的目的。需要处理的数据如:班级、学号、姓名等。实现的功能模块如:数据的录入、数据的修改、数据的插入、数据的查询和数据的统计等。在实践过程中熟练掌握C语言的基本知识:数据类型(整型、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运

2、算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握函数嵌套调用、文件的读写、链表的应用等。2.总体设计我们将整个系统分成若干子模块,每个模块有自己的函数,通过选择结构来实现子模块的选择。设计流程图如下:学生信息管理系统 【1】输入学生信息【2】浏览学生信息【3】查询学生信息【4】删除学生信息【5】修改学生信息【6】不及格学生列表【7】成绩信息查询【8】学生平均成绩【0】退出系统3.详细设计预处理模块:此模块主要是头文件,结构体的定义,以及函数的说明。#include#include#include#includestructstudentl

3、ongintnum;charname20;intage;charsex4;intclass;intpt; /*定义一个变量来储存大学物理的考试成绩*/intps; /*定义一个变量来储存大学物理的平时成绩*/intet; /*定义一个变量来储存英语的考试成绩*/intes; /*定义一个变量来储存英语夫人平时成绩*/intct; /*定义一个变量来储存微积分的考试成绩*/intcs; /*定义一个变量来储存微积分的平时成绩*/intxt; /*定义一个变量来储存信号的考试成绩*/intxe; /*定义一个变量来储存信号的平时成绩*/;intn=0;structstudentstu100;str

4、uctstudent*p;voidtc();void tc()voidlr();/*录入函数*/voidll();voidcx();/*查询函数*/voidxg();/*修改函数*/voidsc();/*删除函数*/voidbj();/*不及格学生列表函数*/voidpj();/*平均成绩计算函数*/voidkc();/*课程查询函数*/主函数模块:一般比较简单,只提供输入,处理,输出的调用函数,即只有界面显示语句,子函数选择语句,主要的调用语句。voidmain()intz;printf(ttt+-+n);printf(ttt|学生信息管理系统欢迎您|n);printf(ttt+-+n);p

5、rintf(ttt+设计者:张眼n);printf(ttt+指导老师:刘伟荣n);printf(重要提示:为保证您的操作得到保存,请按正常顺序退出系统!谢谢合作n);doprintf(nttt+n);printf(ttt|*菜单*|n);printf(ttt+n);printf(ttt*1-录入/插入学生信息*n);printf(ttt*2-浏览学生信息*n);printf(ttt*3-查询学生信息*n);printf(ttt*4-删除学生信息*n);printf(ttt*5-修改学生信息*n);printf(ttt*6-不及格学生列表*n);printf(ttt*7-成绩信息查询*n);pr

6、intf(ttt*8-平均成绩*n);printf(ttt*0-退出系统*n);printf(ttt*n);printf(请输入您的选择:);scanf(%d,&z);switch(z)case0:tc();break;case1:lr();break;case2:ll();break;case3:cx();break;case4:sc();break;case5:xg();break;case6:bj();break;case7:kc();break;case8:pj();break;default:printf(n无效选项!);while(z!=0);运行结果:输入模块:输入部分包括学生的

7、姓名,学号等基本信息以及学生的大学物理,英语,微积和信号的成绩,主要是通过指针来实现数据的输入。用一个指向结构体的指针来进行数据的储存。voidlr()/*录入函数*/inty;if(n=0)p=stu;doprintf(-n);printf(请输入学生的学号:);scanf(%ld,&p-num);printf(请输入学生的姓名:);scanf(%s,p-name);printf(请输入学生的年龄:);scanf(%d,&p-age);printf(请输入学生的性别:);scanf(%s,p-sex);printf(请输入学生的班级:);scanf(%d,&p-clas);printf(请输

8、入大物考试成绩:);scanf(%d,&p-pt);printf(请输入大物平时成绩:);scanf(%d,&p-ps);printf(请输入英语考试成绩:);scanf(%d,&p-et);printf(请输入英语平时成绩:);scanf(%d,&p-es);printf(请输入微积分考试成绩:);scanf(%d,&p-ct);printf(请输入微积分平时成绩:);scanf(%d,&p-cs);printf(请输入信号考试成绩:);scanf(%d,&p-xt);printf(请输入信号平时成绩:);scanf(%d,&p-xe);n+;p+;printf(n1.继续输入.n0.输入完

9、毕.n);printf(请选择:);scanf(%d,&y);while(y=1);printf(提示:输入完毕!你一共输入%d个n,n);运行结果:查询模块:该模块是通过输入的学生信息(学号或姓名)来查找学生的所有信息并且显示在屏幕上。主体通过选择结构对用户的选择进行判断,而后执行相应选择后的语句实现查询。通过函数void cx() 来实现。voidcx()/*查询函数*/intc;intw,i,j=0;charname20;if(n!=0)doprintf(n);printf(+-+n);printf(|按学号查询请按1|n);printf(|按姓名查询请按2|n);printf(|取消请

10、按0|n);printf(+-+n);printf(请输入选择:);scanf(%d,&c);switch(c)case0:break;case1:printf(请输入学生的学号;);scanf(%ld,&w);printf(n);for(i=0;in;i+)if(stui.num=w)printf(n学号t姓名t年龄t性别t班级n);printf(%ldt%st%dt%st%dn,stui.num,stui.name,stui.age,stui.sex,stui.clas);j=1;if(j=0)printf(提示:没有该学生记录,请核对!);break;case2:printf(请输入学生

11、的姓名:);scanf(%s,name);printf(n);for(i=0;in;i+)if(strcmp(name,stui.name)=0)printf(n学号t姓名t年龄t性别t班级n);j=1;printf(%ldt%st%dt%st%dn,stui.num,stui.name,stui.age,stui.sex,stui.clas);if(j=0)printf(提示:没有该学生记录,请核对!);break;default:printf(n提示:无效选项!);break;while(c!=0);elseprintf(提示:无学生数据,请输入数据!);删除模块:该模块通过输入要删除的学

12、生学号,通过学号查找并删除记录。如果没有学生信息输出提示:无学生数据,请输入数据!通过函数void sc() 实现voidsc()/*删除函数*/longintnum;inti,j,e;if(n!=0)printf(学号t姓名t年龄t性别t班级n);printf(-n);for(i=0;in;i+)printf(%ldt%st%dt%st%dn,stui.num,stui.name,stui.age,stui.sex,stui.clas);printf(请输入您要删除的学生的学号:);scanf(%ld,&num);printf(n);for(i=0;in;i+)if(num=stui.num

13、)j=i;if(j!=(n-1)for(e=j;e(n-1);e+)stue.num=stue+1.num;strcpy(stue.name,stue+1.name);strcpy(stue.sex,stue+1.sex);stue.age=stue+1.age;stue.clas=stue+1.clas;stue.pt=stue+1.pt;stue.ps=stue+1.ps;stue.et=stue+1.et;stue.es=stue+1.es;stue.ct=stue+1.ct;stue.cs=stue+1.cs;n-;elsen-;printf(提示:删除完毕!);elseprintf(

14、提示:无学生数据,请输入数据!);运行结果:修改信息模块:该模块通过输入要修改的学生学号查找学生信息,并显示用户修改的内容信息,供用户选择,根据选项进行修改。主体是通过一个switch语句来实现选择的,根据用户的选择进行语句的执行。通过函数void xg() 实现。voidxg()/*修改函数*/longintnum;inti,j,c;if(n!=0)printf(请输入您要修改的学生的学号:);scanf(%ld,&num);printf(n);for(i=0;in;i+)if(stui.num=num)j=i;doprintf(请选择您要修改的学生的信息内容:n);printf(+-+n)

15、;printf(|姓名请按1|n);printf(|年龄请按2|n);printf(|性别请按3|n);printf(|学号请按4|n);printf(|班级请按5|n);printf(|大物考试成绩请按6|n);printf(|大物平时成绩请按7|n);printf(|英语考试成绩请按8|n);printf(|英语平时成绩请按9|n);printf(|微积分考试成绩请按10|n);printf(|微积分平时成绩请按11|n);printf(|信号考试成绩请按12|n);printf(|信号平时成绩请按13|n);printf(|取消请按0|n);printf(+-+n);printf(请输入

16、您的选择:);scanf(%d,&c);printf(n);switch(c)case0:break;case1:printf(请输入新姓名:);scanf(%s,stuj.name);break;case2:printf(请输入新年龄:);scanf(%d,&stuj.age);break;case3:printf(请输入新性别:);scanf(%s,stuj.sex);break;case4:printf(请输入新学号:);scanf(%ld,&stuj.num);break;case5:printf(请输入新班级:);scanf(%d,&stuj.clas);break;case6:pr

17、intf(请输入大物考试成绩:);scanf(%d,&stuj.pt);break;case7:printf(请输入大物平时成绩:);scanf(%d,&stuj.ps);break;case8:printf(请输入英语考试成绩:);scanf(%d,&stuj.et);break;case9:printf(请输入英语平时成绩:);scanf(%d,&stuj.es);break;case10:printf(请输入微积分考试成绩:);scanf(%d,&stuj.ct);break;case11:printf(请输入微积分平时成绩:);scanf(%d,&stuj.cs);case12:pri

18、ntf(请输入信号考试成绩:);scanf(%d,&stuj.xt);case13:printf(请输入信号考试成绩:);scanf(%d,&stuj.xe);break;default:printf(n无效选项!);break; while(c!=0);elseprintf(提示:无学生数据,请输入数据!);运行结果:不及格学生计算模块:该模块通过对已经输入的学生数据进行处理,当四门功课中有一门成绩小于60,就输出此学生的信息及不及格科目的成绩。函数的主体是一个for循环语句的嵌套,外循环来实现成绩的计算,内循环实现不及格的选择。此功能通过函数void bj() 实现。voidbj()/*不

19、及格学生列表函数*/inti,j;chara410=大学物理,大学英语,微积分,信号;floatl4;if(n!=0)printf(n学号t姓名t课程tt成绩n);for(i=0;in;i+)l0=stui.pt*0.7+stui.ps*0.3;l1=stui.et*0.7+stui.es*0.3;l2=stui.ct*0.7+stui.cs*0.3;l3=stui.xt*0.7+stui.xe*0.3;for(j=0;j4;j+)if(lj60.0)printf(%ldt%st%st%3.1fn,stui.num,stui.name,aj,lj);elseprintf(提示:无学生数据,请输

20、入数据!);运行结果:学生课程信息查询模块:该模块通过用户输入的选项来查询该学生的各个科目的信息,信息包括课程名称,课程编号,学分,平时成绩,考试成绩,综合成绩,并最终以表格的形式输出。此函数主要部分是一个switch()选择语句以及输出函数printf()。该功能通过函数void kc()来实现。voidkc()/*课程查询函数*/intc;intw,i,j=0;charname20;if(n!=0)doprintf(n);printf(+-+n);printf(|按学号查询请按1|n);printf(|按姓名查询请按2|n);printf(|取消请按0|n);printf(+-+n);pr

21、intf(请输入您的选择:);scanf(%d,&c);switch(c)case0:break;case1:printf(请输入学生的学号;);scanf(%ld,&w);printf(n);for(i=0;in;i+)if(stui.num=w)printf(n课程名称t课程编号t学分t平时成绩t考试成绩t综合成绩n);printf(大学物理t0001tt4.0t%dtt%dtt%3.1fn,stui.ps,stui.pt,0.7*stui.pt+0.3*stui.ps);printf(大学英语t0002tt4.0t%dtt%dtt%3.1fn,stui.es,stui.et,0.7*st

22、ui.et+0.3*stui.es);printf(微积分tt0003tt3.0t%dtt%dtt%3.1fn,stui.cs,stui.ct,0.7*stui.ct+0.3*stui.cs);printf(信号tt0004tt3.0t%dtt%dtt%3.1fn,stui.xt,stui.xe,0.7*stui.xt+0.3*stui.xe);j=1;if(j=0)printf(提示:没有该学生记录,请核对!);break;case2:printf(请输入学生的姓名:);scanf(%s,name);printf(n);for(i=0;i1)for(i=0;i(n-1);i+)for(j=i

23、+1;jn;j+)avei=(stui.pt*0.7+stui.ps*0.3+stui.et*0.7+stui.es*0.3+stui.ct*0.7+stui.cs*0.3+stui.xt*0.7+stui.xe*0.3)/4;avej=(stuj.pt*0.7+stuj.ps*0.3+stuj.et*0.7+stuj.es*0.3+stuj.ct*0.7+stuj.cs*0.3+stui.xt*0.7+stui.xe*0.3)/4;if(aveiavej)m=avej;temp=stuj;avej=avei;stuj=stui;avei=m;stui=temp;printf(学号t姓名t年龄

24、t性别t班级t平均成绩n);printf(-n);for(i=0;in;i+)printf(%ldt%st%dt%st%dt%3.1fn,stui.num,stui.name,stui.age,stui.sex,stui.clas,avei);elseif(n=0)printf(提示:无学生数据,请输入数据!);elseave0=(stu0.pt*0.7+stu0.ps*0.3+stu0.et*0.7+stu0.es*0.3+stu0.ct*0.7+stu0.cs*0.3+stu0.xt*0.7+stu0.xe*0.3)/4;printf(学号t姓名t年龄t性别t班级t平均成绩n);print

25、f(-n);printf(%ldt%st%dt%st%dt%3.1fn,stu0.num,stu0.name,stu0.age,stu0.sex,stu0.clas,ave0);退出系统模块:当用户选择退出程序选项【0】时,执行函数void tc()输出“谢谢登陆!再见”而后退出运行。5.设计总结本学期我们的c语言课程实践课题学生信息管理系统是在老师的指导下,同学间相互的帮助下,设计出来的。通过C语言的课程设计,我们对c语言中的重要的内容有了一个很好的认识与了解,同时我们也对c语言的应用有了了解。C语言的实质就是以一定的语法规范为准,通过对数据量的复杂结构运算,完成一定功能的程序,是一门计算机的基础语言,我们通过这两周的课程实践对其特点和算法有了跟好的了解。 通过这次课程设计,我懂得一个程序的设计就是一个实际问题的解决的过程,从解决问题的角度,我们可以这样来看:首先了解这个问题的基本要求,即输入,输出,完成输入到输出的要求是什么,讲问题一一分开;其次,我们要捋清思路,逐一解决问题,着重考虑如何从输入导出输出,在这个过程中,可以确定所需的变量,数据,函数,然后确定处理过程算法。 总的来说,这次实践让我受益匪浅,让我对c语言有了进一步的认识,c语言功能高,表达能力强,使用灵活方便,目标程序效率高,是我们日后学习的良好工具。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号