C语言课程设计实习报告.doc_第1页
C语言课程设计实习报告.doc_第2页
C语言课程设计实习报告.doc_第3页
C语言课程设计实习报告.doc_第4页
C语言课程设计实习报告.doc_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

c语言课程设计实习报告 题目一、题目描述:要求输入两个相对较大的正整数,能够通过程序计算出其结果。 设计思路:输入m、n开始输入p、qj=0jn-1 nj=j+1 yx=jxm+j nx=j yy nx=m+jcx=rx-1+am-1*bj/10 y nrx=(cx+(a0*bj)%10)/10cx=(cx+(a0*bj)%10)%10rx=(a1*bj)%10+cx+rx-1+a0*bj/10)/10cx=(cx+(ax-j*bj)%10+rx-1+ax-j-1*bj/10)%10x=x+1cm+n-1=0 y nx=m+n-1x=m+n-22 x0x0 n y y输入cx输入cx结束x=x-1 x=x-1 由于long型数据的数据范围并不大,所以两个相对较大的数不能用long int类型存储。本程序中设计用数组存储一个大数,数组的初始空间可以定义到如100或200个单元,每个单元存储一位数据,以此解决乘数及乘积的存储问题。解决了存储问题后,本程序设计让乘数数组及被乘数数组中的每一位数字单独来进行乘法运算,即用一个数字和另外一个数组中的每一位去相乘,得到乘法运算中一行的数字,再将每一行数字错位相加,最后得到预计的乘积并输出。运行效果截图: 附源程序如下:#includeint main() int a100=0,b100=0,c200=0,i,j,m,n,x,r200; printf(请分别输入乘数p、q的位数m、n:n); scanf(%d%d,&m,&n); printf(n); printf(请分别输入两乘数p、q:n); printf(p=); for(i=m-1;i=0;i-) scanf(%d,&ai); printf(q=); for(j=n-1;j=0;j-) scanf(%d,&bj); printf(n); for(j=0;j=n-1;j+) for(x=j;x=0;x-) printf(%d,cx); else for(x=m+n-1;x=0;x-) printf(%d,cx); printf(n); return 0;题目二、题目描述:学生信息管理系统设计。学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,e-mail等。试设计一学生信息管理系统,使之能提供以下功能:系统以文本菜单方式工作;学生信息录入功能(学生信息最好用文件保存)-输入;学生信息浏览功能-输出;查询、排序功能-算法;按学号查询;按姓名查询;学生信息的删除与修改。设计思路:功能函数声明开始1调用清屏函数system(“cls”)输出文本菜单主界面输入cswitch c 1 2 5 6 3 4 change()dele()input()scan()sort()find()本程序中不同的功能模块均由数据的读入、数据的处理、数据的输出及返回封装而成,差别仅体现在数据的处理上,而不同功能模块的选择则采用了switch语句简单明了。运行效果截图:附源程序如下:#include#include#includetypedef structint num; char name20; char sex; int age;char birth20; char mail20; char add20; char tel20;inf;main() void input(); void scan(); void find(); void sort(); void dele(); void over(); void change(); int c; while(1)system(cls); printf( o(_)on); printf(*欢迎来到地大学生信息管理系统*n); printf(n); printf( 功能选择n); printf(n); printf(*1.信息录入*n); printf(*2.信息浏览*n); printf(*3.信息查询*n); printf(*4.信息排序*n); printf(*5.信息删除*n); printf(*6.信息修改*n); scanf(%d,&c); switch(c) case 1:input(); break; case 2:scan(); break; case 3:find(); break; case 4:sort(); break; case 5:dele(); break; case 6:change(); break;void input()inf w1000; file *fp1,*fp2;int i,n=0,j;fp1=fopen(data.txt,r); while(!feof(fp1)fscanf(fp1,%d %s %c %d %s %s %s %s,&wn.num,,&wn.sex,&wn.age,wn.birth,wn.mail,wn.add,wn.tel);n+; fclose(fp1);fp2=fopen(information.txt,w);for(i=0;in-1;i+)fprintf(fp2,%d %s %c %d %s %s %s %sn,wi.num,,wi.sex,wi.age,wi.birth,wi.mail,wi.add,wi.tel);fclose(fp2);printf(录入已完成!n);printf(n); printf(返回主界面请按2,结束请按1:n);scanf(%d,&j);if(j=1) over();void scan()inf w1000; file *fp;int i,n=0,j;fp=fopen(information.txt,r);while(!feof(fp)fscanf(fp,%d %s %c %d %s %s %s %s,&wn.num,,&wn.sex,&wn.age,wn.birth,wn.mail,wn.add,wn.tel);n+;fclose(fp);for(i=0;in-1;i+) printf(%d %s %c %d %s %s %s %sn,wi.num,,wi.sex,wi.age,wi.birth,wi.mail,wi.add,wi.tel);printf(n);printf(返回主界面请按2,结束请按1:n);scanf(%d,&j); if(j=1) over();void find()inf w1000; file *fp;int i,n=0,j,q,r; char p20;fp=fopen(information.txt,r); while(!feof(fp)fscanf(fp,%d %s %c %d %s %s %s %s,&wn.num,,&wn.sex,&wn.age,wn.birth,wn.mail,wn.add,wn.tel);n+;fclose(fp);printf(请输入查询方式:n);printf(n);printf(1.按照姓名查询 2.按照学号查询n);scanf(%d,&q);if(q=1)printf(请输入学生姓名:); scanf(%s,p);printf(n); printf(查询结果:n); printf(n); for(i=0;in-1;i+)if(strcmp(p,)=0)printf(%d %s %c %d %s %s %s %sn,wi.num,,wi.sex,wi.age,wi.birth,wi.mail,wi.add,wi.tel);elseprintf(请输入学生学号:); scanf(%d,&r);printf(n); printf(查询结果:n); printf(n);for(i=0;in-1;i+)if(r=wi.num)printf(%d %s %c %d %s %s %s %sn,wi.num,,wi.sex,wi.age,wi.birth,wi.mail,wi.add,wi.tel);printf(n); printf(返回主界面请按2,结束请按1:n);scanf(%d,&j); if(j=1) over();void sort()inf w1000; file *fp;int i,n=0,j; inf t;fp=fopen(information.txt,r); while(!feof(fp)fscanf(fp,%d %s %c %d %s %s %s %s,&wn.num,,&wn.sex,&wn.age,wn.birth,wn.mail,wn.add,wn.tel);n+;fclose(fp);for(i=0;in-1;i+)for(j=i+1;jn;j+)if(wi.numwj.num)t=wi; wi=wj; wj=t; printf(排序结果:n); printf(n); for(i=0;in-1;i+)printf(%d %s %c %d %s %s %s %sn,wi.num,,wi.sex,wi.age,wi.birth,wi.mail,wi.add,wi.tel);printf(n); printf(返回主界面请按2,结束请按1:n);scanf(%d,&j); if(j=1) over();void dele()inf w1000; file *fp1,*fp2;int i,n=0,j; char p20; fp1=fopen(data.txt,r); while(!feof(fp1)fscanf(fp1,%d %s %c %d %s %s %s %s,&wn.num,,&wn.sex,&wn.age,wn.birth,wn.mail,wn.add,wn.tel);n+;fclose(fp1);printf(请输入删除人姓名:);scanf(%s,p);for(i=0;in;i+)if(strcmp(p,)=0)for(i;in-2;i+)wi=wi+1;fp2=fopen(deleted.txt,w);for(i=0;in-2;i+)fprintf(fp2,%d %s %c %d %s %s %s %sn,wi.num,,wi.sex,wi.age,wi.birth,wi.mail,wi.add,wi.tel);fclose(fp2);printf(n);printf(删除已完成!修改文件以deleted.txt命名请注意查看。n);printf(n);printf(返回主界面请按2,结束请按1:n);scanf(%d,&j); if(j=1) over();void change()inf w1000; file *fp1,*fp2;int i,n=0,r,q,c,t,j,y; char p20,s20,x; fp1=fopen(data.txt,r); while(!feof(fp1)fscanf(fp1,%d %s %c %d %s %s %s %s,&wn.num,,&wn.sex,&wn.age,wn.birth,wn.mail,wn.add,wn.tel);n+;fclose(fp1);printf(请先输入查找信息:n);printf(n);printf(1.按姓名 2.按学号n);scanf(%d,&q);if(q=1)printf(请输入学生姓名:); scanf(%s,p);printf(n); for(i=0;in-1;i+)if(strcmp(p,)=0)y=i;printf(%d %s %c %d %s %s %s %sn,wi.num,,wi.sex,wi.age,wi.birth,wi.mail,wi.add,wi.tel); printf(n); printf(请输入修改信息的类:n); printf(n); printf(1. 学号 2.姓名 3.性别 4.年龄n);printf(5.出生日期 6.邮箱 7.住址 8.电话n); scanf(%d,&c); if(c=1) printf(将%d改为n,wy.num); scanf(%d,&t); wy.num=t;if(c=2) printf(将%s改为n,); scanf(%s,s); strcpy(,s);if(c=3) printf(将%c改为n,wy.sex); scanf(%c,&x); wy.sex=x;if(c=4) printf(将%d改为n,wy.age); scanf(%d,&t); wy.age=t;if(c=5) printf(将%s改为n,wy.birth); scanf(%s,s); strcpy(wy.birth,s); if(c=6) printf(将%s改为n,wy.mail); scanf(%s,s); strcpy(wy.mail,s);if(c=7) printf(将%s改为n,wy.add); scanf(%s,s); strcpy(wy.add,s);if(c=8) printf(将%s改为n,wy.tel); scanf(%s,s); strcpy(wy.tel,s);elseprintf(请输入学生学号:); scanf(%d,&r);printf(n);for(i=0;in-1;i+)if(r=wi.num)printf(%d %s %c %d %s %s %s %sn,wi.num,,wi.sex,wi.age,wi.birth,wi.mail,wi.add,wi.tel);printf(n);printf(请输入修改信息的类:n);printf(n);printf(1. 学号 2.姓名 3.性别 4.年龄n);printf(5.出生日期 6.邮箱 7.住址 8.电话n);scanf(%d,&c); if(c=1) printf(将%d改为n,wr-1.num); scanf(%d,&t); wr-1.num=t;if(c=2) printf(将%s改为n,); scanf(%s,s); strcpy(,s);if(c=3) printf(将%c改为n,wr-1.sex); scanf(%c,&x); wr-1.sex=x;if(c=4) printf(将%d改为n,wr-1.age); scanf(%d,&t); wr-1.age=t;if(c=5) printf(将%s改为n,wr-1.birth); scanf(%s,s); strcpy(wr-1.birth,s); if(c=6) printf(将%s改为n,wr-1.mail); scanf(%s,s); strcpy(wr-1.mail,s);if(c=7) printf(将%s改为n,wr-1.add); scanf(%s,s); strcpy(wr-1.add,s);if(c=8) printf(将%s改为n,wr-1.tel); scanf(%s,s); strcpy(wr-1.tel,s);fp2=fopen(changed.txt,w);for(i=0;in-1;i+)fprintf(fp2,%d %s %c %d %s %s %s %sn,wi.num,,wi.sex,wi.age,wi.birth,wi.mail,wi.add,wi.tel);fclose(fp2);printf(修改已完成,保存在名为changed.txt的文档中,请注意查看!);printf(n); printf(返回主界面请按2,结束请按1:n);scanf(%d,&j);if(j=1) over();void over()system(cls);printf(n);printf(n);printf(n);printf(n);printf(n);printf(n);printf(n);printf(n);printf(n);printf(n);printf( thanks,good bye!n);printf(n);printf( o(_)on);while(1) ;题目三、题目描述:职工信息管理系统设计。职工信息包括职:工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能:系统以菜单方式工作;v职工信息录入功能(职工信息用文件保存)输入;v职工信息浏览功能输出。v 设计思路:开始功能函数声明 1调用清屏函数system(“cls”)输出文本菜单主界面输入cswitch c 1 2 5 6 3 4 change()dele()input()scan()sort()find()本程序与二题类似,不同的功能模块均由数据的读入、数据的处理、数据的输出及返回封装而成,差别仅体现在数据的处理上,而不同功能模块的选择则采用了switch语句。运行效果截图:附源程序如下:#include#include#includetypedef structint num; char name20; char sex; int age;char eb20; int salary; char add20; char tel20;inf;main()void input(); void scan(); void find(); void sort();void dele();void over();void change(); int c;while(1)system(cls); printf( o(_)on); printf(*欢迎来到地大职工信息管理系统*n); printf(n); printf( 功能选择n); printf(n); printf(*1.信息录入*n); printf(*2.信息浏览*n); printf(*3.信息查询*n); printf(*4.信息排序*n);printf(*5.信息删除*n);printf(*6.信息修改*n); scanf(%d,&c); switch(c) case 1:input(); break; case 2:scan(); break; case 3:find(); break; case 4:sort(); break; case 5:dele(); break; case 6:change(); break;void input()inf w1000; file *fp1,*fp2;int i,n=0,j;fp1=fopen(data.txt,r); while(!feof(fp1)fscanf(fp1,%d %s %c %d %s %d %s %s,&wn.num,,&wn.sex,&wn.age,wn.eb,&wn.salary,wn.add,wn.tel);n+; fclose(fp1);fp2=fopen(information.txt,w);for(i=0;in-1;i+)fprintf(fp2,%d %s %c %d %s %d %s %sn,wi.num,,wi.sex,wi.age,wi.eb,wi.salary,wi.add,wi.tel);fclose(fp2);printf(录入已完成!n);printf(n); printf(返回主界面请按2,结束请按1:n);scanf(%d,&j);if(j=1) over();void scan()inf w1000; file *fp;int i,n=0,j;fp=fopen(information.txt,r);while(!feof(fp)fscanf(fp,%d %s %c %d %s %d %s %s,&wn.num,,&wn.sex,&wn.age,wn.eb,&wn.salary,wn.add,wn.tel);n+;fclose(fp);for(i=0;in-1;i+) printf(%d %s %c %d %s %d %s %sn,wi.num,,wi.sex,wi.age,wi.eb,wi.salary,wi.add,wi.tel);printf(n);printf(返回主界面请按2,结束请按1:n);scanf(%d,&j);if(j=1) over();void find()inf w1000; file *fp;int i,n=0,f,j,q,r; char p20;fp=fopen(information.txt,r); while(!feof(fp)fscanf(fp,%d %s %c %d %s %d %s %s,&wn.num,,&wn.sex,&wn.age,wn.eb,&wn.salary,wn.add,wn.tel);n+;fclose(fp);printf(请输入查询方式:n);printf(1.按照姓名查询 2.按照工号查询n);scanf(%d,&q);if(q=1)printf(请输入请姓名:); scanf(%s,p); printf(查询结果:n); printf(n); for(i=0;in-1;i+)if(strcmp(p,)=0)printf(%d %s %c %d %s %s %s %sn,wi.num,,wi.sex,wi.age,wi.eb,&wi.salary,wi.add,wi.tel);elseprintf(请输入职工工号:); scanf(%d,&r); printf(查询结果:n); printf(n);for(i=0;in-1;i+)if(r=wi.num)printf(%d %s %c %d %s %s %s %sn,wi.num,,wi.sex,wi.age,wi.eb,&wi.salary,wi.add,wi.tel);printf(n); printf(返回主界面请按2,结束请按1:n);scanf(%d,&j); if(j=1) over();void sort()inf w1000; file *fp;int i,n=0,j; inf t;fp=fopen(information.txt,r); while(!feof(fp)fscanf(fp,%d %s %c %d %s %d %s %s,&wn.num,,&wn.sex,&wn.age,wn.eb,&wn.salary,wn.add,wn.tel);n+;fclose(fp);for(i=0;in-1;i+)for(j=i+1;jn;j+)if(wi.numwj.num)t=wi; wi=wj; wj=t; printf(排序结果:n); printf(n); for(i=0;in-1;i+)printf(%d %s %c %d %s %d %s %sn,wi.num,,wi.sex,wi.age,wi.eb,wi.salary,wi.add,wi.tel);printf(n); printf(返回主界面请按2,结束请按1:n);scanf(%d,&j);if(j=1) over();void dele()inf w1000; file *fp1,*fp2;int i,n=0,j; char p20; fp1=fopen(data.txt,r); while(!feof(fp1)fscanf(fp1,%d %s %c %d %s %d %s %s,&wn.num,,&wn.sex,&wn.age,wn.eb,&wn.salary,wn.add,wn.tel);n+;fclose(fp1);printf(请输入删除人姓名:);scanf(%s,p);for(i=0;in;i+)if(strcmp(p,)=0)for(;in-2;i+)wi=wi+1;fp2=fopen(deleted.txt,w);for(i=0;in-2;i+)fprintf(fp2,%d %s %c %d %s %d %s %sn,wi.num,,wi.sex,wi.age,wi.eb,wi.salary,wi.add,wi.tel);fclose(fp2);printf(n);printf(删除已完成!修改文件以deleted.txt命名。n);printf(n);printf(返回主界面请按2,结束请按1:n);scanf(%d,&j);if(j=1) over();void change()inf w1000; file *fp1,*fp2;int i,n=0,r,q,c,t,j,y,a; char p20,s20,x; fp1=fopen(data.txt,r); while(!feof(fp1)fscanf(fp1,%d %s %c %d %s %d %s %s,&wn.num,,&wn.sex,&wn.age,wn.eb,&wn.salary,wn.add,wn.tel);n+;fclose(fp1);printf(请先输入查找信息:n);printf(n);printf(1.按姓名 2.按工号n);scanf(%d,&q);if(q=1)printf(请输入职工姓名:); scanf(%s,p);printf(n); for(i=0;in-1;i+)if(strcmp(p,)=0)y=i;printf(%d %s %c %d %s %d %s %sn,wi.num,,wi.sex,wi.age,wi.eb,wi.salary,wi.add,wi.tel); printf(n); printf(请输入修改信息的类:n); printf(n); printf(1.工号

温馨提示

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

评论

0/150

提交评论