C语言程序设计课程设计报告

上传人:ji****72 文档编号:25588675 上传时间:2017-12-15 格式:DOC 页数:30 大小:1.23MB
返回 下载 相关 举报
C语言程序设计课程设计报告_第1页
第1页 / 共30页
C语言程序设计课程设计报告_第2页
第2页 / 共30页
C语言程序设计课程设计报告_第3页
第3页 / 共30页
C语言程序设计课程设计报告_第4页
第4页 / 共30页
C语言程序设计课程设计报告_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《C语言程序设计课程设计报告》由会员分享,可在线阅读,更多相关《C语言程序设计课程设计报告(30页珍藏版)》请在金锄头文库上搜索。

1、成都航空职业技术学院C 语言程序设计 课 程 设 计 报 告设计题目: C 程序综合设计 系 别: 航空电子工程系 专 业: 应用电子技术 班 级: 学 号: 学生姓名: 赵儇宇 指导教师: 完成时间: 年 月 日目录一、程序设计内容及要求.1二、程序总体设计思路.21.课题一的总体设计思路.22.课题二的总体设计思路.3三、程序各模块作用及详细设计.31.课题一的各模块作用及详细设计.32.课题二的各模块作用及详细设计.13四、程序运行过程截图及分析.161.课题一程序运行过程截图及分析.162.课题二程序运行过程截图及分析.20五、总结. .22六、附录(完整程序). .221.课题一完整

2、程序.222.课题二完整程序.27一、课程设计内容及要求题目 1 用户登录程序。提示用户输入用户名和密码,判断是否是合法用户(假设合法的用户名是“abc” ,密码是 123456) ,如果合法,显示“welcom to use the software”,进入以下系统。否则要求重新输入,允许输入 3 次,若 3 次都错,显示“password error!you can not use the sorftware”.一班有 10 名学生,一学期有 5 门课程,编写程序实现如下功能:(1)录入每名学生的各科成绩(2)求出每名学生的平均成绩和总分(3)求每门课程的平均分、及格率、最高成绩和最低成绩

3、(4)输出总成绩前 5 名的学生学号、各科成绩和总分(5)输出各科补考学生的学号和成绩菜单格式如下:=菜单=1. 成绩录入2. 学生信息3. 课程信息4. 获奖与补考信息0. 退出=题目 2 小学生数学学习系统面向小学 12 年级学生,随机选择两个整数和加减法形成算式要求学生解答。功能要求:(1)电脑随机出 10 道题,每题 10 分,程序结束时显示学生得分;(2)确保算式没有超出 12 年级的水平,只允许进行 50 以内的加减法,不允许两数之和或之差超出050 的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案

4、;(4)对于每道题,学生第一次输入正确答案得 10 分,第二次输入正确答案得 71分,第三次输入正确答案得 5 分,否则不得分;(5)总成绩 90 以上显示“SMART” ,80-90 显示“GOOD” ,70-80 显示“OK” ,60-70 显“PASS” ,60以下“TRY AGAIN” 。编程要求:人机界面良好,有正误判断、机会重现等实用性功能。二、程序总体设计思路1.课题一的总体设计思路:整个程序由一个主程序和五个子程序构成。主程序功能为录入用户名和密码,并判断其正误和调用子程序(可用 scanf、while、for、if、switch 实现) 。五个子程序分别是 int MainM

5、enu()(显示主菜单模块) 、int Inputscore(int score106)(录入学生成绩模块) 、int Displayscore(int score106)(统计每位同学的平均成绩与总分模块) 、int Everykemu(int score106)(统计每门课程的平均分、及格率、最高成绩和最低成绩模块) 、int Maxmin(int score106)(统计获奖与补考信息模块)。在整个程序中,我用一个 10 行 6 列的二维数组(score106)统计十位同学的学号与五科成绩,第一列储存十位同学的学号后五列储存他们的五科成绩。子程序 int MainMenu()用于显示主界

