您好,欢迎访问三七文档
存档资料成绩:华东交通大学理工学院课程设计报告书所属课程名称C语言课程设计题目学生成绩管理系统设计分院电信分院专业班级11电气4班学号20110210470401学生姓名蒋芬指导教师徐亦丹2012年6月18日目录第1章程序设计目的........................................................?第2章程序实现思路........................................................?第3章程序清单(或正文)................................................?第4章课程设计心得........................................................?第5章参考文献...............................................................致谢华东交通大学理工学院课程设计报告第3页共19页第1章程序设计目的1.编写目的:本课程设计为学生提供了一个既动手又动脑,自学,查资料,独立实践的机会。将本学期课本上的理论知识和实际有机的结合起来,锻炼学生实际分析问题和解决问题的能力,提高学生适应实际、实践编程的能力,使对C++系统编程有一个大致的了解。2.需求简述:设计一个学生信息管理系统设计学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:1、系统以菜单方式工作2、学生信息录入功能(学生信息用文件保存)--输入3、学生信息浏览功能--输出4、学生信息查询功能--算法按学号查询按姓名查询5、学生信息的删除与修改(可选项)。华东交通大学理工学院课程设计报告第4页共19页第2章程序实现思路(学生自己拟定)设计以菜单方式工作的学生信息管理系统,主要有学信息排序功能,学生生信息输入功能,学生信息查询功能三个模块。本设计的基本操作是通过构造结构来实现的。是通过结构体类数组存放25个学生基本信息。在通过函数调用实现各子函数的功能,如:调用冒泡法排序子函数实现成绩排序。华东交通大学理工学院课程设计报告第5页共19页第3章程序清单或正文(学生自己拟定)(二)、功能图解概要设计学生信息管理系统由用户登陆、学生信息管理系统菜单、学生信息录入、查询、学生基本信息修改和删除这几个功能模块组成,其结构如图1-1:(二)、编程设计#includestdio.h#includestring.h#includestdlib.hstructstudyInfo{charnum[20];//预留20位charname[20];intsex;//1为男生;2为女生intage;charhometown[20];chardepartment[20];charmajor[20];charclassNum[10];charchanges[10];//学籍变动(学籍状态)};voidmain(){voidcheckDate();while(1){intshowMsg(intmsgCode);//文字输出总函数intactionSelect(intactCode);//动作控制函数int*getInput=malloc(sizeof(int));*getInput=NULL;if(!(showMsg(1))){free(getInput);showMsg(88);exit(0);华东交通大学理工学院课程设计报告第6页共19页};checkDate();printf(请选择(序号):);scanf(%d,getInput);actionSelect(*getInput);free(getInput);system(cls);}}voidcheckDate(){FILE*fp;char*head=malloc(1);if(fp=fopen(dat.db,rb)){//不为NULL(0),文件打开成功inti;fseek(fp,0,0);for(i=0;;i++){if(!(fread(head,1,1,fp))){printf(目前的数据记录共有%d条.\n,i);break;}fseek(fp,sizeof(structstudyInfo)-1,1);}fclose(fp);free(head);}else{fp=fopen(dat.db,wb);fclose(fp);printf(初次使用,数据文件已建立.目前的数据记录共有0条.\n);}华东交通大学理工学院课程设计报告第7页共19页}intshowMsg(intmsgCode){switch(msgCode){case1:printf(欢迎使用学生学籍管理系统\n--------------------------------------------\n1.注册登记2.学籍修改3.检索学籍\n4.删除学籍5.籍贯表格6.学籍变化(查询)\n\t0.退出系统\n--------------------------------------------\n************作者:蒋芬************\n--------------------------------------------\n);return1;case2:printf(感谢使用~!\n);return1;case88:printf(sorry,程序出错O_O。。。。\n);return1;default:return0;}}intactionSelect(intactCode){intshowMsg(intmsgCode);intaddInfo();intchangeOne();intpickOut();intdelOne();intfindChange();system(cls);switch(actCode){case0:showMsg(2);exit(0);case1:addInfo();break;case2:changeOne();break;华东交通大学理工学院课程设计报告第8页共19页case3:pickOut();break;case4:delOne();break;case5:showAll();break;case6:findChange();break;default:return0;}}intaddInfo(){FILE*fp;inti=1;//连续输入的次数intstate=0;intisIn(char*num);intaddRecord(structstudyInfo*addOne);voidcheckDate();while(i){structstudyInfostuinfo={stuinfo.age=0};//使系统自动初始化结构体变量system(cls);switch(state){case0:i+=1;break;case1:printf(记录写入成功!继续录入\n\n);i=i-1;break;case2:printf(记录写入失败,请重新录入!\n\n);break;case3:printf(记录已存在,请重新录入!\n\n);break;default:break;}checkDate();if(i==1){printf(请输入录入数目(输入0结束录入):);scanf(%d,&i);continue;华东交通大学理工学院课程设计报告第9页共19页}printf(请按以下格式录入信息:\n性别为1(代表男)或2(代表女);\n学籍变化为:[入学,转专业,退学,降级,休学,毕业]\n如录入结束,请在学号位输end并完成该行\n\n\n学号姓名性别年龄籍贯系别专业班级学籍变化\n);scanf(%s%s%d%d%s%s%s%s%s,&stuinfo.num,&stuinfo.name,&stuinfo.sex,&stuinfo.age,&stuinfo.hometown,&stuinfo.department,&stuinfo.major,&stuinfo.classNum,&stuinfo.changes);if(isIn(stuinfo.num)){//检验是否已存在在数据库中state=3;continue;}else{if(addRecord(&stuinfo)){state=1;continue;}}}}intisIn(char*num){intfound=1;FILE*fp;char*tmp=malloc(20*sizeof(char));inti;fp=fopen(dat.db,rb);fseek(fp,0,0);for(i=1;;i++){if(!(fread(tmp,20,1,fp))){found=0;break;华东交通大学理工学院课程设计报告第10页共19页}if(!(strcmp(tmp,num))){found=1;break;}fseek(fp,sizeof(structstudyInfo)-20,1);}fclose(fp);free(tmp);returnfound;}intaddRecord(structstudyInfo*addOne){FILE*fp;fp=fopen(dat.db,ab);fwrite(addOne,sizeof(structstudyInfo),1,fp);fclose(fp);return1;}intpickOut(){voidcheckDate();intshowInfo(char*strTmp);char*strTmp=malloc(20*sizeof(char));//保存用户输入结果的。while(1){printf(%12s\n,检索学籍);checkDate();printf(请输入学号进行检索(输入end返回主菜单):);scanf(%s,strTmp);if(!(strcmp(end,strTmp)))break;showInfo(strTmp);华东交通大学理工学院课程设计报告第11页共19页system(cls);}free(strTmp);}intshowInfo(char*strTmp){inti;FILE*fp;char*tmp=malloc(20*sizeof(char));intresult;structstudyInfostuinfo={stuinfo.age=0};//使系统自动初始化结构体变量fp=fopen(dat.db,rb);fseek(fp,0,0);for(i=1;;i++){if(!(fread(tmp,20,1,fp))){//state=1;printf(未找到\n);system(pause);result=-1;break;}if(!(strcmp(tmp,strTmp))){//state=2;fseek(fp,-20,1);fread(&stuinfo,sizeof(structstudyInfo),1,fp);printf(学号姓名性别年龄籍贯系别专业班级学籍变化\n%-14s%-7s%-5d%-5d%-8s%-9s%-10s%-9s%s\n,stuinfo.num,stuinfo.name,stuinfo.sex,stuinfo.age,stuinfo.hometown,stuinfo.department,stuinfo.major,stuinfo.classNum,stuinfo.changes);system(pause);华东交通大学理工学院课程设计报告第12页共19页result=((int)ftell(fp))-sizeof(structstudyInfo);break;}fseek(fp,sizeof(structstudyInfo)-20,1);}fclose(fp);free(tmp);returnresult;}intdelOne(){voidcheckDa
本文标题:课程设计模板(新)
链接地址:https://www.777doc.com/doc-3349775 .html