收藏 分享(赏)

学生信息管理系统设计实验报告.doc

上传人:精品资料 文档编号:9798424 上传时间:2019-09-04 格式:DOC 页数:20 大小:230.50KB
下载 相关 举报
学生信息管理系统设计实验报告.doc_第1页
第1页 / 共20页
学生信息管理系统设计实验报告.doc_第2页
第2页 / 共20页
学生信息管理系统设计实验报告.doc_第3页
第3页 / 共20页
学生信息管理系统设计实验报告.doc_第4页
第4页 / 共20页
学生信息管理系统设计实验报告.doc_第5页
第5页 / 共20页
点击查看更多>>
资源描述

1、C 程序设计实训报告姓 名 专 业 班 级 指导教师 2011 年 7 月 13 日I目录1、设计题目 2、总体设计 21 系统功能结构图 .22 数据类型定义 .23 全部函数原型定义 .3、详细设计 31 模块功能 .32 函数流程图 1Srarch()流程图 2del()流程图 .3.modify() 流程图 4、程序测试 5、心得体会 6、参考文献 1、设计题目学生信息管理系统设计设计要求:学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:系统以菜单方式工作学生信息录入功能(学生信息用文件保存)-输入学生信息浏览功

2、能-输出查询、排序功能-算法按学号查询按姓名查询学生信息的删除与修改(可选项)2、总体设计21 系统功能结构图图 2-1 系统功能结构图22 数据类型定义struct studentMain()Write() Srarch() Read() Modify() Del()(NO.)srarch (Name)srarchchar no15; char name30; int age; char sex2; char bir30; char add30; char tel13; char e_mail30; stuN;23 全部函数原型定义(1) void main() 主函数用语完成各个函数返回的

