信息管理与信息系统专业模拟实习报告_优秀资料【资料毕业设计】_第1页
信息管理与信息系统专业模拟实习报告_优秀资料【资料毕业设计】_第2页
信息管理与信息系统专业模拟实习报告_优秀资料【资料毕业设计】_第3页
信息管理与信息系统专业模拟实习报告_优秀资料【资料毕业设计】_第4页
信息管理与信息系统专业模拟实习报告_优秀资料【资料毕业设计】_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

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

文档简介

1、爛南审学配孔许罟配模拟实习报告实习内容:综合模拟实习相关课程:c程序设计、数据结构学 期:2011-2012学年第1学期学时学分:34学时2学分专业班级:学 #: 姓 名:指导老师:周新民提交日期:2011年11月18 h模拟实习成绩评定表级等格 及 、报告文档 12 3 40 0 0 0 范晰面理 规清全合 档版容计 文排内设 12 3 4 12 3 40 0 0 0 范晰面理 规清全合 欠欠欠欠 档版容计 文排内设 12 3 4o o o o 范晰面理 规清全合 不不和存 档版容计 文排内设 12 3 4算法分析全 清 2分描 苟法法 申算 算 l 6叭匕皈正分描 法法法 算算算 12 3

2、全 清 较较 正分描 好法法 算算 算l2.面3.疏l2.面3.疏l2.臥3.阪程序实现o 讯 码 行 设 代 运 序 序 序 程阪程热程 1 .淸2.完 /】疏】鼠/程昵程賓程1 .清2.完 /程牴程賓程。1 .清2.完3.确程蚊程慎程。1 .清2.完3.确结果分析1 .述2.张3.入右。结賓结1 .述2.完3.1.也2.虬3.人1.也2.虬3.人1 .述2.皈3.入实习总结全结 o很 总 结曲 p 总4、习氐 实“妨从恥 有穿彳能術 1 .2 面3.出。面繆 结全 吒 总结 习氐 习迭 矣u 实n 人侏 有实j朋忖 1 .2.深3.肌夕上 2" 0 昵总入 秽实较1 .2 面0结

3、t 实习咏 有实欠1.2 面1.2.面月 年信息管理与系统开发设计综合模拟实习、实习目的通过模拟实习,主耍是要达到两个目的,一是检验和巩固专业知识、 二是提高综合素质和能力。信管07级学生的模拟实习主耍是复朵程序和 简单软件的实现。通过该模拟实习,可以将学生课堂上掌握的理论知识 与处理数据的业务相结合,以检验我们同学们掌握知识的宽度、深度及 对知识的综合运用能力。二、实习环境计算机硬件配置:表1硬件设备硬件配置cpuintel e2180 2ghz硬盘160g内存2g显示器三星液晶开发环境:表2软件环境开发坏境/丄具名称系统开发操作系统windows 2007系统编码设计与开发环境vc+系统相

4、应图表绘制工具visio 2003/project2003三、实习内容内容一:纸牌游戏任务:编号为152张牌,正面向上,从第2张开始,以2为基数, 是2的倍数的牌翻一次,直到最后一张牌;然后,从第3张开始,以3 为基数,是3的倍数的牌翻一次,直到最后一张牌;然后从第4张开 始,以4为基数,是4的倍数的牌翻一次,直到最后一张牌;再依次 5的倍数的牌翻一次,6的,7的直到以52为基数的翻过,输出:这 时正面向上的牌有哪些?内容二:文章编辑功能:输入一页文字,程序可以统计出文字、数字、空格的个数。静态存储一页文章,每行最多不超过80个字符,共n行;要求(1) 分别统计出其中英文字母数和空格数及整篇文

5、章总字数;(2)统计某一 字符串在文章中出现的次数,并输出该次数;(3)删除某一子串,并将后面的字符前移。存储结构使用线性表,分别用几个子函数实现相应的功能;输入数据的形式和范围:可以输入大写、小写的英文字母、任何数 字及标点符号。输出形式:(1)分行输出用户输入的各行字符;(2)分4行输出”全部字 母数”、”数字个数”、”空格个数”、”文章总字数”(3)输出删除某一字符 串后的文章;内容三:设计学生成绩管理系统。该系统中存储学生的学号、姓名、 性别、年龄、课程成绩等信息。要求:1)浏览学生信息2)添加学生信息3)删除学生信息4)查找学生信息5)修改学生信息6)对成绩的处理 求出每个学生各门课

