C 语言课程设计 最终答辩版 学生通讯录管理系统

<span style="font-family: Arial, Helvetica, sans-serif;">/*</span>
******************************************************************
   C语言的课程设计 现在开源  希望可以帮助到一些  测试文件没有附上 自己写一份就行  
   @课题设计:学生通讯录管理系统
   @设计时间:2014.2.24
   @设计人:  2012级软件工程专业 刘小洋
   @设计题目:学生通讯录管理系统
   @计算机配置:windows 7 旗舰版 32位操作系统 内存:4G CPU :i5--3210
   @运行环境:Microsoft Visual C++ 6.0
   @设计思路:建立8个子函数,分别用来添加、显示、删除、查询、修改、保存,读取和统计通讯录信息,完成通讯录的功能。
			  主函数采用密码,保护了通讯录数据,可以调用8个子函数,分别完成添加记录、显示记录、删除记录、查询记录、
			  修改记录、保存记录、读取记录、统计记录、退出系统等功能。在主函数中可以以1、2、3、4、5、6、7、8、9、10、0数字
			  键分别可以执行某个功能模块。最后在对文件进行加密、解密功能。
   @扩展功能:利用system系统函数,实现对程序功能的扩展,为了方便用户和大众软件的设计方法,利用系统函数system调用windows
              dos 命令实现对计算机的关机,重启,定时关机,注销等功能。
   @主要函数:int Menu_select()              系统用户登录后的菜单
              int Input(Student stu[])       添加记录函数
              int sum(Student stu[])         统计记录函数(男 女 总  人数)
              void Display(Student stu[])    显示记录函数
			  int Delete(Student stu[])      删除记录函数
			  void Chick(Student stu[])      查找记录函数
			  void Change(Student stu[])     修改记录函数
			  void WritetoText(Student stu[]) 写入文件函数
			  void Read(Student stu[])       读取文件函数
			  void Menu()                     对应int Menu_select()函数的子菜单 他调用除主函数意外的所有函数
			  void encfile(char *in_filename,char *pwd,char *out_file) 文件加密函数
			  void unencfile(char *in_filename,char *pwd,char *out_file) 文件解密函数
			  int  unpasswd()                解密函数
			  int passwd()                   调用文件加密的函数
			  int main()                     主函数设置密码功能 调用 Menu 函数
  @通讯录密码:用户名:lhy 密码 :201314
******************************************************************
*/
//#include"stdafx.h"
#include"stdio.h"
#include<stdlib.h>
#include<conio.h>
#include<string.h> // 头文件
static int n=0;    // 定义静态全局变量,存储已经读入记录的条数。
void encfile(char *in_filename,char *pwd,char *out_file) ; //函数声明
int passwd();                                              //函数声明
int  unpasswd();                                           //函数声明
void shut();                                               //函数声明,c语言关机的函数。
//定义结构体用来存放学生的学号、姓名、性别、工作单位、电话号码、邮箱的信息。
typedef struct
	{
		long  score;               /*学号*/
		char name[10];             /*姓名*/
		char sex[8];			   /*性别*/
		char adds[20];			   /*工作单位*/
		char num[15];              /*电话号码*/
		char email[20];			   /*邮箱*/
	}Student;
Student T[100];
/*
主菜单 利用 do while、printf简单实现 调用系统函数显示当前系统的时间和日期。
这个函数主要供void Mean函数调用。
*/
int Menu_Select()
	{
		char c;
		do{
		system("cls");    //清屏
		system("date /T");//显示系统当前日期
		system("time /T");//显示系统当前时间
		system("color 0a");//改变控制台前景,背景颜色
		printf("\t\t\t***学生通讯录***** \n");
		printf("\t\t\t******************\n");
		printf("\t\t\t* 1. 添加记录  *\n");
		printf("\t\t\t* 2. 显示记录  *\n");
		printf("\t\t\t* 3. 删除记录  *\n");
		printf("\t\t\t* 4. 查询记录  *\n");
		printf("\t\t\t* 5. 修改记录  *\n");
		printf("\t\t\t* 6. 保存记录  *\n");
		printf("\t\t\t* 7. 读取记录  *\n");
		printf("\t\t\t* 8. 统计记录  *\n");
		printf("\t\t\t* 9. 文件解密  *\n");
		printf("\t\t\t* *. 其他功能  *\n");
		printf("\t\t\t* 0. 退出程序  *\n");
		printf("\t\t\t*****************\n");
		printf("\t\t\t请您选择(0-9)选择 其他功能 请输入':':");
		c=getchar();
		}while(c<'0'||c>'10');
		return(c-'0');
	}

/*
添加记录功能函数,利用scanf 重复对结构体每一个要输入的学生信息添加,
最后输入Y N 是否要继续添加记录 利用 while对输入的内容比较。
这里需要的注意的是  
** 如果已经有文件读入,对n+i是对当前文件的下一条进行添加。
*/
int Input(Student stu[])
{
    int i=0;
    char sign;
	while(sign!='n'&&sign!
  • 21
    点赞
  • 157
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
设计一个《学生通讯录管理系统》,在动态链表程序的基础上,设计要求如下 (必须使用结构体和链表等数据结构) 1建立文件 存储文件使用指定文件名或默认文件名; 可以不保存输入记录,但需要确认是否保存输入记录 如果已有文件,只能在其后追加; 新增记录可以不存入原文件中,以可以用原来的文件覆盖内存的内容; 可以将多个个文件记录合并到一个文件中; 2文件的存取和显示 可以单独存取文件; 可以随时显示内存中记录的全部内容; 可以直接存取默认文件或指定文件; 3删除记录 可以按“姓名”或“电话”方式删除记录并更新内存链表内容; 能给出被删除的信息,输出没有找到的信息; 如果已经是空表,上出时应给出信息并返回主菜单; 如果没有要删除的信息,输出没有找到的信息; 删除操作仅限于内存,只有执行记录时,才能覆盖原记录; 4查询记录 可以按“姓名”或“电话”或“宿舍”方式查询记录 能给出查询记录的信息; 如果查询的信息不存在,输出没有找到的信息; 5 整体功能 a可以随时检索、删除、或增加新记录,保存或取消新的记录 b使姓名可由16位字符和数字的混合编码组成 c使电话号码可由18位字符和数字组成 d将输出信息加上输出信息信息栏,例如 姓名 电话 性别 年龄 生日 宿舍 李四 1234 男 21 7月1日 东二333 e使用菜单实现功能的正确的选择 f 所有节点信息都是动态生成。 6测试程序 应列出测试大纲对程序进行测试; 应保证测试用例测试到程序的各种边缘情况

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值