通达学院程序设计上机
更新时间:2024-03-31 13:55:01 阅读量: 综合文库 文档下载
- 通达学院转设推荐度:
- 相关推荐
南京邮电大学通达学院 程序设计(上机)报告
题 专 学 班 指 日
目: P014M W006M
业 信息工程 生 姓 名 刘佳利 级 学 号 12000203 导 教 师 赵卫滨 期 2013.10.
评分项 遵守机房规章制度 优秀 良好 中等 及格 不及格 评上机表现 学习态度 基础知识水平 程序设计能力 课题功能实现情况 算法设计合理性 用户界面友好性 报告书写认真程度 报告内容完整性 文字表达清楚程度 问题回答准确性 分细则注:评分等级分为五种:优秀、良好、中等、及格、不及格
评分等级备注 教师签名: 年 月 日 实验报告 题目一:P014M
一、 问题描述
设计一个程序,统计一个班(最多有35人)的学生成绩,要求能实现如下四
个功能:
(1)由键盘输入每个学生的学号和四门课程的成绩。 (2)计算每个学生的平均分和总分。
(3)按总分从高到低排出名次,并按名次输出每个学生的情况,包括学号、各科成绩、平均分和总分。
(4)根据用户要求输出某门课程(由键盘输入课程号)成绩在90分以上(含90分)且总分在前五名的学生情况,包括:学号、各科成绩、平均分和总分。
具体要求如下:
(1)每个功能为一个独立的函数。 (2)所有的输入之前都要有提示。
二、课程分析
1、结构图
输入学生成绩学号 计算平均分和总分 将学生按分数排序 统计某科分数在90分以上并且总分成绩前5的学生
2.数据结构的设计
根据题意本程序分4部分。
首先定义结构体学生student,包含成员变量学号num,成绩数组score,完整定义如下:
typedef struct student {
int num;
float score[4]; }
题目要求的功能可以通过操作成员变量实现。 输入学生成绩由输入输出函数完成。
然后用求和和求平均来完成总分和平均分计算。 然后进行数组排序,按要求将成绩排序。 最后输出时进行筛选。 三.流程图
欢迎进入 功能选择 1 2 3 4 1~8选择 5 6 8 7 输入学生成绩查询学生成绩修改学生成绩学生成绩排序统计学生成绩打开文件保存文件退出系统
五.程序源:
#include
typedef struct student {
int num;
float score[4]; }STU;
STU stu[NUM];
/*输入学生信息函数*/
退出系统 课程A 课程B 课程C 课程D 继续
void input() {
int i;
printf(\输入%d个学生的学号与四门课成绩:\\n\for(i=0; i scanf(\[i].score[2],&stu[i].score[3]); } } /*计算学生总分函数*/ float sum(STU s) { return s.score[0]+s.score[1]+s.score[2]+s.score[3]; } /*计算学生平均分函数*/ float avg(STU s) { return sum(s)/4; } /*按总分排序*/ void sort() { int i,j,k; STU temp; for(i=0; i k = i; for(j=i+1; j if(sum(stu[k]) < sum(stu[j])) { k = j; } } if(k != i) { temp = stu[k]; stu[k] = stu[i]; stu[i] = temp; } } } /*输出学生信息*/ void output() { int i; printf(\学号\\t语文\\t数学\\t英语\\t物理\\t平均分\\t部分\\n\for(i=0; i printf(\ stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],avg(stu[i]),sum(stu[i])); } } void print(int n) { int i; printf(\学号\\t语文\\t数学\\t英语\\t物理\\t平均分\\t部分\\n\ for(i=0; i<5; i++) { if(stu[i].score[n]>=90) { printf(\ stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].score[3],avg(stu[i]),sum(stu[i])); } } } void main() { int n; input();//输入学生信息 sort();//按总分排序 output();//输出排序后的结果 printf(\输入课程号(0表示语文,1表示数学,2表示英语,3表示物理):\scanf(\ print(n);//打印课程成绩在90分以上的学生信息 } 六.相关程序图 七.调试记录 调试记录: 1、开始查询学生信息时,总是无法删掉小于90分的学生的成绩,但后来把flag 统一换成sum是就运行成功了。原来之前没注意一会用flag一会用sum。 2、之前按0老是退不出去,我一直很奇怪,毕竟程序没问题,后来试了一下把 规格弄整齐就好了。 八. 实验结果分析与讨论 实验结果如上所附截图,输入35个学生的学号及四门课程成绩后,程序运 行得到每位学生的平均分及总分,并按总分排序,然后依据输入课程号统计该门课程成绩前五的学生。程序通过定义结构体成功操作相关联的数据,达到题目要求。为方便,程序中将学生数宏定义为35,也可以在程序运行时输入学生数,然后再定义结构体数组。 W006 一、 问题描述 编写一个小程序,可以读入一个英文的文本文件,显示这个文件,并统计这个文件有多少字符,多少单词,多少空白(空格、TAB),多少个段落,按照单词长度进行统计。 二、课题分析 定义个计数器,编写打开程序,打开文件,若无法打开就输出Cannot open flie,读入文本内容,逐个读入字符,根据字符的不同进行统计。若读入大小写字母或数字,则字符数加1,若读入空格,则单词数加1,s且空格数加1,若读入水平制表符,则TAB数加1,若读入换行符,是则段落数加1,若读入”.”或“?”等标点符号,则单词数加1,其他符号数加1,若读入空格或数字,是则单词数减1,不是则其他字符数加1。然后输出个计数器,最后关闭文件。 三、算法描述(流程图) 打开磁盘中文本文 件 操 作 系 N 无法打开文统判断 件 Y error 读入文本 内容 Y N 读入文 本,统计 大小写字 母或数字 character+ + 读入文 Y 本统计 空格 word++,spa N ce++ 读入文 本统计 水平制 TAB++ 读入文 Y paragraph++ 本统计 换行 N word++,others++ 读入文本统计”. Y N Y word-- N others++ 关闭文件 输出结果 四、源程序 #include char c[100]; int i=0,character=0,word=0,space=0,TAB=0,paragraph=1; FILE *fp; printf(\请输入磁盘文件名:\\n\ scanf(\ if ((fp=fopen(c,\ { printf(\ exit(0); } s=fgetc(fp); while(s!=EOF) { putchar(s); if (s>='a'&&s<='z'||s>='A'&&s<='Z'||s>='0'&&s<='9') { character++; } else if(s==' ') { word++,space++; } else if(s=='\\t') { TAB++; } else if(s=='\\n') { paragraph++; } else if(s=='.'&&'?') { word++; } else if(s==' '||s>='0'&&s<='9') { word--; } s=fgetc(fp); } printf(\ printf(\ printf(\ printf(\ printf(\ printf(\ fclose(fp); printf(\}五、程序测试记录 第一次:请输入磁盘名 d:/123 Cannot open file Press any key to continue 第二次:请输入磁盘名 d:/123.txt I am a student# Character:11word:3space:3space:3TAB:0paragraph:2others:1 Press any key to continue 六、相关运行界面 七、调试记录 1、先在D盘建立一个文本文件 2、执行程序读入数据发现无法读取 3、发现输入文件名时没有加入后缀.txt导致无法读取 4、修改后可执行 八、实验结果分析与讨论 该程序不能计算出单词的长度及最长的单词是什么。但是能将字符与单词简单、明了的统计。在输入磁盘名时,应先在磁盘中建立文本文件,输入时需给出完整路径。
正在阅读:
通达学院程序设计上机03-31
狗狗身上长脂肪瘤的处理方法 - 图文07-07
八下数学《同步练习》7.2统计表、统计图的选用(1)12-20
小学生童话作文500字06-15
国防科大版离散数学习题答案04-22
美国农业革命道路与普鲁士农业革命道路的进程和特点的比较11-30
外研社新标准小学二年级英语上册module1测试题 .docx04-16
法律教育协同培养模式研究12-12
苏州珠江钢琴|钢琴1-10级考级曲目大全,这下知道该练哪首了04-27
新一下115-116课测试题01-15
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 上机
- 通达
- 程序设计
- 学院
- 题库预览3
- 安徽语文-名著阅读 中考必备!
- 小学数学《三角形面积计算》教学设计与反思1
- 新增粮食生产能力实施规划(2009-2020)
- 中国瓶起子行业市场前景分析预测报告(目录) - 图文
- 2005年上半年广东省行政职业能力测验试题
- 科普文章:网闸和防火墙的区别是什么? - 图文
- 写人
- 第二章 了解地区6
- 西安交通大学18年9月课程考试《机械控制工程基础》作业考核试题
- 行政村规模调整后管理与发展问题的思考
- 航空航天器铸造铝合金 - 2 - 张春波
- 电大《民族理论与民族政策》期末总复习题
- 《我三十万大军胜利南渡长江》教案
- VRV内网安全管理基本技术白皮书 - 图文
- 《学前儿童艺术教育》作业参考答案
- 瓜迪奥拉的阵地战法
- 2017年8月18日(西安市雁塔区人民检察院技术侦查综合楼工程) -
- 电工技术复习题(2012.4)
- 第三方保管合同(货权证明提货单根据具体品种调整)