收藏 分销(赏)

c语言课程设计--学生基本信息管理系统.doc

上传人:丰**** 文档编号:5431289 上传时间:2024-10-31 格式:DOC 页数:23 大小:576KB
下载 相关 举报
c语言课程设计--学生基本信息管理系统.doc_第1页
第1页 / 共23页
c语言课程设计--学生基本信息管理系统.doc_第2页
第2页 / 共23页
点击查看更多>>
资源描述
内蒙古科技大学课程设计说明书 内蒙古科技大学 本科生课程设计说明书 题 目:C语言课程设计 —— 学生基本信息管理系统 学生姓名: 学 号: 专 业:软件工程 班 级:2015软件一班 指导教师: 日 期:2016年1月5日 22 内蒙古科技大学课程设计任务书 课程名称 C语言课程设计 设计题目 学生基本信息管理系统 指导教师 时间 2016年1月1日~1月5日 一、教学要求 1. 巩固和加深学生对C语言课程的基本知识的理解和掌握 2. 掌握C语言编程和程序调试的基本技能 3. 利用C语言进行基本的软件设计 4. 掌握书写程序设计说明文档的能力 5. 提高运用C语言解决实际问题的能力 二、设计资料及参数 每个学生在教师提供的课程设计题目中任意选择一题,独立完成,题目选定后不可更换。 某班学生基本信息管理,包括以下功能: v 从键盘输入包括学号、姓名、性别、出生年月日、籍贯、所在院系、专业、奖惩信息等,并将其保存在磁盘文件里 v 具有进行单项查询或多项查询的功能(即按照给定的关键字姓名等找出满足条件的纪录) v 具有插入、修改和删除信息的功能 v 具有输出文件数据信息的功能 三、设计要求及成果 1. 分析课程设计题目的功能需求(可选用数组或链表实现,可多人(最多3人)协作完成一个题目) 2. 写出详细设计说明(至少包括功能实现分析和模块流程图) 3. 编写程序代码,调试程序使其能正确运行(代码书写要规范,标示符要见名知意,要有必要的注释,每人至少500行代码,不包括注释和花括号) 4. 设计完成的软件要便于操作和使用 5. 设计完成后提交课程设计报告(请严格按照模板进行排版) 四、进度安排 第一天  选择课程设计题目,分析课题的要求 第二天  编程 第三天  编程及调试 第四天  写课程设计报告 第五天  提交课程设计报告(打印稿及电子稿) 五、评分标准 1. 根据平时上机考勤、表现和进度,教师将每天点名和检查 2. 根据课程设计完成情况,必须有可运行的软件。 3. 根据课程设计报告的质量,如有雷同,则所有雷同的所有人均判为不及格。 六、建议参考资料 1.《C语言程序设计》,谭浩强,清华大学出版社 2.《C语言程序设计课程设计》,刘振安,机械工业出版社 目 录 内蒙古科技大学课程设计任务书 I 第一章 需求分析 3 1.1 引言 3 1.2 任务概述 3 1.3 数据描述 3 1.4 功能需求 3 1.5 性能需求 3 1.6 运行需求 4 1.7 任务计划 4 第二章 概要设计 5 2.1 总体设计 5 2.2 数据类型设计(或数据结构设计) 5 2.3 接口设计 //函数声明 5 2.4 运行界面设计 5 第三章 详细设计 7 3.1 输入模块设计 7 3.2 输出模块设计 7 3.3 查找模块设计 7 3.4 排序模块设计 7 3.5 保存及读取模块设计 7 第四章 测试分析 8 4.1 测试程序执行情况 8 4.2 出现的问题和解决的方法 8 第五章 用户手册(可选) 9 5.1 使用说明 9 5.2 运行说明 9 第六章 课程设计总结 10 附录:程序代码 11 参考文献 12 致谢 13 第一章 需求分析 1.1 引言 编写一个程序来处理同学个人信息。通过一个结构体数组来存放输入的每一位同学的记录(包括姓名、电话号码、e_mail、地址),然后将其信息存入文件中。输入一个姓名查询该同学的信息,并显示在屏幕上。 1.2 任务概述 1运行环境 本系统对于硬件要求不高,软件只要是windows2000及以上版本都可以使用。 2用户特点 本系统对用户的要求不高,一般懂得一些基本的电脑操作即可。 维护人员为本小组的开发人员,均为计算机专业本科教育,懂得VC++6.0编程。 3条件与限制 计算机一台 1.3 数据描述 系统数据类型有:整型int,字符型char,结构体struct; 自己定义的数据类型有:shuru() 等 1.4 功能需求 3.1功能划分 学生信息管理系统可分为三部分:信息管理;修改;查询;存储. 3.2功能描述 (1)信息管理功能:能对学生的各种信息进行管理、登记,保存等。 (2)修改处理功能:对学生信息进行管理登记,保存记录。 (3) 存储功能:让管理人员对学生的信息进行存储。 1.5 性能需求 1时间特性 本系统对时间的要求较高,时间反应要快,在查询时必须能在几秒时间内作出反应,弹出所要查询的各类图书信息以及借阅者信息。 2兼容性和扩展性 仅限在学校电脑使用。 1.6 运行需求 1用户界面 屏幕格式:   (1)要求有菜单及工具栏以方便操作   (2)各数据库信息可在屏幕上直接修改   (3)各数据统计结果可在屏幕上显示   (4)进行系统分析后的结果在另一窗口中显示 2硬件环境 普通的计算机 3软件环境 支持的操作系统包括Windows98/XP/7/8/10中文版及以上版本 要用到的编译语言vc++6.0 1.7 任务计划 该程序主要实现影碟信息的管理任务 其中包括影碟信息录入功能,碟信息浏览功能,影碟信息查找或排序功能,影碟信息的删除与修改,影碟的借出与归还。 详情如下: (1) 输入的形式为int,char;输入值的范围为int:-2147483648~2147483647,char:-128~127;   (2) 输出的形式为数字,汉字,字母; 第二章 概要设计 2.1 总体设计 开始 3 4 调用函数struct record 5 调用函数 shuru () 6 调用函数 chaxun() 7 8 调用函数 xiugai() 9 调用函数 shanchu() 10 调用函数 xianshi() 11 调用函数 baocun() 12 13 结束 13.1 数据类型设计(或数据结构设计) 13.2 接口设计 函数名 函数格式 函数功能 shuru Void 信息输入 chaxun Void 信息查询 xiugai Void 信息修改 shanchu Void 信息删除 xianshi Void 信息显示 baocun Void 错误提醒 caidan Void 分菜单 tuichuxitong Void 退出系统 huanyingyemian Void 欢迎界面 13.3 运行界面设计 功能选择 第三章 详细设计 3.1 输入模块设计 开始 输入学生数量 输入学生信息 n 确定输入么? y n 要保存么? y 保存 y 要继续输入么? n 结束 开始 3.2 输出模块设计 打开记录文件 输出数据 n 是否退出 y 结束 开始 3.3 查找模块设计 选择查找方式 按照姓名名查找 按照学号查找 y 继续查找么? n 结束 开始 3.4 排序模块设计 选择排序方式 按照上市时间排序 按照库存排序 y 继续排序么? n 结束 开始 3.5 保存及读取模块设计 打开并读取文件 y n y 结束 退出? 保存 是否保存? 第四章 测试分析 4.1 测试程序执行情况 5 0.1pause函数 选择界面 1.1录入学生数目 1.2录入信息 2.1浏览已录入的信息 第五章 用户手册(可选) 该程序设计语言为C,支持中文输入输出,方便快捷,小巧实用。 大多数输入错误都会有明确的提示,要求重新输入,但有小部分bug因篇幅原因请用户自行注意。 1.修改删除功能时,请不要输入不存在的电影编号,否则会出现乱码(仅出现,并不会影响管理文件) 2.录入时请不要尝试故意输入错误信息,以免造成未知的后果。 3.每当输入Y/N时请不要输入其他字符,以免误操作。 第六章 课程设计总结 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。 回顾起此次课程设计,至今让我我们仍感慨颇多,的确,从从拿到题目到完成整个编程,从理论到实践,几个星期的日子里,可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,也懂得集体团队的重要性。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体……通过这次课程设计之后,一定把以前所学过的知识重新温故。 这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢。 附录:程序代码 #include<stdio.h> #include<stdlib.h> #include<string.h> #define LEN 5 #define N 5 struct record { char code[20]; char name[10]; char sex[5]; char time[20]; char add[20]; char sch[20]; char cla[10]; char eva[5]; }stu[N]; int k=1,m,n; void shuru(); void chaxun(); void xiugai(); void shanchu(); void xianshi(); void baocun(); void caidan(); void tuichuxitong(); void huanyingjiemian(); int main() { while(k) { huanyingjiemian(); system("pause"); system("cls"); printf("请输入任意键进入菜单!\n"); system("cls"); caidan(); system("pause"); } return 0; } void help() { system("COLOR 2f"); printf("\n 尊敬的用户你好!"); printf("\n--------------------------\n"); printf("\n \n"); printf("\n 1.欢迎进入帮助系统 \n"); printf("\n \n"); printf("\n---------------------------\n"); printf("| |"); printf("| 2请按照菜单提示输入数字命令|"); printf("| |"); printf("\n 3谢谢您的使用 \n"); printf("| |"); printf("\n \n"); } void shuru() { int i,flag=1; while(flag) { flag=0; printf("请输入需要创建的信息!\n"); scanf("%d",&n); if(n<1||n>5) { flag=1; printf("输入错误,请检查后重新输入!\n"); } for(i=0;i<n;i++) { printf("请输入第%d个学生的基本信息:\n",i+1); printf("请输入学号:\n"); scanf("%s",stu[i].code); getchar(); printf("请输入姓名:\n"); scanf("%s",stu[i].name); getchar(); printf("请输入性别:\n"); scanf("%s",stu[i].sex); getchar(); printf("请输入出生年月:\n"); scanf("%s",stu[i].time); getchar(); printf("请输入籍贯:\n"); scanf("%s",stu[i].add); getchar(); printf("请输入学院:\n"); scanf("%s",stu[i].sch); getchar(); printf("请输入专业:\n"); scanf("%s",stu[i].cla); getchar(); printf("请输入奖惩信息:\n"); scanf("%s",stu[i].eva); getchar(); } } printf("录入完毕!\n"); baocun(); } void baocun() { int i; FILE *fp; if((fp=fopen("student.txt","wb"))==NULL) { printf("文件不能打开!\n"); exit(0); } for(i=0;i<n;i++) if(fwrite(&stu[i],sizeof(struct record),1,fp)!=1) printf("文件输入错误!\n"); fclose(fp); } void chazhao() { int i,t,flag; char s1[30]; system("COLOR 5f"); printf("\n ========================== \n"); printf(" |1.按学号查询 | "); printf(" |2.按姓名查询 | "); printf(" |3.退出系统 | "); printf("========================================"); while(1) { flag=0; printf("请输入子菜单编号:"); scanf("%d",&t); switch(t) { case 1: printf("请输入要查询的学生的学号:\n"); scanf("%s",s1); for(i=0;i<n;i++) if(strcmp(stu[i].code,s1)==0) { flag=1; printf("学生姓名 学号 性别 出生年月 籍贯 学院 专业 奖惩信息 \n"); printf("====================================================\n"); printf("%6s %7s %5s %9s %8s %10s %10s %10s\n",stu[i].code,stu[i].name,stu[i].sex,stu[i].time,stu[i].add,stu[i].sch,stu[i].cla,stu[i].eva); } if(flag==0) printf("该学号不存在!\n");break; case 2: printf(" 输入要查询的学生姓名: \n"); scanf("%s",s1); for(i=0;i<n;i++) if(strcmp(stu[i].name,s1)==0) { flag=1; printf("学生姓名 学号 性别 出生年月 籍贯 学院 专业 奖惩信息 \n"); printf("====================================================\n"); printf("%6s %7s %5s %9s %8s %10s %10s %10s\n",stu[i].code,stu[i].name,stu[i].sex,stu[i].time,stu[i].add,stu[i].sch,stu[i].cla,stu[i].eva); } if(flag==0) printf("改姓名不存在!\n");break; case 3: return; default: printf("请在1-3之间选择\n"); } } } void xiugai() { int i,t,num; char s1[30],s2[30]; printf(" 请输入要查询的学生的学号 :\n"); scanf("%s",s1); for(i=0;i<n;i++) if(strcmp(stu[i].code,s1)==0) num=i; system("COLOR 4f"); printf("======================================\n"); printf(" | 1.修改姓名 | \n"); printf("=======================================\n"); printf(" | 2.修改性别 | \n"); printf("=======================================\n"); printf(" | 3.修改出生年月 | \n"); printf("=======================================\n"); printf(" | 4.修改籍贯 | \n"); printf("=======================================\n"); printf(" | 5.修改电话号码 | \n"); printf("=======================================\n"); printf(" | 6.修改所在院系 | \n"); printf("========================================\n"); printf(" | 7.修改专业 | \n"); printf("========================================\n"); printf(" | 8.修改奖惩信息 | \n"); printf("=========================================\n"); printf(" | 9.退出本菜单 | \n"); printf("==========================================\n"); while(1) { printf("请输入子菜单的编号:"); scanf("%d",&t); switch(t) { case 1: printf("请输入新的姓名:\n"); scanf("%s",s2); strcpy(stu[num].name,s2);break; case 2: printf("请输入新的性别:\n"); scanf("%s",s2); strcpy(stu[num].sex,s2);break; case 3: printf("请输入新的出生年月:\n"); scanf("%s",s2); strcpy(stu[num].time,s2);break; case 4: printf("请输入新的籍贯:\n"); scanf("%s",s2); strcpy(stu[num].add,s2);break; case 5: printf("请输入新的院系:\n"); scanf("%s",s2); strcpy(stu[num].sch,s2);break; case 6: printf("请输入新的专业:\n"); scanf("%s",s2); strcpy(stu[num].cla,s2);break; case 7: printf("请输入新的奖惩信息:\n"); scanf("%s",s2); strcpy(stu[num].eva,s2);break; case 8: return; default: printf("请在1--7之间选择\n"); } } } void paixu() { int i,j; char temp[10]; for(i=0;i<n-1;i++) { for(j=n-1;j>1;j--) if(strcmp(stu[j-1].code,stu[i].code)>0) { strcpy(temp,stu[j-1].code); strcpy(stu[j-1].code,stu[j].code); strcpy(stu[j].code,temp); strcpy(temp,stu[j-1].name); strcpy(stu[j-1].name,stu[j].name); strcpy(stu[j].name,temp); strcpy(temp,stu[j-1].sex); strcpy(stu[j-1].sex,stu[j].sex); strcpy(stu[j].sex,temp); strcpy(temp,stu[j-1].time); strcpy(stu[j-1].time,stu[j].time); strcpy(stu[j].time,temp); strcpy(temp,stu[j-1].add); strcpy(stu[j-1].add,stu[j].add); strcpy(stu[j].add,temp); strcpy(temp,stu[j-1].sch); strcpy(stu[j-1].sch,stu[j].sch); strcpy(stu[j].sch,temp); strcpy(temp,stu[j-1].cla); strcpy(stu[j-1].cla,stu[j].cla); strcpy(stu[j].cla,temp); strcpy(temp,stu[j-1].eva); strcpy(stu[j-1].eva,stu[j].eva); strcpy(stu[j].eva,temp); } } } void shanchu() { int i,j,flag=0; char s1[15]; printf("请输入要删除的学生学号:\n"); scanf("%s",s1); for(i=1;i<n;i++) if(strcmp(stu[i].code,s1)==0) { flag=1; for(j=1;j<n-1;j++) stu[j]=stu[j+1]; } if(flag==0) printf("该学号不存在!\n"); if(flag==1) { printf("删除成功!显示请按6\n"); n--; } } void xianshi() { int i; FILE *fp; if((fp=fopen("student.txt","rb"))==NULL) { printf("打开文件时错误!按任意键退出!"); system("pause"); exit(0); } printf(" 所有学生信息为:\n \n"); printf("学生姓名 学号 性别 出生年月 籍贯 学院 专业 奖惩信息 \n"); printf("====================================================\n"); for(i=0;i<n;i++) { fread(&stu[i],sizeof(struct record),1,fp); printf("%6s %7s %5s %9s %8s %10s %10s %10s\n",stu[i].code,stu[i].name,stu[i].sex,stu[i].time,stu[i].add,stu[i].sch,stu[i].cla,stu[i].eva); } } void tuichuxitong() { system("COLOR 3f"); printf(" ------------------\n"); printf("\n"); printf("\n"); } void huanyingjiemian() { system("COLOR 6f"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf("\n"); printf(" 尊敬的用户您好!\n"); printf("\n"); printf("\n"); printf(" 欢迎使用\n"); printf("\n"); printf("\n"); printf("---------------------\n"); printf("\n"); } void caidan() { int num; system("COLOR 1f"); printf("\n\n 学生个人信息管理系统\n\n"); printf("================================================================================\n"); printf("\n"); printf(" ==============系统功能菜单==============\n"); printf(" =======友情提醒:查询前请刷新统!======\n"); printf(" ========================================\n"); printf(" |======================================|\n"); printf(" | 0.系统帮助说明 1.输入学生信息 |\n"); printf(" |--------------------------------------|\n"); printf(" | 2.查询学生信息 3.修改学生信息 |\n"); printf(" |--------------------------------------|\n"); printf(" | 4.按学号删信息 |\n"); printf(" |--------------------------------------|\n"); printf(" | 5.显示当前信息 6.保存当前信息 |\n"); printf(" |--------------------------------------|\n"); printf(" | 7.退出系统 |\n"); printf(" |======================================|\n"); printf(" ========================================\n"); printf("请选择菜单编号: "); scanf("%d",&num); switch(num) { case 0:system("cls");help();break; case 1:system("cls");shuru();break; case 2:system("cls");chazhao();break; case 3:system("cls");xiugai();break; case 4:system("cls");shanchu();break; case5:system("cls");xianshi();break; case 6:system("cls");baocun();break; case 7:system("cls");k=0;tuichuxitong(); break; default: printf("请在1--7之间选择\n"); } } 参考文献 苏小红主编《C语言程序设计》高等教育出 目 录 第一章 总论........................................................... ........................1 1、项目名称及承办单位................................................................1 2、编制依据........................................................ ...........................4 3、编制原则....................................................................................5 4、项目概况..................................................... ..............................6 5、结论............................................................................................6 第二章 项目提出的背景及必要性................................................8 1、项目提出的背景........................................................................8 2、项目建设的必要性.....................................................
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服