西安交通大学城市学院-计算机系-C语言程序课程设计西安交通大学城市学院《C语言程序设计》课程设计报告题目:学生信息管理系统专业:计算机科学与技术班级:计算机XX班学号:1111111111姓名:XXXXXXX完成日期:2011年6月21日西安交通大学城市学院-计算机系-C语言程序课程设计1.1感谢与总结在这个程序的编辑中,我用我所学的C语言知识与庞老师的指导编好了学生信息管理系统这个程序,为此我很开心更是很感谢庞老师对我的细心指导。我用了一天对程序的认真了解,然后用了两天对程序的编辑与调试,在这个过程中我学到了很多,我明白在编辑程序之前一定要花费一些时间,用这些时间来对程序做仔细研读,接下来做的就等于是在有计划的进行。1.2意义1.熟悉C语言程序的编程环境、熟练应用VisualC++6.0进行C语言编程、纠正、改错、运行。2.掌握C语言的所有数据类型,熟练的定义使用整型、实型和字符型的变量。3.掌握C语言的所有算法,并且能熟练使用,进行各项操作。4.学习并掌握C语言定义函数的基本方法、声明函数及调用函数的方法和过程。5.掌握文件和文件指针的概念以及文件的定义方法,认识文件打开、关闭、读、写等文件基本操作函数。6.掌握结构体类型变量、数组的定义和使用。1.3目标1.熟悉C语言程序的编辑、编译链接和运行的过程,至少能够用一种编译器较熟练地编辑、编译及调试程序。2.掌握C语言数据类型,如何定义一个整型、字符型和实型的变量,以及对它们赋值的方法。3.熟练运用if语句和switch语句以及嵌套应用。涉及循环调用的,了解并掌握三种控制语句while、do-while和for语句。4.学习并掌握C语言定义函数的基本方法、声明函数及调用函数的方法和过程。2.1功能模块设计模块一:头文件,变量定义,函数的声明对系统所使用的变量进行定义,对函数进行声明模块二:学生信息系统使用帮助声明函数voidhelp(),对整个系统进行使用说明模块三:录入学生信息声明函数voidreadfile(),说明一个文件指针FILE*fp打开文件student.txt模块四:删除学生信息声明voiddel()实现学生信息删除,通过学号对比确定要删除的信息,然后用后一个替换掉。西安交通大学城市学院-计算机系-C语言程序课程设计模块五:学生信息的查找声明voidseek()为查找函数,通过switch(item)设定用学号查找,用姓名查找,用成绩查找三个分支模块六:学生信息按总成绩排序声明voidsort()将录入学生系按升序排列,用的是“冒泡排序法”实现排序模块七:显示学生信息通过display()函数输出学生信息模块八:保存信息通过fp=fopen(“card.dat”,“wb”);写入信息模块九:导出信息通过fp=fopen(“card.dat”,“wb”);导出信息模块九:界面菜单通过switch(num)调用,以上各函数,实现功能2.2函数的设计与描述1、对系统所使用的变量进行定义,对函数进行声明2、声明函数voidhelp(),对整个系统进行使用说明登记主菜单查找排序存储删除导出按成绩按学号按姓名按总成绩退出西安交通大学城市学院-计算机系-C语言程序课程设计3、声明函数voidreadfile(),说明一个文件指针FILE*fp打开文件“card.dat”4、声明voiddel()实现学生信息删除,通过学号对比确定要删除的信息,然后用后一个替换掉。5、声明voidseek()为查找函数,通过switch(item)设定用学号查找,用姓名查找,用成绩查找三个分支6、声明voidsort()将录入学生按升序排列,用的是“冒泡排序法”实现排序7、通过fp=fopen(“card.dat”,“wb”);写入信息8、通过fp=fopen(“card.dat”,“wb”);导出信息9、通过display()函数输出学生信息10、通过switch(num)调用,以上各函数,实现功能3程序设计流程图西安交通大学城市学院-计算机系-C语言程序课程设计开始输出界面选择操作选择1选择2选择3选择4选择5选择6选择7选择8输入数据删除数据浏览数据查找数据选择1选择2选择3存储数据载入数据按学号查找按姓名查找按成绩查找按总成绩排序退出系统结束输入all输入one删除所有信息删除指定学生信息西安交通大学城市学院-计算机系-C语言程序课程设计4源代码摘录#includestdio.h#includestring.h#includestdlib.h#includeconio.h#defineM3#defineN1000typedefstructstu{charxingming[20];intxuehao;intchengji;intgaoshu;intyingyu;intjisuanji;intzchengji;}STU;STUstu[N];intrenshu=0;voidmenu();voidfhzjm()//返回主界面函数{charbiaozhi[20];printf(\n);printf(还需要操作么?如果需要操作请输入:yes,否则请输入:no\n);scanf(%s,biaozhi);if(strcmp(biaozhi,yes)==0){menu();}elseif(strcmp(biaozhi,no)==0)exit(0);else{printf(请输入正确的字符,谢谢!\n);fhzjm();}}voidDengJi(){inti,j,k=1;system(CLS);西安交通大学城市学院-计算机系-C语言程序课程设计printf(请输入学生的人数:);scanf(%d,&j);for(i=0;ij;i++,k++){printf(请输入第%d个学生的学号:,k);scanf(%d,&stu[i].xuehao);printf(请输入第%d个学生的姓名:,k);scanf(%s,stu[i].xingming);printf(请输入第%d个学生的成绩\n,k);printf(请输入高数学成绩:);scanf(%d,&stu[i].gaoshu);printf(请输入英语成绩:);scanf(%d,&stu[i].yingyu);printf(请输入计算机成绩:);scanf(%d,&stu[i].jisuanji);stu[i].zchengji=stu[i].gaoshu+stu[i].yingyu+stu[i].jisuanji;printf(总成绩为:%d\n,stu[i].zchengji);}renshu=renshu+j;fhzjm();}voidShanChu(){charscxxi[15];system(CLS);printf(删除全部学生信息请输入\all\,删除指定学生请输入\one\\n);scanf(%s,scxxi);if(strcmp(scxxi,all)==0){inti;printf(你删除的学生信息如下:\n);printf(--------学号--------姓名--------高数------英语-------计算机-------总成绩--------\n);for(i=0;irenshu;i++)printf(----%d-----%s-----%d-----%d-----%d-----%d-----\n,stu[i].xuehao,stu[i].xingming,stu[i].gaoshu,stu[i].yingyu,stu[i].jisuanji,stu[i].zchengji);renshu=0;printf(删除成功\n);}elseif(strcmp(scxxi,one)==0){structstu*p=NULL;intq;西安交通大学城市学院-计算机系-C语言程序课程设计inti,j,k=0;printf(请输入你要删除的学生的学号:);scanf(%d,&q);for(i=0;irenshu;i++){if(q==stu[i].xuehao){k=1;j=i;break;}}if(k){printf(你删除的学生信息如下:\n);printf(--------学号--------姓名--------高数------英语-------计算机-------总成绩--------\n);printf(----%d----------%s----------%d---------%d--------%d----------%d-----\n,stu[i].xuehao,stu[i].xingming,stu[i].gaoshu,stu[i].yingyu,stu[i].jisuanji,stu[i].zchengji);if(renshu==1){p=&stu[0];free(p);renshu=0;}else{for(i=j;irenshu;i++)stu[i]=stu[i+1];}renshu=renshu-1;}printf(删除成功\n);}else{printf(输入数据错误\n);}fhzjm();}voidLiuLan(){西安交通大学城市学院-计算机系-C语言程序课程设计inti;system(CLS);if(renshu==0){printf(系统里面没有任何学生的信息\n);}else{for(i=0;irenshu;i++){printf(第%d个学生的学号是:%d\n,i+1,stu[i].xuehao);printf(第%d个学生的姓名是:%s\n,i+1,stu[i].xingming);printf(第%d个学生的高数成绩:%d\n,i+1,stu[i].gaoshu);printf(第%d个学生的英语成绩:%d\n,i+1,stu[i].yingyu);printf(第%d个学生的计算机成绩:%d\n,i+1,stu[i].jisuanji);printf(第%d个学生的总成绩:%d\n,i+1,stu[i].zchengji);}}fhzjm();}voidChaZhao(){charchoice,xxi[15];intxx;inti,j,k=0;if(renshu==0){printf(系统里面没有任何学生信息\n);fhzjm();}printf(三种查找方式:学号、姓名、成绩,如果按照学号查找请输入,如果按照姓名查找请输入,如果按照成绩查找请输入:\n);printf(请输入您查找的方式:);scanf(%s,&choice);if(choice=='1'){printf(请输入您所要查找的学生的学号:);scanf(%d,&xx);printf(您所查找的学生的信息为:\n);printf(------学号--------姓名--------高数--------英语--------计算机--------总成绩\n);for(i=0;irenshu;i++){if(xx==stu[i].xuehao)西安交通大学城市学院-计算机系-C语言程序课程设计{j=i;k=1;printf(-------%d------%s------%d--------%d---------%d-----------%d\n,stu[i].xuehao,stu[i].xingming,stu[i].gaoshu,stu[i].yingyu,stu[i].jisuanji,stu[i].zchengji);}}if(k==0)printf(输入的信息有误\n);}elseif(choice=='2'){printf(请输入您所要查找的学生的姓名:);scanf(%s,xxi);printf(您所要查找的学生的信息为:\n);printf(------学号--------姓名--------高数--------英语--------计算机--------总成绩\n);for(i=0;irenshu;i++){if(strcmp(xxi,stu[i].xingming)==0){