学生籍贯信息记录簿课程报告书

合集下载

学生籍贯信息记录系统

学生籍贯信息记录系统

《软件工程》实验设计报告题目:学生籍贯信息记录簿系统院(系):计算机与软件学院年级:2010级专业:软件工程姓名:学号:教师:学期:学生籍贯信息记录簿第一章课程设计内容和要求1.1 课程设计的目的:通过软件开发的实践训练,进一步掌握软件工程的方法和技术,提高软件开发的实际能力,培养工程设计能力和综合分析、解决问题的能力。

具体如下:1. 学习和实践在分析和设计计算机应用系统所需要的知识,包括面向对象的系统分析与设计,编码和测试方面的知识;2. 进一步加强和提高软件文档编写能力;3. 加强大家的自学能力,为毕业设计做很好的铺垫;4. 培养写作和团队精神。

1.2 课程设计实现的要求:在程序设计中,既可以用传统的结构化程序设计方法,也可以用先进的面向对象程序设计方法。

学生籍贯信息记录簿是一个基于学生籍贯信息的查询、添加、删除、修改、显示功能为一体的程序,本程序需要把记录簿中四川籍贯和非四川籍贯的学生信息分别存储。

1.4进度安排:需求分析:1周概要设计:1到2周详细设计:2周前台编码:3到4周1.5开发环境:编写语言:c语言开发工具:Visual C++ 6.0第二章需求分析2.1 学生籍贯信息记录簿编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。

具体功能:1.创建信息链表并以磁盘文件保存 2.读取磁盘文件并显示输出所有学生的籍贯信息3.按学号或姓名查询其籍贯4.按籍贯查询并输出该籍贯的所有学生;能添加、删除和修改学生的籍贯信息 5.显示输出四川籍和非四川籍学生的信息并可分别存盘。

2.2可行性分析从技术方面,是通过C++来做系统的前台,来实现整个系统的功能;从操作方面,基本的录入、查询、修改等都能满足用户的需求;从经济方面,学生籍贯信息记录簿系统本身是不会直接产生经济效益的,是其应用能够节省人力资源的消耗和浪费,从而节约成本,提高效率,能够起到的作用也是十分可观的。

整个系统不需要特殊设备的支持,只要有计算机即可。

学生籍贯信息记录簿系统课程设计报告

学生籍贯信息记录簿系统课程设计报告

C语言课程设计学生籍贯信息记录簿系统院(系)别班级学号姓名指导教师时间2010-6-12—2008-6-24课程设计任务书题目学生籍贯信息记录簿考试系统系(部)专业班级学生姓名学号6 月12 日至 6 月24 日共 2 周指导教师(签字)系主任(签字)年月日成绩评定表摘要这次程序设计,我选择的是设计学生籍贯信息记录簿系统的程序,之所以选择要设计这个程序首先因为我自己认为这个程序非常实用,虽然说老师给我们的每一个程序都很实用,但是在平时籍贯信息比较常用。

其次,通过向信息的同学了解,建立这个程序有一个方法就是利用链表,而我们的C语言课还没有学到这一步呢,我自己觉得挺有挑战性的,就打算在同学的帮助下编写这个程序了。

其实,刚拿到这个题目,真的没有什么头绪,但是在同学的帮助下,通过自己看课本,通过上网查资料,通过向老师询问,根据自己制定的进程安排,我还是完成了任务。

通过为期一周的课程设计,我对编程有了更加深刻的认识,也让我学到了一些关于用指针处理链表的知识,增强了自己的动手操作能力。

这一周的课程设计,让我对以前学过的知识有了一个更好的巩固,同时也增加了我的新的知识,使我受益匪浅,也让我对Visual C++ 6.0有了进一步的了解,而且,在编程过程中我也学到了许多的东西,也让我明白了一个道理:不管做什么事情,态度是最重要的。

关键字:学生籍贯信息记录簿,链表,指针AbstractTo increase the capacity of practices we have created more going to be able to operate the knowledge learned, the school has arranged for two weeks, especially our Visual C + + to carry out a practical design courses Masu.Detailed description of this file under Visual C + +6.0 environment, the process of designing a single software, this software is that the number of different data statistics.This software features, users enter a single-stage character, the software records the number of letters in each kind of data, the number of data in English, the number of numeric data, empty data include the number of the number and types of data that shows clear them.The following courses through the design and description, data description and statistical software to adjust the program description, and to develop overall direction, describes the process of making the program more, action , can perform various operations.Keyword:Multiple Choice,Head Files,VC++6.0目录前言 (1)第1章软件设计内容 (2)1.1软件达到的目的 (2)1.2软件功能说明 (2)1.2.1功能分析说明图 (2)1.2.2各项功能说明 (3)第2章软件设计环境与原理 (12)2.1设计环境与模块的划分 (12)2.1.1软件设计环境 (12)2.1.2软件模块的划分 (12)2.2软件设计主要原理 (13)2.2.1采用的主要数据结构类型 (13)第3章软件的设计过程 (14)3.1各软件模块之间的调用方式 (14)3.3数据保存方式以及格式 (14)第4章运行程序并截图以及对应的编程 (14)第5章总结 ................................................................... 错误!未定义书签。

课程设计-学生籍贯管理设计

课程设计-学生籍贯管理设计

目录1 课题分析 (1)1.1 问题描述 (1)学生籍贯信息记录簿 (1)1.2 功能需求分析 (1)2 系统设计 (2)2.1 数据存储设计 (2)2.5 文件清单与说明 (4)3.1菜单设计 (5)3.2学生信息查看设计 (5)3.3 分盘存储设计 (6)4 测试数据与测试过程记录 (7)4.1 菜单测试 (7)4.2查看学生信息功能测试 (7)4.3 学生信息处理测试 (9)5 课程设计遇到的问题及解决方法 (20)6 课程设计总结 (20)参考文献 (21)附录源文件 (21)1 课题分析1.1 问题描述学生籍贯信息记录簿编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。

具体功能:1) 系统以菜单方式工作;2)添加学生信息,至少10条。

3)显示所有学生的信息;4)按学号或姓名查询其籍贯;5)按籍贯查询并输出该籍贯的所有学生(至少3个城市);6)删除和修改学生的籍贯信息;7)显示输出上海市籍和非上海市籍学生的信息并可分别存盘。

1.2 功能需求分析1.图表图1 系统功能模块图2.表格2 系统设计2.1 数据存储设计void save_data(){FILE *fp;int i,k;k=dd.count;fp=fopen("c:/dada.txt","w");fwrite(&k,sizeof(int),1,fp);for(i=0;i<k;i++)fwrite(&dd.stu[i],sizeof(struct student),1,fp);fclose(fp);}2.2 数据结构设计void read_data(){FILE *fp;int i,k;struct student st;k=0;if(fopen("d:/students.txt","r")==NULL) // 如果文件不存在{fp=fopen("d:/students.txt","w");fwrite(&k,sizeof(int),1,fp);fclose(fp);}fp=fopen("d:/students.txt","r");fread(&k,sizeof(int),1,fp);dd.count=k;for(i=0;i<k;i++){fread(&st,sizeof(struct student),1,fp);strcpy(dd.stu[i].name,);strcpy(dd.stu[i].no,st.no);strcpy(dd.stu[i].ad,st.ad);}fclose(fp);}2.3 函数设计与说明2.4菜单设计2.5 文件清单与说明3 系统实现3.1菜单设计进入菜单页面,输入相应的功能序号,判定序号是否有效,若有效则执行,无效则提示有误并重新输入。

学生信息记录薄.

学生信息记录薄.
if (k == 1)
{
system("cls");
goto c;
}
else
{
system("pause");
}
return 0;
}
3.2 数据录入实现
StuNode *CreateList(StuNode *Head)
{
StuNode *pnew,*paid,*ps,*pe;
Head=NULL;
cout<<"开始创建学生链表,输入学号为0或负则停止:"<<endl;
实现修改学生信息;
StuNode *showscjg(StuNode *Head)
实现显示四川籍贯信息的学生信息;
StuNode *showfscjg(StuNode *Head)
实现显示非四川籍贯信息的学生信息;
3 详细设计
3.1 主函数的实现
int _tmain(int argc, _TCHAR* argv[])
//cout<<infile.tellg()<<endl;
if(Head==NULL)
{
Head=pnew;
paid=pnew;
paid->next=NULL;
}
else
{
paid->next=pnew;
paid=pnew;
paid->next=NULL;
}
}//while,读文件结束
infile.close();
关键词:学生籍贯信息、更快、更强、更加规范、更加方便

