C课程设计:学生通讯管理系统.docx

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C课程设计:学生通讯管理系统

学院: 学院: 计算机学院班级: 计算机科学与技术112班指导老师: 强赞霞姓名: 康岩岩完成日期: 2011年6月18日课程设计报告一 课程设计目的及要求学生通讯系统学生通信录信息包括:姓名、学号、年龄、性别、家庭住址、联系电话、寝室号等信息。现要求编写程序来完成如下功能:学生通信录信息的输入学生的通信录信息删除和修改学生的通信录信息查询和统计功能学生的通信录信息输出显示。二 课程设计具体实现1.总体设计学生通讯管理系统学生通讯管理系统只修改学号管理员登陆系统普通用户登陆系统删除信息退出系统密码校验增加信息查找信息修改信息修改密码全部修改只修改姓名 只修改学号管理员登陆系统普通用户登陆系统删除信息退出系统密码校验增加信息查找信息修改信息修改密码全部修改只修改姓名2.详细设计在进行系统的各项功能介绍之前,有必要先说一下我所选的课程项设计的主要思路。这个系统的核心部分就是结构体链表,它贯穿整个程序。一切数据的增、删、查、改都要以它为支撑。整个程序其实就是在操作一张很大的链表。我在15周时就已经开始考虑课程设计题目,当时是想先做一个关于面向过程的课题,立马就考虑的先用结构体链表做为数据的容器。而且已经做成型了。后来老师您把题目给改了,要求都用面向对象做,我是考虑过用vector或者是list来做数据的容器的,但想想程序几经初成型,就不改变容器了,就直接把类的对象做为结构体的数据部分,程序当然也有较大改动,但基本框架是没有变的。先来说链表的构造,在主菜单下选择功能之前,链表就已经认构造完毕,程序按行读取文本文件,每读一行,便对其进行分割。分割出来的字符串为学生类对象对应的每一项信息。在分割字符串时,我按字符‘@’进行分割(当然,在数据存储时也是按行存储,且每项信息以‘@’分开),其关键代码如下:void read_info(){ //读取文件head=NULL;Student s; //构造学生类对象ifstream in(student_info.txt);string read;int no;while(getline(in,read)) {//按行读取no=0;int i;while(read.find_first_of(@)!=-1){string temp;i=read.find_first_of(@);temp=read.substr(0,i);if(no==0){=temp; //赋予姓名}if(no==1){s.tel=temp; //赋予电话}if(no==2){s.xuehao=temp;//赋予学号}if(no==3){s.sex=temp; //赋予性别}if(no==4){s.banji=temp; //赋予班级}no++;read=read.substr(i+1);}s.dizhi=read; //赋予地址if(.size()0s.xuehao.size()0){ //判断学号与姓名是否为空insert_into_list(s); //插入链表}}in.close();}void insert_into_list(Student st){struct list*curr,*ne;curr=(struct list*)new(struct list); //申请空间curr-student=st;ne=head;if(head==NULL){ //如果头指针为空插入第一条数据head=curr;curr-next=NULL;}else{ while(ne-next!=NULL) ne=ne-next;//遍历结构体,直到尾ne-next=curr;curr-next=NULL;}}Txt文件才的储存形式如下:所以,能正确的读取所有数据在于字符串的分割,当然用此种方法读到的数据全是字符串,只是本系统为学生通讯系统,并不需要其他类型的数据,如有必要,字符串也可以转化。就这样,当文件按行读取完毕时,链表中的每个结构体都包含有一个不同的学生类对象,至此,链表已初始化完毕。在程序接下来的运行过程中,对数据的操作就是直接操作链表的节点。下面对系统功能进行介绍:登陆系统:通过欢迎界面后,将进入登陆方式选择界面,如图:若选择以普通用户身份登录系统,会出现以下界面:普通用户的功能包括:1.增加数据;2.查询数据;3.浏览数据;4.数据统计增加数据功能的界面如下:用户根据系统提示,对单个学生信息进行逐项输入,按回车键结束输入。除姓名与学号外,其他信息只要直接按回车键就可以跳过输入,系统将保存为空。对信息的输入还要有一定的规范性,如学号与电话为纯数字;姓名长度最多只有四个字;性别若有,只能为男或女,系统会自动对输入的信息进行校验,包括规范性校验与数据是否重复校验。若无法通过校验,数据不会保存。其关键代码

文档评论(0)

almm118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档