c语言程序设计报告-学生信息管理系统 精品.doc_第1页
c语言程序设计报告-学生信息管理系统 精品.doc_第2页
c语言程序设计报告-学生信息管理系统 精品.doc_第3页
c语言程序设计报告-学生信息管理系统 精品.doc_第4页
c语言程序设计报告-学生信息管理系统 精品.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

C语言程序设计实践报告题 目 学生信息管理系统 1.设计任务及设计目标学生信息管理系统是基于系统主菜单的操作来实现学生数据的录入、修改、查询和统计等系统的基本功能。达到对学生信息的存储、统计、管理的目的。需要处理的数据如:班级、学号、姓名等。实现的功能模块如:数据的录入、数据的修改、数据的插入、数据的查询和数据的统计等。在实践过程中熟练掌握C语言的基本知识:数据类型(整型、实型、字符型、指针、数组、结构等);运算类型(算术运算、逻辑运算、自增自减运算、赋值运算等);程序结构(顺序结构、判断选择结构、循环结构);大程序的功能分解方法(即函数的使用)等。进一步掌握函数嵌套调用、文件的读写、链表的应用等。2.总体设计我们将整个系统分成若干子模块,每个模块有自己的函数,通过选择结构来实现子模块的选择。设计流程图如下:学生信息管理系统 【1】输入学生信息【2】浏览学生信息【3】查询学生信息【4】删除学生信息【5】修改学生信息【6】不及格学生列表【7】成绩信息查询【8】学生平均成绩【0】退出系统3.详细设计预处理模块:此模块主要是头文件,结构体的定义,以及函数的说明。#include#include#include#includestructstudentlongintnum;charname20;intage;charsex4;intclass;intpt; /*定义一个变量来储存大学物理的考试成绩*/intps; /*定义一个变量来储存大学物理的平时成绩*/intet; /*定义一个变量来储存英语的考试成绩*/intes; /*定义一个变量来储存英语夫人平时成绩*/intct; /*定义一个变量来储存微积分的考试成绩*/intcs; /*定义一个变量来储存微积分的平时成绩*/intxt; /*定义一个变量来储存信号的考试成绩*/intxe; /*定义一个变量来储存信号的平时成绩*/;intn=0;structstudentstu100;structstudent*p;voidtc();void tc()voidlr();/*录入函数*/voidll();voidcx();/*查询函数*/voidxg();/*修改函数*/voidsc();/*删除函数*/voidbj();/*不及格学生列表函数*/voidpj();/*平均成绩计算函数*/voidkc();/*课程查询函数*/主函数模块:一般比较简单,只提供输入,处理,输出的调用函数,即只有界面显示语句,子函数选择语句,主要的调用语句。voidmain()intz;printf(ttt+-+n);printf(ttt|学生信息管理系统欢迎您|n);printf(ttt+-+n);printf(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);printf(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);运行结果:输入模块:输入部分包括学生的姓名,学号等基本信息以及学生的大学物理,英语,微积和信号的成绩,主要是通过指针来实现数据的输入。用一个指向结构体的指针来进行数据的储存。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(请输入大物考试成绩:);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.输入完毕.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(|取消请按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.age,stui.sex,stui.clas);j=1;if(j=0)printf(提示:没有该学生记录,请核对!);break;case2:printf(请输入学生的姓名:);scanf(%s,name);printf(n);for(i=0;in;i+)if(strcmp(name,)=0)printf(n学号t姓名t年龄t性别t班级n);j=1;printf(%ldt%st%dt%st%dn,stui.num,,stui.age,stui.sex,stui.clas);if(j=0)printf(提示:没有该学生记录,请核对!);break;default:printf(n提示:无效选项!);break;while(c!=0);elseprintf(提示:无学生数据,请输入数据!);删除模块:该模块通过输入要删除的学生学号,通过学号查找并删除记录。如果没有学生信息输出提示:无学生数据,请输入数据!通过函数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.age,stui.sex,stui.clas);printf(请输入您要删除的学生的学号:);scanf(%ld,&num);printf(n);for(i=0;in;i+)if(num=stui.num)j=i;if(j!=(n-1)for(e=j;e(n-1);e+)stue.num=stue+1.num;strcpy(,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(提示:无学生数据,请输入数据!);运行结果:修改信息模块:该模块通过输入要修改的学生学号查找学生信息,并显示用户修改的内容信息,供用户选择,根据选项进行修改。主体是通过一个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);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(请输入您的选择:);scanf(%d,&c);printf(n);switch(c)case0:break;case1:printf(请输入新姓名:);scanf(%s,);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:printf(请输入大物考试成绩:);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:printf(请输入信号考试成绩:);scanf(%d,&stuj.xt);case13:printf(请输入信号考试成绩:);scanf(%d,&stuj.xe);break;default:printf(n无效选项!);break; while(c!=0);elseprintf(提示:无学生数据,请输入数据!);运行结果:不及格学生计算模块:该模块通过对已经输入的学生数据进行处理,当四门功课中有一门成绩小于60,就输出此学生的信息及不及格科目的成绩。函数的主体是一个for循环语句的嵌套,外循环来实现成绩的计算,内循环实现不及格的选择。此功能通过函数void bj() 实现。voidbj()/*不及格学生列表函数*/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,,aj,lj);elseprintf(提示:无学生数据,请输入数据!);运行结果:学生课程信息查询模块:该模块通过用户输入的选项来查询该学生的各个科目的信息,信息包括课程名称,课程编号,学分,平时成绩,考试成绩,综合成绩,并最终以表格的形式输出。此函数主要部分是一个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);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考试成绩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*stui.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+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年龄t性别t班级t平均成绩n);printf(-n);for(i=0;in;i+)printf(%ldt%st%dt%st%dt%3.1fn,stui.num,,stui.age,st

温馨提示

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

评论

0/150

提交评论