经过一个学期的学习,我们应掌握C++语言编程的基础知识。较熟练地编写C++语言应用程序。了解C语言的常用标准函数、编程技巧、异常处理。联系已学过的内容,巩固所学的理论,增强独立工作能力。通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。

课程设计报告-学生籍贯信息记录薄

课程设计报告-学生籍贯信息记录薄

学生籍贯信息记录薄《学生籍贯信息记录簿》程序设计基础课程设计报告专业:计算机科学与技术系班级:一班姓名:学号:指导教师:完成日期:2012-6-25目录1. 课程设计目的................................................................................................................................ - 3 -1.1课程设计目的: (3)1.2课程设计题目: (3)1.3题目要求: (3)2.总体设计.......................................................................................................................................... - 5 -2.1总体组成框图: (5)2.2总体流程图: (5)3.详细设计.......................................................................................................................................... - 6 -3.1信息录入模块. (6)3.1.1函数功能:........................................................................................................................ - 6 -3.1.2函数入口:........................................................................................................................ - 6 -3.1.3函数流程图:.................................................................................................................... - 6 -3.2显示物品信息模块.. (7)3.2.1函数功能:........................................................................................................................ - 7 -3.2.2函数介绍:........................................................................................................................ - 7 -3.2.3函数流程图:.................................................................................................................... - 7 -3.3查找学生信息模块.. (8)3.3.1函数功能:........................................................................................................................ - 8 -3.3.2函数介绍:........................................................................................................................ - 8 -3.3.3函数流程图........................................................................................................................ - 9 -3.4删除学生信息模块.. (9)3.4.1函数功能:........................................................................................................................ - 9 -3.4.2函数介绍:........................................................................................................................ - 9 -3.4.3函数流程图:.................................................................................................................. - 10 -3.5修改学生信息模块 (10)3.5.1函数功能:...................................................................................................................... - 10 -3.5.2函数介绍:...................................................................................................................... - 10 -3.5.3函数流程图:.................................................................................................................. - 11 -3.6显示所有四川籍学生信息 (11)3.6.1函数功能.......................................................................................................................... - 11 -3.6.2函数介绍:...................................................................................................................... - 12 -3.6.3函数流程图...................................................................................................................... - 12 -4、运行结果..................................................................................................................................... - 13 -4.1主界面.. (13)4.2录入信息 (13)4.3显示学生信息 (14)4.4查找学生信息 (14)4.5删除学生信息 (15)4.6修改学生信息 (16)4.7四川籍学生信息展示 (17)5、课程设计总结............................................................................................................................. - 18 -6、参考文献..................................................................................................................................... - 19 -1. 课程设计目的1.1课程设计目的:《C++程序设计》是计算机科学与技术专业的必修课。

3-学生籍贯信息记录簿设计

3-学生籍贯信息记录簿设计

合肥学院计算机科学与技术系课程设计任务书2010~2011学年第二学期课程C语言课程设计课程设计名称学生籍贯信息记录簿设计专业班级指导教师2011年6月一、课程设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。

通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程《C语言教程》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。

