程序设计报告(求完整C语言程序设计报告!!)
本文目录
求完整C语言程序设计报告!!
C语言课程设计报告--学生成绩管理系C语言课程设计报告:学生成绩管理系统系统需求一、 当前学生信息:通过结构体struct student 来保存学生的姓名,学号,性别,语文,数学,英语和计算机等等相关信息,并且通过cin函数来进行给当前学生输入初始信息. 二、学生成绩查询: 输入一个学号, 在文件中查找此学生, 若找到则输出此学生的全部信息和成绩; 若找不到则输出查找失败的信息. 同时也可以全部把各科的平均成绩,最高和最低分输出。三、新生插入 :通过给该生的学号来和原班上的学生的学号比较大小,若大就在后,若小则靠前排,将此生的信息保存下来。 四、输出全部学生信息和全部学生成绩。五、退出系统.六、附加说明:系统将来完善的功能有:可以通过性别来模糊查询,也可以通过姓名的姓来先进行模糊查询,以便后面精确查找。总体设计一、 仔细阅读系统要求,首先将此系统化分为如下模块(即如下函数)1、输入初始的学生信息:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。 2、查询模块:可用stu *lookdata(stu *p1) 来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。 3、插入模块:可用insert( )函数来实现。其中通过学号的大小来比较的,并且以此来排序。4、输出学生的信息以及成绩:通过学生的姓名来查看学生的语文、数学、英语和计算机等相关成绩,同时也可以分别通过caverage() 、 maverage() 、eaverage() 和comaverage() 来输出语文、数学、英语和计算机等成绩的平均分数、最高和最低分数。 5、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。二、系统主模块结构图:详细设计一、 界面设计此系统界面采用图形和数字化菜单设计。主界面设计如下: 学生成绩管理系统 请选择相应的数字执行相应的功能:1:是否输入其他数据2:查看数据3:插入数据4:查找数据5:更新数据6:保留数据7:显示或打印数据8:语文成绩状况9:数学成绩状况10:英语成绩状况11:计算机成绩状况12:?13:退出系统二、 数据结构设计: 程序设计中用到的结构体类型: 学生信息结构体类型:typedef struct student{ char name; int num; char sex; int chinese; int mathematic; int english; int computer; struct student *next; }程序代码://原始密码是123456#include"stdio.h"#include"stddef.h"#include"stddef.h"#include"string.h"#define MAX 10typedef struct student{ /*定义结构体*/ char name; /*姓名*/ int num; /* 学号*/ char sex; /*性别*/ int chinese; /*语文*/ int mathematic; /* 数学*/ int english; /*英语*/ int computer; /*计算机*/ struct student *next; /*结构体指针*/ }stu;stu *head; /*头指针*/void print() /*显示或打印函数*/ { system("cls"); printf("\t\t\tScore Manage System\n"); /*成绩管理系统*/ printf("《1》Enter Record\t"); /*输入数据*/ printf("《2》Display\t"); /*显示*/ printf("《3》Insert\t"); /*插入数据*/ printf("《4》Quest\t"); /*访问数据*/ printf("《5》Update\t"); /*以前数据*/ printf("《6》Save\t"); /*保留数据*/ printf("《7》Fresh\t"); /*更新数据*/ printf("《8》Chinese Average\t"); /*语文平均成绩*/ printf("《9》Math Average\t"); /*数学平均成绩*/ printf("《10》English Average\t"); /*英语平均成绩*/ printf("《11》Computer Average\t"); /*计算机平均成绩*/ printf("《12》Quit\t\n"); /*退出*/ }void cin(stu *p1) /*输入相关数据的函数*/ { printf("Enter name:\n"); scanf("%s",&p1-》name); printf("Enter num:\n"); scanf("%d",&p1-》num); printf("Enter sex:\n"); scanf("%s",&p1-》sex); printf("Enter score:\n"); printf("Enter chinese:\n"); scanf("%d",&p1-》chinese); printf("Enter math:\n"); scanf("%d",&p1-》mathematic); printf("Enter English:\n"); scanf("%d",&p1-》english); printf("Enter Computer:\n"); scanf("%d",&p1-》computer); } stu *cindata() /*其他数据是否继续输入的函数*/ { stu *p1,*p2; int i=1; char ch; p1=(stu *)malloc(sizeof(stu)); head=p1; while(i) { cin(p1); printf("Do you Want to Continue?yes or no"); /*是否继续输入数据*/ ch=getchar(); ch=getchar(); if(ch==’n’||ch==’N’) { i=0; p1-》next=NULL; } else { p2=p1; p1=(stu *)malloc(sizeof(stu)); p2-》next=p1; } } return(p1-》next);}stu *lookdata(stu *p1) /*查看数据的函数*/ { while(p1!=NULL) { printf("Num:%d\t",p1-》num); printf("Name:%s\t",p1-》name); printf("Sex:%s\t",p1-》sex); printf("\n"); printf("Chinese:%d\t",p1-》chinese); printf("Math:%d\t",p1-》mathematic); printf("English:%d\t",p1-》english); printf("Computer:%d\t",p1-》computer); printf("\n"); p1=p1-》next; } return p1; }void insert() /*通过比较学号来插入数据的函数*/ { stu *p1,*p3,*p2; char ch; p1=head; p3=(stu *)malloc(sizeof(stu)); p3-》next=NULL; if(head==NULL){ head=p3; return;} cin(p3); while(p1!=NULL&&(p1-》num《p3-》num)) /*通过学号的比较来插入*/ { p2=p1;p1=p1-》next;} if(p2==head) {p3-》next=head; head=p3; return;} p3-》next=p1; p2-》next=p3;}find(stu *p2) /*通过姓名查找查看数据的函数*/ { char name; int b=0; printf("Enter the name of the student you want to find:"); /*通过姓名查看*/ scanf("%s",name); while(p2!=NULL) {if(strcmp(name,p2-》name)==0) { printf("The data you want has be found\n"); printf(" Name:%s\t",p2-》name); printf("Num:%d\t",p2-》num); printf("sex%s\t",p2-》sex); printf("\n"); printf("Chinese:%d\t",p2-》chinese); printf("Math:%d\t",p2-》mathematic); printf("English:%d\t",p2-》english); printf("Computer:%d\t",p2-》computer); printf("\n"); b=1; } else if(b==0) printf("sorry not find data!"); p2=p2-》next; } if(b==1) { print(); printf("Find one\n");} else {print(); printf("Not find\n"); }}void caverage() /*求各学生语文平均分、最高和最低分成绩的函数*/ { stu *p1; int i; float max=0.0,min=200.0; float sum=0.0,aver=0; p1=head; if(p1==NULL) printf("not data!"); else {for(i=0;p1!=NULL;i++,p1=p1-》next) sum+=p1-》chinese; aver=sum/i; p1=head; for(i=0;p1!=NULL;i++,p1=p1-》next) {if(max《p1-》chinese) max=p1-》chinese; } p1=head; for(i=0;p1!=NULL;i++,p1=p1-》next) if(min》p1-》chinese) min=p1-》chinese; } printf("Chinese Average:%f",aver); printf("Chinese Max:%f",max); printf("Chinese Min:%f",min); }void maverage() /*求各学生数学平均分、最高和最低分成绩的函数*/ { stu *p1; int i; float max=0.0,min=200.0; float sum=0.0,aver=0; p1=head; if(p1==NULL) printf("not data!"); else {for(i=0;p1!=NULL;i++,p1=p1-》next) sum+=p1-》mathematic; aver=sum/i; p1=head; for(i=0;p1!=NULL;i++,p1=p1-》next) {if(max《p1-》mathematic) max=p1-》mathematic; } p1=head; for(i=0;p1!=NULL;i++,p1=p1-》next) if(min》p1-》mathematic) min=p1-》mathematic; } printf("Mathe Average:%f",aver); printf("Mathe Max:%f",max); printf("Mathe Min:%f",min); }void eaverage() /*求各学生英语平均分、最高和最低分成绩的函数*/ { stu *p1; int i; float max=0.0,min=200.0; float sum=0.0,aver=0; p1=head; if(p1==NULL) printf("not data!"); else {for(i=0;p1!=NULL;i++,p1=p1-》next) sum+=p1-》english; aver=sum/i; p1=head; for(i=0;p1!=NULL;i++,p1=p1-》next) {if(max《p1-》english) max=p1-》english; } p1=head; for(i=0;p1!=NULL;i++,p1=p1-》next) if(min》p1-》english) min=p1-》english; } printf("English Average:%f",aver); printf("English Max:%f",max); printf("English Min:%f",min); }void comaverage() /*求各学生计算机平均分、最高和最低分成绩的函数*/ { stu *p1; int i; float max=0.0,min=200.0; float sum=0.0,aver=0; p1=head; if(p1==NULL) printf("not data!"); else {for(i=0;p1!=NULL;i++,p1=p1-》next) sum+=p1-》computer; aver=sum/i; p1=head; for(i=0;p1!=NULL;i++,p1=p1-》next) {if(max《p1-》computer) max=p1-》computer; } p1=head; for(i=0;p1!=NULL;i++,p1=p1-》next) if(min》p1-》computer) min=p1-》computer; } printf("Computer Average:%f",aver); printf("Computer Max:%f",max); printf("Computer Min:%f",min); }update(stu *p2) /*通过姓名查找来更新数据*/ { char name; /*p2为指向结构体struct student的指针*/ int b=0; printf("Enter The Name"); /*输入姓名*/ scanf("%s",name); while(p2!=NULL) {if(strcmp(name,p2-》name)==0) { printf("Find you data\n"); scanf("Name:%s",p2-》name); scanf("Num:%s",p2-》num); scanf("Sex:%s",p2-》sex); scanf("Chinese:%d",p2-》chinese); scanf("Math:%d",p2-》mathematic); scanf("english:%d",p2-》english); scanf("Computer:%d",p2-》computer); printf("Success!"); b=1;} else if(b==0) printf("Sorry not Find data!"); p2=p2-》next;} if(b==0) {print(); printf("Sorry not Find data!"); } else { print(); printf("Finish!"); } }save(stu *p2) /*保留数据函数*/ { FILE *fp; char file; printf("Enter file name"); /*输入文件名*/ scanf("%s",file); fp=fopen(file,"w"); while(p2!=NULL) { fprintf(fp,"%s",p2-》name); fprintf(fp,"%s",p2-》num); fprintf(fp,"%s",p2-》sex); fprintf(fp,"%d",p2-》chinese); fprintf(fp,"%d",p2-》mathematic); fprintf(fp,"%d",p2-》english); fprintf(fp,"%d",p2-》computer); p2=p2-》next; } fclose(fp); }char password="123456"; /*定义初始密码*/void main() /*主函数*/{ int choice; stu *p2; char s; int flag=0,i; /*标志项*/ int n=3; do{ printf("Enter password:\n"); scanf("%s",s); if(!strcmp(s,password)) /*进行密码匹配验证*/ { printf("PASS\n\n\n"); flag=1; break; } else{ printf("Error Enter again:\n"); n--; } } while(n》0); if(!flag) {printf("you have Enter 3 times!"); /*输入密码超过了3次!!*/ exit(0); /*自动退出*/ } /*密码验证成功后进入的界面*/ printf("~~~~~~~~~~\t\t\t~~~~~~~~~~~~\n"); /*操作界面*/ printf("\t\tWelcom to the Mis\n"); printf("Author:-----\tClass:------\tNum:------\n"); /*作者,班级和号码*/ printf("Adress:HG\n"); /*地址*/ printf("%%%%%%%%%%%%%%%%%%%%%%%%%%%\n"); printf("\t\tEnter OP:\n"); printf("\n\n\n\n"); printf("==============\t\t==============\n"); printf("==============\t\t==============\n"); printf("\t\tEnter the MIS yes or no\n"); /*问进入系统与否*/ scanf("%d",&choice); if(choice==’n’||choice==’N’) exit(1); print(); while(1) { printf("Enter choice:"); scanf("%d",&i); if(i《1||i》13) { printf("Enter num from 1 to 13:\n"); /*再从1-13中进行选择*/ exit(1); } switch(i) { case 1: p2=cindata(); /*其他数据是否继续输入的函数*/ break; case 2: p2=lookdata(head); /*查看数据的函数*/ break; case 3: insert(); /*通过比较学号来插入数据的函数*/ break; case 4: find(head); /*通过姓名查找查看数据的函数*/ break; case 5: update(head); /*通过姓名查找来更新数据*/ break; case 6: save(head); /*保留数据函数*/ break; case 7: print(); /*显示或打印函数*/ break; case 8: caverage(); /*求各学生语文平均分、最高和最低分成绩的函数*/ break; case 9: maverage(); /*求各学生数学平均分、最高和最低分成绩的函数*/ break; case 10: eaverage(); /*求各学生英语平均分、最高和最低分成绩的函数*/ break; case 11: comaverage(); /*求各学生计算机平均分、最高和最低分成绩的函数*/ break; case 12: ; /*空操作*/ case 13: exit(1); /*退出*/ break;} scanf("%d",&i);}}程序中出现的问题及解决方法问题一、学生初始信息模块:其中包括学生的姓名、学号和性别以及学生的语文、数学、英语和计算机等相关信息;可用函数cin(stu *p1)来实现此操作。当正确输入存在的学生学号,系统进行判断时,提示不存在此学生。解决办法及步骤:1、一个个输出所有的学生的学号,检查文件中是否有此学生,发现有。 2、既然有此学生,那么检查循环判断是否有此学生的语句发现没有错 3、输出用于循环检查语句中的学生信息,发现乱码 4、仔细分析乱码的原因,最后发现是变量的类型错误,错将学生类型的结构体指针变量定义为了其他类型的指针变量。问题二、查询模块:可用stu *lookdata(stu *p1) 来实现。找到就输出此学生全部信息包括学生的语文、数学、英语和计算机等的成绩。当正确输入查找信息时,系统却不能够得到所要查找的学生信息以及学生的语文、数学、英语和计算机的成绩。解决办法及步骤:1、检查所编写的程序代码是否完全正确,若不是,则改之,然后再继续正确输入查找信息看能否得到所要查找的学生信息以及学生的语文、数学、英语和计算机的成绩。 2、检查当我们在输入查找信息时,看是否我们输入的信息有误,若是这样的话,我们应当仔细输入查找信息。问题三、插入模块:可用insert( )函数来实现。其中通过学号的大小来比较的,并且以此来排序。当我们输入插入信息时,系统却提示插入不进数据。解决办法及步骤:1、检查所编写的程序代码是否完全正确,若不是,则改之,然后再继续正确输入插入信息看能否插入进去得到所要插入的学生信息以及学生的语文、数学、英语和计算机的成绩。 2、检查当我们在输入插入信息时,看是否我们输入的插入信息有
c++程序设计实习报告怎么写
C/C++程序设计课程设计报告程序异常处理特色功能课程设计总结课程设计计划执行情况我理解的C++改进设想附录 关键代码
程序设计实践报告
程序设计实践报告
本文是关于《程序设计实践报告》范文,详情请您对下文进行参考:
本文:yjbys.com
1、实验目的、内容 通过课程设计,能够熟练运用C++进行面向对象编程,建立对象模型,降低软件的复杂性,改善软件的重用性和维护性,提高软件的生产效率,全面掌握面向对象编程技术. 要求学生在指导老师的指导下,独立完成实习课题的全部内容,包括: (1) 通过调查研究和上机实习,收集和调查有关技术资料; (2) 掌握设计课题的基本步骤和方法; (3) 根据课题的要求进行上机实验调试. 2、题目一:比赛求平均分 2.1程序内容 在体育、文艺比赛及选举等打分类项目中,为了公平起见,往往n个评委打出分数后,要去掉一个最高分和一个最低分,然后求取平均得分。当n较大时(本题设为9),则应取掉两个最高分和两个最低分,然后求取平均分。编程实现该算法。
2.2实验程序设计及结构 (1)需求分析: 输入9个评委所打分数,程序运行最后结果为去掉最高分和最低分后的平均分. (2)设计结构: 总体结构
数据结构 从a依次为9位评委的打分. 2.3设计过程 (1) 建立iostream/ofstream/fstream、输入、输出、输入输出流对象,建立ifndef,define预编命令,STRUCT 数据. (2)根据流程图,建立main函数,并运用for循环. (3)运行main函数进行调试. 2.4运行结果 3、题目二:火柴游戏 3.1程序内容: 23根火柴游戏: 两个游戏者开始拥有23根火柴(或小棒)。每个游戏者轮流移走1根、2根或3根火柴,拿到最后一根火柴的就算输了。编一程序与计算机玩这个游戏。 3.2实验程序设计 (1)需求分析: 运行程序能使人与计算机进行23根火柴游戏。 (2)设计思路: 使计算机能最先使火柴变成4或4以下计算机就能赢了。
3.3设计过程 (1) 建立iostream/ofstream/fstream、输入、输出、输入输出流对象,建立ifndef,define预编命令,STRUCT 数据. (2)根据设计思路运用if判断语句设计 (3)建立main函数 (4)运行main函数调试
3.4运行结果 4、题目三:足球比分 4.1设计内容: 问题描述 足球联赛采用主客场双循环赛制,胜一场得3分,平局各得1分,负一场得0分,联赛排名以积分多者在前,当两队(或多队)积分相同时,则净胜球(即进球数与失球数之差)多者在前,若净胜球相同,则进球数多者在前,若仍相同,则抽签或踢附加赛决定名次(这在联赛结束后进行,联赛未结束则两队名次并列,本程序不做这方面要求)。试编一程序统计最近一轮比赛后,各队积分及排名。 基本要求 设积分表结构如下:队名(不超过15个字符),已比赛的场数,赢的.场数,平的场数,负的场数,进球数,失球数,积分。积分表放在正文文件中。最近一轮的结果从键盘输入,其形式为:主队名(可用代码),客队名(可用代码),主队得分(即进球数),客队得分(即进球数)。程序应根据此轮结果修改各队的积分和名次,所得的最新记分表仍在原积分文件中并同时在屏幕上显示。 测试数据 可选择我国当年的甲A或甲B联赛的数据输入,并检查与报章公布的数据是否一致。 4.2设计方案: 定义一个球队类和对象数组,每个球队均是球队类的对象。由于联赛中参赛队伍数目是固定的,因此将每个球队存放在对象数组的一个数组元素中。每输入两个队的比赛成绩,则相应的队的有关数据(比赛场数,赢得场数,进球数等等)即可进行修改,比赛成绩录入完成,调用联赛排序方法(对象数组作为参数,积分为排序元素)排出名次并输出。 5、设计的特点与心得: 经过一个学期的学习和上机实践,使我对C++语言有了更认识和和了解,要想学好它要重在实践,要通过不断的上机操作才能更好的学习它,通过实践,我也发现我的好多不足之处,对各种控制结构及语句、数组的基本与高级应用、指针数组、字符数组、动态数组、函数的定义、调用方式;函数在编程中的具体应用;以及变量存储特征与标识符的作用域,通过实践,使我在这些方面有了认识和提高。课程设计它是一项任务,更是一种挑战和历练。在课程设计中,为了使用时方便,着重对不足方面的知识进行了分析与理解,在这一过程中对文件的操作有了很大的提高。通过实际的演练,可以增强对知识的理解和运用能力。
参考文献 、杨长兴、刘卫国,《C++程序设计》,中国铁道出版社,2008年
附录 题目一实验源代码: #include《stdio.h》 #include《iostream.h》 void main() { int a,i,j,temp,b=0,s; cout《《"请打分:"《《endl; for(i=0;i《9;i++) { cin》》a; } for(i=0;i《9;i++) for(j=i;j《9;j++) { if(a) { temp=a; a; a=temp; } } for(i=2;i《7;i++) { b=b+a; } s=b/5; cout《《"最后成绩为:"《《s; }
题目二实验源代码: #include 《stdio.h》 #include 《stdlib.h》 #include 《iostream》
int getMin(int a,int b) { return a《b?a:b; } int main() { printf("游戏开始\n"); int count = 23; int input; int computerInput; while(true) { printf("当前还剩%d根火柴,请玩家拿取火柴:\n",count); printf("1.一根火柴 ");
计算机程序设计基础的实验报告怎么写
1 实验要求: 1.实验前按实验报告格式要求,写出预实验报告,注意留出记录结果的空间。2.认真实验,注意记录3.撰写实验报告.按时上交. 实验报告格式:实验* ***** ***** ***** 一、实验目的照抄实验指导的内容。二、实验步骤和内容包括:1.实验题目要求。2.源程序清单3.预期结果3.上机执行或调试结果:包括原始数据、相应的运行结果和必要的说明三、实验体会调试中遇到的问题及解决办法;若最终未完成调试,要试着分析原因;调试程序的心得与体会;其他算法的存在与实践;对课程及实验的建议等。
C语言程序设计报告的格式
课程设计(实践周)报告书一般有如下内容:1.目录目录是将报告书内的章节标题依次排列。2.需求分析主要内容包括本课程设计(实践周)题目、课程设计(实践周)任务及要求、课程设计(实践周)思想、软硬件运行环境及开发工具。3.概要设计主要叙述本课题设计的流程图(各功能模块)、主要的数据结构、完成本课程设计(实践周)所用方法及其原理的简要说明。4.详细设计主要是本课题所需要的硬件设计与软件设计,包含建立设计所需的数学模型并列出必要的计算公式、计算过程及说明,主要算法的设计与实现,写出设计计算结果;绘出计算机程序框图,写出自编的程序。5.调试与操作说明系统调试分析与操作使用说明。6.课程设计(实践周)总结与体会主要对本课题开发过程进行归纳和总结,本课题在设计过程中所遇到的技术难点及解决方法。还应包括本课题尚存在的问题,以及进一步开发的见解与建议。并写出通过本次课程设计(实践周)的收获和体会。7.致谢以简短的文字对在设计研究和设计报告撰写过程中曾直接给予帮助的人员表示自己的谢意8.参考文献为了反映论文的科学依据和作者尊重他人研究成果的严肃态度以及向读者提供有关信息的出处,应列出本课程设计(实践周)所涉及的主要参考文献。9.附录有些材料编入文章主体会有损于编排的条理性和逻辑性,或有碍于文章结构的紧凑和突出主题思想等,可将这些材料作为附录编排于全文的末尾。
更多文章:
《太阳与士兵>课题有什么寓意?《太阳与士兵》 表达了作者怎样的思想感情
2024年3月30日 11:10