[it计算机]c课程设计-电话本管理完整版内容摘要:
//欢迎菜单函数 }。 friend_node *temp_ptr。 friend_node *head_ptr。 //全程变量,链头指针 friend_node *current_ptr。 //全程变量,用于指明当前在链表中的位置 time_t time_date。 // time_t 里面放的是星期、月份、日期、时间及年份等 数据 tm *CurrentTime。 //主函数 int main(void) { friend_node record。 ()。 } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //各种所需函数 . //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ void friend_node::wele()//欢迎菜单函数 { coutendlendlendlendlendlendlendlendlendlendl。 cout \t\t\t欢迎您来到电话本管理系统 \n\n\n。 cout \t\t\t请敲击 Enter键,继续操作。 (pause)。 system(cls)。 //执行系统命令: cls清屏 int choice。 head_ptr = NULL。 // 初始化链表头指针。 load_list_from_file()。 //读取数据。 do { //主菜单显示 cout \t 《 主 菜 单 》endlendl。 cout \t1 添加新的电话记录 \n。 cout \t2 显示所有电话记录 \n。 cout \t3 根据姓氏查找电话号码 \n。 cout \t4 根据姓名查找号码(支持模糊查找 ,可以使用 *和 ?) \n。 cout \t5 智能查询电话号码(姓名首字母查询) \n。 cout \t6 删除指定的号码记录 \n。 cout \t7 修改指定的号码记录 \n。 cout \t0 退 出 该 程 序 ( 只有选 0 退 出 才 能 将 记 录 保 存 至 文 明德、博学、诚智、创新 17 件 )\nendl。 cout \t请输入你想进行的操作 :。 cin choice。 while(!cin)//当输入的数据类型与定义的变量类型不一致 { char str[20]。 ()。 //清空输入缓冲区 (str,20)。 //接收原输入数据 cout非法的输入,请输入一个整数。 endl。 cinchoice。 //重新输入 } handle_choice(choice)。 //根据选择调用函数。 } while(choice != 0)。 // 选择结束后退出循环 . } //此函数结束 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ void friend_node::handle_choice(int choice) // 根据用户选择( choice)调用对应处函数 { switch(choice) { case 1: //添加新的电话记录 add_record()。 // 调用相应函数 . break。 case 2: //显示所有电话记录 display_list()。 // 调用相应函数 break。 case 3: //根据姓氏查找电话号码 search_by_lastname()。 //调用相应函数 break。 case 4: // 根据姓名查找号码(支持模糊查找 ,可以使用 *和 ?) search_by_name()。 //调用相应函数 break。 case 5: //智能查询电话号码(姓名首字母查询) look_char()。 //调用相应函数 break。 case 6: //删除指定的号码记录 delete_record()。 break。 case 7: //修改指定的号码记录 modify_record()。 break。 case 0: // 退出该程序 write_list_to_file()。 //保存数据 if(head_ptr != NULL) // 若链表不为空,删除动态开辟的空间 明德、博学、诚智、创新 18 { delete_list()。 } break。 default : //若输入错误 , cout 您输入的数据有误 \n。 break。 }//switch } // 此函数结束 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ friend_node* friend_node::add_record() // 在 链表中增加一个记录 { friend_node *new_rec_ptr。 //定义结点 . new_rec_ptr = new friend_node。 // 开辟空间 if(new_rec_ptr != NULL) // 成功分配空间 { system(cls)。 // 录入数据信息 . (20,39。 \n39。 )。 cout 请输入你要添加的人员的姓 :。 (new_rec_ptrlast_name,20)。 (20,39。 \n39。 )。 cout 请输入你要添加的人员的名 :。 (new_rec_ptrfirst_name,15)。 (20,39。 \n39。 )。 cout 电话号码 :。 (new_rec_ptrphone_num,15)。 (20,39。 \n39。 )。 time_date=time(0)。 //time( )函数是取得自格林 威治时间 1970 年 1 月 1 日 00: 00所经过的秒数 CurrentTime=localtime(amp。 time_date)。 //localtime( )函数是将类型为 time_t的时间值,放入结构类型为 tm的结构中 new_rec_ptryear=CurrentTimetm_year+1900。 //将当前时间变为标准形式 new_rec_ptrmonth=CurrentTimetm_mon+1。 //取出月份赋给类中的私有数据Month,tm_mon是从 0开始, //表 示 12月份依次为 0~ 11,故真实月份需加一 new_rec_ptrday=CurrentTimetm_mday。 //取出当前时间的天数 new_rec_ptrhour=CurrentTimetm_hour。 //取出当前时间的小时数 new_rec_ptrminute=CurrentTimetm_min。 //取出当前时间的分钟数 insert_node(new_rec_ptr)。 //插入连表 } else // 若录入有 误,显示提示 { cout 内存分配错误,无法添加新记录。 \n。 明德、博学、诚智、创新 19 } system(cls)。 return new_rec_ptr。 } //此函数结束 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ void friend_node::insert_node(friend_node *new_rec_ptr) //将一个由 new_rec_ptr 指向的新节点插入链表中 { friend_node *before_ptr。 friend_node *after_ptr。 if(head_ptr == NULL) { // 如果是空链表,插入点是唯一的 new_rec_ptrnext = NULL。 head_ptr = new_rec_ptr。 } else {//else1 if(strcmp(new_rec_ptrlast_name, head_ptrlast_name) 0) { // 如果新结点小于头结点 , make_node_new_head(new_rec_ptr)。 // 新结点作为头结点 . } else // 否则根据姓氏插入正确位置 {//else2 current_ptr = position_insertion_point(new_rec_ptrlast_name)。 before_ptr = current_ptr。 after_ptr = current_ptrnext。 if(after_ptr == NULL) // 如果下一结点为尾结点,将新结点作为尾结点 { add_node_to_end(new_rec_ptr)。 } else // 否则插入链表中 { before_ptrnext = new_rec_ptr。 new_rec_ptrnext = after_ptr。 } }//else2 }//else1 } //此函数结束 //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ friend_node *friend_node::position_insertion_point(char lastname[20]) { // 根据姓氏,返回其在链表中的正确位置。 新节点即将插入此点。 char temp_name[20]。 明德、博学、诚智、创新 20 friend_node *temp_ptr。 int tempint。 if(head_ptrnext != NULL) // 如果多于一个结点的链表,查找结点在 链表中的正确位置 { current_ptr = head_ptr。 temp_ptr = current_ptrnext。 strcpy(temp_name, temp_ptrlast_name)。[it计算机]c课程设计-电话本管理完整版
相关推荐
户是亮色,表示该用户的 代理模块正常运行 . 计算机分组操作 新建分组 在计算机导航条里显示在网络上运行客户端的计算机和用户,为了方便管理,可以根据实际情况设定一些分组,将这些计算机和用户在逻辑上划分到不同的组中,通过控制台的计算机和用户分组的相关操作,可以管理所有运行客户端代理模块的计算机和用户。 选择整个网络或某个分组,选择菜单 “文件 新建组 ”
信息的结构体 { char name[10]。 //名字的长度允许最大为十 char no[10]。 //学号的长度允许最大为十 char sex。 int age。 //定义年龄为整型 char bnote[100]。 //备注的长度为允许最大 100 }。 主函数:利用无限次循环例 如 if(;;) while() 和 switch()语句实现各函数的调用
份好数据;一旦将 Dell 出厂镜像备份到 U盘,建议不要再在此设备上备份数据,防止破坏备份文件导致无法正常恢复。 Dell 恢复工具 操作系统和 应用程序介质 点击 “ 创建操作系统和应用程序介质 ” ,我们可以刻录出一张完整的 Windows7 系统安装光盘;您可能随机没有配置出厂系统安装光盘,点击该选项,即可实现。 有关刻录 OS光盘的详细界面,请参考: 更多详细的备份镜像和备份系统界面
监查人员可以通过互联网登录系统 后台 ,进入物价监管平台 ,监管所有停车收费费率设 置情况。 二是现场查看手持 POS 实际执行费率。 三 是通过 ”价格通 ”手持终端 ,现场输入车辆车牌号码 , 立即可以访问试点项目系统后台 数据库 ,查看针对 该车辆的实际收费标准和执行情况 . (七 )利用电子地图技术帮助静态交通管理 . 试点采用电子地图技术手段 ,实现按多种方式
低行车质量 .而且更重要 的是车辆长期的冲击作用 .会加 剧梁端的疲劳破坏 ,进而影响桥 梁的使用寿命 . 桥梁构件交付使用 后 .会逐渐出 现裂缝 ,破损 ,锈蚀 ,变位等病 害 .但由于在日常维修养护中缺 乏经常性的检查 ,早期病害不能 被及时发现而且桥梁维修应急 经费的短缺 .致使早期病害得不 到有效处理 .最终使得钢筋锈 蚀 ,小裂缝发展成大裂缝 ,活动 支座失去活动能力 ,混凝土发生
主要供应商 ,他们是 ”大卖场 ”生存和发展的保 障性条件 .对供应商的级别分类将有助于实现 “大卖场 ”资源的最有效利用 ,也能获得最大化 的利益组合 .在具体分类的时候 ,家乐福考虑 的指标参考值主要包括 :? (1)产品品牌分类及其组合 .这是最基本 的条件之一 ,包括产品的品牌 ,销售毛利 或者是 否属于具有当地特色的产品类别 ,而且在代理 规模上是地区内比较大的 ,在代理级别上是比