(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。

(3)利用所学知识,开发小型应用系统,掌握运用C语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。

(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。

(5)掌握自顶而下的设计方法,将大问题进行模块化,领会结构化程序设计的方法。

(6)熟练掌握C语言的基本语法,灵活运用各种数据类型。

(7)进一步掌握在集成环境下如何调试程序(单步调试,设置断点、观察表达式,分块调试)和修改程序。

二、课程设计名称及内容课程设计名称:学生籍贯信息记录簿设计设计内容:设计一个学生籍贯信息记录簿系统,该系统要求对学生籍贯信息进行管理和维护。

三、任务和要求编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、性别、年龄、籍贯。

具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的籍贯信息;(3)按学号或姓名查询其籍贯;(4)按籍贯查询并输出该籍贯的所有学生;(5)能添加、删除和修改学生的籍贯信息(可选项);四、主要知识点●程序设计方法●界面制作●动态数组(链表)●文件的读写五、其他程序设计可在Turbo C、VC++、C++ Builder环境下进行。

六、参考资料[1]黄明等编著《C语言课程设计》北京:电子工业出版社[2]郭翠英编著《C语言课程设计案例精编》北京:中国水利水电出版社[3] 宁正元《数据结构(c语言)》南京:东南大学出版社。

课程设计报告 学生籍贯信息记录簿(源程序)

课程设计报告 学生籍贯信息记录簿(源程序)
}
void () //读取文本文件student.dat的信息
{
FILE *fp;
if((fp=fopen("student.dat","r"))==NULL) return ;//以只读的方式打开student.dat文件
n=0;
scanf("%s",&choose);
switch(choose)
{
case '1':{Input();Save1();}break;
case '2':{Readfile();Display();}break;
case '3':{Readfile();Find(1);}break;
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<windows.h> //开始界面
#define MAX 50 //宏定义最多输入人数
fprintf(fp,"%s %s %s\n",stu[i].num,stu[i].name,stu[i].address);//用格式化输出函数输出内容到student.dat
}
fclose(fp);
}
void Display() //2.读取信息并显示
{
int i;
printf(" 学号 姓名 籍贯:\n");
for(i=0;i<n;i++)

课程设计学生籍贯信息薄

课程设计学生籍贯信息薄

课程设计学生籍贯信息薄一、教学目标本课程的教学目标是使学生掌握籍贯信息的定义、分类和收集方法,培养学生对不同籍贯文化的认识和尊重,提高学生运用信息技术整理和分析籍贯信息的能力。

知识目标:学生能够理解籍贯信息的含义,掌握不同籍贯的分类及特点,了解收集、整理和分析籍贯信息的基本方法。

技能目标:学生能够运用信息技术手段,如网络搜索、数据整理等,收集和处理不同籍贯的信息,从而提高信息处理能力。

情感态度价值观目标:通过本课程的学习,学生能够增强对不同地域文化的认识和理解,培养尊重多元文化的态度,增强民族自豪感。

二、教学内容本课程的教学内容主要包括籍贯信息的定义、分类和收集方法,以及如何运用信息技术整理和分析籍贯信息。

1.籍贯信息的定义:介绍籍贯的概念,解释籍贯信息的含义及其在历史、文化研究中的重要性。

2.籍贯信息的分类:分析不同籍贯的分类及其特点,如省份、城市、乡村等,让学生了解不同籍贯的文化差异。

3.籍贯信息的收集方法:介绍收集、整理和分析籍贯信息的基本方法,如查阅历史文献、访问老辈人、利用网络资源等。

4.信息技术在籍贯信息整理中的应用:教授如何运用信息技术手段,如网络搜索、数据整理等,收集和处理不同籍贯的信息。

三、教学方法本课程将采用讲授法、案例分析法、小组讨论法和实验法等多种教学方法,以激发学生的学习兴趣和主动性。

1.讲授法:教师讲解籍贯信息的定义、分类和收集方法,以及信息技术在籍贯信息整理中的应用。

2.案例分析法:分析具体的籍贯信息案例,让学生了解不同籍贯的特点,培养学生的分析能力。

3.小组讨论法:学生进行小组讨论,分享各自收集的籍贯信息,提高学生的合作能力和沟通能力。

4.实验法:让学生动手操作,运用信息技术手段收集和处理籍贯信息,提高学生的实践能力。

四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。

1.教材:选用权威、实用的教材,为学生提供基础知识。

2.参考书:提供相关领域的参考书籍,丰富学生的知识体系。

学生籍贯信息记录簿课程设计报告

学生籍贯信息记录簿课程设计报告

山东交通学院面向过程课程设计学生籍贯信息记录簿软件院(系)别信息工程系班级电气102班学号姓名杨其杭指导教师时间2011-8-29—2011-9-2课程设计任务书题目学生籍贯信息记录簿系(部) 信息工程系专业电气类班级102班学生姓名杨其杭学号8 月29 日至9 月 2 日共 1 周指导教师(签字)系主任(签字)年月日一、设计内容及要求编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。

具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的籍贯信息;(3)按学号或姓名查询其籍贯;(4)按籍贯查询并输出该籍贯的所有学生;(5)能添加、删除和修改学生的籍贯信息;(6)显示输出四川籍和非四川籍学生的信息并可分别存盘。

二、设计原始资料1、链表基础知识2、文件处理基础知识三、设计完成后提交的文件和图表1.计算说明书部分数据库设计分析#include<stdio.h>#include<string.h>#include<stdlib.h>#define LEN sizeof(struct Student)struct Student{char num[21];char name[256];char address[562];struct Student *next;};int n;//n为全局变量,本文件模块中各函数均可使用它struct Student *creat()//定义函数。

此函数返回一个指向链表头的指针{struct Student *p1,*p2;n=0;p1=p2=(struct Student *)malloc(LEN);printf("请依次输入学生的信息,输入学号为零时退出。

\n");printf("请输入学生的学号:\n");gets(p1->num);printf("请输入学生的姓名:\n");gets(p1->name);printf("请输入学生的地址:\n");gets(p1->address);head=NULL;while(p1->num[0]!='0')//当学号是0时,退出{n=n+1;if(n==1)head=p1;elsep2->next=p1;p2=p1;p1=(struct Student *)malloc(LEN);//开辟动态存储区,把起始地址付给p1printf("请输入学生的学号:\n");gets(p1->num);//输入其他学生的学号和成绩printf("请输入学生的姓名:\n");gets(p1->name);printf("请输入学生的地址:\n");gets(p1->address);}p2->next=NULL;system("cls");return(head);}void print_save(struct Student head){FILE *fp;struct Student *p;if(fp==NULL){printf("文件无法打开\n");exit(0);}printf("\n现在,有 %d 条记录,分别是:\n",n);p=&head;if(&head!=NULL)do{printf("\n学号:");puts(p->num);printf("\n姓名:");puts(p->name);printf("\n地址:");puts(p->address);fseek(fp,0,2);if(fwrite(p,sizeof(struct Student),1,fp)!=1)printf("文件无法写入\n");p=p->next;}while(p!=NULL);fclose(fp);//关闭文件getchar();system("cls");}struct Student *pt;//定义一个Student类型的指针char comp[3];//comp为保存输入的变量int main()//一个调用这个creat函数的main函数 c{void ShowView();//界面显示void name_surch();//按姓名查找void num_surch();//按学号查找void NativePlace_surch();//按籍贯查找void Delete_shiyan();//删除学生信息void modification_shiyan();//修改学生信息void fileout(struct Student *p);//文件输出void print_save(struct Student head);while(1){ShowView();if(strnicmp(comp,"1",3)==0)//strnicmp比较两个字符串的函数{pt=creat();//函数返回链表第一个结点的地址}else if(strnicmp(comp,"6",3)==0){print_save(*pt);}else if(strnicmp(comp,"3",3)==0)//输出文件内容{fileout(pt);}else if(strnicmp(comp,"2",3)==0){name_surch();}else if(strnicmp(comp,"7",3)==0){num_surch();}else if(strnicmp(comp,"9",3)==0){//modification();modification_shiyan();//修改学生信息}else if(strnicmp(comp,"4",3)==0){//Delete();Delete_shiyan();}{showSzechwan_No();}else if(strnicmp(comp,"8",3)==0){NativePlace_surch();}else if(strnicmp(comp,"0",3)==0){break;}else{printf("输入错误!!!!!!\n");}getchar();system("cls");}return 0;}void fileout(struct Student *p){FILE *fp;printf("现在有%d条记录,分别是:\n",n);fp=fopen("D:\\stduent.txt","rb");//0x00429af0if(fp==NULL){printf("文件无法打开\n");exit(0);}rewind(fp);while(!feof(fp)){fread(p,sizeof(struct Student),1,fp);//从文件中读取一块数据printf("%-15s",p->num);printf("%-15s",p->address);puts("\n");}fclose(fp);getchar();system("cls");}void ShowView()//主菜单{printf("*********************************************************************** ********\n");printf("**********************欢迎进入学生籍贯信息记录簿*******************************\n");printf("*********************************************************************** ********\n");printf("****1、cin添加*****\n");printf("****2、namesurch按名字搜索*****\n");printf("****3、fileout显示文件中的信息*****\n");printf("****4、delete删除学生信息*****\n");printf("****5、showSzechwan_No分别显示四川和非四川籍学生并非别存盘*****\n");printf("****6、save保存当前信息*****\n");printf("****7、numsurch按学号搜索*****\n");printf("****8、nativeplace安籍贯查询*****\n");printf("****9、modif修改学生信息*****\n");printf("****0、break退出*****\n");********\n");printf("********************请输入您的选择¥¥:");gets(comp);system("cls");//清屏}void name_surch(){FILE *fp;char surch[256];printf("请输入要查询的人的名字:\n");gets(surch);fp=fopen("D:\\stduent.txt","r");//0x00429af0if(fp==NULL){printf("不能打开文件\n");exit(0);}rewind(fp);//指向文件的开始while(!feof(fp))//查找{Student a;while(!feof(fp)){fread(&a,sizeof(Student),1,fp);//从p指向的文件读入一组数据if(!strcmp(,surch)){printf("%s,%s,%s\n",a.num,,a.address);break;}}if(!feof(fp)){return;}else{printf("查无此人····\n");fclose(fp);getchar();system("cls");}void num_surch(){FILE *fp;char surch[256];printf("请输入要查询的人的学号:");gets(surch);fp=fopen("D:\\stduent.txt","rb");//0x0042aab8if(fp==NULL){printf("ERROR");exit(0);}rewind(fp);//指向文件的开始while(!feof(fp))//查找{Student a;while(!feof(fp)){fread(&a,sizeof(Student),1,fp);//从p指向的文件读入一组数据if(!strcmp(a.num,surch)){printf("%s,%s,%s\n",a.num,,a.address);break;}}if(!feof(fp)){return;}else{printf("查无此人····\n");fclose(fp);getchar();system("cls");}void NativePlace_surch()//按籍贯查询{FILE *fp;char surch[256];printf("请输入要查询的人的籍贯:\n");gets(surch);fp=fopen("D:\\stduent.txt","rb");//0x00429af0if(fp==NULL){printf("文件打不开\n");exit(0);}rewind(fp);//指向文件的开始Student a;while(!feof(fp)){fread(&a,sizeof(struct Student),1,fp);//从p指向的文件读入一组数据if(!strcmp(a.address,surch))//相当于strcmp(a.address,surch)==0{printf("%s,%s,%s\n",a.num,,a.address);}}if(!feof(fp)){return;}fclose(fp);getchar();system("cls");}void showSzechwan_No()//分别显示四川和非四川籍学生并非别存盘{FILE *sfp;//指向四川籍学生文件sfp=fopen("D:\\四川stduent.txt","wb");if(sfp==NULL){printf("不能打开文件\n");exit(0);}FILE *ffp;//指向非四川籍学生文件ffp=fopen("D:\\非四川stduent.txt","wb");if(ffp==NULL)//ffp=0x0042aad8{printf("不能打开文件\n");exit(0);}fp=fopen("D:\\stduent.txt","rb");//0x00429af0if(fp==NULL){printf("不能打开文件\n");exit(0);}rewind(fp);//指向文件的开始printf("四川籍学生信息:\n");Student a;while(!feof(fp)){fread(&a,sizeof(struct Student),1,fp);//从p指向的文件读取一组数据if(!strcmp(a.address,"四川")||!strcmp(a.address,"sichuan")||!strcmp(a.address,"sichuansheng")||!strcmp(a.addr ess,"四川省")){printf("%s,%s,%s\n",a.num,,a.address);if(fwrite(&a,sizeof(struct Student),1,sfp)!=1){printf("文件无法写入\n");break;}}else{if(fwrite(&a,sizeof(struct Student),1,ffp)!=1)printf("文件无法写入\n");}}fclose(fp);fclose(ffp);fclose(sfp);printf("非四川籍学生信息:\n");ffp=fopen("D:\\非四川stduent.txt","rb");if(NULL==ffp){printf("文件打不开\n");}while(!feof(ffp)){//此处有问题????????????????????????????????????fread(&a,sizeof(struct Student),1,ffp);//从p指向的文件读取一组数据if(a.num=="0")//ffp=0x0042aab8break;printf("%s,%s,%s\n",a.num,,a.address);}fclose(ffp);getchar();system("cls");}/*编写写入部分,完成修改,删除,四川与非四川籍分别保存的部分freab与fwrite用法的详细区别阐述*/void Delete_shiyan()//删除学生信息{FILE *fp;FILE *fptemp;char surch[256];printf("请输入要删除的人的学号:\n");gets(surch);fp=fopen("D:\\stduent.txt","rb");//0x00429af0fptemp=fopen("D:\\temp.txt","wb");if(fp==NULL){printf("文件打不开\n");exit(0);}Student a;while(!feof(fp)){mark:fread(&a,sizeof(struct Student),1,fp);//从p指向的文件读入一组数据fp=0x0042aab8if(0==strcmp(a.num,surch)){char p;printf("%s,%s,%s\n",a.num,,a.address);printf("如果以上信息与你要删除的人的信息对应,请输入(y/n):\n");scanf("%c",&p);if('Y'==p||'y'==p){goto mark;}}if(strcmp(a.num,surch)!=0){fwrite(&a,sizeof(struct Student),1,fptemp);}}fclose(fp);fclose(fptemp);FILE *aa;FILE *bb;aa=fopen("D:\\stduent.txt","wb");bb=fopen("D:\\temp.txt","rb");while(!feof(bb)){fread(&a,sizeof(struct Student),1,bb);fwrite(&a,sizeof(struct Student),1,aa);}getchar();system("cls");}void modification_shiyan()//修改学生信息{FILE *fp;FILE *fptemp;struct Student a;char surch[256];printf("请输入要修改的人的学号:\n");gets(surch);fp=fopen("D:\\stduent.txt","rb");//0x0042aab8fptemp=fopen("D:\\temp.txt","wb");if(fp==NULL){printf("文件打不开\n");exit(0);}rewind(fp);//指向文件的开始while(!feof(fp)){fread(&a,sizeof(struct Student),1,fp);//从p指向的文件读入一组数据fp=0x0042aab8if(0==strcmp(a.num,surch)){char p;printf("%s,%s,%s\n",a.num,,a.address);printf("如果以上信息与你要修改的人的信息对应,请输入(y/n):\n");scanf("%c",&p);if('Y'==p||'y'==p){printf("请输入要修改成的信息(学号、姓名、籍贯):\n");getchar();printf("学号:");gets(a.num);printf("姓名:");gets();printf("地址:");gets(a.address);}}fwrite(&a,sizeof(struct Student),1,fptemp);}fclose(fp);fclose(fptemp);FILE *bb;FILE *pp;bb=fopen("D:\\stduent.txt","wb");//0x0042aab8pp=fopen("D:\\temp.txt","rb");while(!feof(pp)){fread(&a,sizeof(struct Student),1,pp);fwrite(&a,sizeof(struct Student),1,bb);}getchar();getchar();system("cls");}2.图纸部分:程序流程图四、进程安排(1)第一天完成创建信息链表并以磁盘文件保存,读取磁盘文件并显示输出所有学生的籍贯信息的功能;(2)第二天完成按学号或姓名查询其籍贯,按籍贯查询并输出该籍贯的所有学生的功能;(3)第三天完成显示输出四川籍和非四川籍学生的信息并可分别存盘的功能并修饰;(4)第四天完成能添加、删除和修改学生的籍贯信息的功能并完善;五、主要参考资料[1] 马安鹏.Visual C++程序设计导学。

学生籍贯记录簿设计

学生籍贯记录簿设计

华科学院计算机科学与技术系信息管理与信息系统专业《程序设计综合课程设计》报告(2010/2011学年第一学期)学生姓名:学生班级:学生学号:指导教师:2011年01月12日目录第一章课程设计的目的和要求 (2)1.1课程设计的目的: (2)1.2课程设计的要求: (2)第二章课程设计任务内容 (3)2.1考核内容 (3)2.1.1编写C++语言程序 (3)2.1.2课程设计报告 (3)2.2课题 (3)第三章详细设计说明 (4)3.1总体设计: (4)3.2函数功能说明: (4)3.3详细设计流程图: (5)3.3运行结果: (7)第四章软件使用说明 (10)4.1程序运行环境 (10)4.2程序操作方法 (10)第五章课程设计心得与体会 (11)附录一参考文献 (12)附录二程序清单 (13)《程序设计基础》课程设计——学生籍贯信息记录簿第一章课程设计的目的和要求1.1课程设计的目的:用高级程序语言设计出学生籍贯纪录系统,实现查找方便快捷。

通过用高级程序语言制作程序,熟悉用高级程序语言编程的操作和步骤,学习高级程序语言的运用,以及高级程序语言实验报告的书写格式,使学生掌握一门高级程序设计语言,了解面向对象程序设计的基本概念与方法,进而学会利用C++语言学会解决一般应用问题,并为后续的专业课程奠定程序设计基础。

1.2课程设计的要求:课程设计要求学会分析研究计算机加工的数据结构的特性,了解并掌握涉及的数据选择的适当的逻辑结构、存储结构及其相应的算法等,同时要求在掌握的基础上学会编写程序,使程序结构清楚和正确易读,符合软件工程的规范。

通过编写C++程序,设计学生籍贯信息管理系统,可以方便对学生信息进行查找及管理,或者添加、删除及修改学生信息,将信息永久保存。

第二章课程设计任务内容2.1考核内容2.1.1编写C++语言程序●针对编写的C++程序,应该主要考查下列内容:●是否符合题目要求,是否完成了主要功能;●是否存在语法错误、逻辑错误及运行错误;●程序设计是否合理;●程序是否具有良好的可读性和可靠性;●是否符合结构化程序设计所倡导的基本理念;●用户界面是否友好。

c语言程序学生籍贯信息记录簿设计

c语言程序学生籍贯信息记录簿设计

c 语言程序学生籍贯信息记录簿设计学生籍贯信息记录簿课程设计报告书班级: 方0909-1 学号: 20096401 姓名: 苑小叶指导教师: 康亚男石家庄铁道大学四方学院2010年07月14日1课程设计报告内容1. 选择题目题目: 学生籍贯信息记录簿设计 2. 内容摘要摘要:学生籍贯信息管理系统是典型的信息管理系统, 根据开发要求,主要完成对学生姓名、学号、籍贯等管理。

随着学校办学规模的不断扩大、办学层次的多样化、在校生的不断增多。

开发这系统可以是教务处老师减轻工作压力,比较系统的对学生进行管理,加快速度、加强管理,使各项管理更加规范化。

本系统管理内容广泛,全面涉及管理学生资料信息的管理。

3. 索引关键词关键词:学生籍贯管理,结构体,循环,函数学生籍贯信息记录簿4. 目录目录1题目要求................................................ 4 2设计思想............................................. 4 3系统完成及功能.......................................... 44界面设计............................................ 5 5正文................................................. 5 6结论................................................. 14 7参考资料............................................ 14 8后记................................................. 15 9附录. (15)3学生籍贯信息记录簿 5. 正文1.1 课程设计题目要求1.要求利用C语言面向过程的编程思想来完成系统的设计;2.突出C语言的函数特征,以多个函数实现每一个子功能;3. 画出功能模块图;4. 进行简单界面设计,能够实现友好的交互;5. 具有清晰的程序流程图和数据结构的详细定义;6.熟练掌握C语言对文件的各种操作。

学生籍贯信息课程设计报告

学生籍贯信息课程设计报告

学生籍贯信息课程设计报告一、课程目标知识目标:1. 学生能够了解和掌握籍贯的概念,理解籍贯与地理位置、历史文化的关系。

2. 学生能够通过查阅资料、地图等方式,掌握自己和他人的籍贯信息,了解不同地区的风土人情。

3. 学生能够运用所学知识,分析籍贯对个体和群体的影响,提高对地域文化的认识。

技能目标:1. 学生培养运用地图、网络等工具查找和整理籍贯信息的能力。

2. 学生提高观察、分析、总结和表达能力,通过小组讨论、课堂汇报等形式展示对籍贯的了解。

3. 学生学会尊重他人,善于倾听和合作,形成良好的团队协作精神。

情感态度价值观目标:1. 学生培养对家乡的热爱之情,增强对中华文化的认同和自豪感。

2. 学生树立地域平等观,尊重不同地区的文化差异,消除地域歧视。

3. 学生通过了解和关注籍贯,培养对人文地理的兴趣,激发探索世界的热情。

课程性质:本课程以人文地理为主题,结合学生的生活实际,以提高学生的地域文化素养为目标。

学生特点:学生处于好奇心强、求知欲旺的年级,具有一定的地图阅读能力和信息查找能力,但可能对籍贯的概念和地域文化了解有限。

教学要求:教师应注重启发式教学,引导学生主动探究、合作学习,关注学生的个体差异,提高教学效果。

通过本课程的学习,使学生达到上述具体、可衡量的学习成果。

二、教学内容本课程以《人文地理》教材为依托,结合以下教学内容,确保课程的科学性和系统性:1. 籍贯的定义与意义:介绍籍贯的概念、起源及在我国历史文化中的重要性。

- 教材章节:第一章 地理与人文,第三节 人的活动与地理环境2. 地理分布与籍贯:分析我国各地的地理环境、历史文化特点,探讨其对籍贯的影响。

- 教材章节:第二章 地理环境,第一、二节 地理环境概述、地理环境差异3. 籍贯与姓氏:探讨姓氏与籍贯的关系,了解我国姓氏的起源、分布及演变。

- 教材章节:第三章 人口与民族,第一节 人口分布与迁移4. 各地风土人情:介绍我国各地的民风民俗、传统节日、特色美食等,让学生感受地域文化的魅力。

学生籍贯信息记录簿

学生籍贯信息记录簿

《学生籍贯信息记录簿》程序设计基础课程设计报告专业:电子信息工程班级:2班姓名:左磊学号:2006081992指导老师:常耀辉二00八年7月3日目录1 程序设计的目的………………………………………………………………2 课程设计题目描述和要求……………………………………………………3 课程设计原程序………………………………………………………………4 调试与测试……………………………………………………………………5 流程图…………………………………………………………………………6 课程设计总结…………………………………………………………………7 参考书目………………………………………………………………………1.课程设计的目的编制一个学生籍贯信息记录簿,每个学生信息包括:学号,姓名,籍贯。

2 课程设计题目描述和要求编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。

具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的籍贯信息;(3)按学号或姓名查询其籍贯;(4)按籍贯查询并输出该籍贯的所有学生;(5)能添加、删除和修改学生的籍贯信息;(6)显示输出四川籍和非四川籍学生的信息并可分别存盘3 课程设计原程序#include <iostream>#include <string>using namespace std;class Student //建立student类{public:Student(){} //无参数的构造函数Student(int n,string nam,string home) //构造函数初始化{num=n;name=nam;hometown=home;}void input() //录入信息的函数{cout<<"请输入学号"<<endl;cin>>num;cout<<"请输入姓名"<<endl;cin>>name;cout<<"请输入籍贯"<<endl;cin>>hometown;}void display() //输出函数{cout<<"学号:"<<num<<" "<<"姓名:"<<name<<" "<<"籍贯:"<<hometown<<endl;}string get_name(){return name;} //得到的学生姓名string get_num(){return num;} //得到学号string get_hometown(){return hometown;} //得到籍贯void set_num(string n){num=n;}void set_name(string nam){name=nam;}void set_hometown(string h){hometown=h;}protected://保护成员string num;string name;string hometown;};void add(Student stu[30],int &sum) //添加函数参数是学生数组,sum是录入的学生数{stu[sum++].input(); //依次输入信息}void delet(Student stu[30],int &sum) //删除函数{cout<<"你要删除学生的姓名:";string name;cin>>name;for(int i=0;i<sum;i++) //通过for循环找到要删除的学生姓名if(stu[i].get_name()==name){if(i<sum-1){for(int j=i;j<sum;j++) //用后面的植覆盖前面的植stu[j]=stu[j+1];}break;}if(i>=sum) //若超过学生总数则报错cout<<"无此人!"<<endl;else sum--;}void change(Student stu[30],int &sum) //修改函数{string chose,name,home,num;cout<<"\n1修改学号 2修改姓名 3修改籍贯"<<endl;cin>>chose;if(chose=="1"){int i;cout<<"请输入你要修改的学生的原学号:"; //修改学号cin>>num;for(i=0;i<sum;i++) //通过for 循环找到要修改的学号if(stu[i].get_num()==num){cout<<"新学号:";cin>>num;stu[i].set_num(num);cout<<"修改后的数据:"<<endl;stu[i].display();break;}if(i>=sum) cout<<"无此学生"<<endl;}else if(chose=="2"){int i;cout<<"请输入你要修改的学生的原姓名:"; //修改姓名cin>>name;for(i=0;i<sum;i++)if(stu[i].get_name()==name) //通过for循环找到要修改的姓名{cout<<"新姓名:";cin>>name;stu[i].set_name(name); //修改数据cout<<"修改后的数据:"<<endl;stu[i].display();break;}if(i>=sum)cout<<"无此学生"<<endl;}else if(chose=="3"){cout<<"请输入你要修改的学生的原籍贯:"; //修改籍贯cin>>home;}}void find(Student stu[30],int &sum){string name;cout<<"请输入你要查找的学生的姓名:"; //修改姓名cin>>name;for(int j=0;j<sum;j++){if(stu[j].get_name()==name){stu[j].display();break;}elsecout<<"无此人!\n";}}void main(){Student stu[30];int sum=0; //sum是记录学生数目的变量char n='1';cout<<"学生籍贯信息记录簿"<<endl;while(n!='0'){cout<<"\n1查看所有学生的籍贯信息 \n2添加信息\n3修改信息\n4删除信息\n5查询信息\n0退出\n"<<endl;cin>>n;switch(n) //用switch进行选择{case '1':if(sum==0) cout<<"没有学生信息,请先添加信息。

C语言课程设计 学生籍贯信息记录簿设计教学教材

C语言课程设计 学生籍贯信息记录簿设计教学教材

C语言课程设计学生籍贯信息记录簿设计C语言与程序设计课程设计学生籍贯信息记录簿设计学院信息工程班级物联1301班学号 131408119姓名滕玲一.设计目的该软件主要是编辑一个学生籍贯信息记录簿记录每个学生信息,包括:学号、姓名、籍贯。

具体功能:1.创建信息链表并以磁盘文件保存;2.读取磁盘文件并显示输出所有学生的籍贯信息;3.按学号或姓名查询其籍贯;4.按籍贯查询并输出该籍贯的所有学生;5.能添加、删除和修改学生的籍贯信息;二.总体设计1.设置输入输出流及将程序由磁盘文件保存,构件类stu,其主要包括:学号,姓名,籍贯;2.构建无返回值main函数,输出由与程序相关操作构成的信息链表;3.根据链表设置利用switch函数和循环函数将链表中的内容一一实现;三.详细设计1.学生基本信息的录入这部分的功能主要包括信息的录入,首先按程序提示输入学生的学号,姓名,籍贯等。

在录入数据的同时,系统将对信息的合法性进行检验。

若用户输入不合法的信息,则被系统要求重新输入;若合法性成立则录入完毕后系统将返回主页面。

主页面还有显示学生的全部信息,并且这些信息都会写到你所指定的文本文件中。

2.显示学生信息此功能是将原录入的学生信息读出,并在屏幕上显示出来,并且录入到你所指定的文本文件中。

3.学生信息读取进入该项功能界面后,用户可以对学生的个人信息进行查看,并且录入到你所指定的文本文件中。

4.按学号或姓名查找学生信息此项功能可以根据用户输入的选择查处该学生的所有信息,并且录入到你所指定的文本文件中。

5.删除和修改个人信息选择此项功能后,系统将会自动在屏幕上显示按学号录入原来同学的个人信息,输入后进行修改,并且录入到你所指定的文本文件中。

6.退出系统,结束任务【注:main()主函数每一C 程序都必须有一main()函数, 可以根据自己的爱好把它放在程序某个地方。

程序之前输入学生信息,main()申明主函数,输出相应的功能函数。

学生籍贯信息记录簿 C语言课程设计

学生籍贯信息记录簿 C语言课程设计

程序设计课程设计报告课题名称: 学生籍贯信息记录簿专业 计算机科学与技术(软件工程) 学生姓名班级 学号指导教师完成日期一课程设计的目的-----------------------------------------------------------1二设计内容与要求-----------------------------------------------------------1三主要技术指标及特点-----------------------------------------------------13.0 信息描述(注:用流程图表示)-------------------------------------------------13.1 创建信息链表并以磁盘文件保存;--------------------------------------------23.2 读取磁盘文件并显示输出所有学生的籍贯信息;--------------------------33.3 按学号或姓名查询其籍贯;-----------------------------------------------------53.4 按籍贯查询并输出该籍贯的所有学生;--------------------------------------93.5 能添加、删除和修改学生的籍贯信息;-------------------------------------113.6 显示输出江苏籍和非江苏籍学生的信息并可分别存盘。

----------------16四设计小结-------------------------------------------------------------------17五程序源代码----------------------------------------------------------------18六参考文献-------------------------------------------------------------------29一.课程设计的目的1.加深对《C语言程序设计》课程知识的理解,掌握C语言应用程序的开发方法和步骤;2.进一步掌握和利用C语言进行课程设计的能力;3.进一步理解和运用结构化程序设计的思想和方法;4.初步掌握开发一个小型实用系统的基本方法;5.学会调试一个较长的程序的基本方法;6.学会利用流程图或N-S图表示算法;7.掌握书写课程设计开发文档的能力(书写课程报告)。

学生籍贯信息记录簿C语言课程设计报告

学生籍贯信息记录簿C语言课程设计报告

计算机科学与技术系课程设计报告2012~2013 学年第1学期课程C语言课程设计课程设计名称学生籍贯信息记录簿设计学生学号专业班级指导教师目录一、绪言——需求分析……………………二、系统设计……………………………(一)设计思想…………………………(二)源程序设计…………………………(三)、设计表示……………………………三、系统调试………………………………四、学生籍贯记录薄使用说明…………………五、总结……………………………………六、参考文献……………………………………一、绪言——需求分析随着学校办学规模的不断扩大、办学层次的多样化、在校生的不断增多。

开发这系统可以是教务处老师减轻工作压力,比较系统的对学生进行管理,加快速度、加强管理,使各项管理更加规化。

题目要求设计一个学生籍贯信息记录簿系统,该系统要求对学生籍贯信息进行管理和维护。

要求为:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的籍贯信息;(3)按学号或查询其籍贯;(4)按籍贯查询并输出该籍贯的所有学生;(5)能添加、删除和修改学生的籍贯信息(可选项)。

二、系统设计(一)设计思想:流程图(二)、源程序设计#include<stdio.h> ///宏定义函数#include<stdlib.h> //串操作及存操作函数#include<string.h> /////调用系统函数typedef struct student ////定义新结构体student {char name[10]; /*定义*/int num; /*定义学号*/char sex[10]; /*定义性别*/int age; /*定义年龄*/char location[10]; /*定义籍贯*/}s;void Fun(){char ch1;/*定义字符*/printf("继续操作?\n\t——输入Y继续操作/N退出系统[不区分大小写]\n"); scanf("%s",&ch1); /*接收字符*/switch(ch1) /*选择结构*/{case 'Y':case 'y':break;case 'N':case 'n':printf("欢迎您再次使用。

籍贯信息记录簿

籍贯信息记录簿

《高级语言程序设计》课程设计报告课题名称:学生籍贯信息记录簿姓名:胡瑞君班级:物联网1312 学号:指导教师:张艳电子信息学院2014年 7月 4日目录1 课题分析 (3)1.1 问题描述 (3)1.2 功能需求分析 (3)1.3 数据属性分析 (3)2 系统设计.............................. 错误!未定义书签。

2.1 数据存储设计 (4)2.2 数据结构设计 (5)2.3 函数设计与说明 (5)2.4 菜单设计 (5)2.5 文件清单与说明 (6)3 系统实现 (8)3.1 添加学生籍贯信息 (9)3.2 修改学生籍贯信息 (10)3.3 删除学生籍贯信息 (10)3.4 显示所有学生信息与查询 (11)3.5 显示上海与非上海市籍学生信息 (13)4 测试数据与测试过程记录 (14)4.1 菜单测试 (15)4.2 系统功能测试 (15)5 课程设计遇到的问题及解决方法 (17)6 课程设计总结 (17)参考文献 (18)1 课题分析1.1 问题描述以本班同学的具体数据为背景,编制一个学生籍贯信息记录簿,每个学生信息包括:学号、姓名、籍贯。

具体功能为:1)系统以菜单方式工作;2)添加学生信息,至少10条。

3)显示所有学生的信息;4)按学号或姓名查询其籍贯;5)按籍贯查询并输出该籍贯的所有学生(至少3个城市);6)删除和修改学生的籍贯信息;7)显示输出上海市籍和非上海市籍学生的信息并可分别存盘。

