新学生信息管理系统C语言课程设计说明书_第1页
新学生信息管理系统C语言课程设计说明书_第2页
新学生信息管理系统C语言课程设计说明书_第3页
新学生信息管理系统C语言课程设计说明书_第4页
新学生信息管理系统C语言课程设计说明书_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、*实践教学*xx 理工大学软件学院计算机应用基础课程设计题目:学生信息管理系统专业班级:软件 1班姓名:xx学号:xx指导教师:xx成绩: _方案书摘要此次我们设计的是学生信息管理系统,在程序中运行学生信息创建模块,列出模块,删除模块,查找模块,保存模块等,在程序中用到了选择结构,循环结构,结构体,数组,文件操作,自定义函数等。关键词 :结构体;文件操作;数组;循环结构;选择结构;自定义函数方案书目录1 需求分析···············&#

2、183;····································12 总体设计············&

3、#183;·······································12.1程序的总体设计········&#

4、183;·································12.2数据结构···············

5、·······························23 详细设计··················

6、;··································43.1主控模块设计··············&

7、#183;·····························43.2列出模块···················

8、;···························54 主要函数功能描述·····················

9、··························64.1 主函数 main()·····················

10、83;······················64.2 列出函数print_list()························

11、···············75 测试与调试·································

12、3;··············86 个人设计小结与心得体会·································&#

13、183;·····11参考文献 ···········································&

14、#183;···········11附件 1 程序源代码 ····································

15、···········11方案书1 需求分析(1) 问题根据需求,该系统所应包含的信息有以下一些 :息学生的基本信:学号、姓名、性别、 QQ、电话根据需求,该系统所应实现的功能有以下一些:各种基本数据的录入。如:学生基本信息录入。各种基本数据的修改。即:允许对已经录入的数据重新进行编辑、修改。例如修改学生信息中张三的电话信息各种基本数据的删除。例如将张三的信息从学生信息中删除基于各种数据的查询。例如输入学号 1,查询学号为 1 的名字、性别、 QQ和电话。各种基本信息的浏览。例如对保存

16、的学生信息的浏览。(2) 系统采用 C语言实现,开发环境为 VC,可以运行在操作系统 windows98 及以上皆可。(3)运行要求能不受限制的录入学生信息。界面友好,操作方便,例如删除前需要提示用户是否删除。容错性强,例如数据导出时,如果文件不存在需要提示用户。2 总体设计2.1 程序的总体设计在系统设计方面需采用模块化 ,把一个复杂的问题简单化 ,化成几个简单的模块来处理 ,.但是在划分的同时又必须要了解各自的功能 ,它们之间应该有自己的独立性 ,同时又存在相互的联系 .通讯记录时以二进制的形式进行存储和输入 ,一般程序从整体到部分 ,先进行整体概括 ,然后在逐步细化完善本系统由一个图来表

17、示为方案书主菜单创列删修查插保建出除改找入存图 1 系统总图本通讯管理系统可以概括的划分为以下几大模块:1 输入创建模块2 列出菜单模块3 删除数据模块4 修改数据模块5 查找数据模块6 插入数据模块7 保存数据模块8 退出系统2.2 数据结构退出根据系统要求,系统中需要保存的数据学生的信息,其结构如下:数据项名称数据项系统表数据类型数据长度备注示学生学号num学生姓名name学生 QQqq学生性别sex学生电话phone使用语言创建的结构体如下:#include<stdio.h>#include<stdlib.h>#include<string.h>int

18、 num;/*char name10;/*char qq10;/*int sex;/*int phone;/*intchar10char10intint学生学号 */学生姓名 */学生 QQ*/学生性别 */学生电话 */方案书LIST;LIST L100;int main(void)void revise_list ()/*自定义函数 - 修改数组 */void print_list()/*自定义函数 - 列出菜单 */void delete_list()/*自定义函数 - 删除文件 */void insert_list()/*自定义函数 - 创建文件 */voidfind_list()/*

19、自定义函数 - 查找文件 */voidinto_list()/*自定义函数 - 插入文件 */void save_list()/*自定义函数 - 保存文件 */方案书3 详细设计3.1 主控模块设计控制整个程序的运行,通过主函数模块分别调用各个模块,实现各项功能,流程如下图开始密码界面菜单界面输入选择12345670创列删修查插保退建出除改找入存出调用子函数结束图 2 主模块流程图方案书注释1 主控是用 switch 多分支选择结构来实现功能选择3.2 列出模块列出模块是通过循环结构变化个个列出数组自定义数组Lkey 信息开始inti; i=0i<key输出一个记录i+结束图 3 列出模

