2022年C语言课程设计分析方案书.docx

上传人:Che****ry 文档编号:12789285 上传时间:2022-04-26 格式:DOCX 页数:36 大小:722.73KB
返回 下载 相关 举报
2022年C语言课程设计分析方案书.docx_第1页
第1页 / 共36页
2022年C语言课程设计分析方案书.docx_第2页
第2页 / 共36页
点击查看更多>>
资源描述

《2022年C语言课程设计分析方案书.docx》由会员分享,可在线阅读,更多相关《2022年C语言课程设计分析方案书.docx(36页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、精品学习资源试验题目 同学信息治理系统一、试验目的:(1)本课程设计为同学供应了一个既动手又动脑,自学,查资料,独立实践的机会;将本学期课本上的理论学问和实际有机的结合起来,锤炼同学实际分析问题和解决问题的才能,提高同学适应实际、实践编程的才能,使对 C语言系统编程有一个大致的明白;(2) C 语言的实践;把握 C 语言函数的定义方法,函数的声明及函数的调用过程;把握结构体类型变量的定义和使用,综合应用C 语言的学问,实现一个完整的系统,提高编程才能,体会软件程序的开发过程;二、试验内容:(1) 运用结构体数组编辑一个简洁的同学治理系统,使之能够完成同学信息的创建、添加,查询、修改,删除、统计

2、、排序等操作,并对文件进行储存和读取;(2) 执行编译操作,并依据提示调试此程序,排除全部的错误和警告;直到编译成功为止;(3) 执行运行操作,逐一对每个模块进行调试;直到全部程序运行成功为止;(4) 请老师检查,向老师演练此程序,并能回答老师提出的相关问题;三、 需求分析:(1) )依据同学信息治理的需要,建立一个“同学信息治理系统”,系统具有输入、输出、查询、修改、删除、统计、排序等基本功能;以方便对信息的治理操作;每一条记录包括一个同学的学号、姓名、成果、性别,年龄,产生年月日,家庭住址系统的各个功能模块都用函数的形式来实现;可以将同学成果信息储存在文件中,并从文件中读取出来;有一个清楚

3、美观界面来调用各个功能;本程序是由 C 语言的基本单位函数来设计实现与其功能的多次使用函数调用以及函数的嵌套调用;本程序分为7 个模块,分别为创建同学资料;添加同学的资料;查询同学的成果;修改同学的资 料;删除同学的资料;统计同学的成果;对同学的资料进行排序;本 程序可以处理多个同学的成果的输入、添加、修改、排序等问题;本 程序的使用特别便利,每做完一个模块,下面都有提示信息;使用环 境为 Tc;(2) )创建该同学成果治理系统目的就是能够对同学基本信息进行创建、追加、查询、修改、删除、统计、排序等功能,这样可以简化许多人工做起来很复杂的问题;譬如:“排序”,有了此程序只需将信息输 入,运算机

4、就可自动执行,省时、省力;另外,它仍可以重复使用, 便利、快捷;(3) )该同学基本信息治理系统是在WIN-TC中文简体环境下运行;该系统要测试的数据如下:输入模块:(输入 5 个同学的信息)欢迎下载精品学习资源姓名学号成果年龄性别家庭住址产生年月日MaryA10019818femaleshandong1988-5-6LindaA10028618fameladalian1988-12-23TomA10249519malenanshang1988-9-8JimA10258019malebeishang1988-5-23SusanA10477818femalexishan1988-8-9KingA

5、10485619malenanjing1989-9-23添加模块:(再加 1 个信息) 序号 06查询模块:(查询 Jim 的基本信息) A1024(按学号即可查询)或 Jim(按姓名也可查询) 修改模块:(修改 Linda 的信息)(输入) 1(修改名字)(输入)(修改学号)(输入)(修改成果)(输入)(修改性别)(输入)(修改年龄)(输入)(修改家庭住址)(输入)(修改产生年月日)删除模块:(删除 King 的基本信息)学号即可删除) 统计模块:可统计男女人数,统计各分数段人数;排序模块:按成果,学号,分别进行排序;四、概要设计(1) ) 主函数结构图:主函数输入模块输出模块更新模块查询模