1.2 功能需求分析按系统所需实现的功能要求,功能模块如图1所示。

图1 系统功能模块图1.3 数据属性分析学生籍贯信息记录簿中的数据信息主要有一类,即学生信息,其记录属性如下。

1.3.1 学生信息属性●姓名:学生姓名,由汉字组成,长度小于10个字符。

●学号:由两到三位数字组成,且学号不可重复,长度小于50个字符。

●籍贯:学生籍贯,由汉字组成,长度小于20个字符。

1.3.2 学生数组信息属性●数组中学生的个数。

学生籍贯信息记录簿C语言课程设计

学生籍贯信息记录簿C语言课程设计

精品文档程序设计课程设计报告课题名称:学生籍贯信息记录簿专业计算机科学与技术(软件工程)学生姓名___________________________________ 班级_______________________________________ 学号_______________________________________ 指导教师____________________________________ 完成日期___________________________________精品文档------------------------------------------------ 1 ------------------------------------------- 23.2 读 取 磁 盘 文 件 并 显 示 输 出 所 有 学 生 的 籍 贯 信 息 ; ------------------------- 3------------------------------------ 113.6 显 示输出 江 苏籍 和非 江 苏籍 学 生的信 息并 可分别 存 盘 16四 设 计 小 结-------- 17五程 序源 代 码课程设计的目的-1二设计内容与要求-1-三------------主要 技术 ------- 1指标及 特点八、3.0信息描述(注 用流程 图表示)3.1创建信息链表并以磁盘文 3.3 按 学 号 或 姓 名 ------------------- 5查询其籍贯;3.4 按 籍 贯 查 询 并 输 出 该 籍 9贯的所有 学生;3.5能添加 删除和修改学 生的籍贯信息;精品文档183欢迎。

