《C语言毕业课程设计及任务书.docx》由会员分享,可在线阅读,更多相关《C语言毕业课程设计及任务书.docx(27页珍藏版)》请在三一办公上搜索。
1、内蒙古科技大学本科生课程设计说明书题 目:C语言课程设计学生信息管理系统学生姓名:王佳星学 号:专 业:2011-计算机班 级:3班指导教师:余金林内蒙古科技大学课程设计任务书课程名称C语言课程设计设计题目学生信息管理系统指导教师余金林时间一、教学要求1. 巩固和加深学生对C语言课程的基本知识的理解和掌握2. 掌握C语言编程和程序调试的基本技能3. 利用C语言进行基本的软件设计4. 掌握书写程序设计说明文档的能力5. 提高运用C语言解决实际问题的能力二、设计资料及参数每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。某班学生基本信息管理,包括以下功能::从键盘输入包
2、括学号、姓名、性别、出生年月日、籍贯、所在院系、专业、奖惩信息等, 并将其保存在磁盘文件里具有进行单项查询或多项查询的功能(即按照给定的关键字姓名等找出满足条件的纪 录)具有插入、修改和删除信息的功能具有输出文件数据信息的功能三、设计要求及成果1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目)2. 写出详细设计说明(至少包括功能实现分析和模块流程图)3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少3个函数,每人至少200行代码,不包括注释和花括号)4. 设计完成的软件要便于操作和使用5. 设计完成后
3、提交课程设计报告(请严格按照模板进行排版)四、进度安排第一天 选择课程设计题目,分析课题的要求第二天编程第三天编程及调试第四天 写课程设计报告第五天 提交课程设计报告(打印稿及电子稿)五、评分标准1. 根据平时上机考勤、表现和进度,教师将每天点名和检查2. 根据课程设计完成情况,必须有可运行的软件。3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。六、建议参考资料1. C语言程序设计,谭浩强,清华大学出版社2. C语言程序设计课程设计,刘振安,机械工业出版社目 录内蒙古科技大学课程设计任务书 NO);学号PF(tt输入学生姓名:t);scanf(%s,p1-name);姓
4、名PF(tt输入学生年龄:t);scanf(%d,&p1-age);年龄PF(tt输入学生性别:t);scanf(%s,p1-sex);性别PF(tt输入学生出生年月:t);scanf(%s,p1-birthday);出生年月PF(tt输入学生地址:t);scanf(%s,p1-address);地址PF(tt输入学生电话:t);scanf(%s,p1-phone);电话PF(tt 输入学生 E-mail:t);scanf(%s,p1-e_mail);E-mailn+;3.2输出模块设计数据浏览模块采用分屏显示,每屏3条记录。用fread或fscanf读文件,输出结果。for(p=);PF(t
5、t 学生学号:t%sn,p-NO);PF(tt 学生姓名:t%sn,p-name);PF(tt 学生年龄:t%dn,p-age);PF(tt 学生性别:t%sn,p-sex);PF(tt 学生出生年月:t%sn,p-birthday);PF(tt 学生地址:t%sn,p-address);PF(tt 学生电话:t%sn,p-phone);PF(tt 学生 E-mail:t%sn,p-e_mail);PF(n);输出信息3.3 查找模块设计1)按姓名查找模块通过键盘输入要查找的学生姓名,然后与结构数组中的姓名信息逐一比对,找出学生 信息并输出void search_name()学生姓名信息查找S
6、TU *p=NULL;char name20;if();return;PF(输入学生姓名:);scanf(%s,name);for(p=);return;PF(请输入学生学号:);scanf(%s,NO);for(p=);STU *p=NULL;FILE *fp;char *filename=fname.txt;if(fp=fopen(fname.txT,w)=NULL)出错检测printf(n 打不开文件!n);return;if();return;elsep=,p-NO,p-name,p-age,p-sex,p-birthday,p-address,p-phone,p-e_mail)存 入
7、文件 p=p-next;printf(保存完毕!n);fclose(fp);第四章测试分析4.1测试程序执行情况主菜单这是新表菜、自5息、 ?息息聂nJJJnJ息息 浜信信询询信信 蜜生睫蟹生 浜AZ劳方心再 TA1I除改炊 汰哥以成删修 沁 . . VX 12345670男93/2性别:出生年月;也址;包头岂话; 18247274583-mail: 7934246140qq_com输入学生信息学生信息浏览览洪又1176807329 王佳星头247342弱华 34佳12王19男93包1879月 - 年-n 口!P名龄别生址话ma 学姓年性出地电 .111.11 llllfalfalfalfal
8、.lllcom93/10包头 18247274583 793424614eqq.按学号查找学生信息择入选输6七 加常Z2头12王19男93包月 - 年:11 号名龄别生址话或 学姓年性出地电 .nLll.lllll 1.111111.111.111按姓名查找学生信息择学选入0 nild 28岳 0 776佳/I头2411王19男93包18月 - 年:11 口名龄别生址话ma 学姓年性出地电E- l_L3333333- wwww修改学生信息第五章课程设计总结在我上机调试程序的过程中,我遇到了很多的问题,说实话这次课程设计自己没有出 多大的力,大部分都是借鉴同学的设计成果,自己设计是总是觉得没有头
9、绪,无从下手。 看到同学认真看程序的样子,还有修改程序时的熟练,我很羡慕他,我想,我也要将C+ 学好,在将来能为我的就业加分。在这期末考试前期,学院给我们安排的课程设计周,总让我们觉的有些为难我们,这 样一个复杂困难而又繁琐的作业,似乎弄得我们既没有时间也没有心情复习,我曾一度地 抱怨过学院,在完成它之后,我发现我错了,课程设计不仅让我们巩固了所学的知识,还 使得我们学习到了更多平时所忽略的,最重要的是,它磨砺了我们,让我们在大学的下一 个阶段能更好的成长。附录:程序代码#include stdio.,i=0;全局变量自定义函数void show_menu();显示菜单void menu();
10、执行菜单void creat_stu();建立链表void insert_stu();学生信息录入void print_stu();学生信浏览void search_NO();以学号方式查询信息void search_name();以姓名方式查询信息void arrage_stu();排序void del_stu();删除学生信息void revise_stu();修改学生信息void save();保存信息void main()creat_stu();menu();创建链表void creat_stu()FILE *fp;long size;STU *p1,*p2;(fname.txT,r)
11、=NULL)printf(这是新表“);(o)lloMMS(L=qM onuaEIMOqsOM onuQE POA:uoqd 人二 dcosalppco人二 CTACQpqEzo LdxQso |,do)3 LdoaQEe* LdoN5llNd *音雷 f(a)p.EMal ww刷裴氐 cmo)r5甜哦涅 M.E&6NS&f(dm草aNs 苻_|0$42 cma)getchar();case 1:insert_stu();break;case 2:print_stu();break;case 3:search_NO(); break;case 4:search_name(); break;ca
12、se 5:del_stu(); break;case 6:revise_stu(); break;case 7:arrage_stu();break;case 0:exit(0);执行菜单选项show_menu();显示菜单void show_menu()PF(n);PF(n淤菜单淤 淤n);PF(*tt1.输 入 学 生信息 n);PF(tt2.浏览学生信息“);PF(*tt3.以学号方式查询信息 n);PF(tt4.以姓名方式查询信息);PF(1tt5.删 除学 生信息 n);PF(tt6.修改学生信息“);PF(1tt7排序“);PF(tt0.退出“);PF(淤 淤n);PF(n 请选择
13、n);学生信息录入void insert_stu()学生信息录入n=0;STU *p1=NULL,*p2=NULL;p1=(STU *)malloc(sizeof(STU);PF(n淤录入学生信息淤淤n);录入学生信息PF(tt输入学生学号:t);scanf(%s,p1-NO);学号PF(tt输入学生姓名:t);scanf(%s,p1-name);姓名PF(tt输入学生年龄:t);scanf(%d,&p1-age);年龄PF(tt输入学生性别:t);scanf(%s,p1-sex);性别PF(tt输入学生出生年月:t);scanf(%s,p1-birthday);出生年月PF(tt输入学生地址
14、:t);scanf(%s,p1-address);地址PF(tt输入学生电话:t);scanf(%s,p1-phone);电话PF(tt 输入学生 E-mail:t);scanf(%s,p1-e_mail);E-mailn+;if();return;for(p=);PF(tt 学生学号:t%sn,p-NO);PF(tt 学生姓名:t%sn,p-name);PF(tt 学生年龄:t%dn,p-age);PF(tt 学生性别:t%sn,p-sex);PF(tt 学生出生年月:t%sn,p-birthday);PF(tt 学生地址:t%sn,p-address);PF(tt 学生电话:t%sn,p-
15、phone);PF(tt 学生 E-mail:t%sn,p-e_mail);PF(n);输出信息学生姓名信息查找void search_name()学生姓名信息查找STU *p=NULL;char name20;if();return;PF(输入学生姓名:,scanf(%s,name);for(p=);PF(tt 学生学号:t%sn,p-NO);PF(tt 学生姓名:t%sn,p-name);PF(tt 学生年龄:t%dn,p-age);PF(tt 学生性别:t%sn,p-sex);PF(tt 学生出生年月:t%sn,p-birthday);PF(tt 学生地址:t%sn,p-address)
16、;PF(tt 学生电话:t%sn,p-phone);PF(tt 学生 E-mail:t%sn,p-e_mail);PF(n);i=1;输出信息if(!i)PF(无该生信息!请查证:);没找到信息时的处理学生学号信息查找void search_NO() 学生学号信息查找STU *p=NULL;char NO20;if();return;PF(-请输入学生学号:);scanf(%s,NO);for(p=);PF(tt 学生学号:t%sn,p-NO);PF(tt 学生姓名:t%sn,p-name);PF(tt 学生年龄:t%dn,p-age);PF(tt 学生性别:t%sn,p-sex);PF(tt
17、 学生出生年月:t%sn,p-birthday);PF(tt 学生地址:t%sn,p-address);PF(tt 学生电话:t%sn,p-phone);PF(tt 学生 E-mail:t%sn,p-e_mail);PF(n);i=1;输出信息if(!i)PF(无该生信息!请查证:);没找到信息时的处理修改学生信息void revise_stu()STU *p=NULL;if();return;char NO20;PF(请输入学生的学号:t);scanf(%s,NO);for(p=);PF(tt 学生学号:t%sn,p-NO);PF(tt 学生姓名:t%sn,p-name);PF(tt 学生年
18、龄:t%dn,p-age);PF(tt 学生性别:t%sn,p-sex);PF(tt 学生出生年月:t%sn,p-birthday);PF(tt 学生地址:t%sn,p-address);PF(tt 学生电话:t%sn,p-phone);PF(tt 学生 E-mail:t%sn,p-e_mail);PF(n);输出要修改信息i=1;PF(淤修改学号为$的学生淤n,NO);strcpy(p-NO,NO);PF(tt输入修改学生姓名:t);scanf(%s,p-name);PF(tt输入修改学生年龄:t);scanf(%d,&p-age);PF(tt输入修改学生性别:t);scanf(%s,p-s
19、ex);PF(tt输入修改学生出生年月:t);scanf(%s,p-birthday);PF(tt输入修改学生地址:t);scanf(%s,p-address);PF(tt输入修改学生电话:t);scanf(%s,p-phone);PF(tt 输入修改学生 E-mail:t);scanf(%s,p-e_mail);PF(n);输入修改信息save();if(!i)PF(无该生信息!请查证:);*没找到信息时的处理*删除学生信息void del_stu()STU *p=NULL;if();return;elsechar NO20;PF(请输入学生的学号:t);scanf(%s,NO);for(p
20、=);PF(tt 学生学号:t%sn,p-next-NO);PF(tt 学生姓名:t%sn,p-next-name);PF(tt 学生年龄:t%dn,p-next-age);PF(tt 学生性另 U:t%sn,p-next-sex);PF(tt 学生出生年月:t%sn,p-next-birthday);PF(tt 学生地址:t%sn,p-next-address);PF(tt 学生电话:t%sn,p-next-phone);PF(tt 学生 E-mail:t%sn,p-next-e_mail);PF(n);输出要删除的信息i=1;if(p-next-next)printf(第一个“);p-ne
21、xt=p-next-next;elsep-next=NULL;n-;save();return;if(!i)PF(”无该生信息!请查证:H);没找到信息时的处理return;按学号排序void arrage_stu()(STU *p1 ,*p2;int in=OJ;return ;printf(n=%d,n);p1=0;innext,j+)(ifQ=O)M 一次比较第一个和第二个节点信息(if(strcmp(p1 -NO,p1 -next-NO)bb较 p1 本身和 p1 下一个节点p2=p1-next;p1 -next=p1 -next-next;p2-next=p1;=2)只有两个节点信息时把第二个节点的next赋为空”);STU *p=NULL;FILE *fp;出错检测char *filename=fname.txt;if(fp=fopen(fname.txT,w)=NULL)printf(n 打不开文件!n);return;if();return;elsep=,p-NO,p-name,p-age,p-sex,p-birthday,p-address,p-phone,p-e_mail);存 入文件 p=p-next;printf(保存完毕!n);fclose(fp);参考文献C语言程序设计,谭浩强,清华大学出版社致谢