6、块排序模块统计模块出模块(2) )模块功能详细说明:A、输入模块:此模块可以连续输入 30 个同学的资料,犹如学数少于 30,就可以 在输 入序 号处 输 入 0 便 可退 出 此 模块 , 并把 输入 的信 息保 存到c:students 文件中;B、输出模块:此模块中先打开c:students文件中的同学信息,后输出要同学信息更新模块:此模块包括添加,修改,删除模块修改模块:此模块中可以修改同学的任何一个信息;修改完毕后输入可以连续修改,输入就退出此模块;欢迎下载精品学习资源删除模块:此模块中用到的删除原理为掩盖要删除的同学的资料;过程简述,先输入要删除的同学的学号,系统找到此同学的信息后

7、给它复制下一个同学的信息,给下一个同学的纪录复制下下一个同学的信息,始终到最终一个同学的信息复制给倒数其次个同学的信息为止;然后文件中的同学总数减一含了三个小模块添加模块:此模块中先打开c:students统计文件中的同学,后输入要添加的同学的学号,系统确认此学号在c:students不存在时开头纪录新同学的资料,便清楚使用者;D. 查询模块:此模块中使用者可以用三种方式查询同学成果;分别为(1)按学号查询( 2)按姓名查询;在这里以按学号查询为列:先选择按学号查询,输入要查询的同学的学号,系统确认此学号在c:stud存在后读取信息并在屏幕上输出同学纪录;F、排序模块:此模块用的为指针;在此模

8、块中可以按两种方法进行排序,分别为( 1)按成果排序( 2)按学号排序 3 按序号排序输出时分别以从大到小和从小到大从小到大的循序进行输出;G、此模块较简洁,统计文件c:students中的男和女的同学个数和各成果段的人数;五、详细设计及运行结果1各个模块的程序流程图添加模块 :.欢迎下载精品学习资源从 c:students 文件中读取同学个数sum, i=sum,flag=0studi.num=+sum输 入 学 生信息choice=y |choice=Y.i+ ;flag=1flag=0终止删 除 模 块:欢迎下载精品学习资源打开 c:students 统计文件中的个数sum输入删除的学号

9、i0isumi+srcmpstudi.number,delet e_number=0.isum.欢迎下载精品学习资源该同学是不存在的i+studi=studi+1 ;sum=sum-1欢迎下载精品学习资源终止该同学已经被删除了排序模块:欢迎下载精品学习资源打开 c:students 文件 统计文件中同学个数sumstruct stud *p,*qMAXp=studi=0isumi+终止qi=p+输出结果isum.欢迎下载精品学习资源i+k=ij=k+1jnumber,qj-number0.p=qi;qi=qk ;qk=pk.=ik=j欢迎下载精品学习资源打开 c:students 文件 统计文

10、件中同学个数sumstruct stud *p,*qMAXp=studi=0isumi+终止qi=p+输出结果isum.欢迎下载精品学习资源i+k=ij=k+1jscorescore.p=qi;qi=qk ;qk=pk.=ik=j欢迎下载精品学习资源打开 c:students 文件 统计文件中同学个数sumstruct stud *p,*qMAXp=studi=0isumi+终止qi=p+输出结果isum.欢迎下载精品学习资源i+k=ij=k+1jnumqj-num.p=qi;qi=qk ;qk=pk.=ik=j欢迎下载精品学习资源 2 函数之间相互调用的图示:欢迎下载精品学习资源终止终止终止

11、调 用 查 询 函 数终止调 用 排 序函 数终止调 用 统 计 函 数终止调 用 退 出函 数终止调用 输入函数主调用 输出函数函调用 更新函数数(3) )主要函数之间相互调用如下:主函数的调用:mainint choice;sum=read_message; bioskey0;printfpress any key to continue:n;getch;dosystemcls;printfnnn*studentmanagesystem*nn;printf1.input messagenn;printf2.output messagenn;printf3.renew messagenn;p

