《C语言程序设计报告》模板_第1页
《C语言程序设计报告》模板_第2页
《C语言程序设计报告》模板_第3页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、C语言程序设计综合实验报告学院:影视融媒体学院专业:数字媒体技术姓名:吴丹学号:201905760032020年12月22日L实验目的1) 进一步掌握和利用c语言进行程序设计的能力2) 进一步理解和运用结构化程序设计的思想和方法3) 初步掌握开发一个小型实用系统的基本方法4) 掌握编写程序设计开发文档的能力2.实验丿包括学号、姓名、语文、数学成绩;将所有学生信息打印输出;可以根据姓名查找到学生,然后修改学生姓名,成绩; 根据学号查找到学生,将其信息删除;根据学生姓名,将其信息打印输岀;1)2)3)4)5)6)完成一个学生成绩管理系统的设计与实现,此系统具有以下功能: 添加学生信息。显示学生信息

2、。修改学生信息。删除学生信息。查找学生信息。按学生总成绩进行从高到低的排序。请完成此系统的开发。3总体设计(1) 函数名:void menu ()函数功能:显示功能选择菜单入口参数:无岀口参数:无算法描述:switch,控制菜单功能的选择(2) 函数名:void add (int i, id)函数功能:添加用户,添加三个学生的成绩信息入口参数:无出口参数:无算法描述:do.while循环不断输入学生记录(3) 函数名:void showALL (int i)函数功能:输出录入的所有学生的学号、姓名、数学成绩、语文成绩和成绩总和入口参数:整型,学生记录情况出口参数:无算法描述:调用show ()

3、函数进入显示记录模块,for循环语句(4) 函数务 void modify ()函数功能:修改学生记录入口参数:无出口参数:无算法描述:for,循环语句,输入要修改的学生姓名,当用户输入了已录入的学生姓名 后,如果学生信息存在,即可修改除学号以外的英他信息,否则输岀''该学生不存在”(5) 函数划:void del ()函数功能:删除记录入口参数:无岀口参数:无算法描述:for循环语句,读取记录,对学生学号进行判断,如果学好存在,即可删除该生的所有信息,否则输出“没有找到该生的记录”(6) void search ()函数功能:查找记录入口参数:无出口参数:无算法描述:for循

4、环语句,在该模块中输入查找的学生姓名,如果该学生存在,则输岀 该学生的全部信息,否则输出'没有找到该生的记录”(7) void sort ()函数功能:排序记录入口参数:无出口参数:无算法描述:for,该模块会输岀所有学生的信息,并按总成绩由高到低进行排序4. 详细设计根据总体设计里的划分的模块,对每个模块的具体实现思路进行说明,并且给出 相应模块的代码。(1) 菜单选择void menu()system(l,cls,)5 printf(MnM)J printf(Mtt printf("tt printf(Mtt printf(Mtt学生成绩管理系统tt tt ttprint

