为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

信息管理与信息系统专业实习报告

2017-09-17 30页 doc 189KB 61阅读

用户头像

is_358746

暂无简介

举报
信息管理与信息系统专业实习报告信息管理与信息系统专业实习报告 防灾科技学院 实习报告书 实习题目: 信息管理与信息系统认识实习(C语言) 135041310 ...... 学号: 姓名: 专业: 信息管理与信息系统 系别: 灾害信息工程系 2014/9/6-9/13 6#1006 实习时间: 实习地点: 指导教师: 刘颖 考勤成绩: 实习态度: 任务完成: 实习报告: 实习日志: 实习总成绩 指导 教师 评语 指导教师(签名): 年 月 日 防灾科技学院 灾害信息工程系 2014年制 实习目的:(各部分内容中,中文用宋体、小四...
信息管理与信息系统专业实习报告
信息管理与信息系统专业实习 防灾科技学院 实习报告书 实习题目: 信息管理与信息系统认识实习(C语言) 135041310 ...... 学号: 姓名: 专业: 信息管理与信息系统 系别: 灾害信息工程系 2014/9/6-9/13 6#1006 实习时间: 实习地点: 指导教师: 刘颖 考勤成绩: 实习态度: 任务完成: 实习报告: 实习日志: 实习总成绩 指导 教师 评语 指导教师(签名): 年 月 日 防灾科技学院 灾害信息工程系 2014年制 实习目的:(各部分内容中,中文用宋体、小四号字书写;英文和数字一律用Times New Roman书写。行距均为1.5倍,左右无缩进,首行缩进2个字符,红字部分在报告完成时都要删除) 通过该课程,使学生初步了解本专业毕业生能够从事的工作单位性质及工作岗位;了解不同岗位对专业知识及能力的要求;了解不同单位信息化建设的现状;熟练掌握C语言程序方法,能应用C语言编程解决实际问题。 通过本课程的学习,使学生进一步明确学习目标、增强学习动力、培养学习兴趣,为后继专业课程的学习打下坚实的基础。 实习任务概述: 任务一:电子通讯录管理系统的设计与实现 其中主要完成以下任务: 1. 对电子通讯录管理系统的需求分析 2. 电子通讯录管理系统的总体设计 3. 电子通讯录管理系统的详细设计 4. 电子通讯录管理系统的实现 5. 电子通讯录管理系统的测试 任务二:学生成绩管理系统的设计与实现 其中主要完成以下任务: 1. 对学生成绩管理系统的需求分析 2. 学生成绩管理系统的总体设计 3. 学生成绩管理系统的详细设计 4. 学生成绩管理系统的实现 5. 学生成绩管理系统的测试 实习所用软件简介: Visual C++ 6.0,简称VC或者VC6.0,是微软推出的一款C++编译器,将“高级语言”翻译为“机器语言(低级语言)”的程序。Visual C++是一个功能强大的可视化软件开发工具。自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问世,Visual C++已成为专业程序员进行软件开发的首选工具。虽然微软公司推出了 Visual C++.NET(Visual C++7.0),但它的应用有很大的局限性,只适用于Windows 2000、Windows XP和Windows NT4.0。所以实际中,更多的是以Visual C++6.0为平台。 实习内容及步骤: 任务一:电子通讯录管理系统的设计与实现 1 1 系统需求分析 (1)文件操作:从给定的文件中读取联系人的信息。 (2)显示联系人的信息:用户可以了解联系人的详细信息,可以显示某个联系人信息,也可以显示全部联系人信息。 (3)查询操作:可按姓名精确查询联系人的信息。 (4)添加操作:当有新的联系人需要添加时,可以加入到电子通讯录中,便于管理。 (5)删除操作:当联系人的信息不再需要了,可以从电子通讯录中删除,删除时候需要给用户“确认删除”的提示语据。 (6)排序操作:对联系人按姓名排序,是按照联系人姓名的拼音字母顺序对联系人进行排序。 (7)简单的操作界面:用户进入系统后,对其有哪些功能一目了然,节约用户时间,方便用户的使用。 2 系统环境要求 编译环境:Visual C++6.0 操作系统:Windows XP 客户端:Windows 95/98/me/Xp/2000/2003, Unix, Linux,Vista,Mac OS各版 3 系统功能及模块图 该系统由以下几个模块构成:用户界面模块,用户操作模块,文件操作模块;用户操作界面包括添加联系人,删除联系人,查询联系人,修改联系人,对联系人进行排序等功能;文件操作包括文件读和文件写等功能。 2 修改联系人资料 查看所有联系人 用户界面板块 删除联系人 用户操作模块 查询联系人 电子通讯录 添加联系人 文件操作模块 保存 退出 4 系统详细设计 4.1 系统数据结构 在通讯录管理系统里,最主要的数据信息就是联系人信息,由多个基本类型构成,因此我们选 择结构体数据类型。联系人:(编号,联系人姓名,电子邮件,地址,联系人电话)。这样有利于添 加联系人、修改联系人、删除联系人等操作。 #define N 100 //假定联系人数据总量为100 int i=1; struct records { char name[20]; //联系人姓名 char email[30]; //联系人电子邮箱 char homeaddr[60]; //联系人地址 char telephone[13]; //联系人电话 3 }records[N]={"","",""},h; 4.2 主要函数设计 为了实现电子通讯录具有多种功能,我们需要多种调用函数如下: void Data_Up(); //把文件数据存入内存 void Order(); //对联系人进行姓名排序 void Data_Show(int a); //显示联系人资料 void Add_People(char name[20]); //添加联系人 int Search_Name(char namestr[20]); //查找联系人 void DeletePeo(); //删除联系人 void Change(char name[20]); //修改联系人资料 void Data_Save(); //对数据进行保存 void Data_Write(); //写文件 4.3 系统主要流程图 开始菜单 选择操作 查添保修退查删 询加存 改出 看除 联联联所联 结束 系系系有系 人 人 人联人 资系 料 人 图4.1 系统主流程图 4 5 系统实现 5.1 主界面的实现 代码如下:主要是用来启动程序,触发其他函数。显示主菜单,给用户以选择,方便使用。 void main() //主函数 { int ch,m,n; char tp,nametemp[20]; system("color F9"); printf("\t\t??????????电子通讯录??????????\n"); printf("\t\t\t \n"); printf("\t\t----------------请选择您需要的操作----------------\n"); printf("\t\t\t===1-> 修改联系人资料\n\t\t\t===2-> 查看所有的联系人\n\t\t\t===3-> 删除联系人\n\t\t\t===4-> 查询联系人\n\t\t\t===5-> 添加联系人\n\t\t\t===6-> 保存\n\t\t\t===7-> 退出\n\n"); printf("(=^T^=) (=^T^=) (=^T^=) (=^T^=) (=^T^=) (=^T^=) (=^T^=) (=^T^=)\n");//将文件放在中间,方便看 scanf("%d",&ch); while(ch!=7)//进行操作选择 { switch(ch) { case 1:printf("请输入要修改的联系人姓名:");scanf("%s",nametemp);Change(nametemp);break; case 2:printf("\t\t\t联系人资料\n"); printf("姓名\t\t电子邮箱\t家庭地址\t电话\n"); for(m=0; m<=i; m++) { Data_Show(m); }break;//显示已有联系人资料 case 3:DeletePeo();break; case 4:printf("请输入你要查询的人的姓名:"); 5 scanf("%s",nametemp);n=Search_Name(nametemp); if(n>=i) { printf("没有您要找的联系人~\n"); } else { printf("\t\t\t联系人资料\n"); printf("姓名\t\t电子邮箱\t家庭地址\t电话\n"); Data_Show(n); }break; case 5:printf("请输入待添加的联系人的姓名:"); scanf("%s",nametemp);Add_People(nametemp);break; case 6:printf("保存数据吗,确定按8键,否则按任意键选择其他操作~\n"); scanf("%d",&tp); if(tp==8) { Data_Save(); }break;//将数据保存入文本文件 case 7:return; } printf("\n"); printf("\t\t\t------------请选择您需要的操作-------------\n"); printf("\t\t\t \n"); printf("\t\t\t=========1->修改联系人资料;\n\t\t\t=========2->查看所有的联系 人;\n\t\t\t=========3->删除联系人;\n\t\t\t=========4->查询联系人;\n\t\t\t=========5->添加联系 人;\n\t\t\t=========6->保存;\n\t\t\t=========7->退出\n\n"); printf("(=^T^=) (=^T^=) (=^T^=) (=^T^=) (=^T^=) (=^T^=) (=^T^=) (=^T^=)\n");//将文件放在中间,方便看 scanf("%d",&ch); } 6 } 图5.1 主界面的实现 5.2 修改联系人资料操作的实现 void Change(char name[20])//修改联系人资料 { int n,m; char string[60]; n=Search_Name(name); if(n>i) { printf("您要修改的联系人不存在~\n"); return; } printf("\t\t\t该联系人资料\n"); printf("姓名\t\t电子邮箱\t家庭地址\t电话\n"); Data_Show(n); printf("请选择你要修改的资料:\n1->修改联系人姓名;\n2->修改联系人电子邮箱;\n3->修改联系人 地址;\n4->修改联系人电话;\n5->退出~\n\n"); scanf("%d",&m); while(m!=5) { switch(m) { case 1:printf("请输入新的姓名:");scanf("%s",string);strcpy(records[n].name,string);break;//替换 case 2:printf("请输入新的电子邮箱:");scanf("%s",string);strcpy(records[n].email,string);break;// 7 替换 case 3:printf("请输入新的地址:");scanf("%s",string);strcpy(records[n].homeaddr,string);break;// 替换 case 4:printf("请输入新的电话:");scanf("%s",string);strcpy(records[n].telephone,string);break;// 替换 case 5:return; } printf (" 请继续选择你要修改的资料:\n1->修改联系人姓名;\n2->修改联系人电子邮箱;\n3->修改联系人地址;\n4-> 修改联系人电话;\n5->退出~\n\n"); scanf("%d",&m); } } 图 5.2 修改联系人操作的实现 5.3查询所有联系人操作的实现 8 代码如下:主要是对已有联系人进行全部查看,并用排序的方式打印出来,更加易于查询。 void Order()//对联系人进行姓名排序 { int j,k; for(j=0; j0) { h=records[j]; records[j]=records[k]; records[k]=h; } } } void Data_Show(int a)//显示联系人资料 { void Order(); printf("%-16s%-16s%-16s%s\n",records[a].name,records[a].email,records[a].homeaddr,records[a].tele phone); } 9 图 5.3查看所有联系人操作的实现 5.4删除联系人操作的实现 代码如下:主要是用作信息删除。 void DeletePeo()//删除联系人 { char nametemp[20]; int tp,n; if(i<0) { printf("\n没有可删除的联系人\n"); return; } printf("请输入您要删除的联系人的姓名:"); scanf("%s",nametemp); n=Search_Name(nametemp); if(n>i) { printf("无此人~\n"); printf("\n"); return; 10 } printf("\t\t\t该联系人资料\n"); printf("姓名\t\t电子邮箱\t家庭地址\t电话\n"); Data_Show(n); printf("确定要删除吗,确认按1,否则按任意键返回上一级菜单~\n"); scanf("%d",&tp); if(tp==1) { int j; for(j=n+1; j<=i; j++)//删除就是将该位置后的联系人数据都依次向前移一位,起覆盖作用 { strcpy(records[j-1].name,records[j].name); strcpy(records[j-1].email,records[j].email); strcpy(records[j-1].homeaddr,records[j].homeaddr); strcpy(records[j-1].telephone,records[j].telephone); } i--; } else return; } 11 图 5.4 删除联系人和联系人不存在时操作的实现 5.5查询联系人操作的实现 代码如下:主要可以帮助用户实现精确查找到想要搜索的联系人的信息。 int Search_Name(char namestr[20])//查找联系人 { int j;//不考虑同名的人 for(j=0; j<=i; j++) { if(strcmp(namestr,records[j].name)==0) break;//确定是否存在联系人 } return j;//返回联系人在数组中的下标 } 图 5.5查询联系人和联系人不存在时操作的实现 5.6添加联系人操作的实现 12 代码如下:主要是为了再有新联系人时,可以方便添加。 void Add_People(char name[20])//添加联系人 { int n,j; for( j=0; j0) break;//确定所添加的联系人插入的位置 for(n=i; n>=j; n--)//将插入位置后的联系人数据依次向后移一位 { strcpy(records[n+1].name,records[n].name); strcpy(records[n+1].email,records[n].email); strcpy(records[n+1].homeaddr,records[n].homeaddr); strcpy(records[n+1].telephone,records[n].telephone); } i++; strcpy(records[j].name,name);//输入联系人的资料 printf("\n请输入联系人的电子邮箱:"); scanf("%s",records[j].email); printf("\n请输入联系人的家庭地址:"); scanf("%s",records[j].homeaddr); printf("\n请输入联系人的电话:"); scanf("%s",records[j].telephone); printf("添加成功~\n"); printf("添加的联系人信息为:%d,%s",j,records[j].name); } 13 图 5.6 添加联系人操作的实现 5.7保存操作的实现 代码如下:在进行修改联系人、添加联系人等操作后,对新的联系人数据进行保存,以便下次 打开时用的是最新数据 void Data_Write() //写文件 { int y; FILE *fp; fp=fopen("record.txt","wt+"); for(y=0;y<=i;y++) { fprintf(fp,"%s %s %s %s\n",records[y].name,records[y].email,records[y].homeaddr,records[y].telepho ne); } fprintf(fp,"%s","stop"); fclose(fp); //防止文件读写不正常 } void Data_Save()//对数据进行保存 14 { int j; FILE *fp; fp=fopen("record.txt","wt+");//对文本文件进行读写 for(j=0; j<=i; j++) { fprintf(fp,"%s %s %s %s\n",records[j].name,records[j].email,records[j].homeaddr,records[j].telephone) ; }//写入文件 fprintf(fp,"%s","stop");//以stop为结尾来确保下次正确能打开 fclose(fp); } 图 5.7.1 保存联系人操作的实现 图5.7.2 保存后自动生成的文本 任务二:学生成绩管理系统的设计与实现 1 系统需求分析 15 现在学校里的学生越来越多,老师的压力也就越来越大。学生每次的成绩管理,排名等等都是 一件很麻烦的事情,工作量非常的大。因此需要一个程序,来减轻他们的负担,方便他们工作。 1.文件操作:保存和读取 2.简易提醒的操作菜单 3.添加、查询、修改、删除的功能 4.查看所有的成绩 5.排序功能,可以按各种需求来对成绩进行排序 2 系统环境要求 编译环境:Visual C++6.0 操作系统:Windows XP 客户端:Windows 95/98/me/Xp/2000/2003, Unix, Linux,Vista,Mac OS各版 3 系统功能及模块图 (1)文件操作 1) 系统退出时,把数据保存到文件中。 2) 再次登陆的时候从文件中读取数据。 (2)实现简易的提示菜单界面,便于操作使用。 (3)录入数据:首次登录系统,数据从键盘录入得到。 (4)增加数据:增加学生记录。 (5)浏览数据: 1) 浏览全部信息; 2) 浏览某个给定的记录信息; (6)查询操作: 1)按学号查询; 2)按姓名查询; 3)查询成功给出查询结果,查询失败给出提示信息; (7)删除操作:查询待删除的记录,给出删除确认提示,删除之后进行文件存储操作。 16 (8)修改操作:按照一定方式修改记录的各个属性,给出确认修改操作,修改之后进行文件存储操作 (9)排序操作:按照成绩对记录进行升序或降序排序。 手动输入 输入模块 文件导入 更新模块 按学号查询 查询模块 按姓名查询 成 绩添加模块 管 按单门成绩排序 理 系删除模块 统 按平均成绩排序 排序模块 按总成绩排序 文件模块 系统登陆界面 用户界面模块 管理员界面 普通用户界面 4 系统详细设计 4.1 系统数据结构 为了将学生成绩完整的存储一起,因为由多种基本类型构成,因此我们用结构体来完成这个数 据类型。结构体的内容有:学号,姓名,成绩1,成绩2,成绩3,总成绩,平均成绩。 代码如下: #define N 50 int i=0; 17 struct { char num[8]; //学号 char name[10]; //姓名 int score[5]; //分数 }student[N],stutemp; 4.2 主要函数设计 为了使学生成绩管理方便,我们需要多种函数来实现这个系统的功能: void Manager(); //管理员操作界面 void User(); //普通用户操作界面 void Input_Data(); //手动输入操作 void xue(); //普通用户登录时以只读方式打开成绩文件 void Up_Data(); //读取硬盘文件 void Count_Score(); //计算平均成绩和总成绩 void Print_Data(int n); //显示学生信息 void Search_Infor(); //查找学生信息 int Search_Num(); //按学号查找学生信息 int Search_Name(); //按姓名查找联系人信息 void Sort_Data(); //按成绩排序操作 void Delete_Data(); //删除信息操作 void Insert_Data(); //添加学生信息 void Modify_Data(); //修改信息操作 void Save_Data(); //保存信息操作 void Login_MFace(); //进入登陆界面 int Password(); //管理员登录时的密码验证 4.3 系统主要流程图 18 学号 开始 录入选1 数 据 姓名 登录 界 面 单 科 成 绩 更新 选2 数 据 管 理 按学号 员 操查询选3 选1 数 据 作 按姓名 界 面 添加选4 数 据 删除选5 数 据 按单科 成绩排序 选6 排 序 按总分 保存选7 数 据 选0 退出 按学号 查询选1 普成 绩 按姓名 通 用 选2 户成绩按单科选2 排 序 登排序排 按总分 录序 界退出 选0 面 选3 结束 5 系统实现 19 5.1主界面的实现 代码如下: void main() { int n; system("color F9"); printf("\t\t\t欢迎使用成绩管理系统\n"); printf("\t\t\t===================="); printf("\n请选择用户身份:\n1->管理员登录\n2->普通用户登录\n3->退出\n"); scanf("%d",&n); while(n!=3) { if(n==1) { Password(); } if(n==2) {User();break;} if(n!=1&&n!=2)printf("\n\n选择错误,请重新输入~"); printf("\n\t欢迎使用成绩管理系统\n请选择用户身份:\n1->管理员登录\n2->普通用户登录\n3->退 出\n"); scanf("%d",&n); } } 5.2管理员界面 代码如下: 20 int Password() { char pw[50]; char * syspw="abc"; int i=0; printf("请输入密码:\n"); while(i<3) { scanf("%s",pw); if(strcmp(pw,syspw)!=0) { printf("密码错误,请重新输入!\n"); i++; } else { printf("密码正确~\n"); system("pause"); Manager(); } } printf("连续3次输入错误,退出~\n"); system("pause"); return 0; } void Manager() { int j,n,m; getchar(); printf("\n\n请选择数据输入方式:\n1->手动输入\n2->文件导入\n"); scanf("%d",&n); 21 if(n==1)Input_Data(); if(n==2)Up_Data(); if(n!=1&&n!=2) Manager(); Count_Score(); Login_MFace(); scanf("%d",&m); while(m!=0) { switch(m) { case 0:return; case 1:for(j=0; j 退出\n1-> 显示全部学生信息\n2-> 查询信息\n3-> 按程序排序\n4-> 修改信息 22 \n5-> 删除信息\n6-> 添加信息\n7-> 保存信息\n"); printf("======================================================================= =========\n"); } 5.3手动输入操作的实现 录入学生成绩。代码如下: void Input_Data() //手动输入学生成绩 { int a,b,j,pd1; Up_Data(); for(a=i; a=0)break; printf("输入错误,请重新输入:"); } printf("\n请输入学生成绩:"); for(b=0;b<100;b++) { scanf("%d",&student[a].score[1]); if(student[a].score[1]<=100&&student[a].score[1]>=0)break; printf("输入错误,请重新输入:"); } printf("\n请输入学生英语成绩:"); for(b=0;b<100;b++) { scanf("%d",&student[a].score[2]); if(student[a].score[2]<=100&&student[a].score[2]>=0)break; printf("输入错误,请重新输入:"); } i++; Count_Score(); Save_Data(); printf("\n是否继续输入,取消按1,按其他键继续输入~"); scanf("%d",&pd1); if(pd1==1) break; 24 } } 实习日程安排: 时间 实习内容 选题,对第一个选题进行功能需求分析、功能结构图 2014.9.6 和流程图的设计、系统架构设计 核心算法设计,程序设计及编码,逐步完善建立数据 2014.9.7-9.8 文件,增加数据,修改数据,查询数据,删除数据, 对数据排序和屏幕显示数据等功能 2014.9.9 代码调试、测试 对第二个选题进行功能需求分析、功能结构图和流程 2014.9.10 图的设计、系统架构设计 2014.9.11-9.12 核心算法设计,程序设计及编码等。 2014.9.13 代码调试、测试;编写实习报告; 实习体会:(300字左右) 25
/
本文档为【信息管理与信息系统专业实习报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索