6、面(可用 printf 实现) 。子程序 int Inputscore(int score106)用于录入每名学生的各科成绩(可用 scanf、for 实现) 。子程序 int Displayscore(int score106)中,我定义的 int num110、float num210分别统计十位学生的总成绩与平均成绩(可用 for 实现) 。子程序 int Everykemu(int score106)中,我定义 num10、jigelv10、ma10、mi10分别储存五科课程的平均分、及格率、最高成绩、最低成绩(可用 for、if 实现) 。子程序 int Maxmin(int sco

7、re106)拥有两个功能:统计并输出总成绩前 5 名的学生学号、各科成绩的功能和总分和统计并输出各科补考学生的学号和成绩的功能(可用 for、if 实现) 。系统功能模块结构图:学生成绩统计系统每科的平均分、及格率、最高成绩和最低成绩录入学生学号和成绩学生获奖与补考信息学生平均成绩和总分退出系统222.课题二的总体设计思路:整个程序使用 while 进行循环出题并解答,程序开始是用 srand(time(NULL)随机产生两个 50 以内的正整数以及 0 或 1,随后用 if 判断随机产生的两个数的和或差是否在 0 到 50 以及随机产生的数是 0 或1。用 if 函数将其转换为运算符,若产生

8、的是 0 则为+ ,若产生的是 1 则为- 。定义两个变量,一个储存正确答案,另一个则储存输入的答案。然后使用 for、scanf 控制循环、输入,在用 if 判断答案的正误与计算得分。答题完成后,用 switch 显示得分所对应的称号。最后用 while、scanf、if 实现机会重现功能。三、程序各模块作用及详细设计1.课题一的程序各模块作用及详细设计(1)开始部分:#include#include#include#includeint MainMenu(); /主菜单 int Inputscore(int score106); /录入学生成绩 int Displayscore(int s

9、core106); / 求每位同学的平均成绩与总分 并显示 int Everykemu(int score106) ; /求每门课程的平均分、及格率、最高成绩和最低成绩int Maxmin(int score106); /获奖与补考信息int main()int score106 ; /定义二维数组,存放学生某课程的成绩 int i=0;int choose; /定义整型变量,存放主菜单选择序号char str110,str210 ; /储存账号与密码 该部分是程序的开头,说明需调用的系统文件,stdio.h、stdlib.h、string.h、conio.h 均是程序课顺利运算与比较必须的内

10、容。而 int MainMenu()、int Inputscore(int score106)、int Displayscore(int score106)、int Everykemu(int score106)、int Maxmin(int score106)均为定义的子程序,score106为定义的整数型的二维数组用于储存学号与五科成绩以及 str110与 str210两字符型数组储存用户名与密码。i、choose 为定义的整数型变量,i 用于统计输错用户名或密码的次数。choose 用于控制选择菜单并参与子程序的调用。(2)用户名与密码判断模块printf(请输入账户名和密码:n);wh

11、ile(1)gets(str1); /输入账户名 gets(str2); /输入密码 if(strcmp(str1,abc)!=0|strcmp(str2,123456)!=0)3 i+;if(i=3)printf(password error!you can not use the sorftwaren);exit(0);printf(请输入账户名和密码:n);elsebreak;printf(welcom to use the softwaren);getchar();MainMenu(); /调用显示主菜单该部分为判断是否是合法用户,gets()为输入函数,将输入的用户名与密码分别存入定

12、义的str110、str210。再用 if 将其与正确的用户名与密码比较,并用开头定义的 i 统计连续数错的次数,exit(0)为退出程序时的函数,MainMenu()为显示主菜单的子程序。如果在三次机会内输入正确的用户名与密码则输出“welcom to use the software”进入主菜单,若连续输错 3 次则输出“password error!you can not use the sorftware”并退出程序。图示:NOYES开始i=0输入用户名与密码i+判断用户名与密码是否正确?i=scorei+1j) min=scorei+1j; maj=max; mij=min;for(

13、j=1;j=60)n+;sum=sum+scoreij;numj=(float)sum/10;jigelvj=(float)n/10;printf(ntt - n);printf(ntt 课程 平均分 及格率 最高成绩 最低成绩 n);printf(ntt - n);for(j=1;j=scorei+1j?i+YESmaj=max;mij=min;NOi=60 ?i+YESNOn+numj=(float)sum/10jigelvj=(float)n/10分别输出每科平均分max=scorei+1jmin=scorei+1ji#include #include #include int main()int i=1,num3,s,j;int b,c,e;char a;int d3=10,7,5;srand(time(NULL);printf(欢迎使用 12 年级学生数学学习

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号