《C课程设计分析方案 .docx》由会员分享,可在线阅读,更多相关《C课程设计分析方案 .docx(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结课 程 设 计 报 告课程名称C 语言程序设计课题名称同学信息治理系统专业电气工程及其自动化班级 1086 班学号 202113010632姓名周铁指导老师彭祯刘琤 郭芳2021 年 6 月 20日湖南工程学院 课 程 设 计 任 务 书课程名称 C 课程设计课题 同学信息治理系统专业班级电气 1086 班同学姓名周铁学号 202113010632指导老师彭祯刘琤郭芳审批任务书下达日期2021 年 6月 20 日任务完成日期2021 年 7月 1 日目录可编辑资料 - - - 欢迎下载精品名师归纳总结三、总体设计41、现行系统组织结构图:2、数据结构分析53、工作原理等5三、详
2、细设计4四系统调试与结果分析6六、总结 6七、附件 6参考文献 19一、题目总体介绍 错误!未定义书签。二、需求分析 44一、题目总体介绍(一)、课程设计题目:同学信息治理(二) 、课程设计内容与主要功能:设计与开发一个同学信息治理系统,对同学的学号、姓名、性别、年龄等基本信息进行治理、主要功能如下:1)输入记录2)显示全部记录3)查找记录4)删除记录5)插入记录6)储存文件可编辑资料 - - - 欢迎下载精品名师归纳总结7)读文件8)按学号显示记录9)按姓名排序(三)、目的与要求:1、目的:( 1)要求同学达到娴熟把握C语言的基本学问和技能。( 2)基本把握 C 语言程序设计的基本思路和方法
3、。( 3)能够利用所学的基本学问和技能,解决简洁的C 语言程序设计问题。2、基本要求:1) 设计正确,方案合理。2) 界面友好,使用便利。3) 程序精炼,结构清晰。3、创新要求:在基本要求达到后,可进行创新设计,如依据查找结果进行修改的功能。4、写出设计说明书(四)、设计方法和基本原理:1、问题描述(功能要求):( 1 )能够从屏幕上读取一个同学的信息并将信息存入到数据文件中。(2) )能够将指定的信息从文件中删除。(3) )能够按学号、姓名、性别、年龄对同学的信息进行检索并将检索结果显示在屏幕上。(4) )假如检索不到相应的信息应提示用户。 2、问题的解决方案:依据系统功能要求,可以将问题解
4、决分为以下步骤:(1) )写出需求分析(做什么)。(2) )分析系统中的各个实体之间的关系及其属性和行为。(3) )依据问题描述,设计系统的类层次。(4) )完成类层次中各个类的描述(包括属性和方法)。可编辑资料 - - - 欢迎下载精品名师归纳总结开头选择菜单序号按 要记求逐 步录输入 学 生记录记1? 录记录记 把 当 前 学记录 生 信 息 拷录件2?贝 到 后 一信息学号查询条号显示记录名排序储存?姓名查找输 入学 生信息储存(5) )完成类中各个成员函数的定义。(6) )用户界面的设计。(7) )分析系统功能模块(系统流程图)。(8) )代码编写,功能调试。(9) )完成系统总结报告
5、以及系统使用说明书。二、需求分析( 1 )能够从屏幕上读取一个同学的信息并将信息存入到数据文件中。(2) )能够将指定的信息从文件中删除。(3) )能够按学号、姓名、性别、年龄对同学的信息进行检索并将检索结果显示在屏幕上。( 7)假如检索不到相应的信息应提示用户。三、总体设计1、现行系统组织结构图:1234567890输显查删插保读按按退入示找除入存文学姓出可编辑资料 - - - 欢迎下载精品名师归纳总结退出2、数据结构分析使用整型,双精度,字符型定义变量和函数。使用结构体,类等概念实现数据储备。同时也是用这些自定义类型定义了变量和函数。表达面对对象设计的特点。3、工作原理等可编辑资料 - -
6、 - 欢迎下载精品名师归纳总结系统功能结构图:主程序可编辑资料 - - - 欢迎下载精品名师归纳总结初菜始单化程程序输显查删序插保读按按退四、详细设计入示找除入存文学姓出记记记记记记件号名1、类设计类: student录录录录录录显示记排序数据成员录学号,姓名,性别,年龄类: school成员函数输入记录函数 enter :输入编号到运算机中。显示记录函数 list :显示全部输入的内容,如学号、姓名、性别、年龄等。按姓名查找显示记录函数search :按学号或姓名查找同学的信息。 删除记录函数 delete :删除指定学号同学信息。插入记录函数 add :插入指定学号同学信息。记录储存为文件
7、函数save :将同学信息储存为文件函数。可编辑资料 - - - 欢迎下载精品名师归纳总结从文件中读记录函数load :从文件中读出同学信息。按序号查找显示记录函数display :按序号查找同学信息。 按姓名排序函数 sort :按同学姓名排序。文件复制函数 copy :将文件复制。显示单条记录函数printSTUDENTS temp。显示单条同学信息。 查找函数 findSTUDENTS t,int n,char *s:查找同学信息。 输出函数 menu_select :输出同学信息。五系统调试与结果分析1、初始目录:2、输入数据:3、显示全部记录:4、查找记录:5、删除记录:6、插入记录
8、:7、按姓名排序8、复制信息9、按序号排序2. 系统运行的结果:设计特点和不足之处:系统整体清晰明白,功能基本齐全,但系统中报错功能不完整,当学号等信息输入数字等时不显现报错,可设置提示重新输入。六、总结1、在做了课程试验以后,我对C 语言的明白更深了,许多学问得到了巩固,一些不懂的学问也渐渐明白!但从C 语言这门课程开头,已发觉程序设计的乐趣,在学习C 语言的过程中也学到了许多运算机应用基础学问,对计算机的机体也有了一个大体的明白2、作了同学同学信息治理系统程序后,我对数据类型、函数、指针、结可编辑资料 - - - 欢迎下载精品名师归纳总结构体更加熟识了,作为C 语言所特有得指针、结构体和对
9、象再编写程序得过程中运用特殊广泛,我仍必需多加练习才能达到一个更高的水平,结构体和对象、指针都是特殊重要的。3、这次实训是彭祯老师给了很大引导,经过自己的改写,实现要求。先做简洁的输出,一步步的再做其它图案,在实际操作过程中犯的一些错误仍会有意外的收成,感觉实训很有意思。在详细操作中对这学期所学的 C 语言的理论学问得到巩固,达到实训的基本目的,也发觉自己的不足之出,在以后的上机中应更加留意,同时体会到C语言具有的语句简洁,使用灵敏,执行效率高等特点。发觉上机实训的重要作用,特殊是对数组和循环有了深刻的懂得。4、在完完整整的做完一个课程试验后,我对程序的整体性有了一个明确的熟识,做一个程序必需
10、要留意程序前后的联系,要具有清晰的思路,程序要具有层次。对整体性的把握至关重要!5、学习运算机语言,最重要的就是上机操作,我深感自己动手才能比较差,在以后的学习中,仍必需多多上机调试程序,从实践中多积存经验,为以后学习和工作打下坚实的基础。七、附件/*头文件( .h ) */ #include /*I/O函数 */ #include /*标准库函数 */可编辑资料 - - - 欢迎下载精品名师归纳总结#include /*字符串函数 */ #include /*字符操作函数 */ #define M 50 /*定义常数表示记录数 */ typedef struct /*定义数据结构 */cha
11、r no20。/* 学号 */ char name20。 /*姓名 */ char sex5。/* 性别 */int age。/* 年龄 */STUDENTS。/*以下是函数原型*/int enterSTUDENTS t。 /*输入记录 */void listSTUDENTS t,int n。 /*显示记录 */void searchSTUDENTS t,int n。 /*按姓名查找显示记录 */ int deleteSTUDENTS t,int n。 /*删除记录 */int addSTUDENTS t,int n。 /*插入记录 */void saveSTUDENTS t,int n。 /
12、*记录储存为文件 */ int loadSTUDENTS t。 /*从文件中读记录 */void displaySTUDENTS t。 /*按序号查找显示记录*/void sortSTUDENTS t,int n。 /*按姓名排序 */ void copy。 /*文件复制 */void printSTUDENTS temp。 /*显示单条记录 */int findSTUDENTS t,int n,char *s。 /*查找函数 */ int menu_select。 /*主菜单函数 */*主函数开头 */ mainSTUDENTS stuM。 /*定义结构体数组 */ int length。
13、/*储存记录长度 */clrscr。 /*清屏 */ for。 /*无限循环 */可编辑资料 - - - 欢迎下载精品名师归纳总结switchmenu_select/*调用主菜单函数,返回值整数作开关语句的条件 */case 0:length=enterstu。break 。/* 输入记录 */ case 1:liststu,length。break 。 /*显示全部记录 */ case 2:searchstu,length。break 。 /*查找记录 */case 3:length=deletestu,length。break 。 /*删除记录 */ case 4:length=addst
14、u,length。 break。 /*插入记录*/case 5:savestu,length。break 。 /*储存文件 */case 6:length=loadstu。 break。 /*读文件 */ case 7:displaystu。break 。 /*按序号显示记录 */ case 8:sortstu,length。break 。 /*按姓名排序 */ case 9:copy。break 。 /*复制文件 */case 10:exit0。 /*如返回值为 11 就程序终止 */* 菜单函数,函数返回值为整数,代表所选的菜单项*/ menu_selectchar s80。int c。g
15、otoxy1,25。/* 将光标定为在第 25 行,第 1 列*/printfpress any key enter menu.n。/* 提示压任意键连续*/getch。 /*读入任意字符 */ clrscr。 /*清屏 */ gotoxy1,1。可编辑资料 - - - 欢迎下载精品名师归纳总结printf*MENU*nn。printf0. Enter recordn。printf1. List the filen。printf2. Search record on namen。printf3. Delete a recordn。 printf4. add record n。printf5.
16、Save the filen。printf6. Load the filen。printf7. display record on ordern。printf8. sort to make new filen。printf9. copy the file to new filen。printf10. Quitn。printf*n。doprintfnEnter you choice010:。 /*提示输入选项 */scanf%s,s。 /*输入选择项 */c=atois。 /*将输入的字符串转化为整型数*/whilec10。 /*选择项不在 011 之间重输 */return c。 /*返回选择
17、项,主程序依据该数调用相应的函数*/*输入记录,形参为结构体数组,函数值返回类型为整型表示记录长度*/int enterSTUDENTS tint i,n。char *sclrscr。 /*清屏 */printfnplease input num n。 /*提示信息 */ scanf%d,&n。 /*输入记录数 */可编辑资料 - - - 欢迎下载精品名师归纳总结printfplease input record n。 /*提示输入记录 */printfnonamesex agen。printf-n。for i=0。in 。i+scanf%s,ti.no。scanf%s,ti.name。sca
18、nf%s,ti.sex。scanf%d,&ti.age。return n。 /*返回记录条数 */* 显示记录,参数为记录数组和记录条数*/ void listSTUDENTS t,int nint i。clrscr。printfnn*STUDENTS*n。printfnonamesex agen。printf-n。fori=0。in-1 /*假如整数 i 值大于 n-1 ,说明没找到 */printfnot foundn。elseprintti。 /*找到,调用显示函数显示记录*/* 显示指定的一条记录*/ void printSTUDENTS tempclrscr。printfnn*n。p
19、rintfnonamesex agen。printf-n。printf%-20s%-20s%-10s%-可编辑资料 - - - 欢迎下载精品名师归纳总结10dn,temp.no,temp.name,temp.sex,temp.age。printf*end*n。/* 查找函数,参数为记录数组和记录条数以及姓名s */ int findSTUDENTS t,int n,char *sint i。fori=0。in 。i+/*从第一条记录开头,直到最终一条*/ifstrcmps,ti.name=0/*记录中的姓名和待比较的姓名是否相等 */return i。 /*相等,就返回该记录的下标号,程序提前
20、结终止*/return i。 /*返回 i 值*/* 删除函数,参数为记录数组和记录条数*/ int deleteSTUDENTS t,int nchar s20。 /*要删除记录的姓名 */ int ch=0。int i,j。printfplease deleted namen。 /*提示信息 */ scanf%s,s。/* 输入姓名 */i=findt,n,s。 /*调用 find函数 */for。i=i。j-/*从最终一个结点开头向后移动一条*/strcpytj+1.no,tj.no。 /*当前记录的学号拷贝到后一条*/ strcpytj+1.name,tj.name。 /* 当前记录的
21、姓名 拷贝到后一条 */可编辑资料 - - - 欢迎下载精品名师归纳总结strcpytj+1.sex,tj.sex。 /*当前记录的性别拷贝到后一条*/tj+1.age=tj.age。 /*当前记录的年龄拷贝到后一条*/strcpyti.no,temp.no。 /*将新插入记录的学号拷贝到第i个位置*/strcpyti.name,temp.name。 /*将新插入记录的姓名拷贝到第i个位置 */strcpyti.sex,temp.sex。 /*将新插入记录的性别拷贝到第i个位置 */ti.age = temp.age。 /*将新插入记录的年龄拷贝到第i 个位置 */n+。 /*记录数加 1*/
22、 return n。 /*返回记录数 */* 储存函数,参数为结构体数组和记录数*/ void saveSTUDENTS t,int nint i。FILE *fp。 /*指向文件的指针 */iffp=fopenrecord.txt,wb=NULL/* 打开 文件 , 并 判定打开是否正常 */printfcan not open filen。/* 没打开 */ exit1。 /*退出 */printfnSaving filen。 /*输出提示信息 */ fprintffp,%d,n。 /*将记录数写入文件 */ fprintffp,rn。 /*将换行符号写入文件 */ fori=0。in 。
23、i+fprintffp,%-20s%-30s%-10s%-可编辑资料 - - - 欢迎下载精品名师归纳总结10d,ti.no,ti.name,ti.sex,ti.age。/* 格式写入记录 */ fprintffp,rn。 /*将换行符号写入文件 */fclosefp。/* 关闭文件 */printf*save success*n。 /*显示储存成功 */* 读入函数,参数为结构体数组*/ int loadSTUDENTS tint i,n。FILE *fp。 /*指向文件的指针 */iffp=fopenrecord.txt,rb=NULL/*打开文件 */printfcan not open
24、 filen。 /*不能打开 */exit1。 /*退出 */fscanffp,%d,&n。 /*读入记录数*/fori=0。i=0&idn /*判定序号是否在记录范畴内*/fseekfp,id-1*sizeofSTUDENTS,1。 /* 移动文件 指针 到该记录位置 */printtid。 /*调用输出函数显示该记录*/printfrn。elseprintfno %d number record.n ,id。 /*假如序号不合理显示信息 */fclosefp。 /*关闭文件 */* 排序函数,参数为结构体数组和记录数*/ void sortSTUDENTS t,int nint i,j,f
25、lag。STUDENTS temp。 /*临时变量做交换数据用*/ fori=0。in 。i+flag=0。 /*设标志判定是否发生过交换*/ forj=0。j0 /*比较大小 */可编辑资料 - - - 欢迎下载精品名师归纳总结temp=tjflag+。 tj=tj+1。tj+1=temp。ifflag=0break。 /*假如标志为0,说明没有发生过交换循环终止 */printfsort sucess.n。 /*显示排序成功*/* 复制文件 */void copychar outfile20。/*目标文件名*/int i,n。STUDENTS tempM。 /*定义临时变量 */ FILE
26、 *sfp,*tfp。 /*定义指向文件的指针 */ clrscr。/* 清屏 */ifsfp=fopenrecord.txt,rb=NULL /*打开记录文件*/printfcan not open filen。 /*显示不能打开文件信息*/exit1。/*退出 */printfEnteroutfilename,forexamplec:f1te.txt:n。 /*提示信息*/scanf%s,outfile。 /*输入目标文件名 */ iftfp=fopenoutfile,wb=NULL /*打开目标文件 */printfcan not open filen。 /*显示不能打开文件信息*/ e
27、xit1。 /*退出 */fscanfsfp,%d,&n。 /*读出文件记录数 */ fprintftfp,%d,n。/* 写入目标文件数 */可编辑资料 - - - 欢迎下载精品名师归纳总结fprintftfp,rn。 /*写入换行符 */ fori=0。in 。i+fscanfsfp,%20s%30s%10s%10dn,tempi.no,tempi.name,tempi.sex,&tempi.age。 /*读入记录 */ fprintftfp,%-20s%-30s%-10s%-10dn,tempi.no,tempi.name,tempi.sex,tempi.age。 /* 写入记录 */f
28、printftfp,rn。 /*写入换行符 */fclosesfpfclosetfp。 /*。 /*关闭源文件 */关闭目标文件*/printfyou have success copy file.n。 /*显示复制成功*/参考文献 1贾宗璞许合利 C 语言程序设计,人民邮电出版社,2021 年 9月出版 2谭浩强编, C 程序设计,清华高校出版社,2005 年 7 月出版应用技术学院课程设计评分表项目评价设计方案的合理性与制造性设计与调试结果设计说明书的质量课程名称:同学信息治理可编辑资料 - - - 欢迎下载精品名师归纳总结答辩陈述与回答疑题情形课程设计周表现情形综合成果老师签名:日期:可编辑资料 - - - 欢迎下载