12、rintf4.inquire messagenn;printf5.sort messagenn;printf6.count messagenn;printf0.exit the systemnn;printfplease select the choice; scanf%d,&choice;switchchoice欢迎下载精品学习资源case 1: input_message;break;欢迎下载精品学习资源case 2: output_message; break;case 3: renew_message; break;case 4: inquire_message; break;case

13、 5: sort_message; break;case 6: count_message; break;case 0: brea;kwhilechoice.=0 ;save_messagesum;printfn- message has saved.-file name:students.txt n;欢迎下载精品学习资源删除函数的调用delete_message char delete_number10 ;int i六;、调试情形,设计技巧及体会systemcl1s ;、调试中的问题:insert_messageint i=sum,j,flag=0 ;char choice;添加函数的调用欢

14、迎下载精品学习资源prinatf.刚开ple始as没e 有inp那ut 个th初e始nu化mb函er 数yo,u 程wa序nt运to行后没有s输ys入tem任何cls数据就试得去执行显;欢迎下载精品学习资源delete: ;示功能,结果output_message 显示的是一pr些intf乱n码n!加a入dd初a始ne化w 函stu数de后ntn,这欢迎下载精品学习资源;doscanf%种s现,de象let也e_随nu之mb消er失;printf-n;欢迎下载精品学习资源forbi=.0 ;在i输su入m函;数i+中设了最大值,可以输入30 个同学的成果信息,当输入数字欢迎下载精品学习资源 时

15、停止,并储存信息;ifsctr.cm在ps没tud有i输.nu入mb任er何,de信let息e_的nu情mb况er下=,0 不能执行查询s、tud修i改.nu、m=删+除su、m 统计、排序功欢迎下载精品学习资源 for ;能is;um ;i+studd.i=s有tud时i+候1,;遗忘定义就直接调用,使得出错;printfnthe new students num:%d,studi.num;printfnthe new students name : ;欢迎下载精品学习资源;sume=.su定m-义1 ;的成果是浮点型的,但输入数据的时候却s忘ca记nf输%成s,整stu型di,.na导m致

16、e 输入和输printf t出he均me错ss误ag;e h最as后be,en将de定le义ted的.成;绩改为整型才正p确rin;tf我n 这时候th才e 真new正s体tud会en到ts了number:;一样性的重要;检查程序许多遍但却始终不知道输入的数据有错,很令人头scanf%s,studi.number ;欢迎下载精品学习资源else prin疼tf;the student is not exist.;printfnthe new students score: ;欢迎下载精品学习资源( 2)对自己程序的总结与评判:本程序是由C 语言的基本单位函数来scanf%d,&studi.sc

17、ore;printfnthe new students age: ;scanf%d,&studi.age;printfnthe new students sex: ;printfnthe new students address: ;scanf%s,studi.sex ;欢迎下载精品学习资源设计实现与其功能的多次使用函数调用以及函数的嵌套调用;本程序分为7个模块,分别为( 1)输入同学资料;( 2)输出同学的资料( 3)更新同学的成果( 4)查询同学的资料( 5)排序同学的资料( 6)统计同学的成果(7)退出信息治理系统;本程序可以处理多个同学的信息的输入、添加、修改、排序等问题;本程序的使用

18、特别便利,每做完一个模块,下面都有提示信息;使用环境为Tc;此程序的不足之处在同学基本信息方面仍不够完善,另一方面就是在运行此程序时 , 需要执行操作的提示语不够详细和完善 .改进方法 :可以在同学基本信息的结构体中添加更多的同学信息, 像是多输入几门课的成果,删除的时候,应多加一个依据序号删除,查询时也应加入一个依据序号查询,使得同学信息更加完善, 应用的时候更加的便利,快捷;此外 , 仍可以在编程时加一些必要的提示语 , 用 printf“” ; 语句直接可输入 .(3)、在设计过程中的感受:第一经过两周的编程实习,并在后一段的报告总结,我对C 语言这门科有新的熟识,本人实在是获益不浅!要

