《2024级计算机专科《程序设计基础》课程设计报告格式.docx》由会员分享,可在线阅读,更多相关《2024级计算机专科《程序设计基础》课程设计报告格式.docx(30页珍藏版)》请在课桌文档上搜索。
1、*冬冬院计等机学院软件老院课程设计报告学院:计算机学院课程名称:程序设计基础专业:计算机应用技术班级:11级计算机专科1班学号:202413131134姓名:莫碧霞指导老师:2012年6月22日(报告中,请打印本页,不行缺少,以便老师评分)数据结构课程设计评分表评分项目完成与答辩状况(50%)课程设计报告的质量(30%)考勤与表现(20%)综合评分指导老师签名:日期:_2012年6月30日课程设计报告格式程序设计系统课程设计一.系统软件环境二.课程设计目的三.课程设计内容与要求四.程序主要功能五.系统功能设计六.数据结构及其变量的设计七.函数实现功能说明八.调试分析九.心得与体会十.各功能模块
2、的实现及其程序清单三个课程设计题目名称:1、菜单、模块化综合程序设计2、设计一个简洁的学生成果系统3、设计一个简洁的职工信息管理系统程序设计课程设计题目1、菜单、模块化综合程序设计【试验目的】1、熟识驾驭数据类型和基本的运算符;2、熟识分支和循环程序结构3、基本的输入输出函数4、简洁函数的定义和调用5、程序基本的模块化6、驾驭循环及多分支程序设计的综合应用【试验任务】1 .主菜单编写程序能够显示以下的主菜单:主菜单:1 .小学生简洁数学测试2 .奖金发放3 .打印月历4 .打印水仙花5 .查找最大最小数6 .退出在主菜单程序中,依据输入的数字16来选择相应的选项,在执行完每一个选项之后,返回主
3、菜单(退出除外)。每一个菜单要完成的任务由下面的27依次给出。编写的源程序以ZhSyLCPP保存。2.小学生简洁数学测试编写一个可以为小学生供应加法、减法和乘法的二元算术运算练习的函数,计算100以内的两个数的和、两个数的差和两个数得的积,每次测试10个题目,依次由学生输入答案,并由计算机推断输入的答案是否正确,最终由计算机给出简洁评价。分析:依据题意,组成算术表达式的操作符有3种形式:+、-、*,分别用1、2、3来代表。用。PS表示操作符,a,b分别代表两个操作数;a,b和OPS由计算机随机生成,并计算表达式的值result;用户输入表达式的结果input;将input与result进行比较
4、;通过比较的结果,给出对计算结果的评价。程序特殊处理:进行减法运算时,生成的操作数,假如(ab),计算(a-b);否则计算(b-a)O程序算法流程图如图所示:思索:1 .假如每次测试的题目不止10个,须要怎样修改算法和程序?2 .假如要求程序在结束了一组测试之后,可以接着进行测试,须要怎样修改算法?3 .假如要加入两位数的除法计算,须要怎样修改算法?4 .奖金发放企业发放的奖金依据利润提成。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于IO万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;超过40
5、万元的部分按3%提成,编写一个函数从键盘输入当月利润,输出应发放奖金的总数?5 .打印月历编写一个函数,打印一个月的月历。要求输入要打印月份的天数以及本月第一天是星期几,然后就可以按要求格式打印出月历。调用该函数运行结果参考示例如图1.3所示。请输入菜单项:3请揄入显示月的天数:31请输入这1月开始的一天属于星期几:1=星期日,2=星期一.:3123456789101112131415161?1819202122232425262728293031请输入菜单项:6Pressanykeytocontinue.色图1.3调用“打印月历”函数的运行结果6 .打印水仙花数三位水仙花数是指一个3位数,它
6、的每个位上的数字的3次幕之和等于它本身。(例如:I3+53+33=153)o编写一个函数,打印出全部的三位的水仙花数。调用该函数运行结果参考示例如图1.4所示。图1.4调用“打印水仙花”函数的运行结果7 .查找最大最小数编写函数,从键盘上输入N个整数,找出其中最大的和最小的数。要求输入N的值,以及这N个数。调用该函数运行结果参考示例如图1.5所示。图1.5调用“查找最大最小数”函数的运行结果8 .退出输入菜单项的第6项,退出整个程序的运行。#includestdio.hIfincludestdlib.h#includetime,h”intfl()小学生简洁数学测试(inta,b,i,resul
7、t-0,input,c-0,d=0;charops;srand(time(0);for(i=l;ib)(printf(%d%c%d=,a,ops,b);result=a-b;)elseif(ab)(printf(%d%c%d=,b,ops,a);result=b-a;)elseif(ops二二2)ops=,*,;printf(zz%d%c%d=,z,a,ops,b);result=a*b;)scanf(z,%dzz,&input);if(input=result)printf(n回答正确n);c+;elseif(input!=result)printf(n回答错误n);d+;Printf(答对
8、%d题,答错%d题,c,d);)intf2()奖金发放intn;doublea;printf(请输入利润n);scanf(c,&n);输入利润if(n=100000)计算不同状况下的利润a=n*0.1;elseif(n200000)a=100000*0.l+(n-100000)*0.075;elseif(n40000)a=100000*0.1+100000*0.075+(n-200000)*0.005;elsea二100oOO*0.1+100000*0.075+200000*0.005+(n-400000)*0.03;Printf(奖金是:%.21fn,z,a);return(0);intf3
9、()打印月历inti,a,b;Printf(请输入显示月的天数:);scanf(,&a);Printf(请输入这个月起先的一天属于星期几:);scanf(%c,&b);for(i=l;ib;i+)Printf();for(i=l;i=a;i+)(printf(%dt,i);if(b+i-l)%7=0)printf(n);)printf(n);return(0);intf4()打印水仙花数(inta,b,c,i,re;Printf(水仙花数是:);for(i=100;i1000;i+)(a=i%10;re=i10;b=re%10;re=i100;c=re%10;if(izz=(a*a*a+b*b
10、*b+c*c*c)(printf(z,%-5d,z,i);)printf(n);return(0);intf5()查找最大最小值intn,i,j,a1000,t;Printf(请输入数据的个数:n);scanf(%d,&n);有多少个数Printf(请输入这d个数:n);for(i=0;in;i+)scanf(%d,&ai);printf(zz11,z);for(j=0;jn-l;j+)查找最大最小值for(i=0;iai+l)t=ai;ai=ai+l;ai+l=t;)Printf(这%d个数中,最大的数是%d,最小的数是%d,n,anT,a0);return(0);intmain()intk
11、ey,n;printf(z,主菜单:n);printf1.字母数字转换n);printfC2.奖金发放n);printf(z/3.打印月历n);printfCz4.打印水仙花r);printf(,5.查找最大最小数n);printf(,6.退出r);printf(*n);whiIe(I)printf(请输入菜单选项nzz);scanf(%c,&key);switch(n)case 1: fl();break;case 2: f2();break;case 3: f3();break;case 4: f4();break;case 5: f5O;break;case 6: return(0);C
12、lefaUIt:Printf(输入选择错误!n);break;2、设计一个简洁的学生成果系统【试验目的】1、学生通过分析和解决该试验,将课本上的理论学问和实际有机地结合起来,熬炼学生分析、解决较困难问题的实力,提高学生编写较困难程序的实力。2、进一步巩固循环、分支、函数等学问的应用,驾驭运用结构体等来组织和存储困难的数据。【试验任务】编写一个学生信息管理系统,主要用来管理学生基本信息及成果信息。每个学生的信息包括:学号、姓名、性别、班级、3门课程的成果。系统功能模块如图2.1所示。图2.1学生信息管理系统功能模块图1 .主菜单设计运用PriInf函数设计一个如下格式的主菜单:*WW*1*W*W
13、*W1:数据输入2:数据修改3:数据的处理4:数据输出5:退出*ingDebugzhsy2.exe*3:处理数据2:修改数据5:退出系案1:4:2 1 结ai 8 9 0 h15帝:li:n:5l成成成i:/款Zhao7874雇019xX5成席土口 g 土口 6 4 2 Sm n 2 7 3 SN, 7650 i 8 7 8 0 02索款I01案被 :5虚麻麻孀:1:5就麻诙孀宗号名别箜学语号名别饕学语号名别箜学语号名别瞿学语号 耨于姓性班语数奉姓性班语数一奉姓性班语数一拳姓性班语数.奉 ,v ,v ,v ,v ,vAM人”AMA-ltfJ3tfJAA-.八-v ,v -v ,v ,v -v
14、,v ,v ,v -v -v 二.1 二.1 二.1 二.1 二,1 二.1 二.1 二,1 二二二.1 二,1 二,1 二,二Ll二二二二二.1 二.1 二.一二.1 二,一二一二.1二二二L.二.一二far二 -丁HH3333HHH3333HHH3H33H3HHHH3H5一 翠个个个个个个个个个个个个个个个个个个个个个个 511111112222222333333344444445 S-入入入入入入入入入入入入入入入入入入入入入入入入入入入人入 选请请请请青青青青青IHIl HI Ml Hw1.H青青请请请请请请请请请请图2.2数据输入运行结果3 .数据输出编写一个函数完成学生信息的输出功
15、能。要求该函数能够将学生的当前各项信息依据较为整齐的格式输出。数据输出运行结果示例如图2.3所示:*C三c-prograuingDebugzhsy2.exe*寓-据据数数5:退出系案3三-I-I学号姓名性别班级语文数学英语100201Iihongn50288.082.091.0100101zhaohai50156.078.074.0100202Iinhain50276.064.052.0100102Iuosring50182.077.083.0二1图2.3数据输出运行结果4 .数据修改编写一个函数完成学生信息的修改功能。要求该函数能够以学号为查询关键字,将满意查找条件的学生信息显示输出,并以菜
16、单形式供应可供修改的项目,选择项目并完成修改;假如无满意查找条件的记录,则提示“无该学号学生记录数据修改的运行结果示例如图2.4所示:1 .学号2.姓名3.性别4.班级5.语文成绩6.数学成绩7.英f吾成绩8.退由修改后 选输改号 请量学要洋学姓修生生名目名为别 项姓息性 的薯 改的的100101zhaoueF50156.078.074.0d图2.4数据修改的运行结果5.数据处理编写一个函数完成学生信息的处理功能。数据处理:可以选择的处理方式为:排序、查询、统计。其中:a)排序:按学号排序;b)查询:依据学号查询该学生的全部信息;c)统计:可以选择统计各学生的平均成果或统计全部存在不及格科目的
17、学生。提示:可以将该模块分解成更小的几个子模块来实现。每个子模块通过定义不同的函数来完成其功能。数据处理中排序操作的运行结果示例如图2.5所示:Ca-C:c-prograM*ingDebugzhsy2.exe*舞遍I11三3:处理数据请选择需要进行的操作1F:31:揍学号排序2:查询3:绕计4:返回主菜单请舞那劈处理内容:1鹦后“懿:性别班级语文数学英语100101zhaoueF50156.078.074.0100102IuoyingF50182.077.083.0100201Iihongn502100202Iinbaim50288.076.082.064.091.052.0图2.5数据排序的
18、运行结果数据处理中查询操作的运行结果示例如图2.6所示:嘱号排序2:查询4:返回主菜单3号:2 :10002嘱号排序2:查询4:返回主菜单请选择具体的处理内容”3:2 请输入要查询的学生的学号门。2。2学号 姓名 性别 班级 语文数学 英语100202 Iinbai n 50276.064.052.0图2.6数据查询的运行结果数据处理中统计操作的运行结果示例如图2.7所示:-EX-匚XCI*C:c-prograBingDebugxhsy2.exe*K *C: c-pr OgraMLingXDebugXzhsy2. exe*凌群排序2:查询4:返回主菜单请选择具体的处理内容 ingDebugzh
19、sy2. exe*kl1:4:2:修改数据5:退出系薪3:处理数据请选择需要进行的操作1F:5谢谢使用!PressanykeytocontinueB图2.8退出程序的运行结果分数#includestructScoreintchins,maths,engs;typedefstructScoreScore;structStudent学生(intnumber;学号charname20;姓名charsex;性别intclas;班级Scoresco;;typedefstructStudentStudent;voidmkeyl(Student*st);voidmkey2(Student*st);voidm
20、key3(Student*st);voidmkey4(Student*st);intmain()(Studentst150;while(1)(intmkey;printfC*,!I:数据输入t2:数据修改t3:数据的处理n4:数据输出t5:退出Printf(请选择须要进行的操作(广5):);scanf(%d”,&mkey);switch(mkey)选择不同的功能(case 1: mkeyl(st);break;case 2: mkey2(st);break;case 3: mkey3(st);break;case 4: mkey4(st);break;case5:returnO;)return
21、O;voidmkeyl(Student*st)输入学生信息(inti;for(i=l;i+)(printf(请输入第%d个学生的学号输入0结束:,i);scanf(%d”,number);if(sti.number=0)return;printf(请输入第%d个学生的姓名:,i);scanf(z,%sz,&sti.name);printf(请输入第%d个学生的性别:,i);sti.sex-getchar();scanf(,z%czz,&sti.sex);printf(请输入第%d个学生的班级:i);scanf(z,%d,z,&sti.clas);printf(请输入第%d个学生的语文成果:,i
22、);scanf(“%C,&sti.sco.chins);printf(请输入第1个学生的数学成果:,i);scanf(%c,&sti.sco.maths);printf(请输入第%d个学生的英语成果:,i);scanf(z,%d,z,&sti.sco.engs);voidmkey2(Student*st)修改学生信息intnum,i,j;printf(请输入须要修改信息的学生的学号:);scanf(z,%dzz,&num);for(i=l;sti.number!=0;i+)if(sti.number-num)推断是否zfi*这个学生(j=i;gotolp;)printf(无该学号学生记录!n)
23、;return;1aZWWWWWWWWWWWWWWWWWWWWWWWWWlp:print!(n);printf(1、学号t2、姓名t3、性别t4、班级r);printf(5、语文成果t6、数学成果t7、英语成果t8、退出修改n);printf(n);printf(请选择须要修改的项目r8:);scanf(%d,&i);switch(i)选择修改的信息(Studentstu;case 1:printf(请输入该学生的新学号:);SCanf(%Cr,&stu.number);stj.nunber=stu.number;break;case 2:printf(请输入该学生的新姓名:);SCanf(%
24、d”,&stj.name);break;case 3:printf(请输入该学生的新性别:);SCanf(%c,&stu.sex);stj.sex-stu.sex;break;case 4:printf(请输入该学生的新班级:);SCanf(%C,&stu.clas);stj.clas=stu.clas;break;case 5:printf(请输入该学生的新语文成果:);SCanf(yz%dzz,&stu.sco.chins);stj.sco.chins=stu.sco.chins;break;Printf(请输入该学生的新数学成果:);SCanf(%d,&stu.sco.maths);st
25、j.sco.maths=stu.sco.maths;break;case 7:printf(请输入该学生的新英语成果:Ascanf(,/%d,&stu.sco.engs);stj.sco.engs=stu.sco.engs;break;case 8: return;)printf(学号t姓名t性别t班级t语文t数学t英语n);printf(M);printf(,z%dt%st%ct%dt%dt%dt%dnz,stj.number,stj.name,stj.sex,stj.clas,stj.sco.chins,stj.sco.maths,stj.sco.engs);return;voidmkey
26、3_l(Student*st);voidmkey3_2(Student*st);voidmkey3_3(Student*st);voidmkey3(Student*st)处理学生信息whiIe(1)printf(n);printfCl:按学号排序t2:查询n);printf3:统计t4、返回主菜单n);print!(n);printf(请输入详细的处理内容3):);scanf(%d,&i);switch(i)(按学号排序查询统计case1:mkey3_l(st);break;case2:mkey3_2(st);break;case3:mkey3_3(st);break;case4:return
27、;return;voidmkey4(Student*st)输出信息(inti;printf(学号t姓名t性别t班级t语文t数学t英语n);printf(M);for(i=l;sti.number!=0;i+)printf(“it%st%ctitititin”,sti.number,sti.name,sti.sex,sti.clas,sti.sco.chins,sti.sco.maths,sti.sco.engs);)voidmkey3_l(Student*st)按学号排序(intch150=l,0;intah150=0;inti,j,k,n=l;lo:for(i=l;sti.number!=0
28、;i+)(k=i;if(ahi!=l)for(j=i;sti.number!=0;j+)if(ahj!=1)if(stj.numbersti.number)k=j;ahk=l;chn=k;n+;while(stn.number=0)gotolp;gotolo;)lp:printf(排序后的结果为:n);Printf(学号t姓名t性别t班级t语文t数学t英语n);printf(n);for(i=ljsti.number!=0;i+)printf(z,%dt%st%ct%dt%dt%dt%dnzz,stchi.number,stchi.name,stchi.sex,stchi.clas,stchi
29、.sco.chins,stchi.sco.maths,stchi.sco.engs);voidmkey3_2(Student*st)查询(inti,j;printf(请输入须要查询的学生的学号:);scanf(d,&i);printf(学号t姓名t性别t班级t语文t数学t英语n);printf(),for(j=l;stj.number!=0;j+)if(stj.number=i)printf(z*%dt%st%ct%dt%dt%dt%dnz,stj.number,stj.name,stj.sex,stj.clas,stj.sco.chins,stj.sco.maths,stj.sco.engs
30、);voidmkey33_1(Student*st);voidmkey3_3_2(Student*st);voidmkey3_3(Student*st)统计函数(ints;while(1)printfL.printf(1、统计平均分t2、统计不及格学生信息t3、返回n);n/”zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzprntf(n);printf(请在选择统计的详细内容:);scanf(,&s);switch(s)选择不同的统计内容(case1:mkey3_31(st);break;case2:mkey3_3_2(st);break;
31、case3:return;)return;voidmkey3_3_l(Student*st)平均成果(inti;printf(全部学生的平均成果是:n);printf(学号t姓名t平均n);printf(n);for(i=l;sti.number!=0;i+)printf(,z%dt%st%dn,z,sti.number,sti.name,(sti.sco.chins+sti.sco.maths+sti.sco.engs)3);voidmkey3_3_2(Student*st)不及格的人名单(inti;printf(有不及格科目的学生是:n);printf(学号t姓名t性别t班级t语文t数学t
32、英语n);printf(n).for(i=l;sti.number!=0;i+)if(sti.sco.chins60sti.sco.maths60sti.sco.engs60)(z*%dt%st%ct%dt%dt%dt%dn*,sti.number,sti.name,sti.sex,sti.clas,sti.sco.chins,sti.sco.maths,sti.sco.engs);3、设计一个简洁的职工信息管理系统【试验目的】1、熟识驾驭结构体数组的应用;2、熟识文件的基本读取操作。【试验任务】编写一个职工信息管理系统,主要用来管理和查询职工基本信息。职工信息包括职工号、姓名、性别、年龄、学
33、历、工资、住址、电话等(职工号不重复)。要求系统具备以下功能:1、系统以文本菜单方式工作;2、职工信息以文件方式保存;3、数据处理要求用结构体数组实现;4、具备职工信息录入功能一输入;5、具备职工信息阅读功能一输出;6、具备职工信息查询功能一算法;查询方式:按职工学历查询按职工号查询7、具备职工信息删除、修改功能(可选)系统功能模块如下图所示。主菜单,信息录入信息阅读信息查询信息删除信息修改退出系统按学所查询f按职工号查询耿工信息管理系统功能模块图#includezzstdio.hftincludezzstring.hftincludez,windows.httincludez,conio.h
34、voidhomepage();voiddisplay();voidinput();voidfind();voiddel();voidsort();voidwaiting();voidquit();structworker(intnum;charname15;charxingbie;intage;charexp6;intwage;charaddress20;);intcount=0;intSOrt_type=0;structworkerword50;voidmain()inti=0,k=0;charusername15,pwd6;system(,color3f);printf(“nn);prin
35、tf(zztI1n);printf(n*n);printf(z,t*I*r);printf(z/tI*n);printfCt*I*In);printf(,t*欢迎运用职工信息管理系统*r);printfCt*n);printf(,t*n);Printf(t*n);printf(,zt*n);printf(z/t*n);printf(z/t*n);printf(tI*I*In);printf(zzt*-*r);Printf(tI*In);printf(zztj1*r);for(i=0;i20;i+)(printf(.);sleep(100);system(,clsz,);homepage();b
36、reak;voidhomepage()charn;printf(z,11nz,);printf (z,t Iprintf( n|printf (,zt I * printf (tI *printf (z,t I * printf( n|printf (,zt I * printf(tI *printf (z,t I * printf( n| printf (z,t I *printf (z,t I *printf ( it n |printfC tj-11 n);*ln);L显示员工资料* 2.录入员工资料 *r);*ln);* I )* r);3.员工信息查询* 4.删除用功记录*n);* In); * * * * * * * 口)5.员工信息排序 * Oo退出信息系统 *r);*n);jjjjjjjjjjjj* r)1 n);while(n! D&(n!= 2,)(n!= 3)&(n!=4)&(n!= 5,)ftfe(n, 0,)printf (,/n 请选择); fflush(stdin);scanf (zz%c,z, &n);switch(n)(case , ;display ();break;ca