判断101-200之间有多少个素数并输出所有素数C语言课程设计报告.doc
《判断101-200之间有多少个素数并输出所有素数C语言课程设计报告.doc》由会员分享,可在线阅读,更多相关《判断101-200之间有多少个素数并输出所有素数C语言课程设计报告.doc(16页珍藏版)》请在沃文网上搜索。
1、自动化与电气工程学院 C语言课程设计C语言程序设计课程设计目录1 基本题目- 0 -2 改错题目- 2 -a. 学生基本信息录入- 4 -1 基本题目1.1 题目判断101-200之间有多少个素数,并输出所有素数。1.2 题目分析 (1)程序分析:采用的算法是让n被i除(i的值从2变到sqrt(n),如果n能被2至sqrt(n)之中任何一个整数整除,则表示n肯定不是素数,不必再继续被后面的整数除,因此可以提前结束循环。若不能被其中的任一整数整除,则在完成最后一次循环后,i还要加1,因此i=k+1,然后才终止循环。若i的值k+1,则表明未曾被整除过,因此计数变量t加1。其中m用来控制每行输出10
2、个数。开始 (2)流程图: n=101,t=0 n200 N k=sqrt(n) i=2 Y ik t=t+1 Ni整除n 输出n i=i+1 Y 输出t N break Y结束 图1 基本题目流程图1.3 程序 #include#includeint main()int n,k,i,m=0,t=0;for(n=101;n=200;n=n+2)k=sqrt(n);for(i=2;i=k+1)printf(%d ,n);m=m+1;t=t+1;if(m%10=0)printf(n);printf(101200之间有%d个素数,t);printf(n);return 0;1.4 程序的运行结果 图
3、2 基本题目运行结果 开始2 改错题目 sum=0 i=02.1 改正后程序#include i5#include main() N输出sumint i; Y输入一个数 int sum=0,k;for(i=0;i5;i+) 结束 sum=sum+k printf(input a number:);scanf(%d,&k); i=i+1sum+=k;printf(the sum is %d,sum); 图3 改错题流程图2.2 程序运行结果 图4 改错题目运行结果 解释:该程序用以逐个输入5个数,然后求它们的和值。3 综合题目3.1 题目综合题目为:班级档案管理系统。3.2 数据结构 char
4、name20; char num15; char sex10; int age; char adds200; int tel; 下表构成本系统的基本数据库:姓名学号性别年龄备注电话charcharcharintcharint 图5 基本数据库3.3 程序的主要功能1. 本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包括:学号、姓名、性别、年龄、备注。2. 本系统显示这样的菜单:请选择系统功能项: a. 学生基本信息录入 b. 学生基本信息显示c. 学生基本信息保存d. 学生基本信息删除e. 学生基本信息修改(要求先输入密码)f. 学生基本信息查询(1) 按学号查询(2) 按姓名查询
5、(3) 按性别查询(4) 按年龄查询g. 退出系统3. 执行一个具体的功能之后,程序将重新显示菜单。4. 将学生基本信息保存到文件中。5. 进入系统之前要先输入密码。 开始 从菜单中选择 录入? NN 显示? Y N 保存? N 删除? Y N 修改? Y Y N 查询? N 退出 Y Y 调用相应子函数 结束 图6 综合题主函数流程图3.4 各函数的功能主函数通过switch语句分支进行选择。分别调用了函数Input(),Display(),Delete- a- record(),Query-a- record(),Change(),Writeto Text()来分别实现信息的录入,显示,删
6、除,查找,修改,保存的命令。 开始 开始 i=1 i=0 i10 in+1 输入 显示 Y i=i+1 i=i+1 返回 返回 图7 录入子函数流程图 图8 显示子函数流程图 开始 开始输入对象 选择查询方式 进入相应方式 满足 N 输入内容 删除对象 Y 查询结果 顺序更新 返回 返回 图9 删除子函数流程图 图10 查询子函数流程图 开始 开始 输入密码输入文件名 密码正确打开文件成功 N 输入姓名 Y 保存数据逐项进行 修改 关闭文件 修改成功 返回 返回图11 修改子函数流程图 图12 保存子函数流程图3.5 源程序#include #include#include typedef s
7、truct char sex10; /*性别*/ char name20; /*姓名*/ char num15; /*学号*/ char adds200; /*备注*/ int age; /*年龄*/ int tel; /*电话*/Person; Person pe80; int menu_select() char c; do system(cls); printf(tt 班级档案n); printf(tt n); printf(tt 1. 添加记录 n); printf(tt 2. 显示记录 n); printf(tt 3. 删除记录 n); printf(tt 4. 查询记录 n); p
8、rintf(tt 5. 修改记录 n); printf(tt 6. 保存记录 n); printf(tt 0. 退出程序 n); printf(tt n); printf(tt 请您选择(0-6):); c=getchar(); while(c6); return(c-0); int Input(Person per,int n) int i=0; char sign,x10; while(sign!=n&sign!=N) printf(t学号:); scanf(t%s,pern+i.num); printf(t姓名:); scanf(t%s,pern+i.name); printf(t性别:
9、); scanf(t%s,pern+i.sex); printf(t年龄:); scanf(t%d,&pern+i.age ); printf(t备注:); scanf(t%s,pern+i.adds); printf(t电话:); scanf(t%d,&pern+i.tel); printf(nt是否继续添加?(Y/N); scanf(t%c,&sign); i+; return(n+i); void Display(Person per,int n) int i; printf(-n); /*格式*/ printf( 班级中符合条件的同学为: n); printf(-n); for(i=1
10、;i1&i%10=0) printf(t-n); printf(t); system(pause); printf(t-n); printf(-n); system(pause); int Delete_a_record(Person per,int n) char s20; int i=0,j; printf(t请输入想删除记录中的名字:); scanf(%s,s); while(strcmp(peri.name,s)!=0&in) i+; if(i=n) printf(t(3)班级中没有此人!n); return(n); for(j=i;jn-1;j+) strcpy(perj.num,p
11、erj+1.num); strcpy(perj.name,perj+1.name); strcpy(perj.adds,perj+1.adds); strcpy(perj.sex,perj+1.sex); perj.age=perj+1.age; printf(ttt已经成功删除!n); return(n-1); void Query_a_record(Person per,int n) int m; printf(tn请选择查询方式:n); printf(tn); printf(t1-学号 n); printf(t2-姓名 n); printf(t3-性别 n); printf(t4-年龄
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 判断 101 200 之间 多少 素数 输出 所有 语言 课程设计 报告