6、程的总成绩、平均成绩、最高分和最低分。 求出某一门课程所有学生的总成绩、平均成绩、最高分和最低分。7)按照学生某门课程的成绩对学生排序四、算法分析、设计与描述内容一:纸牌游戏根据设计要求,我们知道设计中所以用到的数据记录有纸牌翻转信 息,因此要定义相关的数据类型:纸牌个数定义为int i,翻转状态定义为 flagi=l,纸牌放在数组flag52中等。要实现纸牌按此要求翻转,首先要将52张纸牌序号i为0到51,定义 止面朝上的状态flagi=l;对52张牌(序号放在i里)对2, 352 (放 在j里)按i+1是否是j的倍数进行状态翻转。如果对序号从0到51的 牌,if( (i+1) %j=0 )

7、flagi =flagi?o:l;然后对翻转处理后状态 仍然 是 止面的将其输出,一直进行下去,知道以52的基础翻过。内容二:文章编辑1、在目前的编码中,az与i都是连续的,你要想判断是否字母, 只需要 c >= a && cv二z ii c>=,a, && c<=,z,就行了。2、定义结构体struct line,文木行采用顺序存储,行与行之间采 用链式存储内容三:学生成绩管理系统1. 设计该程序是为了实现更简洁的学生信息管理,满足管理学生学 号、姓名和成绩等信息的要求。系统具体功能如下:输入记录输入的记录包括:学生学生证号、姓名、成绩;修改

8、学生的相关记录;查找按照学生姓名查找并显示该学生信息;显示记录显示所有以上输入记录或根据成绩排序后的记录;按成绩排序根据学生成绩由大到小排序;对成绩进行处理;插入一条记录插入一条包含学生信息的记录;删除一条记录查找姓名,并删除该学生记录;输出统计信息;存储信息将学生信息保存指定文件中;退出程序。五、程序设计1. 程序设计的基本思路内容一:纸牌游戏要实现纸牌按此要求翻转,首先耍将52张纸牌序号i为0到51,定义 正面朝上的状态flagi=l;对52张牌(序号放在i里)对2, 3 -52 (放 在j里)按i+1是否是j的倍数进行状态翻转。如果对序号从0到51的 牌,if( (i+1) %j=0 )

9、flagi =flagi?o:l;后对翻转处理后状态 仍然 是 正面的将其输出,一直进行下去,知道以52的基础翻过。内容二:文章编辑1. 查找第一个字符,如果有第一个字符即p->datai=stro,设计 数器k二02. 查找这个字符后面的字符与要查找的字符串是否匹配即 p->datai+j=strj,如果匹配 k+3. 重复第二步,如果k=len2,则查找到,count+;如果没查找到, 重新进行第一步流程图如下:内容三:学生成绩管理系统学生信息管理系统是对学生信息的基本管理,它包括:浏览学生信 息、添加学生信息、删除学生信息、查找学生信息、修改学生信息、对 成绩的处理、按照学生

10、某门课程的成绩对学生排序使用模块化编程的方法每项功能有一个函数来完成,对应如下:(1) 浏览学生信息以及读取数据void print(id *head)(2) 添加学生信息以及对成绩的处理id *insert(id *head)(3) 删除学生信息 id *delet(id *head)(4) 查找学生信息 id *search(id *head)(5) 修改信息 id *amend(id *head)(6) 按照学生某门课程的成绩对学生排序id *sort(id *head)(7) 存储数据以及退出系统id *breaksys(id *head) 为了把数据封装起来更方便使用,创建了表示学生

11、信息的结构休 struct idstruct idchar name20;int num;int a;int b;int c;double ave;id *next;;2. 程序代码 内容一:纸牌游戏 #include<stdio.h> void mainint i, j, flag52;for(i=0;i<52;i+) flagi=l;for(j=2;j<=52;j+)for(i=0;i<52;i+)if(i+l)%j=o)flag i=f lag i?0:1;printf (''positive card are/'):for(i=0;

12、i<52;i+)if(flagti)printf(d “, i+1);内容二:文章编辑#include<iostream h>#include <string h#include <stdio . h> /*文木每行以字符串形式存储,彳亍与行之间以链表存储夫/typedef struct linechar *data;struct line *next;line;/法创建一链表,同时向里面输入文本数据*/void create(line * &head)printf (”请输入一页文章,以ctrl+e(ae)为结尾(每行最多输 入 80 字符!) :