3、指令(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() /用于浏览系统中存储的学生信息

4、modify() /用于修改指定系统中存储的学生信息del() /用于删除指定系统中存储的学生信息32 函数流程图在程序编写过程中使用函数的调用,独立完成各个模块的功能。1Srarch() 流程图 查询函数的流程图(如 31) 。图 31 查询函数的流程图读入已存学生信息输出查询结果打开存储文件开始结束输入 1 break输入 2 breakDefault:语句tureturefalsefalse学号查询姓名查询关闭文件并保存2del()流程图删除函数流程图如图 32图 32 删除函数流程图3.modify() 流程图 修改学生信息函数流程图(如图 33) 。打开存储文件读入已存的学生信息选择

5、输入删除学生的学号删除操作关闭文件并保存文件结束开始退出修改选项查找该学生信息?是否图 33 修改函数流程图4、程序测试测试运行如下:程序运行后进入系统界面(图 41) 。总体显示该系统的功能菜单列表。4-1 系统功能菜单打开学生信息存储文件读入已存的学生信息选择要修改的学号退出修改选项并保存关闭文件并保存所有内容结束开始选择需要修改项修改修改查找该学生信?息否是选择 1 进入录入系统,需要输入的信息包括学号姓名等学生信息,系统运行界面如(图 42) 。42 系统录入菜单选择 2 进入学生查询系统(如图 43) ,在查询系统中有两种查询方式 ( 选择 1 按照学号查询; 选择 2 按照姓名查询

6、)。43 查询选项按照查询方式运行后显示结果并返回系统功能菜单以供后面操作选项(如图44) 。44 查询结果选择 3 进入修改学生信息系统界面如图(45), 并可以按照提示选择需要修改的选项并可进行操作。46 修改选项菜单选择 4 进入学生信息浏览界面(如图 46),并显示出所有学生的信息。46 浏览信息选择 5 进入删除学生信息菜单系统(如图 47),并提示按照学号进行删除,输入要删除学生的学号。47 删除菜单5、心得体会在这两周的 C 语言实训,虽然时间略显仓促,但却让我学到了很多实际运用的技能!真知总是出于实践的,自己动手编写程序经过运行调试最终完成实训,从中获得了很多实用知识。软件的开

7、发技能必须是从小程序慢慢的练习,自己动手写与运行调试中获得的。在实训中的第一步是编写功能较为单一的小程序,虽然是小程序,但所用的知识却都是我们所学习的重点知识。在做题的过程中让我们把这些知识复习了一遍,强化了知识!平时我们学 C 语言视乎都是为了考试或者做一些比较常规的题目,而这次实训却给我们的将所学知识运用于解决实际问题的机会,让人更有激情,这就是编写软件的在雏形,也让我们感受到了编写软件程序的乐趣。但是不仅仅是如此,更为重要的是在运用所学知识的过程中,记住这些知识,并能够广泛的运用!在这次的实训中让我更充实的学到程序编写的技能,更激发学习程序编写与软件开发的乐趣。6、参考文献1 韦良芬,

8、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

9、 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=

10、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“,switch(num)case 1:write(stu);system(“cls“);break;case 2:syste

11、m(“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) /*只读方式打开,同时可以

12、判断文件是否存在*/if(fp1=fopen(“stu_list“,“wb“)=NULL) /用只写方式打开,就可新建文printf(“建立文件出错n“);else /如果文件存在,用 ab+(为读写打开一个二进制文件)的方式打开if(fp1=fopen(“stu_list“,“ab+“)=NULL)printf(“打开文件出错n“);PF(“请输入你要 输入的学生的人数n“);scanf(“%d“,for(i=0;in;i+)PF(“请输第 %d 个学生的学号n“,i+1);scanf(“%s“,stui.no);PF(“请输入第 %d 个学生的姓名.n“,i+1);scanf(“%s“,P

13、F(“请输入第 %d 个学生的年龄.n“,i+1);scanf(“%d“,PF(“请输入第 %d 个学生的性别.n“,i+1);scanf(“%s“,PF(“请输入第 %d 个学生的出生年月.n“,i+1);scanf(“%s“,PF(“请输入第 %d 个学生的地址.n“,i+1);scanf(“%s“,PF(“请输入第 %d 个学生的电话.n“,i+1);scanf(“%s“,PF(“请输入第 %d 个学生的电子邮件.n“,i+1);scanf(“%s“,printf(“录入信息完毕n“);getchar();fwrite( system(“cls“); /把内存中的结/构体存到硬盘上去fc

14、lose(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(PF(“按照学号 查找,请输入 1n“);PF(“按照姓名 查找,请输入 2n“);scanf(“%d“,switch(a)case 1:PF(“请输入要查找的同学的学号.n“); /*按照姓名来查找学生信息*/scanf(“%s“,no);PF(“学号

15、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.name,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

16、;i+)if(strcmp(name,stui.name)=0)PF(“%st%st%dt%st%st%st%st%sn“,stui.no,stui.name,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(

17、“学号t 姓名t 年龄t 性别t 生日t 地址t 电话te_mailn“);for(i=0;i+)if(fread(PF(“%st%st%dt%st%st%st%st%sn“,stui.no,stui.name,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(“没有

18、发现学生档案!“);return 0;for(i=0;i+)if(fread(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“

19、,switch(x)case 1:PF(“请输入新的姓名:n“); /*修改学生姓名*/scanf(“%s“,stunum.name); break; case 2: PF(“请输入新的年龄:n“); /*修改学生年龄*/scanf(“%d“,break; case 3: printf(“请输入新的性别:n“); /*修改学生性别*/scanf(“%s“,stunum.sex); break; case 4: printf(“请输入新的出生年月:n“); /*修改学生出生年月*/scanf(“%s“,stunum.bir); break; case 5: printf(“请输入新的地址:n“)

20、; /*修改学生地址*/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(“新建文件错误!“);

21、return 0;for(i=0;icount;i+)if(fwrite(fclose(fp);return 1;/ 删除学生信息/int del(struct student stuN) int i,m=0,j,count=1; char no15;FILE *fp;if(fp=fopen(“stu_list“,“rb“)=NULL)printf(“文档未建立!“);return 0;for(i=0;i+)if(fread(count+; /count 是计数器,用于统计从文件中读取了几次fclose(fp);PF(“输入要 删除的学生的学号n“);scanf(“%s“,no);for(i=0;icount;i+) if(strcmp(no,stui.no)=0)m=1;j=i; /j 的作用是记录下要删除的信息在数组中的位置break;if(m!=1)PF(“不存在该学生 n“);elsePF(“删除成功 n“);n-;if(fp=fopen(“stu_list“,“wb“)=NULL) /用 wb(为读写建立一个新的二进制文件)方式打开,就可删除原文件printf(“文档未建立!“);return 0;for(i=0;icount-1;i+)if(i!=j)fwrite(fclose(fp);return 1;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报