19、想编写一个精确、高效并有使用价值的程序,确定先要对课本学问熟识,仍要把握必要的上机操作才能,写程序其实很简洁而关键在于调试程序;这次设计, 让我重新把握了 C 语言,而且仍得到了用 C语言解决实际问题的宝贵体会;其次,通过此次编程我也发觉了自己在学习中的错误和不足,复习了以前学过的学问;同时也学到了一些没学过的学问,让我从中收益非浅, 也为期末考试预备了一下!更重要的是培养了独立摸索问题和解决问题的才能,熟识了一些基本操作和解决问题的方法!再就,由于初次接触等缘由此次设计遇到了许多问题, 我深刻体会到老师发挥的重要作用 ,C 语言程序对我们来说比较难 , 在匆忙的学习中更是难上加难 , 似乎觉

20、得自己仅是个匆忙过客 , 但在老师的帮忙下我学会了如何调试, 如何查找系统没有提示的错误, 最终最终排除万难把程序搞定, 体会到原先编程也挺有意思的快感. 我想没有老师的帮忙我很难在短期内把程序设计做的这样好 , 在此特地感谢老师的帮忙;(4)测试数据: 输入模块:序号: 01姓名: mary 学号: a1005 成果: 89年龄: 19性别:女家庭住址 fangdong : 产生年月日: 1988-9-16序号: 02姓名: jim学号: a1021成果: 76年龄: 18欢迎下载精品学习资源性别:男家庭住址 linhe :产生年月日: 1989-6-12序号: 03姓名: ham 学号:

21、a1012 成果: 68年龄: 18性别:男添加模块:序号: 04姓名: susan 学号: a1025 成果: 78年龄: 18性别:女家庭住址 kongtou : 产生年月日: 1989-6-30序号姓名学号输出:成果年龄19181818性别女男男女家庭住址01020304maryjim ham susan删除模块:a1005a1021 a1012 a102589766878fangdongLinhe kongtou kongtou出 生 年 月日1988-9-161989-6-121989-1-231989-6-30输入要删除的学号:序号姓名学号a1025成果输出:年龄191818性别女

22、男男家庭住址010203MaryJim Hama1005a1021 a1012897668fangdongLinhe kongtou产生 年月日1988-9-161989-6-121989-1-23家庭住址 kongtou : 产生年月日: 1989-1-23 输出模块:序号姓名学号成果年龄性别家庭住址产生 年月日01marya10058919女fangdong1988-9-1602jima10217618男Linhe1989-6-1203hama10126818男kongtou1989-1-23修改模块:输入要修改的学号: a1021 你想修改哪一项? 1姓名2. 学号欢迎下载精品学习资源3

23、. 成果4. 年龄5. 性别6. 家庭住址查询模块:按学号查询:输入你要查询的学号: a1021按姓名查询:输入你要查找的姓名: jim统计模块:1. 统计男女人数: 男的: 2女的: 2统计成功!按任意键返回!2. 统计各分数段人数:90 分以上: 080 分以上: 170 分以上: 260 分以上: 360 分以下:无统计成功!按任意键返回! 排序模块:1按学号:7. 产生年月日: 请选择( 17)3 成果: 98序号姓名学号成果年龄性别家庭住址产生 年月日02Jima10219818男linhe1989-6-12序号姓名学号成果年龄性别家庭住址产生 年月日02Jima10219818男l

24、inhe1989-6-12序号姓名学号成果年龄性别家庭住址产生 年月日02Jima10219818男linhe1989-6-12序号姓名学号成果年龄性别家庭住址产生 年月日01Marya10058919女fangdong1988-9-1603Hama10126818男kongtou1989-1-2302jima10217618男linhe1989-6-122按成果:序号姓名学号成果年性家庭住址产生 年月01Marya100589龄19别女fangdong日1988-9-16欢迎下载精品学习资源02Jima10217618男Linhe1989-6-1203Hama10126818男kongtou

25、1989-1-233按序号:序号姓名学号成果年龄性别家庭住址产生 年月日01Marya10058919女fangdong1988-9-1602Jima10217618男Linhe1989-6-1203Hama10126818男kongtou1989-1-23程序运行:主函数输入模块:欢迎下载精品学习资源输出模块:更新模块:欢迎下载精品学习资源)插入模块:)删除模块欢迎下载精品学习资源)修改模块:查询模块: )按学号查询:欢迎下载精品学习资源)按姓名查询:排序模块:)按学号排序:)按成果排序:)按序号排序:欢迎下载精品学习资源统计模块:)统计男女:)统计成果:退出模块七、源程序清单: #incl

