C语言项目实践(管理系统设计)项目报告_第1页
C语言项目实践(管理系统设计)项目报告_第2页
C语言项目实践(管理系统设计)项目报告_第3页
C语言项目实践(管理系统设计)项目报告_第4页
C语言项目实践(管理系统设计)项目报告_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

1、大连东软信息学院C语言项目实践项目报告(管理系统设计设计)系 所: 电子工程系 专 业: 智能科学与技术 学生姓名: 刘依萍 学生学号:完成日期: 2015 年 8 月 大连东软信息学院Dalian Neusoft University of Information34电子工程系C语言编程实践项目报告目 录1 需求分析41.1系统功能简述41.2需求规格41.2.1功能需求41.2.2非功能需求52 概要设计52.1设计方法62.2总体设计62.1.1系统结构62.1.2处理流程62.2接口设计72.2.1用户接口72.2.2外部接口82.2.3内部接口82.3系统数

2、据结构设计92.3.1结构体定义92.3.2常量定义92.3.3公共变量定义92.4系统出错信息设计93 详细设计113.1系统主控模块设计113.2 学生信息录入模块设计113.3学生信息查找模块设计123.4 学生信息删除模块设计123.5 学生信息修改模块设计134 系统实现144.1系统主程序代码144.2信息录入程序代码144.3信息查找程序代码154.4信息修改程序代码174.5学生排序程序代码194.6信息插入程序代码204.7信息删除程序代码214.8读取信息程序代码224.9信息保存程序代码224.10信息保存程序代码234.11主界面程序代码235 系统测试255.1主控模

3、块功能测试265.2录入功能测试295.3查找功能测试305.4修改功能测试315.6删除功能测试326 结论33参考文献33C语言项目实践(管理系统设计)的项目报告分为6个部分(节),主要实践内容包括需求分析、概要设计、详细设计、系统实现以及系统测试等部分。学生通过设计、编译、调试、运行等步骤,完成系统设计。通过本次项目实习,不仅巩固和掌握了C语言的知识,数据结构的知识,结构化程序设计的思想,而且对软件开发的过程有了一定的感性认识。成果物是一个综合性较好的管理系统程序和项目报告。注意:开发环境不限,学生可自由选择开发环境,利用C语言完成系统设计。系统创新性说明:1 需求分析1.1系统功能简述

4、1.1.1功能要求学生信息管理:学生的基本信息学生信息的录入,查询,修改,自动将用户输入的学生按照学号排序,查询可按照学号查询,也可按照姓名查询,对学生的信息进行选择性修改1.1.2性能需求1、网络环境下的多用户系统在上述已有的硬件环境下,信息由各用户在规定的权限下在各自的工作站上录入,信息上网后各用户可查询,调用,达到信息共享。2数据的完整性,准确性a录入数据采用表格方式,限制录入数据类型及取值范围以的完整性及准确性。b、系统具有部分反悔修改功能,系统备有的修改功能均可反悔。2.系统对录入的信息进行自动处理,将学生的信息按照学号排序1.2需求规格1.2.1功能需求系统功能列表如表1.1所示。

5、功能编号功能名称功能描述1功能选择为用户提供进行功能选择的界面。功能选择包括学生成绩录入、学生成绩查询、学生成绩修改、学生成绩删除、学生成绩排序及退出2学生信息录入根据界面提示,输入学生数据,对输入数据的合法性(如序号唯一性、数字、日期、性别等)进行检查,输入错误有提示信息并允许重新输入,全部输入正确后将信息保存到文件中3学生信息查询界面提示用户输入成绩查询信息,根据用户的输入在已经保存的文件中查询,返回查找结果,结果可以是多条记录。如果没有所查询的记录,需给出“查询无结果”的提示。4学生信息修改界面提示用户输入待修改学生,界面出现待修改记录,如无该记录有提示。在修改界面中根据提示进行修改,所

6、有录入信息要进行合法性检查,修改正确后保存到文件中。5学生信息删除界面提示用户输入删除学生信息,先查询并显示用户要删除的记录,如果没有要提示。删除前要求用户确认是否删除。如果删除,文件中删除此记录并保存。1.2.2非功能需求(1)实用·易用原则:系统实用性强(2)稳定性·安全性原则1.3运行环境硬件CPU。主存。硬盘。操作系统:win82 概要设计2.1设计方法采用结构化的程序设计方法,进行模块化设计、结构化编程。程序结构分为三种基本类型:顺序结构、分支结构和循环结构。模块划分符合以下三条基本要求:(1) 模块在功能上尽可能地单一化、明确化,即模块的凝聚性。(2) 模块之间

