程序设计综合训练
- 格式:docx
- 大小:54.00 KB
- 文档页数:17
计算机程序设计员实操考核综合练习引言计算机程序设计员是信息技术领域的一份重要职业,以其独特的技能和能力为企业和组织开发和维护软件系统。
为了评估和选拔合适的计算机程序设计员,实操考核综合练习成为了一种广泛采用的评估方法。
本文将介绍计算机程序设计员实操考核综合练习的主要内容和要求。
背景计算机程序设计员实操考核综合练习旨在评估考生的编程能力、问题解决能力、团队合作能力以及对程序设计的理解和应用能力。
考核内容涵盖了多个方面,包括编程语言的基础知识和应用、算法和数据结构、软件开发流程和工具的使用等。
通过综合练习,考官可以更全面地了解考生的实际水平和潜力,为选拔合适的计算机程序设计员提供参考依据。
考核内容计算机程序设计员实操考核综合练习通常包括以下几个方面的内容:编程语言知识考生需要熟悉所使用的编程语言的语法和特性,包括基本数据类型、变量和常量、运算符、控制结构、函数和对象等。
考官会通过一些编程题目来评估考生对编程语言的熟练程度和运用能力。
算法和数据结构算法和数据结构是计算机程序设计的核心,对于一个合格的程序设计员来说,掌握常见的算法和数据结构是必不可少的。
考生需要了解并熟练运用常见的排序算法、查找算法和数据结构,如数组、链表、栈和队列等。
考官可能会出一些与算法和数据结构相关的题目来评估考生的能力。
软件开发流程一个好的软件开发流程可以提高软件开发的效率和质量。
考生需要了解软件开发的基本流程,包括需求分析、设计、编码、测试和维护等阶段,并了解相应的开发工具和技术。
考官可能会出一些与软件开发流程相关的题目来评估考生的能力。
团队合作能力计算机程序设计员经常需要与团队成员合作开发和维护软件系统。
考生需要展现出良好的团队合作能力,包括沟通能力、合作能力和问题解决能力等。
考官可能会组织一些团队项目来评估考生的团队合作能力。
考核要求计算机程序设计员实操考核综合练习的要求如下:1.熟练掌握所使用的编程语言的语法和特性。
2.掌握常见的算法和数据结构,并能熟练运用。
程序设计综合训练-学习指南一、单项选择题1.任何复杂的程序,都是由________构成的。
A)分支结构、顺序结构、过程结构B)循环结构、分支结构、过程结构C)顺序结构、循环结构、分支结构D)循环结构、分支结构2.有以下定义和赋值语句,能够正确表示a[1][2]的表达式是。
int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12};int (*p)[3]= a;A)*((*p+1)+2) B)(*p+1)+2 C)*(*(p+5)) D)*(*(p+1)+2) 3.以下说法中正确的是________。
A)C程序总是从第一个定义的函数开始执行B)在C程序中,要调用的函数必须在main函数中定义C)C程序总是从main函数开始执行的D)C程序中的main函数必须放在程序的开始部分4.以下结构体类型变量的定义错误的是________。
A)#define STU struct studentSTU {float height; int age; }std1;B)struct student {float height; int age; }std1;C)struct {float height; int age; }std1;D)struct {float height; int age; }student;struct student std1;5.以下说法错误的是________。
A)do~while语句与while语句的区别仅是关键词“while”出现的位置不同B)while语句是先进行循环条件判断,后执行循环体的C)do~while是先执行循环体,后进行循环条件判断D)while、do~while和for语句的循环体都可以是空语句6.C语言程序是从main函数开始执行,这个函数写在________。
A)程序文件开始B)它所调用函数的前面C)程序文件最后D)程序文件任何位置7.在C语言类型说明中,int、char、short等类型的长度是________。
西交《程序设计综合训练》在线作业一、单选题(共 40 道试题,共 100 分。
)1. 下列错误的语句是________。
A. int k,*p=&k; scanf(“%d”,&k);B. int k,*p=&k; scanf(“%d”,p);C. int k,*p; *p=&k; scanf(“%d”,p);D. int k,*p ; p=&k; scanf(“%d”,p);正确答案:C2. 若用数组名作为函数调用时的参数,则实际上传递给形参的是________。
A. 数组元素的个数B. 数组的第一个元素值C. 数组中全部元素的植D. 数组首地址正确答案:D3. 若有以下定义:float x; int a,b; 则错误的switch语句是________。
A. switch(x){case 1.0:printf("*\n"); case 2.0:printf("*\n"); }B. switch(a){case 1:printf("*\n");case 2:printf("*\n"); }C. switch(a+b) {case 1:printf("*\n"); case 1+2:printf("*\n"); }D. switch(a+b);{case 1:printf("*\n");case 2:printf("*\n"); }正确答案:A4. 以下叙述不正确的是________。
A. 一个C源程序文件必须包含一个main( )函数B. 一个C源程序文件可由一个函数组成C. 一个C源程序文件是一个编译单位D. 一个C源程序文件可由多个函数组成正确答案:A5. C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是________。
《程序设计综合训练》设计报告专业:班级:学号:姓名:指导教师:成绩:计算机工程学院2012年10月(1)题目名称、容课程管理系统假定有n 门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。
试设计学生选修课程系统,使之能提供以下功能:1、课程信息录入功能(课程信息用文件保存,也可不用)2、课程信息浏览功能3、排序:按课程编号排序4、查询功能: 按课程性质查询5、课程修改、删除(任选一项)(2)解题的基本思路主函数选择需要处理的功能,分别再写出课程录入自定义函数、课程浏览自定义函数、课程排序自定义函数、课程查询自定义函数、课程删除自定义函数。
(3)设计方案该系统包括数据录入、浏览、排序、删除、查询功能模块,每个模块在程序系统中用一个自定义函数来实现,如图:主函数:Main 函数输入1 调用课程录入自定义函数输入2 调用课程浏览自定义函数输入3 调用课程排序自定义函数输入4 调用课程查询自定义函数输入5 调用课程删除自定义函数输入6 退出系统luru()(录入信息)liulan()(浏览信息)paixu()(按编号排序)find()(课程名称查找相应的信息)shanchu()(删除对象)调用find()自定义函数,值赋给kk!= -1真假for i=k to subject-2kech[i+1]里的值对应的赋值给kech[i] 输出没有这门课程subject自减1(4)程序调试1、出现的问题解决方法:仔细检查,不时地加入输出语句。
2、出现的问题没有了信息提示。
解决方法:将主函数中的信息提示调到循环体。
3.出现的问题选择处理功能后感觉信息太多没有清屏。
解决方法:加入了清屏功能的自定义函数。
(5)测试课程录入课程浏览课程排序课程查询课程删除系统退出(6)总结当看到这系统之前,感觉这是一个不可能完成的作业,系统艾,多高档的东西啊,但等我坐下来认真分析时,才发现这系统并没有想象中的那么难,也是由我们平时做的简单程序段组成的。
《程序设计综合训练》实验报告班级:姓名:学号:学院:指导老师:学生成绩管理系统#include<stdio.h>#include <time.h>#include<conio.h> /*清屏*/#include <stdlib.h> /*显示目录*/#include<string.h>#define MAX 80void input(); /*输入数据函数*/void sort();/*排序数据函数*/void sort1();void sort2();void sort3();void display();/*显示数据函数*/void display1();void insert(); /*插入数据函数*/void del(); /*删除数据函数*/void average(); /*平均值函数*/void find();/*查找数据函数*/void find1();void find2();void save(); /*保存数据函数*/void read(); /*读出数据函数*/void del_file(); /*删除文件函数*/void modify(); /*修改文件函数*/int now_no=0;struct student{int no;char name[20];char sex[4];float score1;float score2;float score3;float sort;float ave;float sum;};struct student stu[MAX],*p;main()/*主函数*/{int as;char ch;do{start: printf("\n\n\n\t\t\t欢迎使用学生成绩管理系统\n");printf("\n\n\n\n\n\n\t\t******************按任意键继续********************");ch=getch();}while(!ch);system("cls");/*一下为功能选择模块*/do{printf("\n\t\t\t\t1.录入学员信息\n\t\t\t\t2.显示学员总成绩信息\n\t\t\t\t3.对总成绩排序\n\t\t\t\t4.显示学员单科成绩排序\n\t\t\t\t5.添加学员信息\n\t\t\t\t6.删除学员信息\n\t\t\t\t7.修改学员信息\n\t\t\t\t8.查询学员信息\n\t\t\t\t9.从文件读入学员信息\n\t\t\t\t10.删除文件中学员信息\n\t\t\t\t11.保存学员信息\n\t\t\t\t12.退出\n");printf("\t\t\t\t选择功能选项(输入所选功能前的数字):");fflush(stdin);/*可用可不用,用于清除缓存防止下次用scanf输入是出现错误*/scanf("%d",&as);switch(as){case 1:system("cls");input();break;case 2:system("cls");display();break;case 3:system("cls");sort();break;case 4:system("cls");display1();break;case 5:system("cls");insert();break;case 6:system("cls");del();break;case 7:system("cls");modify();break;case 8:system("cls");find();break;case 9:system("cls");read();break;case 10:system("cls");del_file();break;case 11:system("cls");save();break;case 12:system("exit");exit(0);default:system("cls");goto start;}}while(1);/*while(1),1表示真,所以while(1)表示永远循环下去,一般在while(1)的循环体内都有break 或者return 跳出循环*//*至此功能选择结束*/}void input()/*原始数据录入模块*/{int i=0;char ch;do{printf("\t\t\t\t1.录入学员信息\n输入第%d个学员的信息\n",i+1);printf("\n输入学生编号:");scanf("%d",&stu[i].no);fflush(stdin);printf("\n输入学员姓名:");fflush(stdin);gets(stu[i].name);printf("\n输入学员性别:");fflush(stdin);gets(stu[i].sex);printf("\n输入学员成绩1:");scanf("%f",&stu[i].score1);printf("\n输入学员成绩2:");fflush(stdin);scanf("%f",&stu[i].score2);printf("\n输入学员成绩3:");fflush(stdin);scanf("%f",&stu[i].score3);printf("\n\n");i++;now_no=i;printf("是否继续输入?(Y/N)");fflush(stdin);ch=getch();system("cls");}while(ch!='n'&&ch!='N');system("cls");}void sort()/*排序数据函数*/{struct student temp;int i,j;average();for(i=1;i<now_no;i++){for(j=1;j<=now_no-i;j++){if(stu[j-1].ave<stu[j].ave){temp=stu[j];stu[j]=stu[j-1];stu[j-1]=temp;}}}printf("排序以完成进入功能2可进行显示\n");system("pause");system("cls");}void sort1()/*排序数据函数*/{struct student temp;int i,j;for(i=1;i<now_no;i++){for(j=1;j<=now_no-i;j++){if(stu[j-1].score1<stu[j].score1){temp=stu[j];stu[j]=stu[j-1];stu[j-1]=temp;}}}}void sort2()/*排序数据函数*/{struct student temp;int i,j;for(i=1;i<now_no;i++){for(j=1;j<=now_no-i;j++){if(stu[j-1].score2<stu[j].score2){temp=stu[j];stu[j]=stu[j-1];stu[j-1]=temp;}}}}void sort3()/*排序数据函数*/{struct student temp;int i,j;for(i=1;i<now_no;i++){for(j=1;j<=now_no-i;j++){if(stu[j-1].score3<stu[j].score3){temp=stu[j];stu[j]=stu[j-1];stu[j-1]=temp;}}}}void display()/*显示数据函数*/{int i;char as;average();do{printf("\t\t\t班级学员信息列表\n");printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n");for(i=0;i<now_no&&stu[i].name[0];i++)printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i ].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);printf("\t\t按任意键返回主菜单.");fflush(stdin);as=getch();}while(!as);system("cls");}void display1()/*显示数据函数*/{int i;char as;do{printf("\t\t\t班级学员score1成绩排序\n");printf("\t编号\t姓名\t性别\t成绩1\n");sort1();for(i=0;i<now_no&&stu[i].name[0];i++)printf("\t%d\t%s\t%s\t%.2f\t\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score 1);printf("\t\t\t班级学员score2成绩排序\n");printf("\t编号\t姓名\t性别\t成绩2\n");sort2();for(i=0;i<now_no&&stu[i].name[0];i++)printf("\t%d\t%s\t%s\t%.2f\t\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score 2);printf("\t\t\t班级学员score3成绩排序\n");printf("\t编号\t姓名\t性别\t成绩3\n");sort3();for(i=0;i<now_no&&stu[i].name[0];i++)printf("\t%d\t%s\t%s\t%.2f\t\n",stu[i].no,stu[i].name,stu[i].sex,stu[i].score 3);printf("\t\t按任意键返回主菜单.");fflush(stdin);as=getch();}while(!as);system("cls");}void insert()/*插入数据函数*/{char ch;do{printf("\n\t\t输入新插入学员队信息\n");printf("\n输入学生编号:");scanf("%d",&stu[now_no].no);fflush(stdin);printf("\n输入学员姓名:");fflush(stdin);gets(stu[now_no].name);printf("\n输入学员性别:");fflush(stdin);gets(stu[now_no].sex);printf("\n输入学员成绩1:");fflush(stdin);scanf("%f",&stu[now_no].score1);printf("\n输入学员成绩2:");fflush(stdin);scanf("%f",&stu[now_no].score2);printf("\n输入学员成绩3:");fflush(stdin);scanf("%f",&stu[now_no].score3);printf("\n\n");now_no=now_no+1;sort();printf("是否继续输入?(Y/N)");fflush(stdin);ch=getch();system("cls");}while(ch!='n'&&ch!='N');}void del()/*删除数据函数*/{int inum,i;printf("输入要删除学员的编号:");fflush(stdin);scanf("%d",&inum);for(i=0;i<now_no;i++){if(stu[i].no==inum){if(i==now_no)now_no-=1;else{stu[i]=stu[now_no-1];now_no-=1;}sort();break;}}system("cls");}void save()/*保存数据函数*/{FILE *fp;int i;char filepath[20];printf("输入要保存的文件路径:");fflush(stdin);gets(filepath);if((fp=fopen(filepath,"w"))==NULL){printf("\n保存失败!");exit(0);}for(i=0;i<now_no;i++){stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;fprintf(fp,"\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,s tu[i].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);}fclose(fp);printf("学生信息已保存在%s中!\n",filepath);system("pause");system("cls");}void find()/*查询函数*/{int i;char str[20],as;do{printf("输入要查询的学生姓名:");fflush(stdin);gets(str);for(i=0;i<now_no;i++)if(!strcmp(stu[i].name,str)){printf("\t编号\t姓名\t性别\t成绩1\t成绩2\t成绩3\t平均值\n");printf("\t%d\t%s\t%s\t%.2f\t%.2f\t%.2f\t%.2f\n",stu[i].no,stu[i].name,stu[i ].sex,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].ave);}printf("\t\t按任意键返回主菜单.");fflush(stdin);as=getch();}while(!as);system("cls");}void average()/*求平均数*/{int i;for(i=0;i<now_no;i++){stu[i].sum=stu[i].score1+stu[i].score2+stu[i].score3;stu[i].ave=stu[i].sum/3;}}void modify()/*修改数据函数*/{int i;char str[20];printf("输入要修改的学生姓名:");fflush(stdin);gets(str);for(i=0;i<now_no;i++){if(!strcmp(stu[i].name,str)){system("cls");printf("\n\t\t输入新插入学员队信息\n");printf("\n输入学生编号:");fflush(stdin);scanf("%d",&stu[i].no);printf("\n输入学员性别:");fflush(stdin);gets(stu[i].sex);printf("\n输入学员成绩1:");fflush(stdin);scanf("%f",&stu[i].score1);printf("\n输入学员成绩2:");fflush(stdin);scanf("%f",&stu[i].score2);printf("\n输入学员成绩3:");fflush(stdin);scanf("%f",&stu[i].score3);printf("\n\n");sort();break;}}system("cls");}void read(){FILE *fp;int i;char filepath[20];printf("输入要读入的文件路径:");fflush(stdin);gets(filepath);if((fp=fopen(filepath,"r"))==NULL){printf("找不到%s文件!\n",filepath);system("pause");exit(0);}now_no=0;for(i=0;i<MAX&&!feof(fp);i++){fscanf(fp,"\t%d\t%s\t%s\t%f\t%f\t%f\t%f\n",&stu[i].no,stu[i].name,stu[i].s ex,&stu[i].score1,&stu[i].score2,&stu[i].score3,&stu[i].ave);now_no++;}fclose(fp);printf("保存的在文件%s中的所有信息已经读入!\n",filepath);system("pause"); /*按任意键继续*/system("cls");}void del_file(){FILE *fp;char filepath[20];printf("输入要删除的文件路径:");fflush(stdin);gets(filepath);fp=fopen(filepath,"w");fclose(fp);printf("保存的在文件%s中的所有信息已经删除!\n",filepath);system("pause");system("cls");}万年历系统#include <stdio.h>#include <stdlib.h>bool isLeapyear( int nowYear );int calcuWeek( int totalDays );int Ndate(int n,int nowyear,int nowmonth,int nowday); int Festival(int nowmonth,int nowday);int calcuDays( int nowYear,int nowMonth,int nowDay ); bool checkValid( int nowYear,int nowMonth,int nowDay ); int weekDayPrint( int nowYear,int nowMonth,int nowDay ); void menuPrint();const intleapDay[12]={31,29,31,30,31,30,31,31,30,31,30,31};//存储闰年每月天数const intnoleapDay[12]={31,28,31,30,31,30,31,31,30,31,30,31} ;//存储非闰年每月天数int main(){int year,month,day;while( true ){menuPrint();int op;scanf("%d",&op);switch( op ){case 1:{printf("请输入年月日(格式为YYYY-MM-DD):"); scanf("%d-%d-%d",&year,&month,&day);if ( checkValid(year,month,day)==1 ) {weekDayPrint(year,month,day);break;}else{printf("输入错误!!!退出操作\n");break;}}case 2:{printf("请输入需要查询的年份:");scanf("%d",&year);if( year > 9999 || year < 0 ){printf("年份输入错误!!!退出操作\n\n");break;}if ( isLeapyear( year ) )printf("%-4d年是闰年!!!\n\n",year);elseprintf("%-4d年是平年!!!\n\n",year);break;}case 3:{int n;printf("请输入多少天后和年月日");scanf("%d %d %d %d",&n,&year,&month,&day); Ndate(n,year,month,day);break;}case 4:{printf("请输入你指定的日期,月日:");scanf("%d %d",&month,&day);Festival(month,day);break;}case 5:printf("退出系统,谢谢使用\n\n");return 0;break;}}return 0;}bool isLeapyear( int nowYear ) // 判断是否闰年{if( nowYear%4 == 0 && nowYear%100 != 0 || nowYear%400 == 0)return true;elsereturn false;}bool checkValid( int nowYear,int nowMonth,int nowDay )// 输入合法性检查{if ( nowYear <= 0 ){printf( "输入年份不合法!!!");return false;}if ( nowMonth < 0 && nowMonth > 12 ){printf("输入月份不合法!!!");return false;}if ( nowDay < 0 && nowDay > 31 && isLeapyear(nowYear) ) {printf("输入号数不合法!!!");return false;}if ( nowDay < 0 && nowDay > 30&& !isLeapyear(nowYear) ){printf("输入号数不合法!!!");return false;}return true;}int calcuDays( int nowYear,int nowMonth,int nowDay )// 计算总天数{int days = 0;int mon = 0;for ( int i = 1;i < nowYear;i++ ){if( isLeapyear( i ) )days += 366;elsedays += 365;}for ( int j = 1;j < nowMonth;j++ ){if ( isLeapyear(nowYear) )mon = mon + leapDay[j-1];elsemon = mon + noleapDay[j-1];}days = days + mon + nowDay;return days;}int calcuWeek( int totalDays ) // 计算星期几{int weekNo = totalDays%7;return weekNo;}int Ndate(int n,int nowyear,int nowmonth,int nowday)//计算N天后的日期{ nowday=nowday+n;if(nowmonth==2){if(isLeapyear(nowyear)==1){if(nowday>29){ nowday=nowday%29;nowmonth=now month+1;}}else {if(nowday>28){nowday=nowday%28;nowmonth=nowmonth+1;}}}else if(nowmonth==1||3||5||7||9||11){if(nowday>31){nowday=nowday%31;nowmonth=now month+1;}}else if(nowmonth==4||6||8||10||12){if(nowday>30){nowday=nowday%30;nowmonth=nowmonth+1;}}if(nowmonth>12){nowmonth=nowmonth%12;nowyear= nowyear+1;}printf("%d天后的日期是%d年%d月%d日",n,nowyear,nowmonth,nowday);}int Festival(int nowmonth,int nowday) //输出指定日期的节假日{if(nowmonth==1&& nowday==1)printf("%d月%d日是元旦",nowmonth,nowday);if(nowmonth==2&& nowday==3)printf("%d月%d日是春节",nowmonth,nowday);if(nowmonth==2&& nowday==17)printf("%d月%d日是元宵节",nowmonth,nowday);if(nowmonth==4&& nowday==5)printf("%d月%d日是清明节",nowmonth,nowday);if(nowmonth==6&& nowday==6)printf("%d月%d日是端午节",nowmonth,nowday);if(nowmonth==8&& nowday==6)printf("%d月%d日是七夕节",nowmonth,nowday);if(nowmonth==10&& nowday==1)printf("%d月%d日是国庆节",nowmonth,nowday);if(nowmonth==9&& nowday==12)printf("%d月%d日是中秋节",nowmonth,nowday);else printf("不是节日");}int weekDayPrint( int nowYear,int nowMonth,int nowDay ) //打印某年某日星期几{int days = calcuDays(nowYear,nowMonth,nowDay);int weekNo = calcuWeek( days );switch ( weekNo ){case 0:printf( "%-4d年%-2d月%-2d日是星期天!!!",nowYear,nowMonth,nowDay);break;case 1:printf( "%-4d年%-2d月%-2d日是星期一!!!",nowYear,nowMonth,nowDay);break;case 2:printf( "%-4d年%-2d月%-2d日是星期二!!!",nowYear,nowMonth,nowDay);break;case 3:printf( "%-4d年%-2d月%-2d日是星期三!!!",nowYear,nowMonth,nowDay);break;case 4:printf( "%-4d年%-2d月%-2d日是星期四!!!",nowYear,nowMonth,nowDay);break;case 5:printf( "%-4d年%-2d月%-2d日是星期五!!!",nowYear,nowMonth,nowDay);break;case 6:printf( "%-4d年%-2d月%-2d日是星期六!!!",nowYear,nowMonth,nowDay);break;}printf("\n");}void menuPrint() // 打印系统菜单{printf("\t万年历查询系统\n");printf("\n******************************"); printf("\n1.查询某年某月某日是星期几");printf("\n2.查询某年是否是闰年");printf("\n3.计算N天后的日期");printf("\n4.输出指定日期的节假日");printf("\n5.退出");printf("\n*****************************\n"); printf("\n请选择:");}。
程序设计综合训练综合题1.饭卡管理系统问题提出:学校等大单位集体食堂买饭时间非常集中,大家都知道如果食堂使用饭票卖饭,就要排长队等候,而且还要经过先去买饭票等麻烦的经历,因此食堂提出使用计算机进行管理,食堂用饭卡卖饭,不仅提高卖饭速度,还更易于管理,减少不必要的麻烦,同时减轻管理人员的工作负担。
系统要求实现如下功能:1、添加新饭卡:添加若干人的饭卡号、姓名、金额、挂失信息,要求饭卡号是唯一的,新饭卡号和已有饭卡号不能重号。
2、买饭:要求用户输入饭卡号、饭费,然后系统自动从该人的饭卡中减去饭钱并分别显示饭前后的金额,如果原来饭卡中的余额不足5元,则不能买饭,而且显示“余额不够,请续钱!”,如果挂失信息为真,则显示“本卡已冻结!”。
3、续钱:要求用户输入饭卡号、续钱额,续钱完成后分别显示续钱前后的金额。
4、注销旧饭卡。
5、设置与解除挂失:要求用户输入饭卡号和挂失信息,然后更新该饭卡的挂失信息。
6、创新功能:此功能学生可自由发挥,根据本组爱好增加与本题相关的新功能7、退出系统。
2.交规考试系统问题提出:为了随时用相同标准检查考生交规达标情况,并减轻考官出题和判卷的负担,用计算机出题和判卷。
假设已用记事本建立了文件file1.dat,该文件中存选项内容、正确答案。
系统要求实现如下功能:考试系统分管理人员子系统和考生考试子系统,功能如下:1、确认管理者身份:当密码(假设密码为222222)正确时,进入管理人员子系统,并进行管理员的工作。
管理员工作包括:工作1,报名参加考试。
从键盘输入考生身份证号、姓名、年龄、性别,系统根据年龄确定该考生能否报名成功,如果年龄在18—70岁之间,则显示“报名成功!”,并将该考生信息存入文件file2.dat中。
工作2,显示所有考生信息。
工作3,打印考试合格通知单,当成绩大于等于90分时,才可以打印。
工作4,退出系统。
2、确认考试身份,当考试身份证号在file2.dat文件中存在时,进入考试考试子系统,并开始考试。
程序设计综合训练在现代社会中,程序设计作为一项重要的技能,在各个领域中都发挥着关键的作用。
为了提高程序员的综合实力,许多训练项目被开发出来,其中最重要的一个就是程序设计综合训练。
本文将介绍程序设计综合训练的重要性、内容以及如何有效进行该项训练。
程序设计综合训练是指通过综合性的项目来提高程序员的实际编程能力。
与传统的单一编程题目相比,综合训练更注重培养程序员的整体思维能力和解决问题的能力。
在综合训练中,程序员需要解决现实生活中的各种问题,例如设计一个在线购物系统,开发一个社交媒体平台等等。
这种训练模式能够更好地模拟实际工作场景,使程序员在完成项目的同时,了解到真实的工作压力和需求。
对于程序员而言,进行综合训练能够带来一系列的好处。
首先,综合训练能够提供一个良好的学习平台,让程序员了解不同领域的知识。
在项目中,程序员可能需要学习数据库设计、网络编程、用户界面设计等各个方面的技术。
这种全方位的学习经历有助于程序员打破专业壁垒,提高自己的综合素质。
其次,综合训练能够提高程序员的解决问题的能力。
在综合项目中,程序员面临的问题通常是复杂的,需要综合运用已有的知识和技术。
通过这样的训练,程序员能够提升自己的问题解决能力,培养自己的逻辑思维和分析能力。
另外,综合训练也对团队协作能力提出了更高的要求。
在一个综合项目中,通常会有多个程序员一起合作完成项目。
这就要求团队成员之间能够有效地沟通和协作。
通过综合训练,程序员们能够了解团队协作的重要性,并学会如何和他人合作。
对于程序设计综合训练的具体内容,可以根据不同的需求和目标来确定。
一般来说,一个综合项目应该包括需求分析、系统设计、编码实现和测试等多个阶段。
在每个阶段中,程序员需要分别完成不同的任务,并且整合各个部分。
这样的训练方式可以全面地考察程序员的能力,提高他们的问题解决能力。
要想进行有效的程序设计综合训练,需要注意以下几点。
首先,应该选择适合自己水平和兴趣的项目进行练习。
一、参考题目及选题(1)学生信息管理系统设计问题描述:学生信息包括:学号, 姓名, 年龄, 性别, 出生年月, 政治面貌, 籍贯, 家庭住址, 电话, E-mail等。
试设计一学生信息管理系统, 使之能提供以下功能:(1)系统以菜单方式工作(2)学生信息录入功能(学生信息用文件保存)(3)学生信息浏览功能(4)学生信息排序、查询功能对信息进行排序, 可以按学号, 按姓名, 按性别, 按出生年月日, 按籍贯进行查询(5)信息统计a) 可以按性别, 按出生年, 按籍贯统计学生人数b) 可以按班级统计学生人数c) 可以按政治面貌统计学生人数按班级统计学生党员人数, 团员人数, 以及所占比例, 设计并输出统计报表。
(6)学生信息的删除与修改●设计要求:●界面比较美观;有一定的容错能力, 比如输入的成绩不在0~100之间, 就提示不合法, 要求重新输入;●最好用链表的方式实现。
算法分析:首先, 一个学生包括这么多的属性, 应该考虑定义一个结构, 其次, 我们应该考虑数据的存储形式:是定义一个数组来存储, 还是定义一个链表呢?在这里假如我们以数组的方式来存储, 当然可以, 但是我们知道, 假如我们定义一个数组的话, 我们首先必须知道学生人数大概是多少, 以便我们确定数组的大小, 但是题目中没有给出, 而且题目要求中有大量的删除、插入操作, 所以用链表的方式比较方便。
对于菜单的实现, 其实也比较简单, 首先我们用printf语句把程序的功能列出来, 然后等待用户输入而执行不同的函数, 执行完了一个功能后又回到菜单。
文件的读写操作大家参照书中的有关文件的章节。
(2)、学生综合测评系统每个学生的信息为: 学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。
考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%, 10%, 10%, 20%。
1、题目:编写程序,定义类Vehicles,其中:a)域:name(品牌)、color(颜色)、weight(重量)、plate(车牌号码);b)一个构造方法,对四个域进行初始化;c)一个返回所有属性信息的方法getDetails();d)对name属性的get和set方法;e)该类在包vehicle中。
1)源程序package vehicle;public class Vehicles {String name;String color;double weight;String plate;public Vehicles(String name,String color,double weight,String plate){=name;this.color=color;this.weight=weight;this.plate=plate;}public String getDetails(){return name+","+color+","+weight+","+plate;}public String getName(){return name;}public String setName(){return name;}public static void main(String[] args) {// TODO Auto-generated method stubVehicles v=new Vehicles("玛莎拉蒂","黄色",1000,"BJ9708");System.out.println("汽车的细节为:"+v.getDetails());System.out.println("汽车的名字为:"+v.getName());}}2)运行结果截图汽车的细节为:玛莎拉蒂,黄色,1000.0,BJ9708汽车的名字为:玛莎拉蒂2.题目:编写程序,定义类Car,它是类Vehicles的子类。
程序设计综合实切课程教学大纲一、课程的基本信息适应对象:信息工程课程代码:39E01904学时分配:3周赋予学分:3学分先修课程:数据结构与算法、Java基础、计算机网络、数据库技术、操作系统后续课程:Web程序设计、系统设计与分析等二、课程性质与任务程序设计综合实训是实现高素质软件人才培养的重要实践教学环节。
它是以小型工程案例为对象,以学生工程小组为实现方式,完成工程开发过程。
通过本实训的教学实践训练,可提高学生综合运用多门课程的理论、方法、工具和技术解决实际问题的实际能力,培养学生工程实践能力、创新能力和团队意识。
三、实训目的与要求程序设计综合实训是信息工程专业的重要实践环节之一。
本次工程实训以实际问题为导向,采用工程化的方式展开,注重过程和结果,使学生能够将课本上的理论知识和应用实际有机地结合起来,运用程序设计方法和工具完成实际应用问题的设计与实现,锻炼学生分析、解决较好杂问题的能力,提高学生独立编写较大程序的能力。
采用工程化的方式完成具有一定难度的综合性软件工程。
要求学生利用学到的程序设计知识和技巧,独立软件的设计,编程及程序调试,撰写设计文档。
本实训是对学生前期所学知识的一次全面综合训练,使学生理论与实践紧密结合、消化巩固所学知识、掌握所学专业的基础理论和基本技能,面向实践、拓宽视野、增强动手能力和社会适应能力。
还可以培养同学们的创新精神、激发学习兴趣、提高分析问题及解决问题的能力和专业综合素质。
四、实训内容与安排本实训主要包括面向对象程序设计思想、图形用户界面、图像处理技术、网络编程技术等训练内容。
具体工程安排如下表:五、教学设备和设施场地:信息系统仿真实验室环境:集成开发工具六、课程考核与评估指导教师根据各组员在工程研制过程中的实际表现(工作态度、工作质量、辩论表现) 给出评定成绩,其中:(1)工程组考核分50%(2)个人评审分30%(3)考勤分20%最后成绩分为优、良、中、及格和不及格五个等级。
1.编写程序,定义学生信息管理类StudentManager,在该类中包含对一组学生信息(定义一个一维数组,数组元素类型为前面定义的Student)进行管理,要求:a)在该类中包含输入学生信息的方法——input(Student[] students),要求在该方法中,依次输入各位学生的学号、姓名、专业、年级,将其存入到数组students中。
b)在该类中包含输出学生信息的方法——output(Student[] students),要求在该方法中,依次输出students数组中各位学生的学号、姓名、专业、年级信息。
c)在该类中包含对学生数组按姓名升序排序的方法——sort(Student[]students), 要求在该方法中,对students数组中的元素按姓名升序排列(字典顺序)。
d)定义main方法:定义Student一维数组,调用input方法输入数据,然后调用output方法输出初始数组数据,调用sort方法对数组中元素排序,最后调用output方法输出排序后的结果。
1)源程序import java.util.Scanner;class StudentManger{Student[] students=new Student[2];publicvoid input(){for(int i=0;i<students.length;i++){System.out.println("请输入姓名,年级,学号,专业");Scanner input=new Scanner(System.in);String a=input.next();String b=input.next();int c=input.nextInt();String d=input.next();students[i]=new Student(a,b,c,d);}}public String output(){String s="";for(int i=0;i<students.length;i++)s+="这个学生姓名为"+students[i].name+",年级为"+students[i].grade+",学号为"+students[i].number+"专业为"+students[i].getSpecialty();return s;}publicvoid sort(){String y="";for(int i=students.length-1;i>0;i--){for(int j=0;j<i;j++){if(students[j+1]pareTo(students[j].name)>0){y=students[j].name;students[j].name=students[j+1].name;students[j+1].name=y;}}}for(int i=0;i<students.length;i++){System.out.println(students[i].name);}}publicstaticvoid main(String[] args){StudentManger x=new StudentManger();x.input();System.out.println(x.output());x.sort();}}2.题目:编写程序,定义成绩类Grade,要求:a)域:课程名称cname(String)、平时成绩ps(0—30)、大作业dzy(0-20)、期末考试qmks(0-50)、总评成绩zp(优、良、中、及格、不及格)。
b)输出Grade对象详细信息方法——showInfo(),输出课程的成绩明细和总评成绩。
c)StringgradeTrans(double)方法:将百分制转换为五级制:优、良、中、及格、不及格。
注:此题要求画流程图d)void computeZp():计算总评成绩zp的方法。
要求在该方法中,将平时成绩(范围:0—30)、大作业(范围:0-20)、期末考试成绩(范围:0-50)加起来计算总评成绩,并调用方法StringgradeTrans(double)将计算所得的百分制转换为五级制。
e)方法void inputGrade(String,double,double,double):设置成绩科目,平时成绩,大作业和期末考试的成绩,并调用computeZp计算总成绩。
f)定义main方法:定义一维数组grades,其元素类型为Grade,依次对grades中每个元素进行成绩输入,调用computeZp方法,计算学生总成绩,并调用showInfo方法输出结果。
1)源程序package student;import java.util.Scanner;publicclass Grade {double qmks;static String zp;String cname;double ps;double dzy;public Grade(double qmks,Stringzp,Stringcname,double ps,double dzy){ this. qmks=qmks;this. zp=zp;this. cname=cname;this. ps=ps;this. dzy=dzy;}public Grade(String s, double s1, double s2, double s3) { // TODO Auto-generated constructor stub}publicvoid showInfo(){System.out.println("平时成绩:"+ps+"\n大作业:"+dzy+"\n期末考试:"+qmks+"\n总评成绩:"+zp);}public String gradeTrans(double a){int z=(int)a/10;switch(z){case 10:System.out.println("优");break;case 9:System.out.println("良");break;case 8:System.out.println("中");break;case 7:System.out.println("及格");break;case 6:System.out.println("不及格");break;default:System.out.println("优");}return zp;}publicvoid computeZp(){double a=ps+dzy+qmks;gradeTrans(a);}publicvoid inputGrade(String cname,double ps,double dzy,double qmks){ double a=ps+dzy+qmks;computeZp();}publicstaticvoid main(String[] args) {// TODO Auto-generated method stubScanner input=new Scanner(System.in);System.out.println("请输入课程名称,平时成绩(0—30),大作业(0-20)、期末考试(0-50)、总评成绩");String s=input.next();double s1=input.nextDouble();double s2=input.nextDouble();double s3=input.nextDouble();Grade []g=new Grade[1];g [0]=new Grade(s,s1,s2,s3);g[0].inputGrade(s,s1,s2,s3);g[0].computeZp();g[0].showInfo();}}3.编写程序,在7*7矩阵中,1表示白子,0表示黑子,统计白子和黑子的个数。
要求:a)定义方法count统计7*7矩阵中白子和黑子的个数。
b)定义main方法:定义7*7矩阵,并对其初始化(使用随机数),调用count1)源程序publicclass Qizi {publicstaticvoid main(String[] args) { // TODO Auto-generated method stubint[][]qizi={{1,1,1,1,1,1,1},{1,0,1,0,0,1,0},{1,1,1,0,1,0,1},{0,0,1,1,0,1,1},{0,1,0,1,1,0,1},{1,0,1,0,0,1,0},{1,0,1,1,1,1,1}};count(qizi);}publicstaticvoid count(int[][] qizi) { int num0=0;int num1=0;for(int i =0;i<7;i++){int x[] = qizi[i];for(int j=0;j<7;j++){int x1 = x[j];if(x1==0){num0=num0+1;}if(x1==1){num1=num1+1;}}}System.out.println("白子个数为"+num1);System.out.println("黑子个数为"+num0);}}4.:编写程序,要求:a)输入一个完全由数字组成的字符串,从字符串的第一个字符起,每两个数字作为两位整数,将其存放在一维数组中,如果最后只剩一个数字,则将该字符作为一个整数存放在数组中。
如输入123456789,则数组中依次存放整数12,34,56,78,9。
b)输出该数组中的元素,并计算一维数组中各元素之和。
1)源程序import java.util.Scanner;publicclass F {publicstaticvoid main(String[] args){Scanner input=new Scanner(System.in);System.out.println("请输入一串数字字符串");String a=input.next();int b=a.length();if(b%2==0){String[] x=new String[b/2];int m=0;for(int i=0;i<b/2;i++){x[i]=a.substring(m,m+2);m=m+2;}for(int i=0;i<b/2;i++){System.out.println(x[i]);}int[] h=newint[b/2];int sum=0;for(int i=0;i<b/2;i++) {h[i]=Integer.parseInt(x[i]);sum+=h[i];}System.out.print("和为"+sum);}else{String[] y=new String[b/2+1];int n=0;for(int i=0;i<b/2;i++){y[i]=a.substring(n,n+2);n=n+2;}y[b/2]=a.substring(b-1);for(int i=0;i<b/2+1;i++){System.out.println(y[i]);}int[] l=newint[b/2+1];int sum=0;for(int i=0;i<b/2;i++) {l[i]=Integer.parseInt(y[i]);sum+=l[i];}System.out.print("和为"+sum);}}}三个import java.util.Scanner;publicclass mmm{publicstaticvoid main(String[] args){ Scanner input=new Scanner(System.in);System.out.println("请输入一串数字字符串");String a=input.next();int b=a.length();if(b%3==0){String[] x=new String[b/3];int m=0;for(int i=0;i<b/3;i++){x[i]=a.substring(m,m+3);m=m+3;}for(int i=0;i<b/3;i++){System.out.println(x[i]);}}else{String[] y=new String[b/3+1];int n=0;for(int i=0;i<b/3;i++){y[i]=a.substring(n,n+3);n=n+3;}if(b%3==1){y[b/3]=a.substring(b-1);}elseif(b%3==2)y[b/3]=a.substring(b-2,b);for(int i=0;i<b/3+1;i++){System.out.println(y[i]);}}}}a)把一张10元的人民币换成1元、2元纸币,2种面值每种至少有一张,统计并输出所有兑换方案。