26、ude#include #define MAX 30#define PAGE 5#definePRINT1 printf-n#definePRINT2printfnum-name-number-score-age-sex- address-birthdayyear-month-dayn#definePRINT3printf%d,%s,%s,%d,%d,%s,%s,%d-%d-%dn,studi.num,studi.name,studi.number,studi.score,studi. age,studi.sex,studi.address,studi.birthday.year,studi.

27、birthd ay.month,studi.birthday.day欢迎下载精品学习资源int sum;struct DATEint yearint month;int day;struct studint num;char name21;char number10;int score;int age;char sex11;char address27;struct DATE birthday;studMAX;save_messageint sum FILE *fp;int i;iffp=fopenstudents.txt,wb=NULLprintf read file wrong.n;ret

28、urn;fori=0;isum;i+ iffwrite&studi,sizeofstruct stud,1,fp.=1 printfwrite file wrong.n;fclosefp;input_messageint i=0,s=MAX;systemcls;printfnnenter the students messages not more than %dn,s;printf-n;doprintfnthe %dth student ,i+1;printfnstudents num:;scanf%d,&studi.num;欢迎下载精品学习资源ifstudi.num=0 break;pri

29、ntfnstudents name:;scanf%s,studi.name;printfnstudents number:scanf%s,studi.number;printfnstudents score:;scanf%d,&studi.score;printfnstudents age:;scanf%d,&studi.age;printfnstudents sex:;scanf%s,studi.sex;printfnstudents address:;scanf%s,studi.address;printfnstudents birthday:;scanf%d-%d-%d,&studi.b

30、irthday.year,&studi.birthday.month,&studi.birthday.day ;i+;whileiMAX;printfn-%d students message have been input.-n,i;sum=i;printfnpress any key return to menu.;bioskey0;int read_message FILE *fp;int i=0;iffp=fopenstudents.txt,rb=NULLprintfnn*thereisno message,pressanykeytomenu and input message.*n;

31、return;whilefeoffp.=1fread&studi,sizeofstruct stud,1,fp;ifstudi.num=0 break;else i+;fclosefpreturn;output_message欢迎下载精品学习资源int i=0,j=0,page=1;systemcls;printfnn-student message list-the %dth pagenn,page;PRINT2;PRINT1;doifstudi.num.=0j+;ifj%PAGE.=0PRINT3;PRINT1;elsePRINT3;PRINT1;ifstudi+1.num.=0print

32、fpress any key to continue.;bioskey0;systemcls;printfnn-studentsmessagelist-the %dth pagesnn,+page;PRINT2;PRINT1;i+ ;whilestudi.num.=0;printfpress any key to menu.;bioskey0;insert_messageint i=sum,j,flag=0;char choice;systemcls;printfnnadd a new studentn;printf欢迎下载精品学习资源-ndo;studi.num=+sum;printfnth

33、e new students num:%d,studi.num;printfnthe new students name :;scanf%s,studi.name;printfnthe new students number:;scanf%s,studi.number;printfnthe new students score:;scanf%d,&studi.score;printfnthe new students age:;scanf%d,&studi.age;printfnthe new students sex:scanf%s,studi.sex;printfnthe new stud

34、ents address:;scanf%s,studi.address;printfnthe new students birthday:;scanf%d%d%d,&studi.birthday.year,&studi.birthday.month,&studi.birthday.day ;printfnDo you want to continue. Y/N;choice=getch;if choice=y|choice=Y printfncontinue.n;i+;flag=1;else flag=0;whileflag=1;printfnpress any key to menu.;bioskey0;delete_message char delete_number10;int i;systemcls;printf please input the number you want to delete:;scanf%s,delete_number;fori=0;isum;i+ifstrcmpstudi.number,delete_number=0 for;isum;i+ studi=studi+1;欢迎下载精品学习资源sum=sum-1 ;printf the mess

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