资源描述:
《c语言职工信息管理系统(链表)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《程序设计综合训练》 设 计 报 告 专业:数字媒体技术 班级:11媒体Z 学号:11145107 姓 名:朱毅 指导教师: 陈湘军陈明霞 成 绩: 计算机工程学院 2012年10月 23 第一部分 题目: 1.编写函数inthamming(intx,inty,chara[],charb[])实现以下功能:先将形参x和y分别转换为2个合法代码并按从低位到高位的顺序为别保存2个合法代码的码距,函数返回该码距。 2.编写函数main()函数实现以下功能:声明字符数组a、b和变量m、n输入两个
2、整数冰保存到m和n中,若m、n的值在0~32767范围内则用m、n和数组a、b做实参调用haming函数,计算由m和n生成的两个合法代码的码距输出的到屏幕及文件myf2.out中。最后将考生本人的准考证号输出到文件myf2.out中。 来自:2009年(秋)上机试卷(03)的编程题。 解题的基本思路: 子函数就是将形参X,Y分别转换为2个合法的代码并按从低位到高位的顺序分别保存2个合法代码到a和b指向的数组中,在计算a数组和b数组中的两个合法代码的码距,函数返回码距。 主函数就是调用子函数,并输出结果。 设计方案: 主函数main() (1)功能模块框图
3、: 调用子函数:hamming() 子函数调用函数: bin() 23 主函数 (2)程序流程图: 入口 读文件 创建文件,输入m,n 调用函数hamming()返回count; 出口 用hamming()调用函数bin() Hamming函数 循环体 Bin函数 循环体 循环体 算法设计: (1)算法描述: 由于hamming函数需要分别将两个整数转换为合法代码,因此编写函数“voidbin(intn,charstr[])”。Bi
4、n函数的功能是将形参n转换为合法代码并保存到b指向的一维数组中。Hamming函数先两次调用bin函数,分别将形参X和Y转换为合法代码并分别保存到a和b指向的一维数组中,在用循环语句从前向后遍历a和b指向的数组各元素,函数最后返回统计结果。 (2)实现方法: 用VC6.0软件进行调试,分析,输入m,n两个值,进行分析,调用函数hanmming(),在从hanmming()函数中调用函数bin(),返回count的值,输出,a,b数组中的值和返回值count的值。 23 源代码: #include voidbin(intn,chars
5、tr[]) { inti=15,j; while(n!=0) { str[i--]=n%2+'0'; n/=2; } for(j=0;j<=i;j++) str[j]='0'; str[16]=' '; } inthamming(intx,inty,chara[],charb[]) { intcount=0,i; bin(x,a); bin(y,b); for(i=0;i<16;i++) if(a[i]!=b[i]) count++; returncount; } voidmain() { chara[17],b[17];
6、 intm,n,x; FILE*fp; fp=fopen("myf2.out","w"); 23 if(fp==NULL) printf("error"); do{ scanf("%d,%d",&m,&n); }while(m>32767&&m<0&&n>32767&&n<0); x=hamming(m,n,a,b); printf("%s%sdistanceof%dand%dis%d",a,b,m,n,x); fprintf(fp,"%s%sdistanceof%dand%dis%d",a,b,m,n,x); f
7、printf(fp,"11145107"); fclose(fp); } 程序调试: 就是输入的时候,n和m的值范围问题,当输入范围不正确时候跳不出来 解决方法:用一个do{}while;循环条件为大于32767和小于0的时候退出。 测试: 第二部分 职工信息管理系统 (1)题目名称:职工信息管理系统 内容: 职工信息包括职工号、姓名、性别、出生年月、学历、职务、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能: 1、职工信息录入功能(职工信息用文件保存,也可不用) 23