5、f("tt|tt printf(Mtt printf(Mtt printf(wtt printf(wtttt tt tt23456e添加记录 显示记录 修改记录 删除记录 査找记录 排序记录 退出系统nw)jnH)l1十); nM)J 十);十);printf (wttW选择(e6) (2) 添加记录,函数内部用do.while循环不断输入学生记录,存储于stu数组 中,直到输入结束输入。void add(struct s七udent stu)int i, id = 0;char quit;doprintfC*学号:”); scanf (&id):for (i = 0;i&l

6、t;n;i+) if (id = stui.id)jprintf ( 11 此学号存在!nM) jreturn J . .; stui.id = idj printf(,f姓名;w)j scanf (,%s,8stu i .name);|printf (,f 语文成绩:M)jscanf (,%dM>&stu i .Chinese); printf('*数学成n)j scanf (tf%dHj®stui .math);stu i5um = stu ic:hinRS2 + st ui .math; n*;printf (M是否继续添加?(Y/N)M); scanf

7、(; while (quit != 1N*)j(3) 显示记录,在函数内部用for循环语句遍历stu数组,将数组元素(学生记 录)打印输出。在for循环内部调用的是show ()函数。void show(struct student stu>int i)printf (,%-10dwJstui id) jSprintf ( ,%-10sM>stu i name) jprintf (M%- 10dwstui.Chinese);printf ( ,%-10d'stu i .math) j printf (M%- 10dnMjstui.sun) jvoid showALL(str

8、uct student stu)<int i;HHjfor (i = 0;i>n;i4+)show(stu,i);(4)修改记录,当输入学生姓名时,用for循环遍历stu数组,如果找到学生记 录就修改其姓名、语文成绩、数学成绩信息,然后返回;如果没找到,则输出提 示信息。void modify(struct student stu)char name8>chiint i;printf(修改学生的记录口 十); printf("请希入学生的姓名:”); scant( "Xs1*,;for (i = 0)i<nji+)if (strcmpCname,st

9、uiname)=0)gwtchar()jI printfC'找到该生的记录,如下所示二十); jHHjshow(stu,i); printfC 是否修改?(Y/N)rT);scanfCc&ch)if (ch = 1Y* | ch = *y') getchar()i printf(M姓名:w);scanf(n%sHj&)j printf ("语文成媛;”);scanf(M%dM>&stuiChinese); printf(H数学成绩:scanf (,%dM>8stui .math);stui.sum = stui.C

10、hinese + stui.mathj printf(11 修改完毕。nM)jreturnjprintf(-没有找到该生的记录.十);(5)删除记录,当输入学生姓名时,用for循环遍历stu数组,如果找到学生记 录,例如在位置i处,则将位置i+1处的记录移动到位置i处,这样就将i位置处 的记录删除了,而后面的记录要依次往前移动,填补空位。如果for循环遍历结束, 没有找到学生记录,则输出提示信息。void del(struct student stu)int id,ijchar ch;printf(-lffll除学生的记录。十);| printf(11请输入学号s n);scanf("

11、;%d",&id);for (i =i<ni+) if (id = stui.id)getchar()j printfC1找到诊生的记录,如下所示:nu);j HH;show(stuj i);printf(f,是否删除?(Y/N)n")jiscanfCc&chJjif (ch = 1丫' | ch = y1) i i <.for (j i<nji+) stui = stui+l5I!printf (-ffil 除成功 L);return; printf(-没有找到该生的记录! n-);(6) 查找记录,当输入学生姓名时,用for循环

12、遍历数组stu,如果找到,则输 出此学生记录。如果foi循环遍历结束,没有找到相应学生记录,则输出提示信息。void search(struct student stu)char name8;int ijprintfC"査找学生的记录.n-)5printfC*»输入学生的姓名:)! scanf(M%sH finame);for (i = 0i<nji+)<if (strcmpCname,) = 0)printfC"找到该生的记录,如下所示* n“); HH;shou(stu,i); returnj! pdntfC没有找到该生的记录.n

13、-);(7)排序记录,函数内部实现为冒泡排序。void sor七(struct student stu)in* i>jjstruct student 七; printfC按总成绩进行排序,”);for (i = 0;i<n-lji+)for (j = i+1jj<n;j+)if(stuisum<s七uj.sum)t = stuijstui = stujjstuj = t;printf(n排序结果如F: n")j showALL(stu)i5. 程序运行结果对系统各模块实际执行悄况进行描述与展示。(1)菜单选择 C:Users12265Desktop»

14、f®3Z:44: 倾目 1.exe统系理录录录录录录统 管记记记记记记系 绒加示改除找序出 成济昭修删含lib退 1234560 学诸选(0-6):(2) 添加记录 C:Users12265Desldop新建文件夹(3)项目 1.exe牛1234560学管记记记记记记系 绩加示改除找序出 ,显修酬查排退m9080 加?>(¥/N)Yse8790 加?»(Y/N)Yly返978S 加?N)N 单!(3) 显示记录 C:Usei5Y12265Deslaop宙建文件夹 、项目 1.exe帖TomJOSLil择语908797理录录录录录录统 管记记记记记记系 绩加.

15、小改除找序:| 成添显修删含fir退 41234560 学数学成绩809088总分170177185(4) 修改记录和 C:Users12265DesktopSrS* (3)VS§ 1.exe系理汞來求录录录铳 管记记记记记记系 绒加.小改除找序出 賊添显修删杳排iu 牛1234560 学请选择(0-6): 3修改学生的记录。请输入学生的姓名:Lily找到该牛的记求,如下所示:了号 姓名 语文成绩数学成绩总分3Lily 9788址否修改?(Y/N)185姓名:Lina语文成绩:90数学成绩:99 修改完毕。按任意鏈返I叫上菜单!(5) 删除记录 .: C:Users12265Desk

16、topiJtJZ: (3)1§ 1.exe统系理录录录录衆录统 管记记记记记记系 绩加示改除找庁出 賊添界修删査排退 生1234560 学请选择(0-6):4删除学生的记录。请输入学号:3找到该生的记录.如卜所示:学号 姓名语文成绩数学成绩总分3Lina 9099189是否删除?(Y/N)bj除成功!按任意键返冋主菜臥!(6) 查找记录数学成绩总分9017780170请选择(0-6):6 按总成绩进和排序,排序结果如下 学号姓名语文成绩9Jose87Tom90退出系统 C:Users12265Des 讥 op歯服件夹 、项目 1.exe:紀 C:Users12265DeUaop新建文

17、件夹(3)1 页目 1.exe理录录录录录录统 管记记记记记记系 绩加小改除找序山 成添显修'!'査捋退 HJ1234 5 6O 学(7)I 一 理录录录录录录统_ 管记记记记记记系 一 绩加示改除找疗出一 戒添显修删杳排退_ 住1234560 一请选抒(0-6) : 0程序结束!process exited after 1.813 seconds with return value 0 请按任意键继续.6. 总结总结系统完成的情况,碰到的各类问题和解决方法,以及其它与课程相关、 技术相关的心得体会。c语言是一门重视实践的课程,无论课堂上你听的有多仔细,上机实践还是会有这样那样 的问题,一些错误只有自己亲身经历,并努力解决才会影响深刻。(1)分淸主次,先将最精腌 的东西提炼出来,再将整个C语言学一遍,从全局上把握C语

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论