C语言程序设计课程设计报告.doc
《C语言程序设计课程设计报告.doc》由会员分享,可在线阅读,更多相关《C语言程序设计课程设计报告.doc(30页珍藏版)》请在三一办公上搜索。
1、成都航空职业技术学院C语言程序设计 课 程 设 计 报 告设计题目: C程序综合设计 系 别: 航空电子工程系 专 业: 应用电子技术 班 级: 学 号: 学生姓名: 赵儇宇 指导教师: 完成时间: 年 月 日目录一、程序设计内容及要求.1二、程序总体设计思路.2 1.课题一的总体设计思路.2 2.课题二的总体设计思路.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)求每门课程的平均分、及格率、最高成绩和最低成绩(4)输出总成绩前5名的学
3、生学号、各科成绩和总分(5)输出各科补考学生的学号和成绩菜单格式如下:=菜单=1. 成绩录入2. 学生信息3. 课程信息4. 获奖与补考信息0. 退出 =题目2小学生数学学习系统面向小学12年级学生,随机选择两个整数和加减法形成算式要求学生解答。 功能要求:(1)电脑随机出10道题,每题10分,程序结束时显示学生得分;(2)确保算式没有超出12年级的水平,只允许进行50以内的加减法,不允许两数之和或之差超出050的范围,负数更是不允许的;(3)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;1(4)对于每道题,学生第一次输入正确答案得10分
4、,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;(5)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显“PASS”,60以下“TRY AGAIN”。编程要求:人机界面良好,有正误判断、机会重现等实用性功能。二、程序总体设计思路1.课题一的总体设计思路:整个程序由一个主程序和五个子程序构成。主程序功能为录入用户名和密码,并判断其正误和调用子程序(可用scanf、while、for、if、switch实现)。五个子程序分别是int MainMenu()(显示主菜单模块)、int Inputscore(int score106)(录
5、入学生成绩模块)、int Displayscore(int score106)(统计每位同学的平均成绩与总分模块)、int Everykemu(int score106)(统计每门课程的平均分、及格率、最高成绩和最低成绩模块)、int Maxmin(int score106)(统计获奖与补考信息模块)。在整个程序中,我用一个10行6列的二维数组(score106)统计十位同学的学号与五科成绩,第一列储存十位同学的学号后五列储存他们的五科成绩。子程序int MainMenu()用于显示主界面(可用printf实现)。子程序int Inputscore(int score106)用于录入每名学生的
6、各科成绩(可用scanf、for实现)。子程序int Displayscore(int score106)中,我定义的int num110、float num210分别统计十位学生的总成绩与平均成绩(可用for实现)。子程序int Everykemu(int score106)中,我定义num10、jigelv10、ma10、mi10分别储存五科课程的平均分、及格率、最高成绩、最低成绩(可用for、if实现)。子程序int Maxmin(int score106)拥有两个功能:统计并输出总成绩前5名的学生学号、各科成绩的功能和总分和统计并输出各科补考学生的学号和成绩的功能(可用for、if实现
7、)。系统功能模块结构图:学生成绩统计系统每科的平均分、及格率、最高成绩和最低成绩录入学生学号和成绩学生获奖与补考信息学生平均成绩和总分退出系统 222.课题二的总体设计思路:整个程序使用while进行循环出题并解答,程序开始是用srand(time(NULL)随机产生两个50以内的正整数以及0或1,随后用if判断随机产生的两个数的和或差是否在0到50以及随机产生的数是0或1。用if函数将其转换为运算符,若产生的是0则为+,若产生的是1则为-。定义两个变量,一个储存正确答案,另一个则储存输入的答案。然后使用for、scanf控制循环、输入,在用if判断答案的正误与计算得分。答题完成后,用swit
8、ch显示得分所对应的称号。最后用while、scanf、if实现机会重现功能。三、程序各模块作用及详细设计1.课题一的程序各模块作用及详细设计(1)开始部分:#include#include#include#includeint MainMenu(); /主菜单 int Inputscore(int score106); /录入学生成绩 int Displayscore(int score106); / 求每位同学的平均成绩与总分 并显示 int Everykemu(int score106) ; /求每门课程的平均分、及格率、最高成绩和最低成绩int Maxmin(int score106)
9、; /获奖与补考信息int main() int score106 ; /定义二维数组,存放学生某课程的成绩 int i=0; int choose; /定义整型变量,存放主菜单选择序号 char str110,str210 ; /储存账号与密码 该部分是程序的开头,说明需调用的系统文件,stdio.h、stdlib.h、string.h、conio.h均是程序课顺利运算与比较必须的内容。而int MainMenu()、int Inputscore(int score106)、int Displayscore(int score106)、int Everykemu(int score106)、
10、int Maxmin(int score106)均为定义的子程序,score106为定义的整数型的二维数组用于储存学号与五科成绩以及str110与str210两字符型数组储存用户名与密码。i、choose为定义的整数型变量,i用于统计输错用户名或密码的次数。choose用于控制选择菜单并参与子程序的调用。(2)用户名与密码判断模块printf(请输入账户名和密码:n);while(1) gets(str1); /输入账户名 gets(str2); /输入密码 3 if(strcmp(str1,abc)!=0|strcmp(str2,123456)!=0) i+; if(i=3) printf(
11、password error!you can not use the sorftwaren); exit(0); printf(请输入账户名和密码:n); else break; printf(welcom to use the softwaren); getchar();MainMenu(); /调用显示主菜单该部分为判断是否是合法用户,gets()为输入函数,将输入的用户名与密码分别存入定义的str110、str210。再用if将其与正确的用户名与密码比较,并用开头定义的i统计连续数错的次数,exit(0)为退出程序时的函数,MainMenu()为显示主菜单的子程序。如果在三次机会内输入正
12、确的用户名与密码则输出“welcom to use the software”进入主菜单,若连续输错3次则输出“password error!you can not use the sorftware”并退出程序。开始i=0图示:i3判断用户名与密码是否正确?i+输入用户名与密码NOi=3退出程序显示主菜单YES4(3)子程序调用模块printf(ntt请选择主菜单序号(04):) ;scanf(%d,&choose);switch(choose) case 1:Inputscore(score); break; /调用录入成绩函数 case 2: Displayscore(score); b
13、reak; /调用每位同学的平均成绩与总分函数 case 3:Everykemu(score); break; / 调用每门课程的平均分、及格率、最高成绩和最低成绩函数 case 4:Maxmin(score); break; / 调用获奖与补考信息函数 case 0:return 0; default:printf(ntt 输入无效,请重新选择!n); printf(nntt 按任意键返回主菜单);getch(); 该部分是在用户名与密码输入正确进入主菜单后,调用子程序完成相应功能的模块。将输入的选项存入定义的choose,用switch实现子程序调用。3:课程信息主菜单0:退出1:成绩录入
14、2:学生信息4:获奖与补考信息图示:(4)子程序: 显示主菜单int MainMenu()system(cls);printf(ntt =菜单= n);printf(ntt n);printf(ntt 1. 成绩录入 n);printf(ntt 2. 学生信息 n);printf(ntt 3. 课程信息 n);printf(ntt 4. 获奖与补考信息 n);printf(ntt 0. 退出 n);5printf(ntt n);printf(ntt = n);printf(ntt 请输入你的选择:);该部分使用printf实现显示出菜单界面与提示。(5)子程序: 录入学生成绩、学号int In
15、putscore(int score106)int i; system(cls);for(i=0;i10;i+) printf(请输入第%d个学生的学号 成绩一 成绩二 成绩三 成绩四 成绩五 n,i+1);scanf(%d%d%d%d%d%d,&scorei0,&scorei1,&scorei2,&scorei3,&scorei4,&scorei5); 该部分是使用for与scanf实现循环录入,并用i控制输入学生数为十人。主菜单i10?输入成绩与学号i=0图示:i+YESNO(6)子程序: 求每位同学的平均成绩与总分 并显示int Displayscore(int score106)int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课程设计 报告
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-2384697.html