下载六 参 考 文 献-------- 29课程设计的目的1.加深对《C 语言程序设计》课程知识的理解,掌握 C 语言应用程序的开发方法和步骤;2. 进一步掌握和利用C 语言进行课程设计的能力;3. 进一步理解和运用结构化程序设计的思想和方法;4. 初步掌握开发一个小型实用系统的基本方法;5. 学会调试一个较长的程序的基本方法;6. 学会利用流程图或N-S 图表示算法;7. 掌握书写课程设计开发文档的能力(书写课程报告)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

合肥学院计算机科学与技术系课程设计报告2013 ~2014 学年第2 学期课程面向过程综合设计课程设计名称学生籍贯信息记录簿设计学生姓名学号专业班级软件工程(2)班指导教师2014 年6 月一、需求分析随着学校办学规模的不断扩大、办学层次的多样化、在校生的不断增多。

开发这系统可以是教务处老师减轻工作压力,比较系统的对学生进行管理,加快速度、加强管理,使各项管理更加规范化。

题目要求设计一个学生籍贯信息记录簿系统,该系统要求对学生籍贯信息进行管理和维护。

要求为:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并显示输出所有学生的籍贯信息;(3)按学号和姓名查询籍贯;(4)按籍贯查询并输出该籍贯的所有学生;(5)能添加、删除和修改学生的籍贯信息;(可选项)二、系统设计(一)算法及说明本程序运用c编写,使用顺序表的数据结构来实现。

