《C语言学生信息管理系统实训报告.docx》由会员分享,可在线阅读,更多相关《C语言学生信息管理系统实训报告.docx(18页珍藏版)》请在第一文库网上搜索。
1、C语言程序设讣实训报告题目:学生信息管理系统院系:信息科技学院专业:电子信息工程姓名:殷浩学号:1152100135指导教师:杨呈永日期:2012年6月26日桂林立3和林支学传息和技等就学生信息管理系统本题目设计目的是训练学生的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和单链表的各种基本操作。本程序中涉及结构体、单链表、文件等方面的知识。通过本程序的训练,使学生能对C语言的文件操作有一个更深刻的了解,掌握利用单链表存储结构实现对学生成绩管理的原理,为进一步开发出高质量的管理信息系统打下坚实的基础。一、问题定义根据实训要求,创建学生信息管理系统,假设系统中包含学生的学号、姓名、年
2、龄、性别、出生年月、地址、电话、E-mai1等信息。设计的学生信息管理系统,需能提供以下功能:系统以菜单方式工作。学生信息录入功能一输入。学生信息浏览功能一输出。查询功能。修改信息功能。按学号删除学生信息功能。程序的运行效果如下图所示。二.系统设计1总体设计采用模块化的程序设计方法,即将较大的任务按照一定的原则分为一个个较小的任务,然后分别设计各个小任务。需要注意的是划分出来的模块应该相对独立但又相关,且容易理解。可以用模块化层次结构图(即模块图)来分析其任务的划分,以下为程序的功能模块设计。2.详细设计学生信息管理系统#inc1ude*IO函数*/inc1ude/*其它说明*/#inc1ud
3、e/*字符串函数*/#defineBUF1EN100/*缓冲区最大字符数*/#define1EN15/*学号和姓名最大字符数,实际请更改*/#defineN100/*最大学生人数,实际请更改structrecord/*结构体*/(charcode1EN+1;/*学号*/charname1EN+1;/*姓名*/intage;/*年龄*/charsex3;/*性别*/chartime1EN+1;/*出生年月*/charadd30;/*家庭地址*/charte11EN+1;/*电话号码*/charmai130;/*电子邮件地址*/stuN;intk=1,n,m;/*定义全局变量*/voidreadf
4、i1e();/*函数声明*/voidseek();voidmodify();voidinsert();voidde1();voiddisp1ay();voidsave();voidmenu();intmain()(whi1e(k)menu();system(pause);return0;)voidhe1p()printf(,n尊敬的用户:您好!”);printf(nnIprintf(unIprintf(nIprintf(unIprintf(nIprintf(unIprintf(nIprintf(nr,);欢迎进入帮助系统!I”);1);1 .进入系统后,先刷新学生信息,再查询!nr,);2 .
5、请按照菜单提示进入数字代号!门;3 .增加学生信息后,请切记保存!nIu);4 .谢谢您的使用!门;n);)voidreadfi1e()/*建立信息*/(char*p=student.txtn;FI1E*fp;inti=0;if(fp=fopen(,student.txt,nru)=NU11)(printf(uOpenfi1e%serror!Strikeanykeytoexit!,p);system(pause);exit(0);)whi1e(fscanf(fp,%s%s%d%s%s%s%s%s,stui.code,stui.name,&stui.age,stui.sex,stui.time,
6、stui.add,stufi.te1,stui.mai1)=8)(i+;i=i;)fc1ose(fp);n=i;Printf(刷新完毕!n);)voidseek。*查找*/(inti,item,f1ag;charsi21;/*以姓名和学号最长长度+1为准*/printf(nu);printf(u-1按学号查询-n);Printf(2.按姓名查询-An”);printf(-3.退出本菜单-n);printf(n,);whi1e(1)(Printf(请选择子菜单编号SCanf(%d”,&item);f1ag=O;switch(item)(case 1:Printf(请输入要查询的学生的学号:n”)
7、;scanf(,%s,s1);fbr(i=O;in;i+)if(strcmp(stui.code,s1)=0)(f1ag=1;Printf(学生学号学生姓名年龄性别出生年月地址电话E-mai1n);printf(unu);printf(%6s%7s%6d%5s%9s%8s%IOs%14sn,stui.code,stu1i.name,stui.age,stui.sex,stui.time,stui.add,stui.te1,stui.mai1);1if(f1ag=O)Printf(该学号不存在!n);break;case 2:Printf(请输入要查询的学生的姓名:n);scanf(,%s,s1
8、);fbr(i=O;in;i+)if(strcmp(stui.name,s1)=0)(f1ag=I;Printf(学生学号学生姓名年龄性别出生年月地址电话E-mai1n);printf(nu);printf(u%6s%7s%6d%5s%9s%8s%IOs%14sn,stui.code,stui.name,stui.age,stui.sex,stui.time,stui.add,stui.te1,stui.mai1);)if(f1ag=O)Printf(该姓名不存在!nr);break;case3:return;defau1t:Printf(请在13之间选择n);)voidmodify。*修改信
9、息*/(inti,item,num;charsex13,s11EN+1,s21EN+1;*以姓名和学号最长长度+1为准*/Printf(请输入要要修改的学生的学号:n“);scanf(,%s,s1);fbr(i=0;in;i+)if(strcmp(stui.code,sI)=O)/*比较字符串是否相等*/num=i;printf(nnn);Printr1修改姓名n”);Pri1Itf(2.修改年龄n”);Printf(3.修改性别n);Printf(4.修改出生年月nu);Primf(”5.修改地址n”);Printf(”6.修改电话号码);Printf(7.修改E-mai1地址n);Prin
10、tfC8.退出本菜单n)printf(un);whi1e(1)(Printf(请选择子菜单编号巧;scanf(H%d,&item);switch(item)(case 1:Printf(”请输入新的姓名:n);scanf(,%s,s2);StrCPy(StUnum.name,s2);break;case 2:Printf(”请输入新的年龄:n);scanf(H%d,&stunum|.age);break;case 3:Printf(”请输入新的性别:n);scanf(,%s,sex1);strcpy(stunum.sex,sex1);break;case 4:Printf(”请输入新的出生年月
11、:n);scanf(%s,s2);strcpy(stunum.time,s2);break;case 5:Prindr请输入新的地址:n);scanf(u%s,s2);strcpy(st1num.add,s2);break;case 6:Printf(”请输入新的电话号码:n);scanf(,%s,s2);strcpy(stunum.te1,s2);break;case 7:Printfc请输入新的E-mai1地址:n);scanf(,%s,s2);strcpy(stunum.mai1,s2);break;case8:return;defau1t:Printf(请在1-8之间选择n);)1vo
12、idSort()/*按学号排序*/iti,j,*p,*q,s;chartempi10;fbr(i=O;ii;j-)if(strcmp(stuj-1.code,stuj.code)0)(strcpy(temp,stuj-1.code);strcpy(stuj-1.code,stuj.code);strcpy(stuj.code,temp);strcpy(temp,stuj-1.name);strcpy(stuj-1.name,stuj.name);strcpy(stuj.name,temp);strcpy(temp,stuj-1.sex);strcpy(stuj-1.sex,stuj.sex);
13、strcpy(stuj.sex,temp);strcpy(temp,stuj-1.time);strcpy(stuj-1.time,stufj.time);strcpy(stuj.time,temp);strcpy(temp,stuj-1.add);strcpy(stuj-1.add,stuj.add);strcpy(stuj.add,temp);strcpy(temp,stu(j-1.te1);strcpy(stuj-1.te1,stufj.te1);strcpy(stuj.te1,temp);strcpy(temp,stuj-1.mai1);strcpy(stuj-1.mai1,stuj.mai1);strcpy(stuj.mai1,temp);p=&stu|j-1.age;q=&stuj.age;s=*q;*q=*p;*p=s;1)voidinsert()*插入函数*/(inti=n,j,f1ag;Printf(”请输入待增加的学生数r);scanf(*%d*,&m);do(f1ag=1;whi1e(f1ag)(f1ag=0;P