13、 nn);line *p=new line;/*首先为链表 建立一个附加表头结点*/head=p;/*将p付给表头指针*/char tmp100;while(1)gets (tmp) ;/*输入字符串! */if (strlen(tmp)>80 )printf ("每彳亍最多输入80字符,f);break;if (tmp 0 =5) break; /如果发现输入ae,则退出输入*/ p=p->next=new line;p->data=new char strlen (tmp) +1 ;/*为结点分配空间*/strcpy(p->data,tmp);if (tm

14、p strlen (tmp) -1 =5)/除去最后一个控制符p->datastrlen(tmp)-1 = *0!; break;p->next=null;/最后的一个指针为空*/head=head->next;"统计字母数/int countletter(line * &head)line *p=head;int count=0;doint len=strlen (p->data) ;/次计算当前data里的数据元素的个数/for (int i = 0;i<len;i + +)if(p->datai>=1 a * & &am

15、p;p->datai<=1z *) | | (p->datai> =/遍历链表/"返回文章的字母总数/a* &&p->datai<=!z1) count+;while(p=p->next)!=null); return count;"统计数字数/int countnumber(line &head)line *p=head;int count=0;doint len=strlen (p->data) ;/*计算当前data里的数据元素的个数*/for (int i = 0;i<len;i + +)

16、if (p->datai> = 4 8 && p->datai<=57)count+ + ; /计算数字数,ascii码/while ( (p=p->next) !=null); return count;/统计空格数/int countspace(line * &head)line *p=head;int count=0;doint len=strlen(p->data);deta里的数据元素的个数/for (int i = 0;i<len;i + +)if (p->datai=32)count+ + ;格ascii码为

17、32*/while(p=p->next)!=null);return count;"统计文章的总字数"int countall(line * &head)line *p=head;int count=0;docount+ = strlen(p->data);/次遍历链表/*计算当前/*计算空格数,空/次遍历链表/ 保存链表的首地址法/*计算总字符数*/八遍历链表法/while( (p=p->next) !=null);return count;/统计str在文章中出现的次数/ int findstring(lineline *p=head;int

18、count=0;int h=0;int lenl=0;int len2 = strlen (str);int i, j, k;dolenl=strlen(p->datm); for(i=0;i<lenl;i+)if (p->datai=str0&head,charstr)/ 保存当前行的总字符数/"待统计字符串的长度/当前行的字符数/"字符匹配/k=0;for ( j = 0;j<len2;j + + )k+ + ;if (p->datai +j=strjif (k=len2) count+ +; i = i4-k-l;while (

19、(p=p->next) ! =null) ;/汰遍历 链表/return count;/删除指定的字符串/void deistringword(char char *str)/* f为输入的字符串,*str为将要删除的字符/char *p=strstr (sr str) ;/从字符串 s 中寻找 str 第一次出现的位置/char tmp80;int len=strlen (s);int i = len-strlen (p);int j = i + strlen (str);int count=0;for (int m=0;m<i;m+ + )tmpcount+ +=sm;for

20、(int n=j;n<len;n + +)tmpcount + +=sn; tmpcount = !0 *;strcpy (s, tmp) ;/返回新的字符串/void delstring(line * &head,char *str)line *p=head;doif(strstr(p->dataz str) !=null)deistringword(p->data,s tr);while ( (p=p->next) ! =null) ;/遍历 链表法/向屏幕输出文章/void output (line * &head)line *p=head;dop

21、rintf("%snn rp->data);while ( (p=p->next) !=null) ;/遍历 链表*/void main()line *head;create(head); printf ("输入的文章为:nn );output(head);printf(hn n);printf ("全咅e字母数:%d nn , countletter (head); printf ("数字个数:%d nn , count number (head);printf ("空格个数:%d nt countspace (head);pri

22、ntf ("文章丿总字数:%d n" , countall (head);char str1 20,str220;printf(hn n);printf (”请输入要统计的字符串:”);scanf(n % s h,strl);printf(n%s 出现的次数为:%d nn , strl f findstring (head, strl); printf(hn n);printf (”请输入要删除的某一字符串:”);scanf(n % s n,str2);delstring(head,str2);printf (”删除$后的文章为:n' str2);output(he

23、ad);内容三:学生成绩管理系统 #include <stdio.h> #include <stdlibh> #include <malloch #include <string h> #define id struct id struct idchar name20;int num; char sex2;int age:int a;int b;int c;int sum;double ave;int min;int max;id *next;stu100:int pc=l:file *fp;int asum=0, bsum=0, csum=0;int

24、 amaxo, bmaxo, cmaxo;int amin=100, bmin二100, cmin二100;float aavc, bavc, cave;void print (id *heeid)/显示记录id *p;p二head;int temp;printf (,z显示结果是:n);printfc学号姓名性别年龄语文数学英语总成绩平均 成绩最高分最低分);if(head!二null)do printf (3d%5s%5s%5d%5d%5d%5d%6d%9 2f%7d%7dn,p->num, p->namc, p->scx,p->age, p->a, p-&g

25、t;b, p->c, p->sum, p->ave, p->max, p->min); p=p-next;while(p!二null);printf (/z总体成绩:n);printfc语文的总成绩是%4址七平均成绩是%52ft最高分 是3(11;最低分是 3drt, asum, aave, amax, am in);printf (数学的总成绩是%4址七平均成绩是%52ft最高分 是3址1;最低分是3dn,bsum, bave, bmax, bmin);printf (,z英语的总成绩是%4址七平均成绩是%52ft最高分 ;%3dt 最低分是%3dn, csum

26、, cave, cmax, cmin);td insert (td *head) /添加记录id *sort(id *head);id *tcmp, *pl, *p2, *p;int t;p二head;pri ntf (插入操作开始! ! ! n);tcmp=(id *)malloc(sizeof(id):printf (请输入学生的学号:n); scanf (d,&temp->num); printf ("请输入学生的姓名:n); scanf (s,&tcmp->namc); printf (请输入学生的性别:n); scanf (s,&temp

27、->sex); printf (,z请输入学生的年龄:n); scanf (d,&temp-age); printf ("请输入学生的语文成绩:n);scanf("%d, &temp->a);printf (请输入学生的数学成绩:n);scanf(%d", &temp->b);printf c请输入学生的英语成绩:n);scanf(%d, &temp->c);tcmp->sum=tcmp->a+tcmp->b+tcmp->c;temp->ave=(temp->sum)/3

28、0;temp->min=(temp->a<temp->b)?temp->a:temp->b)<temp->c? (temp->a<temp->b)?temp->a:temp->b):temp->c;tcmp->max=(tcmp->a>tcmp->b)?tcmp->a:tcmp->b)>tcmp->c? (temp->a>temp->b)?temp->a:temp->b):temp->c;if (head二二null)head二

29、temp; tcmp->ncxt=null;elsepl二head;p2二pl;pl=pl-next; p2-next二temp; temp->next=pl; p=hcad;doasum=asuni+p->a; bsum=bsum+p->b; esum二csum+p->c; if (amin > p->a) t=amin; amin=p->a;if(amax < p->a) t=amax; amax=p->a:if (bmin > p->b) t=bmin; bmin=p->b;if (bmax < p

30、->b) t=bmax;bmax=p->b;if (cmin > p->c)t=cmin; cmin=p->c;i f (cmax < p->c)t二cmax; cmax=p->c; p二p->next;while(p!=null);aave=float(asum/pc): bavc=float(bsum/pc); cave二float(csum/pc): printf (/z添加成功! “);pc+;return (head);id *search(id *head) /查找记录id *pl, *p2;int str;printf c请输

31、入要查找的学生的学号:); scanf(d,&str);pl二head;while(str!=pl->num && pl!二null)p2=pl;pl=pl->next;if (str=pl->num)printf (,z学生的学号:%dn,/, pl->num); printf (学生的姓名:sn,pl->namc);printf (学生的性别i :%sn,pl->sex); printf("学生的年龄:%dn/,, pl->age);printf (,z学生的语文成绩:%dn/,, pl->a); print

32、f (,z学生的数学成绩:dn, pl>b); printf (学生的外语成绩:dn, pl->c); printf (,z学生的总成绩:dn,pl->sum);printf (,z学生的平均成绩: 21fn,) pl>ave); printf (学生的最高分:dn,pl->max);printf (学生的最低分:dn, pl->min);elseprintf (,z没有找到记录);return head;id *sort (id *head) /排序int temp;char str100;double dbl;id *pl, *p2;for(pl二hea

33、d;pl!二null;pl=pl->next)for(p2=pl->ncxt;p2!=null;p2二p2-next)if(pl->ave<p2->ave)tcmp=pl->num; pl->num=p2->num; p2->num=tcmp; strcpy(str, pl->name); strcpy(pl->name, p2-name); strcpy(p2->namc, str); tcmp=pl->a;pl->a=p2->a;p2-a二temp;temp二pl-b; pl->b=p2->

34、;b; p2->b二temp;temp二pl-c; pl->c=p2->c;p2->c=temp; dbl=pl->avc; pl->ave=p2->ave;p2->avc=dbl;printf (排序成功! ! ! n);return (head);id *delet(id *head) /删除记录id *pl, *p2;int num;printf c请输入要删除的学生的学号:); seanf(d, &num);pl二head;if (head二二null)printf (/z没有记录n); goto end;while(num!=p

35、1->num && pl!二null)p2=pl;pl=pl->ncxt;i f(num=p1->num)if (pl=head)head二pl-ncxt;elsep2->next=pl->next;printf c 删除成功!n);pc;elseprintf (,z没有这个记录);end:return head;id *amend(id *head)/修改信息id *p;p二head;int findmess;if (!head)pri ntf (n二二二=>提示:没有资料可以修改! n); exit (0);printfc请你输入要修改的