程序中定义了一个结构体student。

其中在student结构体中包含了学生的基本信息(学生的学号,姓名,性别,年龄,籍贯)。

程序还定义了几个功能函数(保存、录入、显示、添加、查询),这五个函数是彼此相互独立的功能模块。

(二)各项功能分析(1)学生基本信息的录入:这部分的功能主要包括信息的录入,首先按程序提示输入学生的学号,姓名,性别,年龄,籍贯。

录入完毕后,按任意键回到菜单,主菜单还有显示学生的全部信息,按学号查询学生的籍贯,按姓名查询学生的籍贯,按籍贯查询该籍贯的所有学生,添加学生的籍贯信息,退出程序等功能,并且这些函数用后的信息都会写到你所指定的文本文件中。

(2)显示学生信息:此功能将录入的学生信息独处,并在屏幕上显示出来,并且录入到你所指定的文本文件中。

(3)按学号查询学生籍贯信息此功能可以根据用户输入的选择查出该学生的籍贯信息。

(4)按姓名查询学生的籍贯信息此功能可以更具用户输入的选择查出该学生的籍贯信息。

(5)按籍贯查询学生信息此功能可以根据你输入的信息查询相对应的学生信息。

(6)添加学生信息此功能先输入添加的学生人数,输入后根据提示输入学生的学号,姓名,年龄,性别,籍贯信息。

