学生信息管理系统设计实验报告_第1页
学生信息管理系统设计实验报告_第2页
学生信息管理系统设计实验报告_第3页
学生信息管理系统设计实验报告_第4页
学生信息管理系统设计实验报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

C程序设计实训报告姓 名 专 业 班 级 指导教师 2011年 7 月 13 日目录1、设计题目2、总体设计21系统功能结构图22数据类型定义23全部函数原型定义3、详细设计31模块功能32 函数流程图1Srarch()流程图2del()流程图3.modify() 流程图4、程序测试5、心得体会6、参考文献 1、设计题目 学生信息管理系统设计设计要求:学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:系统以菜单方式工作学生信息录入功能(学生信息用文件保存)-输入学生信息浏览功能-输出查询、排序功能-算法按学号查询按姓名查询学生信息的删除与修改(可选项) 2、总体设计Main()21系统功能结构图Del()Modify()Read()Srarch()Write()(Name)srarch(NO.)srarch图2-1系统功能结构图22数据类型定义struct studentchar no15; char name30; int age; char sex2; char bir30; char add30; char tel13; char e_mail30; stuN;23全部函数原型定义(1) void main() 主函数用语完成各个函数返回的指令(2) int write(struct student stuN)输入(或添加)学生的信息(3) int search(struct student stu)查询学生信息(4) int read(struct student stuN)浏览学生信息(5) int modify(struct student stuN)修改学生信息(6) int del(struct student stuN)删除学生信息3、详细设计 31模块功能主要有以下几个模块函数构成:write() /录入或者添加学生的信息search() /用于查询系统中存储的学生信息read() /用于浏览系统中存储的学生信息modify() /用于修改指定系统中存储的学生信息del() /用于删除指定系统中存储的学生信息32 函数流程图在程序编写过程中使用函数的调用,独立完成各个模块的功能。1Srarch()流程图 开始查询函数的流程图(如31)。打开存储文件读入已存学生信息ture学号查询break输入1falseture姓名查询break输入2falseDefault:语句输出查询结果关闭文件并保存结束图31查询函数的流程图2del()流程图开始删除函数流程图如图32打开存储文件读入已存的学生信息选择输入删除学生的学号否查找该学生信息?是删除操作退出修改选项关闭文件并保存文件结束图32删除函数流程图3.modify() 流程图 修改学生信息函数流程图(如图33)。开始打开学生信息存储文件读入已存的学生信息选择要修改的学号否查找该学生信?息是选择需要修改项修改修改退出修改选项并保存关闭文件并保存所有内容结束图33修改函数流程图4、程序测试测试运行如下:程序运行后进入系统界面(图41)。总体显示该系统的功能菜单列表。4-1 系统功能菜单选择1进入录入系统,需要输入的信息包括学号姓名等学生信息,系统运行界面如(图42)。42系统录入菜单选择2进入学生查询系统(如图43),在查询系统中有两种查询方式 ( 选择 1 按照学号查询; 选择2 按照姓名查询)。43查询选项按照查询方式运行后显示结果并返回系统功能菜单以供后面操作选项(如图44)。44查询结果选择 3 进入修改学生信息系统界面如图(45), 并可以按照提示选择需要修改的选项并可进行操作。46修改选项菜单选择 4 进入学生信息浏览界面(如图46),并显示出所有学生的信息。46浏览信息选择 5 进入删除学生信息菜单系统(如图47),并提示按照学号进行删除,输入要删除学生的学号。47删除菜单5、心得体会在这两周的C语言实训,虽然时间略显仓促,但却让我学到了很多实际运用的技能!真知总是出于实践的,自己动手编写程序经过运行调试最终完成实训,从中获得了很多实用知识。软件的开发技能必须是从小程序慢慢的练习,自己动手写与运行调试中获得的。在实训中的第一步是编写功能较为单一的小程序,虽然是小程序,但所用的知识却都是我们所学习的重点知识。在做题的过程中让我们把这些知识复习了一遍,强化了知识!平时我们学C语言视乎都是为了考试或者做一些比较常规的题目,而这次实训却给我们的将所学知识运用于解决实际问题的机会,让人更有激情,这就是编写软件的在雏形,也让我们感受到了编写软件程序的乐趣。但是不仅仅是如此,更为重要的是在运用所学知识的过程中,记住这些知识,并能够广泛的运用!在这次的实训中让我更充实的学到程序编写的技能,更激发学习程序编写与软件开发的乐趣。6、参考文献1 韦良芬, C语言程序设计经典案例教程 M 北京 :北京大学出版社 ,2010.62 潭浩强, C语言程序设计M,北京,清华大学出版社,19983 王立柱, CC+与数据结构, 北京:清华大学出版社,20024 李大友, C语言程序设计. 清华大学出版社,1999附录一程序源代码:#include /*头文件*/#include /*头文件*/#include /*头文件*/#include /*头文件*/#include /头文件#define PF printf #define N 500 struct studentchar no15; /*学号*/char name30; /*姓名*/int age; /*年龄*/char sex2; /*性别*/char bir30; /*出生年月*/char add30; /*地址*/char tel13; /*电话*/char e_mail30; /*电子邮件*/stuN;int n;void main() int num,i; int write(struct student stuN); int search(struct student stuN); int modify(struct student stuN); int read(struct student stuN); int del(struct student stuN); for(i=0;i+) PF( n); PF(*学生信息管理系统*n); PF( 系统功能菜单 n); PF( n); PF(=n); PF( 1.录入学生信息. n); PF( 2.查询学生信息. n); /里面包括按学/查询,按姓名查询 PF( 3.修改学生信息. n); PF( 4.浏览学生信息. n); PF( 5.删除学生信息. n); PF( 6.退出学生信息系统. n); PF(=n); PF(请输入1-6的数字.n); scanf(%d,&num); switch(num) case 1:write(stu); system(cls); break; case 2:system(cls);search(stu); break; case 3:modify(stu); system(cls); break; case 4:system(cls);read(stu); break; case 5:del(stu); system(cls); break; case 6: system(cls); return; default:PF(errorn); / 录入学生信息/int write(struct student stuN) FILE *fp1,*fp2; int i,n; if(fp2=fopen(stu_list,rb)=NULL) /*只读方式打开,同时可以判断文件是否存在*/ if(fp1=fopen(stu_list,wb)=NULL) /用只写方式打开,就可新建文 printf(建立文件出错n); else /如果文件存在,用ab+(为读写打开一个二进制文件)的方式打开 if(fp1=fopen(stu_list,ab+)=NULL) printf(打开文件出错n); PF(请输入你要输入的学生的人数n); scanf(%d,&n); for(i=0;in;i+) PF(请输第%d个学生的学号n,i+1); scanf(%s,stui.no); PF(请输入第%d个学生的姓名.n,i+1); scanf(%s,&); PF(请输入第%d个学生的年龄.n,i+1); scanf(%d,&stui.age); PF(请输入第%d个学生的性别.n,i+1); scanf(%s,&stui.sex); PF(请输入第%d个学生的出生年月.n,i+1); scanf(%s,&stui.bir); PF(请输入第%d个学生的地址.n,i+1); scanf(%s,&stui.add); PF(请输入第%d个学生的电话.n,i+1); scanf(%s,&stui.tel); PF(请输入第%d个学生的电子邮件.n,i+1); scanf(%s,&stui.e_mail); printf(录入信息完毕n); getchar(); fwrite(&stui,sizeof(struct student),1,fp1); system(cls); /把内存中的结/构体存到硬盘上去 fclose(fp1); return 1;/ 查询学生信息/int search(struct student stu) int a,i; char no15,name30; FILE *fp; if(fp=fopen(stu_list,rb)=NULL) printf(文档未建立!); return 0; for(i=0;i+) if(fread(&stui,sizeof(struct student),1,fp)!=1) break; PF(按照学号查找,请输入1n); PF(按照姓名查找,请输入2n); scanf(%d,&a); switch(a) case 1:PF(请输入要查找的同学的学号.n); /*按照姓名来查找学生信息*/ scanf(%s,no); PF(学号t姓名t年龄t性别t生日 地址 电话te_mailn); for(i=0;iN;i+) if(strcmp(no,stui.no)=0) PF(%st%st%dt%st%st%st%st%sn,stui.no,,stui.age, stui.sex,stui.bir,stui.add,stui.tel,stui.e_mail); break; break; case 2:PF(请输入要查找的同学的姓名.n); /*按照学号来查找学生信息*/ scanf(%s,name); PF(学号t姓名t年龄t性别t生日 地址 电话te_mailn); for(i=0;iN;i+) if(strcmp(name,)=0) PF(%st%st%dt%st%st%st%st%sn,stui.no,,stui.age, stui.sex,stui.bir,stui.add,stui.tel,stui.e_mail); break; break; default: PF(errorn); return 1;/ 浏览学生信息/int read(struct student stuN) int i; FILE *fp; if(fp=fopen(stu_list,rb)=NULL) printf(没有发现学生档案!); return 0; PF(学号t姓名t年龄t性别t生日t地址t电话te_mailn); for(i=0;i+) if(fread(&stui,sizeof(struct student),1,fp)!=1) break; PF(%st%st%dt%st%st%st%st%sn,stui.no,,stui.age, stui.sex,stui.bir,stui.add,stui.tel,stui.e_mail); return 1;/ 修改学生信息/int modify(struct student stuN) FILE *fp; int i,x,y=1,num,count=0; char no15; if(fp=fopen(stu_list,rb)=NULL) printf(没有发现学生档案!); return 0; for(i=0;i+) if(fread(&stui,sizeof(struct student),1,fp)!=1) break; count+; fclose(fp); PF(请输入你要修改的学生的学号n); scanf(%s,no); for(i=0;icount;i+) if(strcmp(no,stui.no)=0) num=i; PF(t1.姓名n); PF(t2.年龄n); PF(t3.性别n); PF(t4.出生年月n); PF(t5.地址n); PF(t6.电话n); PF(t7.电子邮件n); PF(t8.退出并保存修改n); for(i=0;y;i+) PF(请输入你要修改的学生信息的选项n); scanf(%d,&x); switch(x) case 1:PF(请输入新的姓名:n); /*修改学生姓名*/ scanf(%s,); break; case 2: PF(请输入新的年龄:n); /*修改学生年龄*/ scanf(%d,&stunum.age);break; case 3: printf(请输入新的性别:n); /*修改学生性别*/ scanf(%s,stunum.sex); break; case 4: printf(请输入新的出生年月:n); /*修改学生出生年月*/ scanf(%s,stunum.bir); break; case 5: printf(请输入新的地址:n); /*修改学生地址*/ scanf(%s,stunum.add); break; case 6: printf(请输入新的电话号码:n); /*修改学生的电话*/ scanf(%s,stunum.tel); break; case 7: printf(请输入新的e_mail地址:n); /*修改学生的e_mail*/ scanf(%s,stunum.e_mail); break; case 8: y=0; break; default:printf(请在选择操作选项n); if(fp=fopen(stu_list,wb)=NULL) printf(新建文件错误!); return 0; for(i=

温馨提示

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

评论

0/150

提交评论