36、学生学号:); seanf(d, &findmess);while(findmess!=p->num)p+;if (p)printf (请你输入新学号(原来是%d) :, p->num); scanf(d, &p->num);printf (z,请你输入新姓名(原来是$) :,p->name); scanf(s, &p->name);getchar ():printf (请你输入新性别(原来是%$) :, p->scx); scanf(s, &p->sex);printf (,z请你输入新年龄(原来是%(1) :, p-

37、>age); scanf("%d, &p->age);printf c请你输入新的语文成绩(原来是%1分)p-x); scanf(d,&p->a);getchar ();printf c请你输入新的数学成绩(原来是%(1分):,p->b); scanf(d,&p->b);getchar ();printf c请你输入新的英语成绩(原来是%1分)p-c); scanf(d,&p->c);p->sum=(p->a+p->b+p->c); p->ave=p->sum/3 0;p->

38、min=(p->a<p->b)?p->a:p->b)<p->c?(p->a<p->b)?p->a: p->b):p->c;p->max=(p->a>p->b)?p->a:p->b)>p->c?(p->a>p->b)?p->a: p->b):p->c;printf (,zn提示:资料修改成功! n); return (head);elseprintfc没有这个学号! );id *breaksys(id *head)id *p;p二hea

39、d;fp=fopen (z,学生成绩管理.txt", "q+);fprintf(fp/z学号 姓名 性别 年龄 语文 数学 英语 总成绩 平均成绩 最高分 最低分);while(p->ncxt!=null)fprintf(fp, 3d%5s%5s%5d%5d%5d%5d%5d%5d%5d%5dn,p->num, p->namc, p->scx,p->age, p->a, p->b, p->c, p->sum, p->ave, p->max, p->min);p+;fclose (fp);return(h

40、ead);void main()id *head二null;int choise;printf (tt* * * * *信息管理与系统开发设计综合模拟实 习 * * * * *);printf(n);whi1e (1)printf(z,ttt学生信息管理系统n):printf ( tttn )printf ("ttt1浏ua- 见学生信息);printf ("ttt2添加学生信息);printf(ttt3删除学生信息n);printf ("ttt4查找学生信息);printf(ttt5修改学生信息n);printf (ttt6学生成绩排序);printf (ttt

41、0退出*统n);printf (rt);printf( tttn )printfc 请选择(0-6):);scanf(%d, &choise);switch (choise)case 1: print(head); break;case 2: head二insert(head); break;case 3: head=delet(head): break;case 4: hcad=scarch(head); break;case 5: headamend(head);break;case 6: hcad=sort(head); break;case 0: breaksys(head);