7、的联系及互相影响尽可能地少,尽量避免逻辑耦合,而仅限于数据耦合。(3) 模块的规模应当足够小,易于调试。实施方法:自顶向下、逐步细化。2.2总体设计2.1.1系统结构2.1.2处理流程2.2接口设计 2.2.1用户接口7图2.3 系统主界面2.2.2外部接口无2.2.3内部接口说明本系统之内的各个系统元素之间的接口的安排,如函数接口。XXXX如表2.1所示。表2.1 内部接口函数编号函数定义函数说明1void help()系统帮助2void readfile()信息录入3void seek() 信息查找4void modify()信息修改5void sort()按学号排序6void inser

8、t()插入函数7void del()删除信息8void menu()菜单9void readfile()建立信息10fclose(fp);关闭文件11fp=fopen("student.txt","w");写入12void display()显示所有学生信息13void save()存储信息14fprintf() 输入文件15fscanf()输出文件。2.3系统数据结构设计2.3.1结构体定义struct record char codeLEN+1; /* 学号 */char nameLEN+1; /* 姓名 */int age; /* 年龄 */cha

9、r sex3; /* 性别 */char timeLEN+1; /* 出生年月 */char add30; /* 家庭地址 */char telLEN+1; /* 电话号码 */char mail30; /* 电子邮件地址 */2.3.2常量定义#define LEN 15 #define N 100#define BUFLEN 1002.3.3公共变量定义int k=1,n,m; /*2.4系统出错信息设计操作出现错误时,系统会提示,并返回上一菜单电子工程系C语言编程实践项目报告3 详细设计3.1系统主控模块设计本模块的主要功能对整个系统进行控制,具备提示用户进行选择的功能具体算法如下:(1

10、).列出主菜单:0系统帮助及说明;1刷新学生信息;2查询学生信息;3修改学生信息;4增加学生信息;5按学号删除信息;6显示当前信息;7保存当前学生信息;8退出系统(2).提示用户选择菜单编号,通过0调用void help()函数,通过2调用void seek()函数,通过3调用void modify()函数,通过4调用void insert()函数,通过5调用void del()函数,通过6调用void display()函数,通过7调用void save()函数。(3)进入二级菜单,如果选择错误则提示用户退回主菜单3.2 学生信息录入模块设计本模块的主要功能是:提示用户输入增加人数,进行录入

11、学生信息(1)具体算法如下:提示用户输入学生信息模块的各项基本信息,对部分信息进行合法性检查,将正确的学生基本信息逐项复制给CO类的结构体中,插入到struct record中并保存到文件FILE *fp中。学号相同,提示用户该学号已存在返回主菜单。若不同执行(2)(2)提示用户输入待增加学生的各项信息(3)返回主菜单3.3学生信息查找模块设计本模块的主要功能是:提示用户输入学生学号或姓名进行查找,找到了便调用链表里已储存的信息 ,打印链表,没找到则提示用户本该学号不存在具体算法如下:该学生是否存在选择菜单(12)读文件到链表是否主菜单开始关闭文件输出链表提示该学号或姓名不存在3.4 学生信息

12、删除模块设计本模块的主要功能是:本模块的主要功能是:先提示用户输入学生学号进行查找,找到了则删除该学生信息”,未找到则提示用户“该学号不存在”结束删除并保存到链表是否是否删除?读文件到链表输出空链表输出链表关闭文件否是输入商品名商品是否找到?结束是否是否删除?输出空链表输出链表关闭文件结束是否是否删除?输出空链表输出链表关闭文件是具体算法如下:学号是否找到?输入学生学号是否开始主菜单输出链表该学号不存在读文件到链表删除并保存到链表结束3.5 学生信息修改模块设计本模块的主要功能是:根据用户的需求,调用链表中相关学士的信息进行修改,然后保存到链表中。具体算法如下:(1) 提示用户“请输入要修改的

13、学生的学号”,进行查找(2) 找到了则进行各项信息的修改,找不到则返回修改菜单4 系统实现4.1系统主程序代码int main() FILE *fp; if (fp = fopen("user.txt","r")=NULL) /*如果此文件不存在*/ if (fp = fopen("user.txt","w")=NULL) printf("无法建立%s!","user.txt"); exit(1); fclose(fp);for (;) Menu_1(); 4.2信息录入程序

