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章总结 ................................................................... 错误!未定义书签。
致谢.. (26)前言随着计算机技术的发展,可视编程技术占有了越来越重要的作用。
Visual C++6.0 是一种功能强大行之有效的可视化编程工具。
因此此软件是在Visual C++6.0环境下编写的。
对于我们,随着学习的深入,已经大体掌握了Visual C++6.0环境下的程序开发。
为了将我们的编程能力提升到一个更高的水平,深化面向对象的编程思维和解决问题的能力,值此课程设计周期间,进行基于Visual C++6.0环境的软件开发,先以字符统计软件作为开始,对VisualC++6.0环境和面向对象程序设计进行回忆和熟悉,使得在此基础上的下一个员工培训系统软件的开发进行的更加顺利。
本文档详细叙述了基于Visual C++6.0环境下的字符统计软件的设计过程以及程序源代码。
本文档从概要设计,详细设计,参考源程序代码以及显示程序运行的截屏等方面详尽的介绍了软件开发过程。
此次字符统计软件的开发目的是使我们用面向对象的方式来思考和解决问题的能力,并且可以掌握字符数组的使用、字符指针的使用、类的设计和使用以及C++语法。
本文档的安排如下:第一章软件设计内容。
第二章软件设计环境与原理。
第三章软件设计过程。
第四章主要对字符统计软件进行调试,运行程序并截图,显示运行界面和结果。
第五章主要介绍了软件开发过程中遇到的一些问题,对该软件进行的一个总结。
程序在设计的过程中遇到的问题已及时更正,但由于编者的能力和水平有限,字符统计软件和文档中不免会出现一些不期待的错误,望文档读者能够理解和体谅,并欢迎提醒和纠正,在此表示感谢以及敬意。
第1章软件设计内容1.1软件达到的目的该软件主要是编辑一个学生籍贯信息记录簿每个学生信息包括:学号、姓名、籍贯。
具体功能:(1)创建信息链表并以磁盘文件保存;(2)读取磁盘文件并输出所有学生的籍贯信息;(3)按学号或姓名查询其籍贯(4)按籍贯查询并输出该籍贯的所有学生(5)能添加、删除和修改学生的籍贯信息(6)显示输出四川籍和非四川籍的所有学生的信息并可分别存盘.1.2 软件功能说明1.2.1 功能(分析)说明图该软件功能分析说明图如1-2-1所示:上面是开始菜单中显示的主页面。
1.2.2 各项(功能说明):(1)学生基本信息的录入:这部分的功能主要包括信息的录入,首先按程序提示输入学生的学号,接着是分别输入有关学生的相关信息包括姓名、籍贯等。
在录入数据的同时,系统将对信息的合法性进行检验,若用户录入了不合法的数据系统将会作出提示,并且要求重新输入。
如果合法性成立则录入完毕后系统将返回主业面。
主业面中还有显示学生全部信息,按学号和姓名查询,输出四川籍和非四川籍的学生,退出等功能,并且这些函数用后的信息都会写到你所指定的文本文件中。
(2)显示学生信息:此功能是将原录入的学生信息读出,并在屏幕上显示出来,并且录入到你所指定的文本文件中。
(3)学生信息读取:进入该项功能界面后,用户可以对学生的个人信息进行查看,并且录入到你所指定的文本文件中。
(4)按学号或姓名查找学生信息:此项功能可以根据用户输入的选择查出该学生的所有信息。
并且录入到你所指定的文本文件中。
(5)删除和修改个人信息:选择次项功能后,系统将自动在屏幕上显示按姓名学号录入原来同学的个人信息,输入后进行修改,并且录入到你所指定的文本文件中。
(7)显示输出四川籍和非四川籍的所有学生的信息:选择此项功能后,系统将自动在屏幕上显示四川籍学生分为一组,非四川籍学生分成一组。
(8)退出系统,结束任务。
如果无意按错了则可以按提示重新返回主页面。
第2章软件设计环境与原理2.1 设计环境与模块的划分2.1.1 软件设计环境Microsoft Visual C++ 6.02.1.2 功能(模块层次图):该软件主要组成模块和各个模块之间的调用关系如图2-1:2.2 软件设计主要原理2.2.1 采用的主要数据结构类型该程序采用的是结构体类型来处理学生的所有基本信息,如下所述。
包含的库函数有:#include<stdio.h>#include<string.h>#include<windows.h>用于界面的设计#include <ctype.h>比较字符串#include <stdlib.h>文件的使用包含的函数有:main() //主函数recordplatform()//系统标题函数xuanzekuangjia()//选择框架函数tuichuxitong()//0.退出学生籍贯管理系统函数shuruxinxi()//1.输入学生信息函数Xianshi信息()//2.显示信息函数xinxitongji()//3.学生信息统计函数xiugaishanchuxinxi()//4.学生信息修改删除函数tiaojianchaxun()//5.学生条件查询函数tiaojianshuchu()//6.条件输出函数gengxinxinxi()//7.更新学生信息函数第3章软件的设计过程3.1 各软件模块之间的调用方式程序中各个模块之间的调用方式主要是通过函数的调用实现的。
先使用主函数调用框架函数,然后在框架函数中调用不同功能的函数,达到对学生信息管理的目的。
3.2 数据保存方式以及格式本学生信息系统将能自动把输入的学生信息保存为C://1 .txt文件中,在文件的读取时,系统将能自动把该二进制文件读出,并在屏幕上显示出学生信息。
前提是必须在C盘中创建1 .txt文件。
第4章设计结果与错误分析与错误解决方案对此程序的一些细节和具体的操作方法加以说明,说明如下:利用#include<windows.h>设计的界面。
下面是框架设计代码和所包含的调用函数:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<math.h>#include<windows.h>//开始界面#define MAX 50typedef struct{char num[50];char name[50];char address[50];}Student;Student stu[MAX];int n;int t;int s=0;void Input();void Display();void Readfile();void Modify();void Save1();void Save2();void Dis();void Find(int i);void main(){char choose;do{if(s==0){int M=35;Sleep(1);printf("\n");printf(" 现在载入完成\n");Sleep(200);printf("\n");printf("\n");Sleep(10);printf("\n");Sleep(10);printf(" 欢迎大家进入-------☆-【李忠凯】-☆------籍贯管理系统\n");Sleep(200);//延时system("pause"); //暂停system("cls"); //清屏fflush(stdin);s++;}printf("**********************************************************");printf(" 1.输入信息并存档\n"); printf(" 2.读取信息并显示\n");printf(" 3.按学号或姓名查询籍贯\n");printf(" 4.修改(删除)指定姓名或学号的学生的姓名和籍贯\n");printf(" 5.显示输出四川,非四川学生信息\n");printf("**********************************************************");printf("\n");scanf("%s",&choose);switch(choose){case '1':{Input();Save1();}break;case '2':{ Readfile();Display();}break;case '3':{Find(1);Readfile();}break;case '4':{ Find(0);Readfile();}break;case '5':{Readfile();Dis();}break;default:printf("输入错误,请重新输入:\n");}}while(1);}void Save2(int t){FILE* fp;fp=fopen("student.dat","w");fprintf(fp,"%s %s %s\n",stu[t].num,stu[t].name,stu[t].address);fclose(fp);//fp.clear();}上面是我设计的程序的主页面,供使用者选择任务。