《c语言课程方案设计书学生信息管理系统 .docx》由会员分享,可在线阅读,更多相关《c语言课程方案设计书学生信息管理系统 .docx(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结封面可编辑资料 - - - 欢迎下载精品名师归纳总结作者: PanHongliang仅供个人学习课程设计报告可编辑资料 - - - 欢迎下载精品名师归纳总结课程名称:高级语言程序设计课程设计姓 名:汤璞君班级学号: BX1209 121003410937指导老师:吉顺如完成日期:2021.6.15目录1 课程设计目的与要求 51.1课程设计目的51.2课程设计要求51.3 课程设计的评判 62 问题描述 6 3 总体设计 63.1功能分析 65 功能测试 156 程序设计调试情形分析 157 课程设计小结 16参考文献 16附录系统源程序 17可编辑资料 - - - 欢迎下载精
2、品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结同学信息治理系统1 课程设计目的与要求1.1 课程设计目的本课程设计是在学习 C+ 基本理论之后的实践教案环节。该实践教案是软件设计的综合训练,包括问题分析、总体结构设计、用户界面设计、程序设计 基本技能和技巧。要求同学在设计中逐步提高程序设计才能,培养科学的软件 工作方法。同学通过课程设计在下述各方面得到锤炼:1. 能依据实际问题的详细情形,结合C+的基本理论和基本技巧,正确分析问题,并能设计出解决问题的有效算法与程序。2. 提高程序设计和调试才能。同学通过上机实习,验证自己设计的算法和程序的正确性。学会有效利用基本调试方法,快速
3、找出程序代码中的错误并且修改,进一步提高程序设计水平。1.2 课程设计要求通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本学问,更重要的是要通过上机实践才能增强和巩固我的学问。特别是作 为本科生,更要留意实践这一环节,只有这样我们才能成为合格的运算机人材。通过这次课程设计,进一步巩固所学的语句,如语句嵌套等。加深对循环,分支等结构的运用。详细如下:(1) 数据组织方面尽量使用到:数组、链表、结构体、文件。(2) 程序结构方面做到函数调用,尽量接受指针运算。(3) 代码编写规范,形成良好的编程习惯。(4) 程序须有确定的健壮性和必要的提示信息,考虑问题的多种可能和边界数据。
4、(5) 课设完成须进行答辩,提交课设报告电子稿、装订的打印稿。课设报告内容包括以下几个方面:程序的总体设计和算法分析。程序流程图、函数说明源程序代码清单可编辑资料 - - - 欢迎下载精品名师归纳总结测试数据和测试过程记录 遇到的问题及解决方法分析课程设计小结1.3 课程设计的评判通过此次课程设计,我的学问面得到了扩展,发觉课本上的东西是远远不够的,需要上网找资料查找补充,而且小组合作的形式可以相互沟通学问,补偿自己的不足。通过课程设计,加深对结构化程序设计思想的懂得,能进行一个系统功能需求分析,并设计合理的模块化结构。提高程序开发才能。2 问题描述设计一个同学信息治理系统,其中包括:同学基本
5、信息:如学号、姓名、性别、年龄、的址、电话等。功能包括:1. 系统菜单形式显示2. 同学信息录入功能 输出3. 同学信息浏览功能 输出4. 查询、排序功能 算法按学号查询按姓名查询可编辑资料 - - - 欢迎下载精品名师归纳总结5. 同学信息的删除与修改3 总体设计可编辑资料 - - - 欢迎下载精品名师归纳总结3.1 功能分析3.1.1 菜单模块通过 while语句给出信息提示。 清屏。可编辑资料 - - - 欢迎下载精品名师归纳总结绘制菜单(包含输入,浏览,查询,修改,删除,排序,储存,退出)。 提示菜单选择并读入到变量。依据读入变量的值调用不同的模块函数。3.1.2 信息录入模块打开文件
6、While清屏。依据提示输入各种信息。While显示各种信息。通过选择 1.确认并连续 2.重新填写 3.舍弃并返回 4.确认并返回选择四种功能。3.1.3 信息浏览模块打开文件While()清屏。用 for 语句依次依据次序输出同学信息通过选择可以翻页 1.上一页 2.下一页 0.退出3.1.4 信息查询While 通过菜单式的选择 是学号查询 仍是姓名printf*同学信息治理系统 *。printfn- 检 索- 。printfn 您想要: 。可编辑资料 - - - 欢迎下载精品名师归纳总结printfn 1. 按学号检索 。printfn 2. 按姓名检索 。printfn 3. 返回主
7、菜单 。printfn*n。假如选择学号进入学号模块通过输入学号If ( 学号存在连续) 输出同学信息Else 输出无此同学假如选择姓名进入姓名模块If (依据比较姓名判定同学是否存在) 输出同学信息Else 输出无此同学3.1.5 删除模块while连续删除 提示并读入待删除的同学的同学号。 显示要删除的信息删除成功3.1.6 信息修改模块输入要修改同学信息的学号:If (判定是否有此同学) 菜单形式显示要修改的工程可编辑资料 - - - 欢迎下载精品名师归纳总结printfn1. 姓名 2.年龄 3.性别 4.产生年月 5.的址 6.电话 7.E-mail n 。printfn8. 数学
8、9.英语 n 。Swich 选择要修改的工程进行修改3.1.7 打开文件模块void fileopenFILE *fp 。int n。iffp=fopendata,r+=NULLfp=fopendata,w+ 。forn=0。n100。n+ fread&stun,sizeofstruct student,1,fp。fread&stunum,4,1,fp。fclosefp。3.1.8 储存文件模块void filesaveint n。FILE *fp 。fp=fopendata,r+ 。forn=0。n100。n+可编辑资料 - - - 欢迎下载精品名师归纳总结fwrite&stun,sizeo
9、fstruct student,1,fp 。fwrite&stunum,4,1,fp 。fclosefp。printf 储存成功! press Enter to continue.。getch。3.1.9 退出模块case 8:ma=0。break。用的是跳出 while 语句回到安全模块3.1.10 排序模块通过 冒泡排序法form=0 。my-1。m+ forx=m+1。xy。x+ifstum.sumstux.sumstu99=stum。stum=stux。stux=stu99。stu99.id=stux.id 。stux.id =stum.id。stum.id =stu99.id 。pr
10、intf 排序后的次序为 :n。然后显示排序好后的同学信息。可编辑资料 - - - 欢迎下载精品名师归纳总结3.2 系统主要函数多功能运算器接受结构化程序设计思想,程序中除主函数外,共设计了23 个函数,函数原型 及功能说明如表 3.2.1 所示。表 3.2.1函数原型及功能说明序号函数原型功能说明1 void calculate1调用整数运算的相关函数2 void zhengshu整数的运算的头文件3 void calculate2调用实数运算的相关函数4 void shishu实数的运算的头文件5 void calculate3调用分数运算的相关函数6 void fenshu分数的运算的头
11、文件7 typedef struct fushu抽象数据类型定义8 float real数据对象9 float image定义构造复数的函数可编辑资料 - - - 欢迎下载精品名师归纳总结10 fushuComplexNumberInputfloat a,float b11 fushuComplexNumberAddfushuc1,fushu c212 fushuComplexNumberSubfushu c1,fushu c213 fushuComplexNumberMulfushuc1,fushu c214 fushuComplexNumberDivfushu c1,fushu c2构造复
12、数二元组复数的求和运算复数的求差运算复数的求积运算复数的求商运算可编辑资料 - - - 欢迎下载精品名师归纳总结15 void ComplexNumberOutputfushu c输出复数的运算结果16 void fushi复数的运算的头文件17 typedef struct Linknode定义链表节点的数据类型为 Node18 struct Linknode *next定义链表节点的数据类型为 Node19 Node * createlink创建链表并读入多项式的指数和系数20 void SumNode *pa, Node *pb两个一元多项式相加21 void musNode *pa,
13、Node *pb两个一元多项式相减22 void printNode * p输出程序中全部的项23 void yiyuanduoxiangshi一元多项式的运算的头文件4 详细设计主模块可编辑资料 - - - 欢迎下载精品名师归纳总结同学基本信息治理系统信息添加退出系统输入同学的相关信息显示同学的相关信息按姓名查询按学号查询更新储存的同学信对新加的同学进行信息录入菜信信信信信信单息息息息息息选录浏查排删修择入览询序除改可编辑资料 - - - 欢迎下载精品名师归纳总结开头菜单信息输浏览查询可编辑资料 - - - 欢迎下载精品名师归纳总结信息输入信息浏览排序按学号按姓名删除信息删除修改信息修改添加
14、信息添可编辑资料 - - - 欢迎下载精品名师归纳总结储存文件终止可编辑资料 - - - 欢迎下载精品名师归纳总结主函数4.1 程序总体结构图开头可编辑资料 - - - 欢迎下载精品名师归纳总结显示主页菜单功能选择可编辑资料 - - - 欢迎下载精品名师归纳总结录浏查学入览询学学生生生信信信息息息修删按保退改除照存出学学学生总生信生信成信息信息绩息管息排理可编辑资料 - - - 欢迎下载精品名师归纳总结各部分模块4.2 结主束函数流程图序可编辑资料 - - - 欢迎下载精品名师归纳总结4.3 信息的录入流程图开头NY打开文件文件中有YN无信息输出全部信息返回主菜单终止4.4 同学信息浏览流程图
15、可编辑资料 - - - 欢迎下载精品名师归纳总结4.5 按姓名或学号查询流程图4.6 信息的删除流程图5 功能测试可编辑资料 - - - 欢迎下载精品名师归纳总结5.1 系统主界面5.1 系统主界面可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结5.2 录入同学信息功能5.2.1 录入同学信息界面5.2.2 录入同学信息界面可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结5.2 信息浏览功能5.2 信息浏览界面可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归
16、纳总结5.3 信息修改功能5.3.1 信息修改界面可编辑资料 - - - 欢迎下载精品名师归纳总结5.4 信息检索功能5.4.1 信息检索界面5.4.2 按学号检索界面5.4.4按姓名检索界面6 程序设计调试情形分析1. 问题: c程序运行不出来,几个头文件中显现了相同的函数。 解决方法:转变头文件中相同名字的函数名。2. 问题:调用检索函数一闪而过。解决方法:添加 getchar语句使程序暂停。3.问题:无法有效的把握输出函数循环终止。可编辑资料 - - - 欢迎下载精品名师归纳总结解决方法:添加全局变量“ stunum” ,使用该全局变量来记录同学总数,从而把握输出循环的次数4. 问题:查
17、询函数数据量过多时同时输出,先输出的内容无法查看,或需用户自行查看。解决方法:添加 getchar语句使程序暂停,当用户按 Enter时连续。5. 问题:调试时,有的时候编译后没什么问题,就是在点击连接link时显现了错误。解决方法:将源程序储存,然后关掉 Microsoft Visual C+ 6.0,重新启动 Microsoft Visual C+ 6.0。7 课程设计小结通过此次课程设计,我基本上对制作一个相对来说比较完整的程序有了确定 的熟识和明白。这一周多来的制作,不但对C 语言的学问有了确定的巩固,仍增加了我们的动手才能。同学信息治理系统,涉及到结构体,链表,文件和循环的学问,所以
18、特别对这几个方面有所加深和巩固。其中又包括结构体的赋值,写到文件中。从文件中赋值给结构体。等等。仍能够通过编译时显现的出错提示信息,进行初步的纠错。完成一个程序的一般步骤为设计,录入,编译,假如出错,就修改,然后再编译,编译成功后,看看结果是否正确,假如结果不正确,就再重复以上步骤。小组成员分工组长:王彬冰负责信息浏览、信息删除模块和总流程图组员:汤璞君负责信息排序模块组员:刘帅负责信息录入模块参考文献1 C程序设计教程与试验吉顺如清华高校出版社2 C程序习题集与课程设计吉顺如计春雷 电子工业出版社3 C程序设计思想与方法尹宝林 机械工业出版社4 百度文库可编辑资料 - - - 欢迎下载精品名
19、师归纳总结附录 系统源程序#include #include #include #include int stunum=0。struct student/结构体int id 。char name30。int age。char sex6。char birthday12。char add80。char tel15。char email25。int math。int english。int sum。stu100 。void check/查询函数void jsid 。void jsname。int a。char ch。while asystemcls。printf*同学信息治理系统 *。printfn
20、- 检 索- 。 printfn 您想要: 。printfn1. 按学号检索 。printfn2. 按姓名检索 。可编辑资料 - - - 欢迎下载精品名师归纳总结printfn3. 返回主菜单 。printfn*n。ch=getchar。switchchcase 1:jsid。break。case 2:jsname。 break。case 3:a=0。break。void fileopen/打开文件FILE *fp 。int n。iffp=fopendata,r+=NULL fp=fopendata,w+ 。forn=0。n100。n+fread&stun,sizeofstruct stude
21、nt,1,fp。fread&stunum,4,1,fp。fclosefp。void filesave/储存文件int n。FILE *fp 。fp=fopendata,r+ 。forn=0。n100。n+ fwrite&stun,sizeofstruct student,1,fp 。fwrite&stunum,4,1,fp 。fclosefp。printf 储存成功! press Enter to continue.。 getch。void editnameint n/依据名字修改可编辑资料 - - - 欢迎下载精品名师归纳总结printfn 新姓名: 。scanf%s,stun.name。v
22、oid editageint n/修改年龄函数printfn 新年龄: 。scanf%d,&stun.age。void editsexint n/ 修改性别函数printfn 新性别: 。scanf%s,stun.sex。void editbirint n/修改生日printfn 新产生年月 。scanf%s,stun.birthday。void editaddint nprintfn 新的址: 。/修改的址scanf%s,stun.add。void edittelint n/修改电话printfn 新电话: 。scanf%s,stun.tel。void editemailint nprint
23、fn 新 E-mail:。/修改邮箱scanf%s,stun.email。void editmathint n/修改数学成果可编辑资料 - - - 欢迎下载精品名师归纳总结printfn 新数学: 。scanf%d,&stun.math 。stun.sum=stun.math+stun.english。void editenglishint n/ 修改经与成果printfn 新英语: 。scanf%d,&stun.english 。stun.sum=stun.math+stun.english。void lastint nifn=stunum systemcls。printf*同学信息治理系统
24、 *。printfn- 检 索- 。printfn 已检索到末尾。 。printfnPress any key to continue.。printfn*n。void edit/修改函数char ch。int a=1,b。int n。whileasystemcls。printfn 请输入你想修改的人的学号:n。scanf%d,&n。ifn=stunumn=n-。printf 学号 姓 名 年龄 性别 产生年月 n。printf%4d ,stun.id 。可编辑资料 - - - 欢迎下载精品名师归纳总结n。printf%12s ,stun.name。printf%4d ,stun.age 。pr
25、intf%4s ,stun.sex 。printf%8s n,stun.birthday 。printfnnn 学号 电话 E-mail的址n。printf%4d ,stun.id 。printf%15s ,stun.tel 。printf%15s ,stun.email 。printf%sn, stun.add 。printfnnn 数学英语总分n。printf%4d,stun.math 。printf%15d,stun.english 。printf%15dn,stun.sum 。printfn 请输入你想修改的内容: 。printfn1. 姓名 2.年龄 3.性别 4.产生年月 5.的址
26、 6.电话 7.E-mailprintfn8. 数学 9.英语 n 。printfn*n。getchar。ch=getchar。可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结switchchcase 1:editnamen。break。可编辑资料 - - - 欢迎下载精品名师归纳总结case 2:editagen。 break。case 3:editsexn。 break。case 4:editbirn。break。case 5:editaddn。 break。case 6:editteln。break。可编辑资料 - - - 欢迎下载精品名师
27、归纳总结case 7:editemailn。 case 8:editmathn。break。break。可编辑资料 - - - 欢迎下载精品名师归纳总结case 9:editenglishn。b=1。break。可编辑资料 - - - 欢迎下载精品名师归纳总结可编辑资料 - - - 欢迎下载精品名师归纳总结while bprintfn 确认吗? y/n 。ch=getchar。switchchcase Y:b=0。a=0。break。case y:b=0。a=0。break。case N:b=0。break。case n:b=0。break。void delect/删除函数int n, a。s
28、ystemcls。printfn 请输入想要删除人的学号: n。scanf%d,&n。n=n-。fora=n。a=stunum。a+strcpystua.name,stua+1.name。 stua.age=stua+1.age。strcpystua.sex,stua+1.sex。strcpystua.birthday,stua+1.birthday。strcpystua.add,stua+1.add。strcpystua.tel,stua+1.tel。strcpystua.email,stua+1.email。stua.math=stua+1.math。stua.english=stua+1
29、.english。stua.sum=stua+1.sum。stunum-。printf 删除成功! press Enter to continue.。可编辑资料 - - - 欢迎下载精品名师归纳总结void jsid/依据学号查询int n,i=0 。systemcls。printf*同学信息治理系统 *。printfn- 检 索- 。 printfn 请输入想要检索的学号: 。scanf%d,&n 。ifn=stunumn=n-。printf 学号 姓 名 年龄 性别 产生年月 n。printf%4d ,stun.id 。printf%12s ,stun.name。printf%4d ,st
30、un.age 。printf%4s ,stun.sex 。printf%8s n,stun.birthday 。printfnnn 学号 电话 E-mail的址n。printf%4d ,stun.id 。printf%15s ,stun.tel 。printf%15s ,stun.email 。printf%sn, stun.add 。printfnnn 数学英语总分n。printf%4d,stun.math 。printf%15d,stun.english 。printf%15dn,stun.sum 。i+ 。ifi=0printfnError: 无此同学。 。printfn*n。可编辑资料
31、 - - - 欢迎下载精品名师归纳总结getch。elsesystemcls。lastn。getch。void jsname/依据姓名查询int n,i=0 。char m30。systemcls。printf*同学信息治理系统 *。printfn- 检 索- 。 printfn 请输入想要检索的姓名: 。scanf%s,m。forn=0。nstunum。n+ifstrcmpm,stun.name=0systemcls。printf 学号 姓 名 年龄 性别 产生年月 n。printf%4d ,stun.id 。printf%8s ,stun.name。printf%4d ,stun.age
32、。printf%4s ,stun.sex 。printf%8s n,stun.birthday 。printfnnn 学号 电话 E-mail的址n。printf%4d ,stun.id 。printf%15s ,stun.tel 。可编辑资料 - - - 欢迎下载精品名师归纳总结printf%15s ,stun.email 。printf%sn, stun.add 。printfnnn 数学英语总分n。printf%4d,stun.math 。printf%15d,stun.english 。printf%15dn,stun.sum 。i+ 。getch。ifi=0printfnError:
33、 无此同学。 。elselastn。void write/录入函数int a,n=1,m。char ch。while na=stunum。systemcls。printf 学号:。stua.id=a+1。printf%d,stua.id 。printfn 名字: 。scanf%s,stua.name。printfn 年龄: 。scanf%d,&stua.age。printfn 性别: 。可编辑资料 - - - 欢迎下载精品名师归纳总结scanf%s,stua.sex。printfn 产生年月日 : 。scanf%s,stua.birthday。printfn 的址: 。scanf%s,stua
34、.add。printfn 电话: 。scanf%s,stua.tel。printfnE-mail: 。scanf%s,stua.email。printfn 数学: 。scanf%d,&stua.math。printfn 英语: 。scanf%d,&stua.english。stua.sum=stua.math+stua.english。printf%d,stua.sum 。m=1。while m/做一个循环,直到 m=0 时跳出systemcls。 printf 学号:。printf%d,stua.id 。printfn 名字: 。printf%s,stua.name。printfn 年龄: 。printf%d,stua.age 。printfn 性别: 。printf%s,stua.sex 。printfn 产生年月日 : 。printf%s,stua.birthday 。printfn 的址: 。printf%s,stua.add 。printfn 电话: 。printf%s,stua.tel 。printfnE-mail 。可编辑资料 - - - 欢迎下载精品名师归纳总结