精华内容
下载资源
问答
  • 本文实例为大家分享了C语言实现系统关机注销的具体代码,供大家参考,具体内容如下 #include<stdio> //printf #include<stdlib> //system ... printf("0:退出系统\n"); printf("请输入你要选择的功能0—
  • C语言通讯录系统

    2012-03-30 20:56:11
    C/C++语言通讯录系统 包括从键盘录入、从文件导入、查询记录、修改记录、删除记录、按姓名排序、显示全部记录、退出
  • 实现的通讯录功能有:查看通讯录、添加联系人、删除联系人、查询联系人、保存并退出。 通过txt文件保存和读取通讯录数据。 #include <stdio.h> #include <string.h> #include <Windows.h>...

    实现的通讯录功能有:查看通讯录、添加联系人、删除联系人、查询联系人、保存并退出。

    通过txt文件保存和读取通讯录数据。

     

    #include <stdio.h>
    #include <string.h>
    #include <Windows.h>
    
    void showMenu();
    void initL();
    void addPerson();
    void displayPersons();
    void deletePerson();
    void saveList();
    void searchPerson();
    
    struct person_node {
    	char name[10];
    	char tel_num[20];
    	char company_or_school[20];
    	char sex[5];
    	person_node* next;
    };
    
    person_node* L = (person_node *)malloc(sizeof(person_node));
    
    int main()
    {
    	initL();
    
    	int k;
    	while (1)
    	{
    		system("cls");
    		showMenu();
    		scanf("%d", &k);
    		if (k == 1)
    		{
    			system("cls");
    			displayPersons();
    		}
    		else if (k == 2)
    		{
    			system("cls");
    			addPerson();
    		}
    		else if (k == 3)
    		{
    			system("cls");
    			deletePerson();
    		}
    		else if (k == 4)
    		{
    			system("cls");
    			searchPerson();
    		}
    		else if (k == 0)
    		{
    			saveList();
    			exit(0);
    		}
    	}
    
    	system("pause");
    	return 0;
    }
    
    void showMenu()
    {
    	printf("------------------------------------------------------\n");
    	printf("\t\t\t通讯录系统\n\n");
    	printf("\t\t  1.查看通讯录\n");
    	printf("\t\t  2.添加联系人\n");
    	printf("\t\t  3.删除联系人\n");
    	printf("\t\t  4.查询联系人\n");
    	printf("\t\t  0.保存并退出\n");
    	printf("------------------------------------------------------\n");
    }
    
    void addPerson()
    {
    	int k = 1;
    
    	while (k == 1)
    	{
    		printf("-------------------新建联系人--------------------------------\n");
    		person_node* new_person = (person_node *)malloc(sizeof(person_node));
    		printf("请输入联系人姓名:");
    		scanf("%s", new_person->name);
    		printf("请输入联系人性别:");
    		scanf("%s", new_person->sex);
    		printf("请输入联系人电话:");
    		scanf("%s", new_person->tel_num);
    		printf("请输入联系人单位:");
    		scanf("%s", new_person->company_or_school);
    		printf("------------------------------------------------------\n");
    
    		person_node* ptr = L;
    		while (ptr->next != NULL) //ptr指向链表L末尾结点
    			ptr = ptr->next;
    
    		ptr->next = new_person;
    		new_person->next = NULL;
    
    		printf("...输入'0'返回菜单...输入'1'继续添加...\n");
    		scanf("%d", &k);
    		if (k == 0)
    			return;
    	}
    }
    
    void displayPersons()
    {
    	person_node* ptr = L->next;
    	if (ptr == NULL)
    		printf("...暂未添加任何联系人...\n");
    	else
    	{
    		while (ptr != NULL)
    		{
    			printf("->姓名:%s", ptr->name);
    			printf("\t性别:%s", ptr->sex);
    			printf("\t电话:%s", ptr->tel_num);
    			printf("\t学校或公司:%s<-", ptr->company_or_school);
    			printf("\n");
    			ptr = ptr->next;
    		}
    	}
    	printf("...输入'0'返回菜单...");
    	int k = 10;
    	while (k != 0)
    	{
    		scanf("%d", &k);
    	}
    	return;
    }
    
    void initL()
    {
    	L->next = NULL;
    
    	FILE *fp;
    	if ((fp = fopen("list_file.txt", "r")) == NULL)
    	{
    		printf("...打开联系人文件时出错...\n");
    		return;
    	}
    
    	person_node* tail_ptr = L;
    	char name[10], tel_num[20], company_or_school[20], sex[5];
    	while (!feof(fp))
    	{
    		fscanf(fp, "%s%s%s%s", name, sex, tel_num, company_or_school);
    		person_node* new_node = (person_node *)malloc(sizeof(person_node));
    		strcpy(new_node->name, name);
    		strcpy(new_node->sex, sex);
    		strcpy(new_node->tel_num, tel_num);
    		strcpy(new_node->company_or_school, company_or_school);
    		tail_ptr->next = new_node;
    		new_node->next = NULL;
    		tail_ptr = new_node;
    		getc(fp);
    	}
    	fclose(fp);
    }
    
    void deletePerson()
    {
    	int k = 1;
    	while (k == 1)
    	{
    		printf("-------------------删除联系人--------------------------------\n");
    		person_node* ptr = L->next;
    		person_node* pre = L;
    		if (ptr == NULL)
    			printf("...通讯录中暂无联系人...\n");
    		else
    		{
    			printf("请输入删除联系人的姓名:");
    			char del_name[10];
    			scanf("%s", del_name);
    			while (ptr != NULL)
    			{
    				if (strcmp(ptr->name, del_name) == 0)
    				{
    					printf("...删除联系人条目...\n");
    					printf("->姓名:%s", ptr->name);
    					printf("\t性别:%s", ptr->sex);
    					printf("\t电话:%s", ptr->tel_num);
    					printf("\t学校或公司:%s<-", ptr->company_or_school);
    
    					printf("\n确认删除吗?y/n\n");
    					char input = '0';
    					while (input != 'y' && input != 'n')
    					{
    						scanf("%c", &input);
    					}
    					if (input == 'n')
    					{
    						ptr = ptr->next;
    						pre = pre->next;
    						continue;
    					}
    					else if (input == 'y')
    					{
    						pre->next = ptr->next;
    						free(ptr);
    						ptr = pre->next;
    						continue;
    					}
    				}
    				ptr = ptr->next;
    				pre = pre->next;
    			}
    		}
    		printf("------------------------------------------------------\n");
    		printf("...输入'0'返回菜单...输入'1'继续删除...\n");
    		scanf("%d", &k);
    		if (k == 0)
    			return;
    	}
    }
    
    void saveList()
    {
    	if (L->next == NULL)
    		return;
    
    	FILE *fp;
    	if ((fp = fopen("list_file.txt", "w")) == NULL)
    		printf("...打开联系人文件时出错...\n");
    
    	person_node* ptr = L->next;
    	while (ptr != NULL)
    	{
    		fprintf(fp, "\n%s %s %s %s", ptr->name, ptr->sex, ptr->tel_num, ptr->company_or_school);
    		ptr = ptr->next;
    	}
    	fclose(fp);
    }
    
    void searchPerson()
    {
    	int k = 1;
    	while (k == 1)
    	{
    		printf("-------------------查询联系人--------------------------------\n");
    		char search_name[10];
    		printf("请输入查询姓名:");
    		scanf("%s", search_name);
    		person_node* ptr = L->next;
    		if (ptr == NULL)
    			printf("...通讯录中暂无联系人...\n");
    		else
    		{
    			int count = 0;
    			while (ptr != NULL)
    			{
    				if (strcmp(ptr->name, search_name) == 0)
    				{
    					count++;
    					printf("...查询到联系人条目%d...\n", count);
    					printf("->姓名:%s", ptr->name);
    					printf("\t性别:%s", ptr->sex);
    					printf("\t电话:%s", ptr->tel_num);
    					printf("\t学校或公司:%s<-\n", ptr->company_or_school);
    				}
    				ptr = ptr->next;
    			}
    		}
    		printf("------------------------------------------------------\n");
    		printf("...输入'0'返回菜单...输入'1'继续查询...\n");
    		scanf("%d", &k);
    		if (k == 0)
    			return;
    	}
    }
    

     截图:

     

    转载于:https://www.cnblogs.com/dew0/p/10597668.html

    展开全文
  • C语言开发简单的学生成绩管理系统(附源码)

    万次阅读 多人点赞 2019-04-15 21:08:22
    学生成绩管理系统 开发语言:C语言 开发工具:Visual Studio 2019 开发时间:2019.4.14 开发者:summer @一、系统使用展示 @二、系统功能 @三、菜单 ...@十二、退出系统 @十三、出错 一、系统使用展示 ...

    学生成绩管理系统

    开发语言:C语言
    开发工具:Visual Studio 2019
    开发时间:2019.4.14
    开发者:summer
    CSDN源码下载:C语言开发简单的学生成绩管理系统
    Github项目源码下载:C语言开发简单的学生成绩管理系统
    百度网盘源码下载:链接:https://pan.baidu.com/s/1nF53PtRtbuFCNvG7hfylPw 提取码:ar5g

    @一、系统使用展示

    @二、系统功能

    @三、菜单

    @四、录入学生信息

    @五、打印学生信息

    @六、保存学生信息

    @七、读取学生信息

    @八、统计所有学生人数

    @九、查找学生信息

    @十、修改学生信息

    @十一、删除学生信息

    @十二、退出系统

    @十三、出错

    一、系统使用展示

    Alt

    二、系统功能

    1. 系统功能介绍
    1.录入学生信息:用户可以自由输入学生信息到系统中。
    2.打印学生信息:格式化展示系统中的学生信息。
    3.保存学生信息:将系统中的学生信息保存到本地文档。
    4.读取学生信息:读取本地文档中的学生信息并显示。
    5.统计所有学生人数
    6.查找学生信息:根据用户给定的信息(学号)在系统中查找该学生的信息
    7.修改学生信息
    8.删除学生信息
    0.退出系统
    
    1. 系统main函数,while循环在外,系统程序能够持续运行,switch判断语句进行功能选择与函数切换。
    int main() {
    	while (1)
    	{
    		//打印菜单
    		Menu();
    		//读取一个字符 整数,字符在内存中映射为ASCII码
    		char ch = _getch();
    
    		switch (ch)
    		{
    		case '1'://1.录入学生信息
    			InputStudent();
    			break;
    		case '2'://2.打印学生信息
    			PrintStudent();
    			break;
    		case '3'://3.保存学生信息
    			SaveStudent();
    			break;
    		case '4'://4.读取学生信息
    			ReadStudent();
    			break;
    		case '5'://5.统计所有学生人数
    			CountStudent();
    			break;
    		case '6'://6.查找学生信息
    			FindStudent();
    			break;
    		case '7'://7.修改学生信息
    			ChangeStudent();
    			break;
    		case '8'://8.删除学生信息
    			DeleteStudent();
    			break;
    		case '0'://0.退出系统
    			return 0;
    			break;
    		default:
    			printf("输入有误,没有该功能\n\n");
    			system("pause");  //暂停
    			system("cls");    //清屏
    			break;
    		}
    	}
    
    	return 0;
    }
    

    三、菜单

    1. 菜单显示
    //菜单
    void Menu() {
    	printf("*************************************************\n");
    	printf("*\t欢迎使用高校学生成绩管理系统V1.0\t*\n");
    	printf("*\t\t请选择功能\t\t\t*\n");
    	printf("*************************************************\n");
    	printf("*\t\t1.录入学生信息\t\t\t*\n");
    	printf("*\t\t2.打印学生信息\t\t\t*\n");
    	printf("*\t\t3.保存学生信息\t\t\t*\n");
    	printf("*\t\t4.读取学生信息\t\t\t*\n");
    	printf("*\t\t5.统计所有学生人数\t\t*\n");
    	printf("*\t\t6.查找学生信息\t\t\t*\n");
    	printf("*\t\t7.修改学生信息\t\t\t*\n");
    	printf("*\t\t8.删除学生信息\t\t\t*\n");
    	printf("*\t\t0.退出系统\t\t\t*\n");
    	printf("*************************************************\n");
    }
    
    1. 打印菜单

    scanf()、getchar()输入后均需要按enter,而getch()不用

    	//打印菜单
    	Menu();
    	//读取一个字符 整数,字符在内存中映射为ASCII码
    	char ch = _getch();
    

    四、录入学生信息

    1. 定义学生结构体、链表节点结构体
    //定义一个学生
    typedef struct tagStudent {
    	char szName[20];	//姓名
    	char szSex[4];		//性别
    	int  nAge;			//年龄
    	int  nStuNo;		//学号
    	int  nScore;		//成绩
    }Student;
    
    //链表
    //节点
    typedef struct tagNode
    {
    	Student stu;			//学生信息
    	struct tagNode* pNext;	//指向下一个节点
    }Node;
    
    //创建头节点
    Node* g_pHead = NULL;		//指向头节点
    
    1. 利用学生结构体,以及链表操作输入学生信息
    //1.录入学生信息
    void InputStudent() {
    	//创建一个人,在堆中分配内存
    	Node* pNewNode = (Node*)malloc(sizeof(Node));
    	//指针下一个指向空
    	pNewNode->pNext = NULL;
    
    	//查找链表的尾结点
    	Node* p = g_pHead;
    	while (g_pHead != NULL && p->pNext != NULL)
    	{
    		p = p->pNext;
    	}
    
    	//把节点插到链表的尾节点
    	if (g_pHead == NULL) {
    		g_pHead = pNewNode;
    	}
    	else {
    		p->pNext = pNewNode;
    	}
    
    	//录入学生信息
    	printf("请输入学生姓名:\n");
    	scanf_s("%s", pNewNode->stu.szName, sizeof(pNewNode->stu.szName));
    	printf("请输入性别:\n");
    	scanf_s("%s", pNewNode->stu.szSex, sizeof(pNewNode->stu.szSex));
    	printf("请输入学生年龄:\n");
    	scanf_s("%d", &pNewNode->stu.nAge);
    	printf("请输入学号:\n");
    	scanf_s("%d", &pNewNode->stu.nStuNo);
    	printf("请输入成绩:\n");
    	scanf_s("%d", &pNewNode->stu.nScore);
    
    	printf("学生信息录入成功。\n\n");
    	system("pause");
    	system("cls");
    }
    

    五、打印学生信息

    1. 读取链表结构,输出学生信息。先进行判空处理,如果无学生信息则输出提示信息,反之则正确输出学生信息。
    //2.打印学生信息
    void PrintStudent() {
    
    	system("cls");
    	//遍历链表
    	Node* p = g_pHead;
    	if (p == NULL) {
    		printf("系统中暂无学生信息,请录入后再来打印查看。\n\n");
    	}
    	else {
    		printf("*********************************************************************************\n");
    		printf("*\t\t\t欢迎使用高校学生成绩管理系统V1.0\t\t\t*\n");
    		printf("*********************************************************************************\n");
    		printf("*\t学号\t*\t姓名\t*\t性别\t*\t年龄\t*\t成绩\t*\n");
    		printf("*********************************************************************************\n");
    
    		while (p != NULL)
    		{
    			printf("*\t%d\t*\t%s\t*\t%s\t*\t%d\t*\t%d\t*\n",
    				p->stu.nStuNo,
    				p->stu.szName,
    				p->stu.szSex,
    				p->stu.nAge,
    				p->stu.nScore
    			);
    
    			//下一个节点
    			p = p->pNext;
    			printf("*********************************************************************************\n");
    		}
    	}
    
    	system("pause");
    	system("cls");
    }
    

    六、保存学生信息

    1. 利用文件对学生信息进行存储
    //3.保存学生信息
    void SaveStudent() {
    	//打开文件
    	FILE* pFile;
    	pFile = fopen(".\\stuinfo.dat", "w");
    	
    	if (pFile == NULL) {
    		printf("打开文件失败。\n");
    		return;
    	}
    
    	//写入数据
    	Node* p = g_pHead;
    	while (p != NULL)
    	{
    		fwrite(&p->stu, sizeof(Node), 1, pFile);
    		p = p->pNext;
    	}
    
    	//关闭文件
    	fclose(pFile);
    
    	printf("数据保存成功。\n");
    	system("pause");
    	system("cls");
    }
    
    1. fopen在vs中会报错,解决方式

    (1)按照vs的提示,将fopen换成fopen_s

    (2)不修改函数,仅仅修改项目的属性。因为fopen_s是一种Microsoft的函数,若纯做Windows开发则直接改为_s也无妨,但是我们尽量还是用标准C++比较好,这样代码有较好的移植性。

    具体操作:

    右键工程名–>属性–>C/C++–>预处理器–>预处理器定义,编辑右边输入框加入: _CRT_SECURE_NO_WARNINGS

    保存(注意用分号隔开)。

    七、读取学生信息

    1. 打开存储学生信息的文本,单个单词读取,判断非分隔符或者空时则赋值给链表中的节点,读取完毕后,直接调用PrintStudent()函数进行打印结果。
    //4.读取学生信息
    void ReadStudent() {
    	system("cls");
    
    	//打开文件
    	FILE* pFile;
    	pFile = fopen(".\\stuinfo.dat", "r");
    
    	if (pFile == NULL) {
    		printf("打开文件失败。\n");
    		return;
    	}
    	
    	//创建一个人,在堆中分配内存
    	Node* p = (Node*)malloc(sizeof(Node));
    	p->pNext = NULL;
    	//重新建立链表
    	g_pHead = p;
    
    	//逐个单词读入文本内容
    	char str[200];
    	int i = 0;
    	while (fscanf(pFile, "%s", str) != EOF) {  //读文件 
    		//单词不是*或者空时,进行赋值
    		if (strcmp(str, "*") && str != NULL) {
    			switch (i)
    			{
    			case 0:
    				p->stu.nStuNo = atoi(str);
    				break;
    			case 1:
    				strcpy(p->stu.szName, str);
    				break;
    			case 2:
    				strcpy(p->stu.szSex, str);
    				break;
    			case 3:
    				p->stu.nAge = atoi(str);
    				break;
    			case 4:
    				p->stu.nScore = atoi(str);
    				break;
    			default:
    				Node* pNewNode = (Node*)malloc(sizeof(Node));
    				pNewNode->pNext = NULL;
    				p->pNext = pNewNode;
    				p = pNewNode;
    				p->stu.nStuNo = atoi(str);
    				i = 0;
    				break;
    			}
    			i++;
    		}
    	}
    	//打印读取结果
    	PrintStudent();
    }
    
    1. 读取文本时,将内容全部赋值给char数组,所有赋值时需特殊处理。
    • char数组赋值给整数

      在<stdlib.h>头文件中有两个函数,int atoi(char *p)和char *itoa(int p),分别将装有整数的char数组转化为整数,和将整数按位数分解依次存入char数组中。

    • char数组赋值给char数组

      用strcpy函数!

      原型声明:extern char *strcpy(char *dest,char *src);

      头文件:string.h

      功能:把src所指由NULL结束的字符串复制到dest所指的数组中。

      说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。

      返回指向dest的指针。

      注:不能使用memcpy(a, b, strlen(b)),会导致中文乱码。

    八、统计所有学生人数

    1. 设置计数器,遍历链表
    //5.统计所有学生人数
    void CountStudent() {
    	int countStu = 0;
    
    	//遍历链表
    	Node* p = g_pHead;
    	while (p != NULL)
    	{
    		countStu++;
    		p = p->pNext;
    	}
    	printf("学生总人数:%d\n\n", countStu);
    
    	system("pause");
    	system("cls");
    }
    

    九、查找学生信息

    1. 本次查找以学号为示例,改用姓名等信息查询流程基本一致。

      遍历链表,如果有符合信息的学生则打印,反之则继续下一个节点,若系统中无该学生信息,给予用户无结果提示。

    //6.查找学生信息
    void FindStudent() {
    	system("cls");
    	//以学号为查找示例,其他信息查找流程基本相似
    	int stuNum;
    	printf("请输入查找学生学号:");
    	scanf("%d", &stuNum);
    	//遍历链表查找,查找到后进行信息显示
    	Node* p = g_pHead;
    	//对表头进行展示一次
    	bool isShowHead = false;
    	//记录是否有找到该学号的学生信息
    	bool isFindStu = false;
    	while (p != NULL)
    	{
    		if (stuNum == p->stu.nStuNo) {
    			if (!isShowHead) {
    				printf("*********************************************************************************\n");
    				printf("*\t学号\t*\t姓名\t*\t性别\t*\t年龄\t*\t成绩\t*\n");
    				printf("*********************************************************************************\n");
    				isShowHead = true;
    			}
    			printf("*\t%d\t*\t%s\t*\t%s\t*\t%d\t*\t%d\t*\n",
    				p->stu.nStuNo,
    				p->stu.szName,
    				p->stu.szSex,
    				p->stu.nAge,
    				p->stu.nScore
    			);
    			isFindStu = true;
    			printf("*********************************************************************************\n");
    		}
    		p = p->pNext;
    	}
    
    	if (!isFindStu) {
    		printf("学号输入有误,系统中暂无该学生信息。\n\n");
    	}
    
    	system("pause");
    	system("cls");
    }
    

    十、修改学生信息

    1. 可参考查找学生信息代码段,在查找后进行修改即可
    //7.修改学生信息
    void ChangeStudent() {
    	//以学号为查找示例,其他信息查找流程基本相似
    	int stuNum;
    	printf("请输入欲修改学生的学号:");
    	scanf("%d", &stuNum);
    	//遍历链表查找,查找到后进行信息显示
    	Node* p = g_pHead;
    	//对表头进行展示一次
    	bool isShowHead = false;
    	//记录是否有找到该学号的学生信息
    	bool isFindStu = false;
    	while (p != NULL)
    	{
    		if (stuNum == p->stu.nStuNo) {
    			if (!isShowHead) {
    				printf("*********************************************************************************\n");
    				printf("*\t学号\t*\t姓名\t*\t性别\t*\t年龄\t*\t成绩\t*\n");
    				printf("*********************************************************************************\n");
    				isShowHead = true;
    			}
    			printf("*\t%d\t*\t%s\t*\t%s\t*\t%d\t*\t%d\t*\n",
    				p->stu.nStuNo,
    				p->stu.szName,
    				p->stu.szSex,
    				p->stu.nAge,
    				p->stu.nScore
    			);
    			//修改学生信息
    			printf("请输入学生姓名:\n");
    			scanf_s("%s", p->stu.szName, sizeof(p->stu.szName));
    			printf("请输入性别:\n");
    			scanf_s("%s", p->stu.szSex, sizeof(p->stu.szSex));
    			printf("请输入学生年龄:\n");
    			scanf_s("%d", &p->stu.nAge);
    			printf("请输入学号:\n");
    			scanf_s("%d", &p->stu.nStuNo);
    			printf("请输入成绩:\n");
    			scanf_s("%d", &p->stu.nScore);
    			isFindStu = true;
    			printf("*********************************************************************************\n");
    			printf("学生信息修改成功,请注意及时保存。\n\n");
    		}
    		p = p->pNext;
    	}
    
    	if (!isFindStu) {
    		printf("学号输入有误,系统中暂无该学生信息,无法进行修改。\n\n");
    	}
    
    	system("pause");
    	system("cls");
    }
    

    十一、删除学生信息

    1. 仍然以查找学生信息操作为基础,以学号为线索,查找到则进行删除,未查找到则进行错误提示,删除时需要区分当前节点是头结点、尾节点或者中间节点,不同节点操作不同,同时该删除仅作用于本次操作,需保存学生信息才能长久生效。
    //8.删除学生信息
    void DeleteStudent() {
    	system("cls");
    	//以学号为查找示例,其他信息查找流程基本相似
    	int stuNum;
    	printf("请输入删除学生的学号:");
    	scanf("%d", &stuNum);
    	//遍历链表查找,查找到后进行信息显示
    	Node* p = g_pHead;
    	//记录前一个节点,删除时方便操作
    	Node* beforeNode = g_pHead;
    
    	//对表头进行展示一次
    	bool isShowHead = false;
    	//记录是否有找到该学号的学生信息
    	bool isFindStu = false;
    	while (p != NULL)
    	{
    		if (stuNum == p->stu.nStuNo) {
    			if (!isShowHead) {
    				printf("*********************************************************************************\n");
    				printf("*\t学号\t*\t姓名\t*\t性别\t*\t年龄\t*\t成绩\t*\n");
    				printf("*********************************************************************************\n");
    				isShowHead = true;
    			}
    			printf("*\t%d\t*\t%s\t*\t%s\t*\t%d\t*\t%d\t*\n",
    				p->stu.nStuNo,
    				p->stu.szName,
    				p->stu.szSex,
    				p->stu.nAge,
    				p->stu.nScore
    			);
    			isFindStu = true;
    			printf("*********************************************************************************\n");
    
    			//删除节点为头节点
    			if (p == g_pHead) {
    				g_pHead = p->pNext;
    			}
    			//删除节点为尾节点
    			else if (p->pNext == NULL) {
    				p = beforeNode;
    				p->pNext = NULL;
    			}
    			//删除节点为中间节点
    			else {
    				beforeNode->pNext = p->pNext;
    			}
    			printf("删除成功,请记得保存。\n\n");
    		}
    		beforeNode = p;
    		p = p->pNext;
    	}
    
    	if (!isFindStu) {
    		printf("学号输入有误,系统中暂无该学生信息,无法进行删除操作。\n\n");
    	}
    
    	system("pause");
    	system("cls");
    }
    

    十二、退出系统

    直接在选择0时,设置return即可。

    十三、出错

    用户输入有误时,进行提示信息输出即可。

    	printf("输入有误,没有该功能\n\n");
    	system("pause");  //暂停
    	system("cls");    //清屏
    

    展开全文
  • 3:退出系统 具体程序 #include<stdio.h> #include<time.h> int main() { int command[4]={0,1,2,3}; int num; struct tm *sysTime; printf("查询帮助输入0!\n"); printf("输入命令符:\n");...

    0:显示帮助信息
    1:显示系统日期
    2:显示系统时间
    3:退出系统

    具体程序

    #include<stdio.h>
    #include<time.h>
    int main()
    {
    	int command[4]={0,1,2,3};
    	int num;
    	struct tm *sysTime;
    	printf("查询帮助输入0!\n");
    	printf("输入命令符:\n");
    	
    	while(1)
    	{
    		scanf("%d",&num);
    		if(command[0]==num)
    		{
    			printf("1:显示系统日期,2:显示系统时间,3:退出系统!\n");
    		}
    		else if(command[1]==num)
    		{
    			time_t nowTime;
    			time(&nowTime);      //获取系统日期 
    			sysTime = localtime(&nowTime) ;
    			printf("系统日期:%d-%d-%d\n",1900+sysTime->tm_year,sysTime->tm_mon+1,sysTime->tm_mday);   //输出系统日期 
    		}
    		else if(command[2]==num)
    		{
    			time_t nowTime;
    			time(&nowTime);      //获取系统时间 
    			sysTime = localtime(&nowTime) ;
    			printf("系统时间:%d:%d:%d\n",sysTime->tm_hour,sysTime->tm_min,sysTime->tm_sec);   //输出系统时间 
    		}
    		else if(command[3]==num)
    		{
    				return 0;     	//退出系统 sysTime->tm_hour,sysTime->tm_min,sysTime->tm_sec
    		}
    		printf("请输入命令符:\n"); 
    	}
          //程序结束 
    	return 0;
    }
    

    两个问题:
    1.保持程序不断的运行,等待用户命令;是用while(1).
    2.获取系统时间和日期的方法.

    展开全文
  • C语言 银行存储系统

    2012-12-09 09:55:31
    C语言编写的银行系统,能实现正常的注册新用户、登录、存取款、转账、查询、退出等功能
  • C语言学籍管理系统

    千次阅读 2019-12-19 15:42:22
    C语言学籍管理系统 由学生成绩管理系统修改,并且进一步完善,修复了学生管理系统的许多bug。 需求 (1) 系统启动后,弹出一个用户界面,能实现人机交互的功能。而且只能通过界面菜单命令实现各种功能(包括系统...
  • 精.选 通讯录系统的设计与实现 桂林电子科技...系统功能需求分析描述如下 1创建联系人 2显示所有联系人显示可以进行的操作 3删除联系人 4查询根据姓名进行查询并可显示所有关于该人的信息 (5) :退出 3.2系统的设计 3.2.
  • c语言航班查询系统

    2018-12-22 09:40:11
    航班查询系统,实现航班添加,删除,查询,退出一系列操作
  • 汽车租赁系统c语言

    2015-10-18 14:13:06
    汽车租赁系统C语言 包含查询租车归还退出
  • c语言 航班信息系统

    2011-10-29 11:27:27
    2. 简单的系统与功能分析,了解航班信息管理系统的需求,用C语言开发航班信息管理系统; 3. 建立数据结构链表,数据内容包括航班号、航线、起飞时间、到达时间、机型、所属公司、价格; 4. 编写实现程序功能的各个...
  • c语言图书管理系统

    2021-01-20 15:03:31
    退出系统 登录界面: 管理员登录后界面 学生登录界面 利用文件保存添加的图书信息,对其修改。 /* @begin_time:2021/1/18 @author:qingfeng */ #include<stdio.h> #include<mycon.h> #include<...
  • c语言实现简单的学生管理系统 *********欢迎进入学生信息管理系统******** --1)添加学生信息 请输入:1 --2)删除学生信息 请输入:2 --3)修改学生信息 请输入:3 --4)查询学生信息 请输入:4 --5)显示...
  • C语言财务管理系统

    2021-03-25 16:57:47
    9.退出 详细事项:本系统包括管理员登录和普通同学登录,两种登录方式的权限不一样,例如:同学登录只能修改自己学号的信息。初次使用(本地文件为空)需要初始化系统。每次使用完一个功能,会自动返回主函数。使用...
  • C语言——通讯录系统

    2021-05-04 17:48:12
    6、退出通讯录系统 代码如下: #include<stdio.h> #include<conio.h> #include<stdlib.h> //联系人信息 typedef struct _Person { char name[10]; char phone[20]; char addr[20];
  • C语言 编写登录系统

    千次阅读 多人点赞 2016-09-27 21:02:58
    可进行三次密码输入,若三次全部输入错误,则退出系统
  • c语言 图书管理系统

    千次阅读 2020-06-23 08:56:00
    一、目的 通过设计一个图书管理系统的程序,全面运用课程的主要知识点,巩固对模块化程序设计、文件操作的理解,提高软件编程能力。 二、涉及的知识点 循环、分支语句、函数、...(同时输入3次错误将退出程序)。 操
  • exit 退出系统 使用C语言编写程序,模拟一个简单的文件系统,要求如下: (1) 文件系统的组织结构参考ext2文件系统 (2) 创建一个“disk.os”文件,大小为4MB,用该文件模拟外存。 (3) 最后应生成一...
  • C语言 学生管理系统

    2012-05-06 21:01:07
    大一下学期刚开学做的C语言程序实践一 /主函数 main() { MESSAGE *head=NULL; MARK *top=NULL; mainmenu(head,top); } //菜单选项 int menu(void) { int choose; do { system("cls"); printf("*****...
  • C语言的客房管理系统,非常简单,可以实现1、用户信息录 2、用户查询 3、空房查询 4、用户统计 5、用户修改 6、系统格式化 7、保存退出 这七个基本功能,E_Room文本文件里面是房间的基础数据,不要轻易删除,但是...
  • C语言学生管理系统

    2014-11-08 11:24:32
    设有学生宿舍的数据,要求输入计算机并存放在内存中,然后增加3个宿舍的记录并可以输出材料清单,实现文件存盘和对所选择的记录进行删除,修改。并统计宿舍的总人数,宿舍的基本信息包括楼号、房间... 保存文件、退出
  • 有些同学在做实验一 命令解释程序的编写的时候,输入quit命令退出程序,窗口并没有关闭,如下图所示需要Press any key to continue(按任意键)之后才关闭。 出现这个结果的原因是在IDE(VC++)中调试运行,如果是...
  • 此学生成绩管理系统是用工具codeblock开发的,语言类型c语言,实现功能:1、创建学生成绩库 2、学生信息显示 3、学生学号排序 4、学生成绩排序 5、添加学生信息 6、根据学号删除学生信息 7、查找学生信息 、8退出...
  • 本文实例为大家分享了C语言实现图书管理系统的具体代码,供大家参考,具体内容如下 一、分析过程 首先此程序需要实现输入、增加、删除、查询、输出的五大功能,则首先需要设置一个菜单键,让用户可以选择不同的功能...
  • 设备管理系统记录了各种设备信息情况,假设每台设备为一条记录(同一时 间同一部门购买的若干台相同设备可作为1条记录),包括设备号、设备名称、 领用人、所属部门、数量、购买时间、价格等。...7退出系统
  • printf("* 仓库物资管理系统 *\n"); printf("**************************************\n"); printf("********** 1.物资入库 **********\n"); printf("********** **********\n"); printf("********** 2....
  • C语言版 设计实现一个餐厅点餐系统,实现电子点餐。要求实现二级菜单: ; margin-right:0">一级菜单: ; margin-right:0">请选择: ; margin-right:0">1.点餐 ; margin-right:0">2....
  • C语言公交查询系统

    千次阅读 2010-10-30 00:40:00
    #include #include #include #include struct bus {char num[30];//车号char driver[50];.../*特色在于,因为每个公汽的路线不一样,所以用指针而不用数组,指针指向于内存中的某一地址,退出时把路线信

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,207
精华内容 482
关键字:

c语言退出系统

c语言 订阅