输入完成后将将其信息录入文本文件中。

(7)退出系统,结束任务。

(三)设计思想:流程图系统完成功能及功能框图主要功能如图所示:(四)设计表示在此文件中主要是定义了类的3个成员函数(xianshi()、select()、add()),即3种功能。

这3个函数是彼此独立的功能模块。

2个文件操作函数,保存学生信息函数(save和打开文件),读取信息的数据函数。

具体介绍如下:成员函数1.xianshi()此函数功能是作为显示学生的所有信息,在其他成员函数中都有调用显示函数,辅助其他子函数的功能。

2. select()在本功能中,可对学生进行查询,按学号和姓名查询籍贯,按籍贯查询并输出该籍贯的所有学生,最后返回管理系统。

3.add( )本功能函数的功能是添加一个学生的信息,首先还是先打开用来存放职文件fp,如果打不开则返回,否则进行下面的操作:再打来的文件fp中,输入你所要添加的新学生的所有信息,当输入完毕后,关闭文件fp,并返回主界面。

文件操作函数1、save()此函数功能是定义好一个读取文件fp的函数,如果fp为空或不存在,则提示错误并返回;否则进行下面的操作:学生信息的录入包括学生的学号,姓名,性别,年龄,籍贯情况;通过scanf 函数从键盘读入4个学生的数据,用fprintf函数输出学生的信息,再用fscanf函数从文件夹中读出这些数据。

最后关闭fp文件,选择返回主界面。

2、打开文件,读取信息函数,同样作为一个子函数,在信息的查找函数中对其进行调用,实现学生的信息查找功能。

通过实现调用这两个文件操作函数,是程序更具有简洁性,不至于太冗杂繁重。

(四)实现过程运行系统时进入主界面。

主界面由七项构成分别代表是:显示、查询、保存、添加、退出系统。

它们分别有各自所代表的操作数。

由用户输入操作数执行相应的操作。

此功能由switch语句实现,当用户输入不同的操作数程序将进入不同的函数模块。

进入各个函数后的运作过程在“成员函数”中已给出。

三、学生籍贯信息记录簿的使用说明(一)学生籍贯信息包括学生学号,学生的姓名,性别,年龄,籍贯情况设计一学生籍贯信息管理系统,提供以下功能:1、系统以菜单方式工作2、学生信息录入功能(学生信息用文件保存)--输入3、学生信息显示功能--输出4学生信息查询功能--算法查询方式:按学号查询,按姓名查询,按籍贯查询。

5、学生的信息添加功能。

(二)使用本系统是数据输入时的格式要求:按功能要求选项进行选择,数据输入可以是字符,也可以是字符串。

(三)操作过程中要注意的一些方法:一定要按照系统界面的提示进行操作,包括子菜单中的功能选择。

切忌不要随意的进行操作。

如果用户的输入操作有误或者功能不可执行,造成系统瘫痪,请关闭程序,重新进行操作。

四、系统调试4.1.1 菜单进入系统后即可显示如下界面。

根据需求选数字,只需按:数字+enter即可,但如果输入错误,则会显示:输入错误,请重新输入,返回主菜单,并清屏。

例如,输入:8+enter.则会显示如下界面:4.1.2 显示所有信息选择第一个选项后,系统将会读取磁盘文件"D:\\1..txt" 中所保存的信息,并在显示屏上显示(如下图),且会提示输入任意键即可退回主菜单。

4.1.2 按学号查询选择第二个选项后,系统会系统会先提示:“你要查询的学生学号是”。

输入学号(例如:1)后键入“enter”随后键入任意键返回主菜单,继续运行程序。

4.1.3 按姓名查询选择第三个选项后,系统会系统会先提示:“你要查询的学生姓名是”。

随后键入任意键返回主菜单,继续运行程序。

4.1.4 按籍贯查询选择第四个选项后,系统会系统会先提示:“你要查询的学生籍贯是”。

随后键入任意键返回主菜单,继续运行程序。

4.1.5 添加学生信息系统先会提示你要输入的学生数目。

接着会提示要依次输入那些信息:“请输入增加学生的姓名、学号、性别、年龄及籍贯”。

输入的信息将会被写入“D:\\1.txt"”文件中。

如下图:4.1.6 退出系统选择第七个选项后随后任意键入一个键就结束程序。

4.2调试小结这个程序算是在所有程序中最基础的了,但是在做的过程中仍然遇到了很多困难,特别是刚做的那几天,对着书本去做,基本是在做无用功,让人很是着急。

我前几天做了好几个程序,但都一大堆错误。

比如“无法调用函数”,“无法读取文件”,“无法查询函数”。

但是做了几天,在问了老师和同学后,我慢慢地摸透了方法,开始重新做,一个功能一个功能的验证,程序虽简单,调试过程中总是会出现这样那样很多错误,例如:少分号,未定义等等。

有些错误很简单,自己看一下就可以改出来,但有些错误怎么也修改不出来,例如系统显示无错误,可是在运行的时候却无法执行查询的功能,同学都无法检测中其中的错误,于是就去请教老师,在一处处验证中,终于解决了这个问题。

困扰我一个多星期的程序终于完成了。

五、总结学习C语言已经有半个学期了,就向人们所说的那样,的确不容易学好。

我也没有进行系统设计的实际经验,一直就是跟着教学计划按部就班地进行着:上课——上机——写实验报告,一直觉得自己学得不够好,但通过这次课程设计,我认识到徐好多C语言的内在要素:(1)程序设计语言是程序设计的工具。

这是我通过两周课程设计深深体会的一点,并且发现如果想进行有效的进行程序设计,正确地应用程序设计语言表达算法,必须正确地运用程序设计语言,掌握其语法知识。

