2022年c语言程序设计报 .pdf

上传人:Che****ry 文档编号:27253795 上传时间:2022-07-23 格式:PDF 页数:23 大小:401.49KB
返回 下载 相关 举报
2022年c语言程序设计报 .pdf_第1页
第1页 / 共23页
2022年c语言程序设计报 .pdf_第2页
第2页 / 共23页
点击查看更多>>
资源描述

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

1、i 目 录1 实习目的 . . 12 需求分析 . . 13 概要设计 . . 13.1 基本设计 . 13.2 开发平台 . 23.3 模块介绍 . 23.4 系统功能图 . 34 详细设计 . . 34.1 登录界面 . 34.2 建立学生信息 . 54.3 插入学生信息 . 84.4 删除学生信息 . 94.5 查询个人信息. 11 4.6 输出全部信息. 12 4.7 载入全部信息. 13 4.8 保存信息 . 15 5 调试与测试结果分析 . . 16 5.1 登录界面 . 16 5.2 系统主界面 . 16 5.3 建立学生信息表. 16 5.4 保存界面 . 17 5.5 插入信

2、息 . 17 5.6 删除界面 . 18 5.7 查询个人信息. 18 5.8 输出全部信息. 19 5.9 载入全部信息. 20 5.10 退出系统 . 20 6 使用说明 . . 20 7 总结. . 21 参考文献: . . 22名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 23 页 - - - - - - - - - 德州学院信息管理学院 2013级计算机科学与技术专业自主学习能力1 学生信息系统的设计与实现1 实习目的(1)熟练的运用计算机语言,培养了对计算机

3、编程的热爱程度. (2) 学会怎样用 c 语言做一个完整的系统。(3) 掌握 c 语言的编辑,链接,运行等环节。(4) 掌握 c 语言中链表的建立,插入,删除,保存节点。(5) 熟练掌握 for while do-while循环语句的使用。(6) 熟练掌握函数的定义、说明、参数传递及嵌套和递归调用方法。(7) 提高遇到困难解决困难的能力。(8) 提高书写代码的速度与正确率。(9) 提高对系统的完善能力以及思考问题的全面性, 提高自己对所学知识的综合应用。(10)独立实践,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力,提高学生适应实际,实践编程的能力。2 需求分析随着

4、现在学生数量的增多,要想用人工的方法去记录查询学生信息是非常困难的,伴随计算机的发展, 人们的生活习惯和工作方式也发生了改变,计算机软件开始取代传统的工作模式,所以一个全新的学生信息管理系统是必不可少的,它不仅省时而且省力,大大的降低了我们的劳动, 使我们有更多地时间去做其他的事,管理员进入系统之后可以根据自己的需求去操作它, 并且该系统还设有账户名以及密码,大大的保护了学生信息的安全性。3 概要设计3.1 基本设计此学生信息管理系统是由菜单的选择来实现人机交互的,管理员登录以后就可以根据自己的需求选择不同的数字来进入不同的界面,本系统可以实现对学生信息的建立、插入、删除、查询等信息。名师资料

5、总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 23 页 - - - - - - - - - 德州学院信息管理学院 2013级计算机科学与技术专业自主学习能力2 3.2 开发平台系统:Windows 7 旗舰版( 64 位)处理器 : AMD A8-5545M APU with Radeon(tm) HD Graphics 1.70GHz 内存:4.00 GB 程序开发软件: Microsoft Visual C+ 6.0 文档编写: Microsoft Word 2010 3.

6、3 模块介绍(1)建立学生信息模块通过对指针的操作实现学生信息的输入,并使指针一次向后移动, 可以大量输入学生信息。(2)插入学生信息模块输入您要插入的学生的全部信息,将少数学生信息通过插入功能加入链表中,并按照学号的大小从大到小排列。(3)删除模块通过输入学生的学号来实现删除系统中学生的信息,并将剩余学生的信息排好。(4)查询模块可以通过学生姓名查询出单个学生的信息,并将此学生的全部信息输出出来。(5)输出模块可以将在系统中的所有学生信息输出出来。(6)载入模块将保存在文件中的学生信息从新从文件中拿出来,然后再进行其他操作。(7)保存模块将你的操作保存到系统中,下次可以读取出来。(8)退出模

