《2022年C语言程序设计 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言程序设计 .pdf(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、广东工业大学华立学院课 程 设 计(论文)课程名称 _C语言程序设计 _题目名称 _学生信息管理 _学生学部(系) _管理学 _专业班级 _11信管 1 班_学号_1150411010_学生姓名 _ _指导教师 _ 2012 年 7 月 2 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 19 页 - - - - - - - - - 广东工业大学华立学院课程设计(论文)任务书一、课程设计(论文)的内容某班有 n 个学生,教师都将各自班学生的信息进行记录,信息内容包含:(
2、1)学生的学号(2)学生的姓名( 3)学生的地址( 4)学生的 qq(5)学生的联系电话。假设,教师现收集到了我班学生的所有信息,要求用C语言编写一个简单的信息管理系统,可进行录入、查询、修改和浏览等功能。学习相关开发工具和应用软件,熟悉系统建设过程。二、课程设计(论文)的要求与数据设计的主要内容应包括:总体设计(程序设计组成框图、流程图);详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等);调试与测试:测试结果的分析与讨论源程序清单和执行结果:清单中应有足够的注释。三、课程设计(论文)应完成的工作(1)根据上述要求完成一个功能完善学生信息管理系统;(2)采用模块化的
3、程序设计方法,程序书写符合规范,程序设计应完善;(3)对系统进行初步的错误和漏洞检测;(4)根据设计规范撰写报告并按时提交;(5)设计内容用 A4纸打印并按要求装订。题目名称学生信息管理学生学部(系)管理学部专业班级11 信管 1班姓名学号1150411010 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 19 页 - - - - - - - - - 四、课程设计(论文)进程安排序号设计(论文)各阶段内容地点起止日期1 搜集资料图书馆12.5.1-5.10 2 需求分析
4、图书馆5.11-5.18 3 系统分析与设计图书馆5.19-5.27 4 功能模块的实现综 704 机房5.28-6.15 5 系统测试,运行综 704 机房6.16-6.22 6 完成课程设计(论文)综 704 机房6.22-6.25 五、应收集的资料及主要参考文献1 谭浩强著 .C 程序设计 ( 第三版 )M. 北京: 清华大学出版社 ,2005. 2 李春葆 , 张植民 , 肖忠付 .C 语言设计题典 M. 北京:清华大学出版社, 2002 3 广树建 . 新编 C/C+ 程序设计教程 M. 广州:华南理工大学出版社,2008. 4 Kernighan B W,Ritchie D M.
5、C程序设计语言 M.2 版. 徐宣文 , 李志,译 , 北京: 机械工业出版社,2004. 5 楼永健 , 吴鹏, 徐恩友 .C 语言程序设计 M. 北京: 人民邮电出版社 ,2006. 6 田淑清 , 周海燕 , 赵重敏编著 .C 语言程序设计 M. 北京: 高等教育出版社 ,2000 发出任务书日期: 2012 年 4 月 15 日指导教师签名:计划完成日期: 2012 年 6 月 25 日教学单位责任人签章:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 19 页
6、- - - - - - - - - 摘要学生信息存储管理是学校管理现代化非常重要的一环,直接和学生管理、学校管理密切相关。随着学校规模的进一步扩大,学生人数逐年上升, 学生的信息管理也变得越来越繁重,学生管理的信息化势在必行。本课程设计就是设计出一个简化的学生信息管理系统,包括学生学号、学生姓名、学生地址等基本信息的管理。针对以上功能,学生信息管理系统的特点具有:1、操作人性化。 2、输入简单 3、界面显示信息完整。本课程设计以 Microsoft C+ 作为系统开发平台。关键词: Microsoft C+,学生信息管理 , 模块化名师资料总结 - - -精品资料欢迎下载 - - - - -
7、- - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 19 页 - - - - - - - - - 5 目录1 序言 . 12 系统分析与设计 . 12.1系统需求分析 .12.2系统功能分析 .12.3 功能模块设计 .23 系统的实现 . 2总结. 113参考文献 . 113名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 19 页 - - - - - - - - - 1 1 序言近年来中国教育的飞速发展,Inte
8、rnet技术得到了普遍应用,为社会作出了重大的贡献。作为培养人才的摇篮院校,在这改革浪潮中必须紧跟时代的发展,在学生信息管理效率上必须有所提高,不能再采取人手录入的方式,因为它浪费了许多人力物力,在信息时代这种传统的管理方法必然被计算机为基础的信息管理所取代。所以,学生信息管理系统的设计与开发也是一个时代必经的阶段。时代在进步,科学技术在不断提高 ,计算机科学日渐成熟 ,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。目前,学校学生信息管理是教务管理中的一个极为重要的环节,它是整个管理的核心和基础。由于学校规模进一步扩大,学生人数逐年上升,学生情况的管理也变得
9、越来越复杂。面对如此繁杂的任务。如果让个人去管理文档,就会显得费时费力。所以,学生信息管理系统势必应运而生。2 系统分析与设计2.1 系统需求分析课程设计是培养学生综合运用所学知识 , 发现 , 提出, 分析和解决实际问题, 锻炼实践能力的重要环节 , 是对我们的实际工作能力的具体训练和考察过程. 随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握程序开发技本项目的名称是学校信息管理系统,设计的对象是学校管理方和学生,因此设计项目的时候以教师和学生的立场出发,系统的外观界面也是针对他们而设计。根据要求, 主要功能包括 (1) 学生信息录入功能
10、 (学生信息用文件保存) (2) 学生信息浏览功能(3) 学生信息查询功能:按学号查询系统的输入设备由一般的输入设备(即键盘、鼠标)组成,主要是从系统的弹出对话框输入帐户的数据信息。系统的输出主要以对话框、编辑框以及列表显示于屏幕2.2 系统功能分析学生信息管理系统包括信息录入、信息的查询、信息的浏览、信息的修改,详细的功能描述如下:(1)信息的录入功能主要包括对学生信息的录入,包括学生的学号,学生的姓名,学生的信息。(2) 信息查询功能是对已经录好的学生信息进行查看。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理
11、 - - - - - - - 第 6 页,共 19 页 - - - - - - - - - 2 (3)信息浏览功能就是对系统的每个帐户进行查看。(4)删除功能是对学生的信息进行删除。(5)添加学生功能是添加学生。(6)学生信息的修改功能是对学生信息有误的地方进行修正。2.3 功能模块设计根据功能描述,学生信息管理系统可以分为6 个模块,每一个模块有提供了更具体的功能。学生信息管理系统的功能模块图如图2-1 所示。图 2-1 系统功能模块图3 系统的实现#include #include #include #include #include #define N 70 struct student
12、 int num; char name20; char sex10; char bonetime20; int age 学生信息管理系统信息录入浏览信息查询信息删除信息添加信息修改信息按学号查询按姓名查询按 QQ 查询按电话查询名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 19 页 - - - - - - - - - 3 int qq; char addr30; long int tel; st70; /* 定义一个结构体*/ void menu(); void inp
13、ut(); void save(int); void display(); void del(); void add(); void search(); void search_num(); void search_name(); void search qq(); void search_tel(); void modify();/ void Exit();/*退出程序 */ void menu() /* 菜单函数 */ printf( 学生信息管理n); printf(n); printf( $11 信息管理 1 班课程设计示例$n); printf(n); printf( *学生信息管理
14、 *n); printf( 1. 录入学生信息 ); printf( 2. 浏览学生信息 n); printf( 3. 查询学生信息 ); printf( 4. 删除学生信息 n); printf( 5. 添加学生信息 ); printf( 6. 修改学生信息 n); printf( 7. 退出 n); printf( *谢谢使用 *n); printf(n); printf(n); void main() int n,flag; char a; menu(); /* 调用菜单函数 */ do printf( 请选择你需要操作的步骤(1-7):n); scanf(%d,&n); if(n=1&
15、n=7) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 19 页 - - - - - - - - - 4 flag=1; break; else flag=0; printf( 您输入有误,请重新选择!); while(flag=0); while(flag=1) switch(n) case 1:printf( 输入学生信息n);printf(n);input();break; case 2:printf( 浏览学生信息n);printf(n);display();b
16、reak; case 3:printf( 按学号查询学生信息n);printf(n);search();break; case 4:printf( 删除学生信息n);printf(n);del();break; case 5:printf( 添加学生信息n);printf(n);add();break; case 6:printf( 修改学生信息n);printf(n);modify();break; case 7:exit(0);break; default :break; getchar(); printf(n); printf( 是否继续进行(y or n):n); scanf(%c,&
17、a); if(a=y) flag=1; system(cls); /* 清屏 */ menu(); /* 调用菜单函数 */ printf( 请再次选择你需要操作的步骤(1-6):n); scanf(%d,&n); printf(n); else exit(0); void input() /* 录入函数 */ int i,m; printf( 请输入需要创建信息的学生人数(1-70):n); scanf(%d,&m); for (i=0;im;i+) printf( 请输入学号:); scanf(“ %d” ,&sti.num); 名师资料总结 - - -精品资料欢迎下载 - - - - -
18、 - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 19 页 - - - - - - - - - 5 getchar(); printf(n); printf(请输入姓名 : ); scanf(%s,sti.name); getchar(); printf( 请输入性别 (f- 女 m-男): ); scanf(%c,&sti.sex); getchar();printf( “ 请输入出生年月日:” ); scanf(“ %s” ,&sti.bonetime); getchar(); printf( 请输入年龄 : ); scanf(
19、%d,&sti.age); getchar(); printf( 请输入 qq 号: ); scanf(%d,&sti.wage); getchar(); printf( 请输入住址 : ); scanf(%s,sti.addr); getchar(); printf( 请输入电话 : ); scanf(%d,&sti.tel); printf(n); printf(n 创建完毕 !n); save(m); void save(int m) /* 保存文件函数 */ int i; FILE*fp; if (fp=fopen(student_list,wb)=NULL) /*创建文件并判断是否能
20、打开*/ printf (cannot open filen); exit(0); for (i=0;im;i+) /*将内存中学生的信息输出到磁盘文件中去*/ if (fwrite(&sti,sizeof(struct student),1,fp)!=1) printf(file write errorn); fclose(fp); int load() /* 导入函数 */ FILE*fp; int i=0; if(fp=fopen(student_list,rb)=NULL) printf (cannot open filen); exit(0); else do fread(&sti,
21、sizeof(struct student),1,fp); i+; while(feof(fp)=0); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 19 页 - - - - - - - - - 6 fclose(fp); return(i-1); void display() /* 浏览函数 */ int i; int m=load(); printf(n 学号 t 姓名 t 性别 t 出生年月日 t 年龄 t QQt 住址 t 电话 n); for(i=0;im
22、;i+) /*m为输入部分的学生人数*/ printf(n%dt%st%ct%st%dt%dt%st%ldn,sti.num,sti.name,sti.sex,sti.bonetime,sti.age,sti.qq,sti.addr,sti.tel); void del() /* 删除函数 */ int m=load(); int i,j,n,t,flag; char name20; printf(n 原来的学生信息:n); display(); /* 调用浏览函数 */ printf(n); printf( 请输入要删除的学生的姓名:n); scanf(%s,name); for(flag=
23、1,i=0;flag&im;i+) if(strcmp(sti.name,name)=0) printf(n 已找到该生,原始记录为:n); printf(n 学号 t 姓名 t 性别 t 出生年月日 t 年龄 t QQt 住址 t 电话 n); printf(n%dt%st%ct%st%dt%dt%st%ldn,sti.num,sti.name,sti.sex,sti.bonetime,sti.age,sti.qq,sti.addr,sti.tel); printf(n 确实要删除此人信息请按,不删除请按 n); scanf(%d,&n); if(n=1) /* 如果删除,则其他的信息都往上
24、移一行*/ for(j=i;jm-1;j+) strcpy(stj.name,stj+1.name); stj.num=stj+1.num; stj.sex=stj+1.sex; stj.bonetime=stj+1.bonetime; stj.age=stj+1.age; strcpy(stj.nianji,stj+1.nianji); stj.qq=stj+1.qq; strcpy(stj.addr,stj+1.addr); stj.tel=stj+1.tel; flag=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - -
25、 名师精心整理 - - - - - - - 第 11 页,共 19 页 - - - - - - - - - 7 if(!flag) m=m-1; else printf(n 对不起,查无此人!n); printf(n 浏览删除后的所有学生信息:n); save(m); /* 调用保存函数 */ display(); /* 调用浏览函数 */ printf(n 继续删除请按1,不再删除请按2n); scanf(%d,&t); switch(t) case 1:del();break; case 2:break; default :break; void add()/* 添加函数 */ FILE*
26、fp; int n; int count=0; int i; int m=load(); printf(n 原来的学生信息:n); display(); /* 调用浏览函数 */ printf(n); fp=fopen(classmae_list,a); printf( 请输入想增加的学生数:n); scanf(%d,&n); for (i=m;i=1&t=5) flag=1; break; else flag=0; printf( 您输入有误,请重新选择!); while(flag=0); while(flag=1) switch(t) case 1:printf( 按学号查询 n);sea
27、rch_num();break; case 2:printf( 按电话号码查询n);search_tel();break; case3:printf( “ 按姓名查询 n” );search_name(20);break; case4:printf( “ 按 QQ 查询 n” );search_qq;break; case 5:main();break; default:break; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 13 页,共 19 页 - - - - - - -
28、- - 9 void search_num() int num; int i,t; int m=load(); printf( 请输入要查找的学号(12 位数) :n); scanf(%d,&num); for(i=0;im;i+) if(num=sti.num) printf(n 已找到此人,其记录为:n); printf(n 学号 t 姓名 t 性别 t 出生年月日 t 年龄 tQQt 住址 t 电话 n); printf(n%dt%st%ct%st%dt%dt%st%ldn,sti.num,sti.name,sti.sex,sti.bonetime,sti.age,sti.qq,sti.
29、addr,sti.tel); break; if(i=m) printf(n 对不起,查无此人n); printf(n); printf( 返回查询函数请按1,继续查询学号请按2n); scanf(%d,&t); switch(t) case 1:search();break; case 2: search_num();break; default:break; void search_name(20) char name; Int i,t; Int m=load(); printf( “ 请输入要查找的姓名:n” ); scanf(“ %s” ,&name); for(i=0;jm;i+)
30、if(name=sti.name) printf( “ n 已找到此人,其记录为:n” ); printf( “ n 学号 t 姓名 t 性别 t 出生年月日 t 年龄 tQQt 住址 t 电话 n); printf( “ n%dt%st%ct%st%dt%dt%st%ldn,sti.num,sti.name,sti.sex,sti.bonetime,sti.age,sti. qq,sti.addr,sti.tel);break; if(i=m)printf(“ n 对不起,查无此人n” ); printf( 返回查询函数请按1,继续查询电话号码请按2n); scanf(%d,&t); swi
31、tch(t) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 14 页,共 19 页 - - - - - - - - - 10 case 1:search();break; case 2:search_name();break; default :break; void search_qq() long int qq; int i,t; int m=ioad(); printf( “ 请输入要查找的QQ:n” ); scanf(“ %ld” ,&qq); for(i=0;im;i+)
32、 if(qq=sti.qq) printf(n 已找到此人,其记录为:n); printf(n 学号 t 姓名 t 性别 t 出生年月日 t 年龄 t QQt 住址 t 电话 n); printf(n%dt%st%ct%st%dt%dt%st%ldn,sti.num,sti.name,sti.sex,sti.bonetime,sti.age,sti. qq,sti.addr,sti.tel); break; if(i=m) printf(n对不起,查无此人n); printf(n); printf( 返回查询函数请按1,继续查询QQ 请按 2n); scanf(%d,&t); switch(t
33、) case 1:search();break; case 2:search_qq();break; default :break; void search_tel() long int tel; int i, t; int m=load(); printf( 请输入要查找的电话号码:n); scanf(%ld,&tel); for(i=0;im;i+) if(tel=sti.tel) printf(n 已找到此人,其记录为:n); printf(n 学号 t 姓名 t 性别 t 年龄 t QQt 住址 t 电话 n); printf(n%dt%st%ct%dt%dt%st%ldn,sti.n
34、um,sti.name,sti.sex,sti.age,sti. qq,sti.addr,sti.tel); break; if(i=m) printf(n对不起,查无此人n); printf(n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 15 页,共 19 页 - - - - - - - - - 11 printf( 返回查询函数请按1,继续查询电话号码请按2n); scanf(%d,&t); switch(t) case 1:search();break; case 2
35、:search_tel();break; default :break; void modify() /*修改函数 */ int num; char name20; char sex; char bonetime20; int age; iong int qq; char addr30; long int tel; int b,c,i,n,t,flag; int m=load(); /* 导入文件内的信息*/ printf(n 原来的学生信息:n); display(); /* 调用浏览函数 */ printf(n); printf( 请输入要修改的学生的姓名:n); scanf(%s,nam
36、e); for(flag=1,i=0;flag&i8|c1) printf(n 选择错误,请重新选择!n); flag=0; if(flag=1) printf(n 对不起,查无此人!n); do 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 16 页,共 19 页 - - - - - - - - - 12 switch(c) case 1:printf( 学号改为 : ); scanf(%d,&num); sti-1.num=num; break; case 2:printf(
37、姓名改为 : ); scanf(%s,name); strcpy(sti-1.name,name); break; case 3:printf( 性别改为 : ); getchar(); scanf(%c,&sex); sti-1.sex=sex; break; case4:printf( “ 出生年月日改为:” ); scanf(“ %s” ,&bonetime); sti-1.bonetime=bonetime;break; case5:printf( 年龄改为 : ); scanf(%d,&age); sti-1.age=age; break; case 6:printf(QQ 改为 :
38、 ); scanf(%d,&qq); sti-1.qq=qq; break; case 7:printf( 住址改为 : ); scanf(%s,addr); strcpy(sti-1.addr,addr); break; case 8:printf( 电话改为 : ); scanf(%ld,&tel); sti-1.tel=tel; break; printf(n); printf(n 是否确定所修改的信息?n 是请按 1; 不是,重新修改请按2: n); scanf(%d,&b); while(b=2); printf(n 浏览修改后的所有职工信息:n); printf(n); save(
39、m); display(); printf(n 继续修改请按1; 不再修改 ,返回主页请按2n); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 17 页,共 19 页 - - - - - - - - - 13 scanf(%d,&t); switch(t) case 1:modify();break; case 2:menu();break; default :menu();break; 总结本次课程设计大体的流程是运用已学的知识,先对整个开发项目进行系统需求分析;然后对数据库的
40、关系模型实体进行设计;在创建好数据库之后,构建以VC+ 对话框为基础的系统框架,用 ADO 数据库开发技术连接并对数据库进行操作;在基本完成系统所有必须的功能后,进行数据测试,校正差错;最后就是对系统程序进行大概的漏洞和错误检测。在设计的过程中发现整个系统原理比最初想象的都要复杂,不过也没有太大的技术难点,经过不断的试验研究,参考了不少资料,花了差不多两个星期才把系统完成。设计出的系统基本具备需要的所有功能,实现证明数据也没有出错。由于时间仓促,并没有对系统做进一步的完善,还存在不少欠缺和需要改善的地方,例如系统的用户等级登陆模块、 数据库数据信息总览功能块、 主界面显示当前日期时间等功能。参
41、考文献1 谭浩强著 .C 程序设计 ( 第三版 )M. 北京: 清华大学出版社 ,2005. 2 李春葆 , 张植民 , 肖忠付 .C 语言设计题典 M. 北京:清华大学出版社, 2002 3 广树建 . 新编 C/C+ 程序设计教程 M. 广州:华南理工大学出版社,2008. 4 Kernighan B W,Ritchie D M. C程序设计语言 M.2 版. 徐宣文 , 李志,译 , 北京: 机械工业出版社,2004. 5 楼永健 , 吴鹏, 徐恩友 .C 语言程序设计 M. 北京: 人民邮电出版社 ,2006. 6 田淑清 , 周海燕 , 赵重敏编著 .C 语言程序设计 M. 北京:
42、高等教育出版社 ,2000 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 19 页 - - - - - - - - - 14 心得体会课程设计是培养学生综合运用所学知识, 发现, 提出, 分析和解决实际问题 , 锻炼实践能力的重要环节 , 是对学生实际工作能力的具体训练和考察过程. 随着科学技术发展的日新日异, 当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握计算机开发技术是十分重要的。回顾起此次课程设计, 至今我仍感慨颇多, 的确,从从拿到
43、题目到完成整个编程,从理论到实践, 在整整半个学期的日子里, 可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的, 只有把所学的理论知识与实践相结合起来,从理论中得出结论, 才能真正为社会服务, 从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题, 可以说得是困难重重, 这毕竟第一次做的, 难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固, 比如说结构体通过这次课程设计之后,一定把以前所学过的知识重新温故。总的来说,这次 C课程设计确实学到很多, 不仅锻炼了我遇到问题解决问题的勇气和能力,还练就了遇到挫折不达目的不罢休的韧性,这在以后的工作与学习中将会非常重要。2012 年 6 月 20 日教师评语年月日成绩及签名年月日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19 页,共 19 页 - - - - - - - - -