20、块流程图方案书4 主要函数功能描述4.1 主函数 main()函数原型:#include<stdio.h>#include<stdlib.h>#include<string.h>#define EXIT -1#define LEN sizeof(struct list)int key=0; /*stdlib- 标准库头文件 .sizeof-运算符 .string- 字符串 .typedef-定义类型 */ typedef struct listint num;/* 学生学号 */char name10;/* 学生姓名 */int qq;/* 学生 QQ*/c

21、har sex10;/* 学生性别 */long int phone;/* 学生电话 */LIST;LIST L100;int main(void)/* 主函数 */int choice,y;printf("ttt*学生信息管理系统*");printf("请输入密码: ");scanf("%d",&y);if(y=123)doprintf("nnnttt*学生信息管理系统*");printf("ntttt*=*n");printf(" tttt1.*创建 *n");p

22、rintf(" tttt2.*列出 *n");printf(" tttt3.*删除 *n");printf(" tttt4.*修改 *n");printf(" tttt5.*查找 *n");printf(" tttt6.*插入 *n");printf(" tttt7.*保存 *n");printf(" tttt0.*退出 *n");printf(" tttt请选择 :");scanf("%d",&choice

23、);switch(choice)方案书case 1:insert_list();break;case 2:print_list();break;case 3:delete_list();break;case 4:revise_list(); break;case 5:find_list();break;case 6:into_list();break;case 7:save_list();break;case 0:exit(0);default:printf("input againn");while(1);elseprintf(" 密码错误!请重启程序!&quo

24、t;);fflush(stdin);getchar();return 0;功能描述:通过 if 选择结构实现加密正确输入密码后进入主菜单, 否则提示“密码密码错误! 请重启程” 进入主菜单后用 switch 多分支选择结构来调用子函数来实现对学生信息的创建、修改、插入等。流程图如图2 所示。4.2 列出函数 print_list()函数原型:void print_list()/* 列出菜单 */int i;for(i=0;i<key;i+)printf(" 学号 t 姓名 tQQ 号t 性别 t 电话 tn");printf("%dt%st%dt%st%dn

25、 ",Li.num,L,Li.qq,Li.sex,Li.phone);if(key=0)printf("the shuzu is NULL!n");功能描述:通过 for 循环结构改变 i 的值调用 Li 保存的值逐个显示。流程图如图 3 所示方案书5 测试与调试1 主程序测试测试数据:输入密码 123图 4测试结果:程序运行没有错误,如下图 5菜单选项测试:输入数据请选择: 1方案书图 6测试结果:程序运行没有错误,如下图 72 列出测试测试数据:输入 2,如下方案书图 8测试结果程序运行有错误,如下图 9错误是性别、电话没有对其修改后如下图 10方

26、案书6 个人设计小结与心得体会为期一个星期的C 语言实训结束了,在这一个星期内我的感触颇深。因为在写程序中实在是遇到了太多的困难了,这让我意识到自己对C 语言知识的贫乏。我们只学会了简单的指针和函数, 这些应付考试是绝对没有问题了的,然而应用在实际的程序设计当中却是远远不够的。可想而知,验收过程很不满意,这让我觉得很对不起老师的一番含辛茹苦。所以哪怕我的验收过程不是很理想都好,我交实训报告的时候也一定要把这个学生信息管理系统理解透彻!在整个编程过程中,我坚持虚心的向同学请教问题, 同时自己也在网上查找各种信息, 通过不断地改正,我终于知道编好一个完美的程序是多么的不容易啊! !同时,在不断的犯

27、错中,我也了解了许多以前不知道的东西。做得不好的,也请老师多多见谅,以后我一定会好好改进的!最后,衷心地多谢老师辛苦的指导!参考文献【1】姜灵芝,余健 . C 语言课程设计案例精编 . 北京 : 清华大学出版社 ,2008【2】王新,孙雷 . C 语言课程设计 . 北京 : 清华大学出版社 ,2009【3】游洪跃、彭骏、谭斌 .C 语言程序设计实验与课程设计教程. 北京 : 清华大学出版社 ,2011【4】王连相 .C/C+程序设计上机指导与测试 . 北京 : 中国铁道出版社, 2006 【5】 C 语言函数手册,机械工业出版社, 1999附件 1 程序源代码#include<stdio

28、.h>#inc lude<stdlib.h>#include<string.h>#define EXIT -1#define LEN sizeof(struct list)int key=0; /*stdlib- 标准库头文件 .sizeof-运算符 .string- 字符串 .typedef-定义类型 */ typedef struct listint num;/* 学生学号 */char name10;/* 学生姓名 */int qq;/* 学生 QQ*/char sex10;/* 学生性别 */long int phone;/* 学生电话 */LIST;LI

29、ST L100;void revise_list ()/* 修改数组( revise-修改) */inti,j,k;int num;char name10;int qq;char sex10;long int phone;printf(" 请选择修改项学号");方案书scanf("%d",&j);for(k=0;k<key;k+)if(j=Lk.num)break;printf(" 您要修改成为:");printf("tt 学号 tt");scanf("%d",&num);

30、printf("tt 姓名 tt");scanf("%s",name);printf("ttQQ 号 tt");scanf("%d",&qq);printf("tt 性别 tt");scanf("%s",sex);printf("tt 电话 tt");scanf("%d",&phone);Lk.num=num;strcpy(L,name);/* 拷贝字符串 */Lk.qq=qq;strcpy(Lk.sex,s

31、ex);Lk.phone=phone;void print_list()/* 列出菜单 */int i;for(i=0;i<key;i+)printf(" 学号 t 姓名 tQQ 号t 性别 t 电话 tn");printf("%dt%st%dt%st%dn ",Li.num,L,Li.qq,Li.sex,Li.phone);if(key=0)printf("the shuzu is NULL!n");void delete_list()/* 删除文件 */int i,j,k;printf(" 您要删除的是

32、:n");scanf("%d",&j);for(k=0;k<key;k+)if(j=Lk.num)break;if(k>=key)printf(" 您输入的数据有误,请重新输入:");for(i=k;i<key;i+)Li=Li+1;key-;void insert_list()/* 创建文件 */int num;char name10;int qq;char sex10;long int phone;printf("tt 学号 tt");scanf("%d",&num)

33、;printf("tt 姓名 tt");scanf("%s",name);printf("ttQQ号tt");scanf("%d",&qq);printf("tt 性别 tt");scanf("%s",sex);printf("tt 电话 tt");scanf("%d",&phone);Lkey.num=num;方案书strcpy(L,name);Lkey.qq=qq;strcpy(Lkey.sex,se

34、x);Lkey.phone=phone;key+;voidfind_list()/* 查找文件 */int i,num;printf(" 请输入你要查找的学号 :"); scanf("%d",&num);for (i=0;i<key;i+)if(Li.num=num)printf(" 学号 t 姓名 tQQ 号t 性别 t 电话 tn"); printf("%dt%st%dt%st%dn ",Li.num,L,Li.qq,Li.sex,Li.phone); break;if(i>=k

35、ey)printf(" 无此人信息,请重新选择:");voidinto_list()/* 插入文件 */int i,j,k;int num;char name10;int qq;char sex10;long int phone;printf("ttt您要插入项是 :t");scanf("%d",&j);if (j>0&&j<=key)for(i=key;i>=j;i-)Li=Li-1;key+;printf(" 请输入你要插入的内容:n");printf("tt 学号 tt");scanf("%d",&num);printf("tt 姓名 tt");scanf("%s",name);printf("ttQQ号tt");scanf("%d",&qq);printf("tt 性别 tt");scanf("%s",sex);printf("tt 电话 tt");scanf("%d",&am

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论