7、块进行完所有的操作之后,便可安全退出。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 23 页 - - - - - - - - - 德州学院信息管理学院 2013级计算机科学与技术专业自主学习能力3 3.4 系统功能图进入学生信息系统之后,便可以根据自己的需求对学生信息进行增、删、改、查等操作,总流程图如图1 所示:图 1 总 体 模 块 框 图4 详细设计4.1 登录界面进入 main 函数之后直接进入登录界面,通过一个for 循环控制输入的次数,最多可以输入三次, 通

8、过定义数字、 字符的长度大于本身的长度来实现输出信息的排版和隔开,使输出的信息排版美观。代码如下:void main() int n,a; int mychoose; 学生信息系统删除学生信息查询个人信息输出全部信息插入学生信息建立学生信息载入学生信息保存学生信息退出系统名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 23 页 - - - - - - - - - 德州学院信息管理学院 2013级计算机科学与技术专业自主学习能力4 char delet120,Query20

9、; int count,j,i=0; char username20,password20; struct stu *head,*insertnode; struct stu *p2; printf(nt 欢迎进入学生管理系统 nn); printf( 程序设计人员:张凯业 n); printf( 请以管理员身份登录 :n); for(count=0;countnum不等于0,将 p2 插入到 p1 后,然后 p1后移指向新插入的节点。 通过 while 循环提示你是否要继续输入,如果继续输入按1,否则按 0。代码如下:struct stu int num15; /学号char name15;

10、 /姓名char Gender5; /性别char Dateofbirth15; /出生日期char ID20; / 身份证号char score20; / 学院struct stu *next; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 23 页 - - - - - - - - - 德州学院信息管理学院 2013级计算机科学与技术专业自主学习能力6 ; int n=0; struct stu *creat() /建立链表 int data=1; struct st

11、u *head,*p1,*p2; head=(struct stu*)malloc(LEN); head-next=NULL; p1=head; p2=(struct stu*)malloc(LEN); printf( 学号n ); scanf(%s,p2-num); printf( 姓名n ); scanf(%s,p2-name); printf( 性别n ); scanf(%s,p2-Gender); printf( 出生日期 n ); scanf(%s,p2-Dateofbirth); printf( 身份证号 n ); scanf(%s,p2-ID); printf( 学院n ); s

12、canf(%s,p2-score); while(p2-num!=0) n+; p2-next=p1-next; p1-next=p2; p1=p2; printf( 建立链表成功! n); printf( 是否继续输入是1 否 0 ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 23 页 - - - - - - - - - 德州学院信息管理学院 2013级计算机科学与技术专业自主学习能力7 scanf(%d,&data); if(data=0) return(he

13、ad); if(data=1) p2=(struct stu*)malloc(LEN); printf( 学号); scanf(%s,p2-num); printf( 姓名); scanf(%s,p2-name); printf( 性别); scanf(%s,p2-Gender); printf( 出生日期); scanf(%s,p2-Dateofbirth); printf( 身份证号); scanf(%s,p2-ID); printf( 学院); scanf(%s,p2-score); else printf( 请重新输入: 1 或 0); free(p2); return(head);

14、case 1: printf( 请输入 :); head=creat(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 23 页 - - - - - - - - - 德州学院信息管理学院 2013级计算机科学与技术专业自主学习能力8 break; 4.3 插入学生信息通过指针的指向,首先用if 条件语句判断系统中是否有信息,如果没有信息则自动跳转到建立链表界面,如果有则可以通过scanf 来输入学生的基本信息,head为链表的头指针,假设p0 指向带插入的节点, p1

15、 指向第一个结点, p2位 p1 的前驱节点,如果 p0-nump1-num ,将 p1 后移, p2指向 p1 所指的节点,继续比较,直到p0-numnum 。代码如下:int insert(struct stu *head,struct stu *po)/插入链表 struct stu *p1,*p2; if(head-next=NULL) return(-1); p1=head-next; p2=head; while(p1!=NULL)&(strcmp(p1-num,po-num)=-1) p2=p1; p1=p1-next; po-next=p2-next; p2-next=po;

16、n+; return(1); case 2: printf( 请输入插入节点的基本信息n); insertnode=(struct stu*)malloc(LEN); printf( 请输入学号: ); scanf(%s,&insertnode-num); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 23 页 - - - - - - - - - 德州学院信息管理学院 2013级计算机科学与技术专业自主学习能力9 printf( 请输入姓名: ); scanf(%s,i

17、nsertnode-name); printf( 请输入性别: ); scanf(%s,insertnode-Gender); printf( 请输入出生日期: ); scanf(%s,insertnode-Dateofbirth); printf( 请输入身份证号: ); scanf(%s,insertnode-ID); printf( 请输入学院: ); scanf(%s,insertnode-score); n=insert(head,insertnode); if(n=-1) printf( 系统中没有任何信息请先建立n); head=creat(); break; else prin

18、tf( 插入结点成功! n); break; 4.4 删除学生信息首先定义一个 delet 函数用来删除学生信息,然后用一个if语句判断链表的头是否为空,若为空则显示“请先建立链表”,若不为空则用if语句判断系统中是否有此学号,如果没有则输出 “没有此学生” ,如果含有此人的信息, 则通过一个 while 循环,把这个以后的信息依次前推来覆盖这个人的信息,而实现此人信息的删除。 并且释放该节点。代码如下:char delet(struct stu *head ,char data)/ 删除链表名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - -

19、- - - 名师精心整理 - - - - - - - 第 10 页,共 23 页 - - - - - - - - - 德州学院信息管理学院 2013级计算机科学与技术专业自主学习能力10 struct stu *p1,*p2; if(head-next=NULL) return (-1); p1=head-next; p2=head; while(p1!=NULL&strcmp(p1-num,data) p2=p1; p1=p1-next; if(!p1) return(0); p2-next=p1-next; free(p1); n-; return(1); case 3: printf(

20、请输入要删除学生的学号:); scanf(%s,delet1); n=delet(head,delet1); if(n=0) printf( 失败,没有此学生请重新输入! n); printf( 请输入要删除学生的学号:); scanf(%s,delet1); n=delet(head,delet1); printf( 删除成功! n); else 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 11 页,共 23 页 - - - - - - - - - 德州学院信息管理学院 201

21、3级计算机科学与技术专业自主学习能力11 if(n=1) printf( 删除成功! n); else printf( 请先建立链表 n); break; 4.5 查询个人信息定义一个 query 函数用来查询个人信息, scanf 输入个人的姓名,然后利用while循环在链表中进行查找,利用strcmp 比较两个字符串,如果没有则输出“查无此人”,如果找到则利用printf函数输出该学生的全部信息。代码如下:int query(struct stu *head,char NAME)/ 个人信息查询 struct stu *p; p=head; p=p-next; while(p-next!=

22、NULL&strcmp(p-name,NAME) p=p-next; if(strcmp(p-name,NAME) printf( 查无此人! n); else printf(tttt 个人信息表 n); printf(ttt_n); printf(ttt 学号: ); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 12 页,共 23 页 - - - - - - - - - 德州学院信息管理学院 2013级计算机科学与技术专业自主学习能力12 printf(%sn,p-num);

23、printf(ttt 姓名: ); printf(%sn,p-name); printf(ttt 性别: ); printf(%sn,p-Gender); printf(ttt 出生日期 : ); printf(%sn,p-Dateofbirth); printf(ttt 身份证号 : ); printf(%sn,p-ID); printf(ttt 学院: ); printf(%sn,p-score); printf(ttt_n); return (1); case 4: head=expor1(); printf( 请输入所查学生的姓名: ); scanf(%s,&Query); query

24、(head,Query); break; 4.6 输出全部信息定义一个 print函数用来输出全部学生信息,然后使用if 语句判断链表是否为空,若链表为空则输出“没有任何学生信息“,定义一个指针变量p,先指向第一个结点将其全部输出,然后用while 循环函数将链表中的信息全部输出。代码如下:void print(struct stu *head) /输出链表 struct stu *p; if(head-next=NULL) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,

25、共 23 页 - - - - - - - - - 德州学院信息管理学院 2013级计算机科学与技术专业自主学习能力13 printf( 没有任何学生信息! n); p=head-next; while(p!=NULL) printf( 学号); printf(%sn,p-num); printf( 姓名); printf(%sn,p-name); printf( 性别); printf(%sn,p-Gender); printf( 出生日期); printf(%sn,p-Dateofbirth); printf( 身份证号); printf(%sn,p-ID); printf( 学院); pr

26、intf(%sn,p-score); printf(_n); p=p-next; case 5: head=expor1(); print(head); break; 4.7 载入全部信息定义 explor1 结构体,定义 fp 为指向文件的指针, 将保存在 mstudent.txt中的信息载入到链表中,如果文件中没有信息,则输出“没有该文件”,如果有文件,将文件中的信息载入到链表。代码如下:struct stu *expor1() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1

27、4 页,共 23 页 - - - - - - - - - 德州学院信息管理学院 2013级计算机科学与技术专业自主学习能力14 FILE *fp; struct stu *head,*p1,*p2; if(fp=fopen(mstudent.txt,r)=NULL) printf( 没有该文件 n); exit(0); head=(struct stu*)malloc(LEN); head-next=NULL; p1=head; p2=(struct stu*)malloc(LEN); fread(p2,sizeof(struct stu),1,fp); while(!feof(fp) n+;

28、 p2-next=p1-next; p1-next=p2; p1=p2; p2=(struct stu*)malloc(LEN); fread(p2,sizeof(struct stu),1,fp); free(p2); return(head); fclose(fp); case 6: head=expor1(); printf( 载入链表成功! n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 23 页 - - - - - - - - - 德州学院信息管理学院

29、 2013级计算机科学与技术专业自主学习能力15 break; 4.8 保存信息用 if 语句判断文件中是否有信息,用while 循环以及 fwrite函数实现从链表中将信息保存到文件中。代码如下:void expor(struct stu *head)/导出 FILE *fp; struct stu *p; p=head-next; if(fp=fopen(mstudent.txt,wb)=NULL) printf( 没有该文件 n); exit(0); while(p!=NULL) fwrite(p,sizeof(struct stu),1,fp); p=p-next; printf( 导

30、入成功! n); fclose(fp); case 7: expor(head); printf( 保存成功! n); break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 23 页 - - - - - - - - - 德州学院信息管理学院 2013级计算机科学与技术专业自主学习能力16 5 调试与测试结果分析5.1 登录界面进入系统之后, 首先出现的是登录界面, 提示以管理员身份登录, 在账户名中输入admin,在密码中输入 123456。然后就会进入学生管理

31、系统界面。如图2 所示:图 2 登录界面5.2 系统主界面用*来使系统的界面显得友好整齐,并且简单明了的列出了本系统的所有功能,使用户快速方便的完成每一项工作。如图3 所示:图 3 主界面5.3 建立学生信息表输入 1 之后就可以建立学生信息表,根据提示输入学号、姓名、性别、出生日期、身份证号、 学院名,输入完一个后系统会提示你是否要继续输入,极大的节省了管理员的操作时间。如图4 所示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 23 页 - - - - - - -

32、 - - 德州学院信息管理学院 2013级计算机科学与技术专业自主学习能力17 图 4 建立信息5.4 保存界面每次完成一步操作后输入7 之后就必须保存信息, 系统会提示你保存成功。 如图5 所示:图 5保存界面5.5 插入信息本功能可以方便的录入学生的详细信息,输入 2 就可以插入学生信息, 然后输入学生的基本信息,如果本来没有信息系统就会提示你先建立,然后跳到建立界面。如图6所示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 23 页 - - - - - - -

33、- - 德州学院信息管理学院 2013级计算机科学与技术专业自主学习能力18 图 6 插入信息5.6 删除界面输入 3 之后就可以选择删除学生信息,输入你要删除的学生的学号之后,该学生的信息就会从系统中删除。如图7 所示:图 7 删除界面5.7 查询个人信息输入 4 之后就可以在系统中查询出你要查找的学生的基本信息。如图8 所示:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 23 页 - - - - - - - - - 德州学院信息管理学院 2013级计算机科学与技术

34、专业自主学习能力19 图 8 查询个人信息5.8 输出全部信息在系统中输入 5 之后,系统就会将全部的学生信息输出出来,显示到屏幕上。 如图9 所示:图 9输出全部信息名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 23 页 - - - - - - - - - 德州学院信息管理学院 2013级计算机科学与技术专业自主学习能力20 5.9 载入全部信息在进入系统之后输入6,就可以将你保存在文件中的所有学生信息调到系统中,并且系统会提示你载入链表成功。如图10所示:图 10

35、 载入信息5.10 退出系统当你进行完你的操作之后,输入8 系统就会自动退出。如图11 所示:图 11 保存6 使用说明(1)进入系统后首先出现登录界面,然后出现登录名,在登录名后面输入admin,在密码中输入 123456,然后点击回车就会进入学生信息管理系统,如果输入错误系统提示密码或账户名错误, 提醒你还剩下几次机会, 如果超过三次不对系统就会自动退出。(2)点击你的选择,可以输入1-8 的数,如果想建立学生信息,就输入1,然后就可以输入学生的基本信息, 当输入完一个学生以后系统提示你是否继续输入,是则输入 1,不是则输入 0,选 1 可以继续输入学生信息。然后输入7 保存。(3)如果想

36、插入学生信息则输入2,系统将提示你输入学生的基本信息,插入完后系统会提示你插入成功,如果系统中原先没有学生信息,系统就会提示你先建立。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 21 页,共 23 页 - - - - - - - - - 德州学院信息管理学院 2013级计算机科学与技术专业自主学习能力21 (4)输入 4 可以查询单个学生的基本信息,系统提示你请输入学生的姓名,输入姓名后就可以看到该学生的基本信息,如果查询的学生不存在则系统提示你没有改学生。(5)输入 5 可以查

37、询系统中全部学生的信息,如果系统中没有信息则系统提示没有任何信息。(6) 输入 6 可以将文件中的信息放到系统中然后进行其他操作。(7) 如果进行完所有的操作,可以输入8 安全退出系统。7 总结C语言课程设计时一次对我们c 语言学习的综合检验, 它要求我们将所学的c 语言代码进行综合运用, 设计出一个简单的系统, 这不仅是对我们基础知识的检验,还考验我们的动手动脑以及团队协作能力, 在这一年学习中要将这些基础知识掌握已经不容易了,在这么短的时间又要做出一个系统更是一次重大的挑战,然而只有迎难而上才能收获成功,做出一个完整的系统。回顾这次课程设计, 至今我感慨颇多。 很多的知识只是停留在基本的应

38、用上,当需要结合使用时, 往往出现无从入手的情况。 在 C语言课程设计的过程中, 让我深深体会到了这点。一些细节的地方没有看清楚,或者思考妥当,就无法让系统运行,而当一系列调试后,程序能够运行。学生成绩管理系统的编写, 看似杂乱无头绪, 实际上却并不如此。 它的每一个功能都能分成模块,有句话说的好,大事化小,小事化了。c 语言编程也正是如此,把一个大的程序分为若干相互独立的模块,这样使完成每一个模块的工作变得单纯而明确,这样不仅降低了难度还使得思路清晰,很容易编写出要做的程序, 从而为设计一些较大的软件打下了良好的基础。对于这次课程设计我很不满意,没有达到自己想要的效果, 系统中还存在着许多的

39、漏洞,在本次课程设计过程中我也发现了自己的很多缺点,比如做事不认真, 粗心大意,考虑问题不够全面等。最后,谢谢老师的教导。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 22 页,共 23 页 - - - - - - - - - 德州学院信息管理学院 2013级计算机科学与技术专业自主学习能力22 参考文献:1 谢延红,王付山.C语言程序设计教程M. 北京:国防工业出版社 ,2010.152-171. 2 边海容 . 高校 C语言程序设计课研究性学习的设计与实践D. 江西师范大学 ,2005. 3 刘晓红 . 信息技术与高职C语言课程整合的实践研究D. 辽宁师范大学 ,2007. 4 戈崇胤 . C语言程序设计学习支持系统的设计和开发D. 华东师范大学 ,2006. 5 张社广 . 网上教学系统的设计与实现D. 北京工业大学 ,2001. 6 薄文娟 . C语言程序设计在线考试系统的设计与开发D. 电子科技大学 ,2011. 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 23 页,共 23 页 - - - - - - - - -

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

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

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

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