42、exit(0); break; default :printf 输入错误,请重新输入!n);六、程序运行、调试和结果分析1. 程序运行中出现的问题及调试手段(1)在编程过程中,应注意库函数的调用,一定要使所调用的库函数 能够实现所需求的任务。(2)在运行过程中,一定耍注意避免由于硬件原因而导致程序无法运 行,所以应该熟悉硬件与软件的结合。2. 程序运行结果分析内谷一:纸牌游戏(1)运行结果截图:north灘髓符串刊$ r 好1w: bi"czprogram filesvc-free 4hemp侏命名 1 .exe" 口x28490 1 4 : :1?数宀沪 宀4代总 静字量

43、卓(2)运行结果分析根据题意,要求每次按照基数的倍数进行翻牌,直到以52为基数的 翻过。因此不难得出程序算法进行编译。所以最后输出的结果是完全平 方数:1, 4, 9, 16, 25, 36, 49内容二:文章编辑(1)运行结果截图:靑输入一贞文章,以ctiq+ege为结尾每行最多输入80字符! x ?he north uniuersity for ethnics.234567890宀一務"e俞入的文章为:?he north uniuersity for ethnics.l234567890:=+-*/(2)运行结果分析本程序的文章为用户输入的文章,只能做即时输入的统计、编辑, 而不能对己有的磁盘文件中的文章进行统计、编辑,如果引入文件流类, 就可以打开磁盘文件,对其进行统计、编辑并保存,这是有待改进的。内容三:学生成绩管理系统(1

温馨提示

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

评论

0/150

提交评论