《C语言课程方案设计书2 .docx》由会员分享,可在线阅读,更多相关《C语言课程方案设计书2 .docx(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品名师归纳总结封面可编辑资料 - - - 欢迎下载精品名师归纳总结作者: PanHongliang仅供个人学习程序设计基础课程设计课题名称同学考勤信息记录系统可编辑资料 - - - 欢迎下载精品名师归纳总结班级 1102姓名钟仕桁、许炜钊、卓辉东、莫耀智学 号111110063 、 111110077 、 111110081 、111110098、指导老师陈世基专业运算机科学与技术2021 年 06 月 18 日目录第1章设计目的 . 第2章总体设计 第3章详细设计 第4章调试与测试 第5章总结与体会 附:源程序清单和执行结果.第 1 章 设计目的本次 C 语言课程设计是对本学期程序设计基础
2、课程的实际应用,也算是对所学学问的一次检验,通过本次课程设计能达到 的目的如下:1. 巩固和加深对 C课程基本内容和理论学问的懂得和把握。可编辑资料 - - - 欢迎下载精品名师归纳总结2. 把握 C语言编译和程序调试的基本技能。3. 利用 C 语言进行基本的程序设计从而逐步明白文件的一些相关操作和把握函数的使用技巧,包括函数类型的选择,含参数 的传递方式。4. 把握使用数组,指针,引用,文件等编译的方法,提高运用C 语言解决实际问题的才能。5. 通过对同学考勤系统的设计、编写源代码,以及对C 语言中各个语法和函数的使用,使得对比较复杂的结构体、链接、文件的操作更加熟识。6. 通过课程设计,将
3、本学期所学学问与实际应用联系和结合起来,培养自己的动手才能,以及加强各学科之间的联系,从而提高个人的团队意识,增强团队之间和谐和协作第 2 章 总体设计2.1 同学考勤信息记录系统的要求通过该系统实现对同学考勤信息进行创建、录入、修改、查询、储存等操作的治理。试验考勤信息包括同学姓名,学号,学科种类,各科的考勤信息。主要功能:1) 、能够完成对考勤的录入和修改2) 、创建一个班级的信息3) 、设备的查询4) 、将考勤信息储存到文件中2.2 流程图依据设计要求,画出如下流程图 :开 始可编辑资料 - - - 欢迎下载精品名师归纳总结菜 单 2结 束1 2 3 45 6.录查创修查退入询1建改询
4、2出可编辑资料 - - - 欢迎下载精品名师归纳总结2.3 设置的主要函数void creatvoid。void savestruct Student *,char 。struct Student *loadchar 。void entervoid 。/* 录入函数 */void search_1void。 /* 查询函数 _1*/ void search_2void。 /* 查询函数 _2*/ void addvoid。void modifyvoid 。/* 修改函数 */void backvoid 。/* 退出函数 */ void mune_1 。/* 界面 -1*/ void mune_
5、2 。/* 界面 -2*/ mune_1。mune_2。第 3 章详细设计3.1 函数以及调用关系void mune_1 。/ * 菜单函数 1*/ void mune_2/* 菜单函数 2*/可编辑资料 - - - 欢迎下载精品名师归纳总结123456开头Menu_2可编辑资料 - - - 欢迎下载精品名师归纳总结BreakBreak Break Break Breakbreak 退出void entervoid 。/* 录入函数 */系开头统输入班级和同学学号录 查 创 修 查入 询 建 改 询记 个 信 信 整可编辑资料 - - - 欢迎下载精品名师归纳总结p-num=a高等数学大大马C
6、学学克语英物思言语输入学理生本节课息大学口语大学体育y/n返回菜单 2n退出void search_1void。 /* 查询个人信息 */开头输入此人所在班级和学号 ap-num=a真假输出此人的考勤信息返回菜单 2void search_2void。 /* 查询班级信息 */开头可编辑资料 - - - 欢迎下载精品名师归纳总结输入要查询的班别输出此班的考勤信息返回菜单 2void modifyvoid 。/* 修改函数 */开头输入你要修改的班级和座位号 ap-num=a真假重新输入这位同学的考勤信息返回菜单 2void savestruct Student *,char 。开头 打开文件数
7、据写入文件struct Student *loadchar filename开头打退开文出件3.2 结构的应用If else 结构和 while结构嵌套结构:可编辑资料 - - - 欢迎下载精品名师归纳总结whilep1-num.=0n=n+1。关闭文件读出数据退出可编辑资料 - - - 欢迎下载精品名师归纳总结关闭文件可编辑资料 - - - 欢迎下载精品名师归纳总结ifn=1head=p1。else p2-next=p1。p2=p1。p1=struct Student *mallocLEN。scanf%s%d%s,p1-name,&p1-num,p1-sex。p1-math=p1-Engli
8、sh=p1-physics=p1-Mks=p1-C=p1-teal=p1-PE=0 。p2-next=NULL。p=head。whilep.=NULLfwritep,LEN,1,fp。p=p-next 。fclosefp。printfttt创建成功,按任意键返回主菜单n 。getch 。systemcls。mune_2。2switch结构switchsubcase 1: p-math+=num。break 。case 2: p-English+=num。break 。case 3: p-physics+=num。break 。case 4: p-Mks+=num 。break 。case 5:
9、 p-C+=num 。break 。case 6: p-teal+=num。break 。case 7: p-PE+=num 。break 。可编辑资料 - - - 欢迎下载精品名师归纳总结3while 结构whilep.=NULLifp-num=aprintfntt请重新输入高等数学缺勤节数 : 。scanf%d,&p-math。printfntt请重新输入高校英语缺勤节数 : 。scanf%d,&p-English。printfntt请输入高校物理缺勤节数 : 。scanf%d,&p-physicsprintfntt。请重新输入马克思主义基本原理与概论缺勤节数:。scanf%d,&p-Mk
10、s。printfntt请重新输入 C语言缺勤节数 : 。scanf%d,&p-C。printfntt请重新输入英语口语缺勤节数 : 。scanf%d,&p-teal。printfntt请重新输入体育缺勤节数目 : 。scanf%d,&p-PE。flag=1。savehead,cla。printfntt修改成功 .ntt。break 。p=p-next 。可编辑资料 - - - 欢迎下载精品名师归纳总结4.1 调试第 4 章 调试与测试可编辑资料 - - - 欢迎下载精品名师归纳总结执行程序时,显示如下信息选择不同的选项,执行相应的功能。 选择 3 ,创建一个班级的基本信息。 选择 1 ,录入本
11、次课考勤情形。选择要修改的科目的界面:输入缺勤同学和缺勤节数:终止输入就输入 n 后返回菜单 2:(选择 2),查询同学个人考勤信息。(选择 4),修改同学个人考勤信息。(选择 5),查看一个班级的考勤信息。(选择 6),退出同学考勤信息系统。第 5 章 总结与体会三周的课程设计已经终止了。回想学习 C语言 的过程中,既有欢快又有苦恼。从领到书的那一刻,我就很郁闷, C 语言程序设计到底事学什么的,有什么用。刚开头上课时,仍在迷茫这门课程是用来做什么的。不过,这些感受都是在对这门课程不明白的情形下产生的。后来慢慢的接触多了,听老师讲的多了,明白多了,慢慢的产生了爱好。特殊是学到语句和函数时,上
12、机操作程序,经过编译,调试和运行后,显现界面,当时觉得很古怪,想真正的学好这门课程。通过可编辑资料 - - - 欢迎下载精品名师归纳总结半个学期的学习,我把握了基本学问。下学期开头时,被通知要进行课程设计。当时有点懵,感觉学的东西很少,很零散,不知该怎么连到一起,就要课程设计,是不是太难为我们了。第一天基本上都是在看书,把基本学问再熟识一遍。到了下午的时候,看了很多练习题,从这些练习题上我得到了不少启示,然后我们组把整个程序的思路理清了,开头着手写程序。第一周终止的时候,我感觉自己收成挺大的,从一开头的迷茫,不知道从何下手到把程序中的几个模块编写出来, 心里挺兴奋的。但是,接下来,我们又不得不
13、再次陷入困境。在整个程序的编写过程中,最难的就是修改和删除这两个模块,这也是我们要解决的重点问题。开头编写修改和删除时,很头疼,去向其他人寻求帮忙,在别人的帮忙和提示下,我编完了修改程序,但编译时老出错,修改后的内容将文本内的信息全部掩盖了。困难之时,我们组的其他人,帮忙了我,完成了修改和删除,这让我熟识到团队的力气。这样的话,整个程序基本上全部完成了,就剩下完善工作了。我们组写了两个程序,最 后,两个程序相互组合,互补,大功告成虽然设计时完成了,但是我觉得其中仍是有一些不足之处:可编辑资料 - - - 欢迎下载精品名师归纳总结1. 警告句。程序中缺少一些警告句,例如: “是否真的删除( y/
14、n ) .”。2. 重名的情形。由于考虑的不周全,没有设计遇到重名的情形该怎么处理。3. 选择单一。我们设计的程序中,只设计了按名字选择, 进行操作,忽视了重名的情形。整个程序完成了,仍有很多不完善的的方,期望自己以后办事的时候要仔细,仔细,考虑周全。短短的几周课程设计终止了,但是这段时间里,我又学到了更多C 学问,如 : 对象数组, string类,文件流,链表以及文件对链表的操作等,同时我也被提示以后办事的时候要仔细,仔细,考虑周全,也看到了团队精神和互帮互助的重要性。这一点会让我终生受益。通过这次课程设 计,我觉得自己肚子里的墨水多了,收成也挺大的,这几周过的挺充实!* 附:源程序清单和
15、执行结果#include #include #include #include#define LEN sizeofstruct Student struct Student可编辑资料 - - - 欢迎下载精品名师归纳总结int num 。char name15 。char sex4。int math, English,physics,Mks,C,teal,PE。struct Student *next。 。int n。void mainvoid creatvoid。void savestruct Student *,char 。struct Student *loadchar 。void en
16、tervoid。/*录入函数 */void search_1void。/*void search_2void。/*查询函数 _1*/查询函数 _2*/void modifyvoid。/*修改函数 */void backvoid。/*退出函数 */void mune_1 。/*界面-1*/void mune_2 。/*界面-2*/mune_1。mune_2。可编辑资料 - - - 欢迎下载精品名师归纳总结printfn。void mune_1printfnnnnnn。printft*。printfttt* printfttt。 *欢迎使用班级 考 勤系 统 * 。printfttt* 。prin
17、tfnt*nnn。printf=。printfnnnttttnttttt。getch。可编辑资料 - - - 欢迎下载精品名师归纳总结systemcls。void mune_2intoption,ch。/*定义一个选项的数据类型 */ printfnnn。/*制作的一个漂亮的选择界面 */printft*n。printft*ttttttt*n。printft*ttttttt*n。printft*1、录入本次课考勤情形 t2、查询同学考勤信息 t*n。printft*ttttttt*n。printft*3、创建同学信息 tt4、修改同学信息t*n。printft*ttttttt*n。printf
18、t*5、查看班级考勤情形t6、退出考勤系统t*n。printft*ttttttt*n。printft*ttttttt*n。printft*n。可编辑资料 - - - 欢迎下载精品名师归纳总结printfn。printfttt请输入您所需的操作 16:ntttt。while1scanf%d,&option。switchoptioncase1:ch=getchar。systemcls。enter。break 。case2:search_1 。break 。ch=getchar。systemcls。case3:ch=getchar。systemcls。creat。break 。case4:ch=ge
19、tchar。systemcls。modify 。break 。case5:ch=getchar。systemcls。search_2 。break 。case6:ch=getchar。systemcls。back 。break 。default:printfttt输 入 错 误 , 请 重 新 输入.。可编辑资料 - - - 欢迎下载精品名师归纳总结printfntttt。ch=getchar。void savestruct Student *head,char filenameFILE *fp。struct Student *p=head。iffp=fopenfilename,wb=NULL
20、printfcan not open filen。exit0。whilep.=NULLfwritep,LEN,1,fp。p=p-next 。fclosefp。struct Student *loadchar filename可编辑资料 - - - 欢迎下载精品名师归纳总结FILE *fp 。struct Student *head,*p1,*p2。head=NULL。 p1=NULL。iffp=fopenfilename,rb=NULLprintfcan not open filen。exit0。while.feoffpp2=struct Student *mallocLEN。iffreadp
21、2,LEN,1,fp=1ifhead=NULLhead=p2。ifp1p1-next=p2 。p1=p2。p1-next=NULL。可编辑资料 - - - 欢迎下载精品名师归纳总结return head。void enter/*录入函数*/struct Student *head,*p。char select=y,cla10。 int sub,stu,num,flag=0。printf请输入上课班级: 。scanf%s,cla。strcatcla,.dat。p=head=loadcla。systemcls。whileselect=y|select=Yprintfnnn。printft* * *
22、 * * * * * * * * * * * * * * * * * * * * * * * * * * * *n。printft*ttttttt*n。printft*ttttttt*n。printft*1、高等数学 tt2、高校英语 tt可编辑资料 - - - 欢迎下载精品名师归纳总结*n。printft*ttttttt*n。printft*3、高校物理 tt4、马克思基本原理概论*n。printft*ttttttt*n。printft*5、C 程序设计基础 t6、老师口语tt*n。printft*ttttttt*n。printft*7、体育tttttt*n。printft*ttttttt*
23、n。printft*ttttttt*n。printft* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n。printfn。printfttt请输入科目选项 17:ntttt。scanf%d,&sub。while1ifsub0&subnum=stu switchsubcase 1: p-math+=num。break 。case 2: p-English+=num。break 。case 3: p-physics+=num。break 。case 4: p-Mks+=num 。break 。case 5: p-C+=num
24、 。break 。case 6: p-teal+=num。break 。case 7: p-PE+=num 。break 。可编辑资料 - - - 欢迎下载精品名师归纳总结p=p-next 。printfnntt*输入成功 *.n。printf是否连续输入 yn:。scanf%c,&select。savehead,cla。getch。systemcls。mune_2。voidsearch_1void/* 查询个人信息 */struct Student *head,*p 。char select=y,cla10 。int num,flag=0 。printf 请输入上课班级: 。scanf%s,
25、cla。strcatcla,.dat。p=head=loadcla。printf请输入要查询同学的座号: 。可编辑资料 - - - 欢迎下载精品名师归纳总结scanf%d,&num 。systemcls。whilep.=NULLifp-num=numprintfnn。printf* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n。printf座号姓名性别数学英语物理 马克思 C 语言老师口语体育n 。printf%3d%8s%4s%5d %5d %5d %5d%3d %7d % 8dn,p
26、-num,p-name,p-sex,p-math,p-English,p-physics,p-Mks,p-C,p-teal,p-PE。printf* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n。flag=1 。p=p-next 。可编辑资料 - - - 欢迎下载精品名师归纳总结ifflag=0printftt.没有这个同学信息, 请核对后再输入.nn。getch。systemcls。mune_2。voidsearch_2void/* 查询某班级信息 */char cla10。struc
27、t Student *head,*p。printf请输入您要查询的班级名: 。getscla。systemcls。printfnttt%s班的考勤情形 nn,cla。strcatcla,.dat。p=head=loadcla。printf* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n。printf座号姓名性别数学英语 物理马克思 C 语言 老师口语体育n 。可编辑资料 - - - 欢迎下载精品名师归纳总结whilep.=NULLprintf%3d%8s%4s%5d %5d %5d %5
28、d%3d %7d %8dn,p-num,p-name,p-sex,p-math,p-English,p-physics,p-Mks,p-C,p-teal,p-PE。p=p-next 。printfn* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *n。getch。systemcls。mune_2。voidmodifyvoid/* 修改函数 */int a,flag=0。char cla10。struct Student *head,*p。printfntt请输入要修改的班级: 。scanf%
29、s,cla。可编辑资料 - - - 欢迎下载精品名师归纳总结strcatcla,.dat。p=head=loadcla。printfntt请输入要修改的同学的座号 : 。scanf%d,&a。whilep.=NULLifp-num=aprintfntt请 重 新输 入 高 等 数 学缺 勤 节数: 。scanf%d,&p-math。printfntt请重新输入高校英语缺勤节数: 。scanf%d,&p-English。printfntt请输入高校物理缺勤节数 : 。scanf%d,&p-physics。printfntt请重新输入马克思主义基本原理与概论缺勤节数 : 。scanf%d,&p-M
30、ks。printfntt请重新输入 C语言缺勤节数 : 。scanf%d,&p-C。printfntt请重新输入英语口语缺勤节数: 。scanf%d,&p-teal。可编辑资料 - - - 欢迎下载精品名师归纳总结printfntt请重新输入体育缺勤节数目 : 。scanf%d,&p-PE。flag=1。savehead,cla。printfntt修改成功 .ntt。break 。p=p-next 。ifflag=0printftt.没 有这个同学 信 息, 请 核 对后再 输入.nn。getch。systemcls。mune_2。voidcreatvoid/* 创建函数 */可编辑资料 -
31、- - 欢迎下载精品名师归纳总结FILE *fp 。struct Student *head,*p,*p1,*p2。char filename10。n=0。p1=p2=struct Student *mallocLEN。printf请输入你要创建班级的名称(假如要创建的文件已存在,将掩盖原文件): 。getsfilename。strcatfilename,.dat。iffp=fopenfilename,wb=NULLprintfcan not open filen。exit0。printf请输入同学的基本信息:姓名、座号、性别n 。scanf%s%d%s,p1-name,&p1-num,p1-sex 。p1-math=p1-English=p1-physics=p1-Mks=p1-C=p1-teal=p1-PE=0 。head=NULL。 whilep1-num.=0n=n+1。可编辑资料 - - - 欢迎下载精品名师归纳总结ifn=1head=p1。 else p2-next=p1。p2=p1。p1=struct Student *mallocLEN。scanf%s%d%s,p1-name,&p1-num,p1-sex。p1-math=p1-English=p1
限制150内