14、代码 void readfile()/* 建立信息 */char *p="student.txt"FILE *fp;int i=0;if (fp=fopen("student.txt","r")=NULL) printf("Open file %s error! Strike any key to exit!",p);system("pause");exit(0);while(fscanf(fp,"%s %s%d%s %s %s %s %s",stui.code,stui.n

15、ame,&stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail)=8)i+;i=i;fclose(fp);n=i;printf("录入完毕!n"); 4.3信息查找程序代码 void seek() /*查找*/int i,item,flag;char s121; /* 以姓名和学号最长长度+1为准 */printf("-n");printf("-1.按学号查询-n");printf("-2.按姓名查询-n");printf("-3.退出本菜

16、单-n");printf("-n");while(1)printf("请选择子菜单编号:");scanf("%d",&item);flag=0;switch(item)case 1:printf("请输入要查询的学生的学号:n");scanf("%s",s1);for(i=0;i<n;i+)if(strcmp(stui.code,s1)=0)flag=1;printf("学生学号 学生姓名 年龄 性别 出生年月 地址 电话 E-mailn");prin

17、tf("-n");printf("%6s %7s %6d %5s %9s %8s %10s %14sn",stui.code,,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail);if(flag=0)printf("该学号不存在!n"); break; case 2: printf("请输入要查询的学生的姓名:n"); scanf("%s",s1); for(i=0;i<n;i+) if(strcmp(stui

18、.name,s1)=0) flag=1; printf("学生学号 学生姓名 年龄 性别 出生年月 地址 电话 E-mailn"); printf("-n"); printf("%6s %7s %6d %5s %9s %8s %10s %14sn",stui.code,,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail); if(flag=0) printf("该姓名不存在!n"); break; case 3:return; defa

19、ult: printf("请在1-3之间选择n"); 4.4信息修改程序代码 void modify() /*修改信息*/ int i,item,num; char sex13,s1LEN+1,s2LEN+1; /* 以姓名和学号最长长度+1为准 */ printf("请输入要要修改的学生的学号:n"); scanf("%s",s1); for(i=0;i<n;i+) if(strcmp(stui.code,s1)=0) /*比较字符串是否相等*/ num=i; printf("-n"); printf(&q

20、uot;1.修改姓名n"); printf("2.修改年龄n"); printf("3.修改性别n"); printf("4.修改出生年月n"); printf("5.修改地址n"); printf("6.修改电话号码n"); printf("7.修改E-mail地址n"); printf("8.退出本菜单n"); printf("-n"); while(1)printf("请选择子菜单编号:"); sca

21、nf("%d",&item); switch(item) case 1:printf("请输入新的姓名:n"); scanf("%s",s2); strcpy(,s2); break; case 2:printf("请输入新的年龄:n"); scanf("%d",&stunum.age); break; case 3:printf("请输入新的性别:n"); scanf("%s",sex1); strcpy(stunu

22、m.sex,sex1); break; case 4:printf("请输入新的出生年月:n"); scanf("%s",s2); strcpy(stunum.time,s2); break;case 5:printf("请输入新的地址:n"); scanf("%s",s2); strcpy(stunum.add,s2); break;case 6:printf("请输入新的电话号码:n"); scanf("%s",s2); strcpy(stunum.tel,s2); br

23、eak;case 7:printf("请输入新的E-mail地址:n");scanf("%s",s2);strcpy(stunum.mail,s2); break; case 8:return; default:printf("请在1-8之间选择n"); 4.5学生排序程序代码 void sort()/*按学号排序*/ int i,j,*p,*q,s; char temp10; for(i=0;i<n-1;i+) for(j=n-1;j>i;j-) if( strcmp(stuj-1.code,stuj.code)>

24、0) strcpy(temp,stuj-1.code); strcpy(stuj-1.code,stuj.code); strcpy(stuj.code,temp); strcpy(temp,); strcpy(,); strcpy(,temp); strcpy(temp,stuj-1.sex); strcpy(stuj-1.sex,stuj.sex); strcpy(stuj.sex,temp); strcpy(temp,stuj-1.time); strcpy(stuj-1.time,stuj.time); s

25、trcpy(stuj.time,temp); strcpy(temp,stuj-1.add); strcpy(stuj-1.add,stuj.add); strcpy(stuj.add,temp); strcpy(temp,stuj-1.tel); strcpy(stuj-1.tel,stuj.tel); strcpy(stuj.tel,temp); strcpy(temp,stuj-1.mail); strcpy(stuj-1.mail,stuj.mail); strcpy(stuj.mail,temp); p=&stuj-1.age; q=&stuj.age; s=*q;

26、*q=*p; *p=s;4.6信息插入程序代码 void insert() /*插入函数*/ int i=n,j,flag;printf("请输入待增加的学生数:n"); scanf("%d",&m); do flag=1; while(flag) flag=0; printf("请输入第 %d 个学生的学号:n",i+1); scanf("%s",stui.code); for(j=0;j<i;j+) if(strcmp(stui.code,stuj.code)=0) printf("已有

27、该学号,请检查后重新录入!n"); flag=1; break; /*如有重复立即退出该层循环,提高判断速度*/ printf("请输入第 %d 个学生的姓名:n",i+1); scanf("%s",); printf("请输入第 %d 个学生的年龄:n",i+1); scanf("%d",&stui.age); printf("请输入第 %d 个学生的性别:n",i+1); scanf("%s",stui.sex); printf(&qu

28、ot;请输入第 %d 个学生的出生年月:(格式:年.月)n",i+1); scanf("%s",stui.time); printf("请输入第 %d 个学生的地址:n",i+1); scanf("%s",stui.add); printf("请输入第 %d 个学生的电话:n",i+1); scanf("%s",stui.tel); printf("请输入第 %d 个学生的E-mail:n",i+1); scanf("%s",stui.mail)

29、; if(flag=0) i=i; i+; while(i<n+m); n+=m;printf("录入完毕!nn"); sort(); 4.7信息删除程序代码 void del() int i,j,flag=0; char s1LEN+1; printf("请输入要删除学生的学号:n"); scanf("%s",s1); for(i=0;i<n;i+) if(strcmp(stui.code,s1)=0) flag=1; for(j=i;j<n-1;j+) stuj=stuj+1; if(flag=0) printf

30、("该学号不存在!n"); if(flag=1) printf("删除成功,显示结果请选择菜单6n"); n-; 4.8读取信息程序代码 void display() int i; printf("所有学生的信息为:n"); printf("学生学号 学生姓名 年龄 性别 出生年月 地址 电话 E-mailn");printf("-n");for(i=0;i<n;i+) printf("%6s %7s %5d %5s %9s %8s %10s %14sn",stui.c

31、ode,,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail); 4.9信息保存程序代码 void save() int i; FILE *fp;fp=fopen("student.txt","w"); /*写入*/ for(i=0;i<n;i+) fprintf(fp,"%s %s %d %s %s %s %s %sn",stui.code,,stui.age,stui.sex,stui.time,stui.add,stui.tel

32、,stui.mail);fclose(fp); 4.10信息保存程序代码 void save() int i; FILE *fp;fp=fopen("student.txt","w"); /*写入*/ for(i=0;i<n;i+) fprintf(fp,"%s %s %d %s %s %s %s %sn",stui.code,,stui.age,stui.sex,stui.time,stui.add,stui.tel,stui.mail);fclose(fp); 4.11主界面程序代码 void menu()

33、/* 界面 */ int num;printf("*系统功能菜单* n"); printf("友情提醒:查询前请先刷新系统! n"); printf(" - - n"); printf(" * n"); printf(" * 0.系统帮助及说明 * * 1.刷新学生信息 * n"); printf(" * n"); printf(" * 2.查询学生信息 * * 3.修改学生信息 * n"); printf(" * n"); print

34、f(" * 4.增加学生信息 * * 5.按学号删除信息 * n"); printf(" * n"); printf(" * 6.显示当前信息 * * 7.保存当前学生信息* n"); printf(" * * n"); printf(" * 8.退出系统 * n"); printf(" * n"); printf(" - - n"); printf("请选择菜单编号:"); scanf("%d",&num)

35、; switch(num) case 0:help(); break; case 1:readfile(); break; case 2:seek(); break; case 3:modify(); break; case 4:insert(); break; case 5:del(); break; case 6:display(); break; case 7:save();break;case 8:k=0;break;default:printf("请在0-8之间选择n");5 系统测试对系统功能进行了逐项测试,根据实际测试结果,程序运行结果正确,满足了功能需求,达到了预期的设计意图。各功能测试情况如下。5.1主控模块功能测试(1)输入说明首先运行程序,成功输出主菜单;然后根据提示分别输入1、2进入二级菜单。(2)预计的输出主菜单 * 系统功能菜单* 友情提示:查询前请刷新系统! - - - - - -* 0.系统帮助及说明 * * 1.刷新学生信息 * * 2.查询学生信息 * * 3.修改学生信息 * 4.增加学生信息 * * 5按学号.删除信息 * * 6.显示当前信息 * * 7.保存当前信息 *8.退出系统 *- -二级菜单:(1)1. 进入系统后,先刷新学生信息

温馨提示

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

评论

0/150

提交评论