(2)学习程序必须重视实践环节,多读程序,多编写程序,多上机实践。

这次的实践教学使得课堂教学、实践之间的关系更为紧密。

对我的学习有着深远的影响。

现在我更加熟悉的掌握了Visual C++语言的运用。

帮助我熟悉了更多Visual C++语言的功能,提高了我的动手能力,学到了许多解决实际问题的宝贵经验.同时也挖掘出了我们潜在的能力,使我们对自己更有自信,对编程也更有兴趣。

我相信,只要努力、勤奋、坚持不懈,就没有什么做不到的事,不能还没开始就退缩,要勇于拼搏,敢于创新。

现在知道自己还有很多的不足,而且,由于认识的有限,无法去完善现在的程序,导致这个程序有很多功能还没有实现。

对此,自己以后还需要继续学习,把它完善。

六、参考文献[1] 马安鹏.Visual C++程序设计导学。

北京:清华大学出版社,2002[2] 谭浩强,C程序设计(第四版)[2] 电子书籍. Visual C++技术内幕(第四版).网址:[3] Beck Zaratian.Microsoft Visual Visual C++ 6.0程序员指南.希望图书创作室译.北京:北京希望电脑公司出品,1998[4]Richard C.Leinecker,Tom Archer. Visual C++ 6 宝典.张艳,张谦译.北京:电子工业出版社,1999[5] 李强,贾云霞. Visual C++项目开发实践.北京:中国铁道出版社,2004[6] 郑莉,董渊,张瑞丰.C++语言程序设计.2003.[7] H.M.Deitel,P.J.Deitel. Small C++ How to Program.2006.七、源程序设计#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>#define N 100void xianshi();void xhselect();void xmselect();void hjselect();void add();void save();/********************定义结构体*******************/struct student{char number[20];/*定义学号*/char name[20];/*定义姓名*/char sex[5]; /*定义性别*/char age[5];/*定义年龄*/char jiguan[20];/*定义籍贯*/};struct student s[N];////定义新结构体 student/*******************主函数********************/int n;void main(){int m;int flag=0;system("cls");while(1){printf("\n=========学生籍贯信息记录簿==========\n");printf("***************欢迎进入****************\n");printf(" 1、显示教材信息 \n");printf(" 2、按学号查询籍贯 \n");printf(" 3、按姓名查询籍贯 \n");printf(" 4、按籍贯查询学生 \n");printf(" 5、添加学生信息 \n");printf(" 6、保存学生信息 \n");printf(" 7、退出管理系统 \n");printf("--------------------------------------\n");printf("请您在上述功能中选择(1--7):\n");printf("你的选择是:");scanf("%d",&m);system("cls");switch(m)/*选择结构,选择各个功能*/{case 1:xianshi();break;case 2:xhselect();break;case 3:xmselect();break;case 4:hjselect();break;case 5:add();break;case 6:save();break;case 7:flag=1;break;default:printf("输入错误,请重新输入\n");} if(flag) break;}}/******************存入信息函数**********************/void save(){ FILE *fp;/*定义文件型指针变量*/if((fp=fopen("D:\\1.txt","w"))==NULL)/*打开文件,根据fopen的返回值(fp),判断该文件是否打开,如果没有打开,则打印"cannot open this file"信息,然后退出程序*/{printf("can not open file");exit(1);}int i=0;printf("请输入要录入的学生个数:");scanf("%d",&n);for(i=0;i<n;i++){printf("请输入学生学号:");scanf("%s",s[i].number);fprintf(fp," %s",s[i].number);printf("请输入学生姓名:");scanf("%s",s[i].name);fprintf(fp," %s",s[i].name);printf("请输入学生性别:");scanf("%s",s[i].sex);fprintf(fp," %s",s[i].sex);printf("请输入学生年龄:");scanf("%s",s[i].age);fprintf(fp," %s",s[i].age);printf("请输入学生籍贯:");scanf("%s",s[i].jiguan);fprintf(fp," %s",s[i].jiguan);printf("录入结束:\n");}fclose(fp);/*关闭fp指向的文件句柄*/printf("输入任意键回主菜单:");getch();}/*********************显示信息函数**************************/void xianshi(){FILE *fp;if((fp=fopen("D:\\1.txt","r"))==NULL)/*打开文件*/{printf("can not open!");exit(1);}printf("学号\t姓名\t性别\t年龄\t籍贯\t \n");int i;while(fscanf(fp,"%s%s%s%s%s",s[i].number,s[i].name,s[i].sex,s[i].age,s[i]. jiguan)!=EOF)/*从文件中逐个读取字符直到文件尾*/{printf("%s\t%s\t%s\t%s\t%s\t",s[i].number,s[i].name,s[i].sex,s[i].age,s[i] .jiguan);printf("\n");}fclose(fp);printf("\n");printf("输入任意键回主菜单:");getch();}/***********************查询函数*******************************/void xhselect(){FILE *fp;char num[20];int i;system("cls");printf("你要查询的学生的学号是:\n");scanf("%s",num);if((fp=fopen("D:\\1.txt","r+"))==NULL){printf("can not open!");exit(1);}while(!feof(fp)){fscanf(fp,"%s\t%s\t%s\t%s\t%s\t",s[i].number,s[i].name,s[i].sex,s[i].age,s[i].jiguan);if(strcmp(s[i].number,num)==0){printf("这个学生的信息为:\n");printf("%s\t%s\t%s\t%s\t%s\t",s[i].number,s[i].name,s[i].sex,s[i].age,s[i].ji guan);printf("按任意键返回菜单!!\n");}}fclose(fp);getch();}void xmselect(){FILE *fp;/*打开文件*/char nam[20];int i;system("cls");printf("你要查询的学生的姓名是:\n");scanf("%s",nam);if((fp=fopen("D:\\1.txt","r+"))==NULL){printf("can not open!");exit(1);}while(!feof(fp)){fscanf(fp,"%s\t%s\t%s\t%s\t%s\t",s[i].number,s[i].name,s[i].sex,s[i].age,s [i].jiguan);if(strcmp(s[i].name,nam)==0)/*判断字符串比较是否相等*/{printf("这个学生的信息为:\n");printf("%s\t%s\t%s\t%s\t%s\t",s[i].number,s[i].name,s[i].sex,s[i].age,s[i].ji guan);printf("按任意键返回菜单!!\n");}}fclose(fp);getch();}void hjselect(){FILE *fp;/*打开文件*/char ji[20];int i;system("cls");printf("你要查询的学生的籍贯是:\n");scanf("%s",ji);if((fp=fopen("D:\\1.txt","r+"))==NULL){printf("can not open!");exit(1);}while(!feof(fp)){fscanf(fp,"%s\t%s\t%s\t%s\t%s\t",s[i].number,s[i].name,s[i].sex,s[i].age,s [i].jiguan);if(strcmp(s[i].jiguan,ji)==0)/*判断字符串比较是否相等*/{printf("这个学生的信息为:\n");printf("%s\t%s\t%s\t%s\t",s[i].number,s[i].name,s[i].sex,s[i].age);printf("按任意键返回菜单!!\n");}}fclose(fp);getch();}void add(){ FILE *fp;/*打开文件*/if((fp=fopen("D:\\1.txt","a"))==NULL){printf("can not open file");exit(1);}int i=0;system("cls");printf("请输入要录入的学生个数:");scanf("%d",&n);for(i=0;i<n;i++){printf("请输入学生学号:");scanf("%s",s[i].number);fprintf(fp," %s",s[i].number);printf("请输入学生姓名:");scanf("%s",s[i].name);fprintf(fp," %s",s[i].name);printf("请输入学生性别:");scanf("%s",s[i].sex);fprintf(fp," %s",s[i].sex);printf("请输入学生年龄:");scanf("%s",s[i].age);fprintf(fp," %s",s[i].age);printf("请输入学生籍贯:");scanf("%s",s[i].jiguan);fprintf(fp," %s",s[i].jiguan);printf("录入结束:\n");}fclose(fp);printf("输入任意键回主菜单:");getch();}。

相关文档
最新文档